claude-flow 2.7.0-alpha.9 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (581) hide show
  1. package/.claude/settings.reasoningbank-example.json +124 -0
  2. package/.claude/settings.reasoningbank-minimal.json +40 -0
  3. package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
  4. package/.claude/skills/agentdb-learning/SKILL.md +545 -0
  5. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
  6. package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
  7. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
  8. package/.claude/skills/flow-nexus-neural/SKILL.md +738 -0
  9. package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -0
  10. package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -0
  11. package/.claude/skills/github-code-review/SKILL.md +1140 -0
  12. package/.claude/skills/github-multi-repo/SKILL.md +874 -0
  13. package/.claude/skills/github-project-management/SKILL.md +1277 -0
  14. package/.claude/skills/github-release-management/SKILL.md +1081 -0
  15. package/.claude/skills/github-workflow-automation/SKILL.md +1065 -0
  16. package/.claude/skills/hive-mind-advanced/SKILL.md +712 -0
  17. package/.claude/skills/hooks-automation/SKILL.md +1201 -0
  18. package/.claude/skills/pair-programming/SKILL.md +1202 -0
  19. package/.claude/skills/performance-analysis/SKILL.md +563 -0
  20. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
  21. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
  22. package/.claude/skills/skill-builder/SKILL.md +910 -0
  23. package/.claude/skills/sparc-methodology/SKILL.md +1115 -0
  24. package/.claude/skills/stream-chain/SKILL.md +563 -0
  25. package/.claude/skills/swarm-advanced/SKILL.md +973 -0
  26. package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
  27. package/.claude/skills/verification-quality/SKILL.md +649 -0
  28. package/.claude/statusline-command.sh +175 -0
  29. package/.claude/test-reasoningbank-hooks.sh +99 -0
  30. package/CHANGELOG.md +460 -0
  31. package/README.md +254 -188
  32. package/bin/claude-flow +1 -1
  33. package/dist/src/cli/simple-cli.js +182 -172
  34. package/dist/src/cli/simple-cli.js.map +1 -1
  35. package/dist/src/cli/simple-commands/config.js +115 -257
  36. package/dist/src/cli/simple-commands/config.js.map +1 -1
  37. package/dist/src/cli/simple-commands/init/index.js +36 -22
  38. package/dist/src/cli/simple-commands/init/index.js.map +1 -1
  39. package/dist/src/cli/simple-commands/init/skills-copier.js +186 -0
  40. package/dist/src/cli/simple-commands/init/skills-copier.js.map +1 -0
  41. package/dist/src/cli/simple-commands/memory.js +12 -1
  42. package/dist/src/cli/simple-commands/memory.js.map +1 -1
  43. package/dist/src/cli/simple-commands/process-ui-enhanced.js +1 -1
  44. package/dist/src/cli/simple-commands/process-ui-enhanced.js.map +1 -1
  45. package/dist/src/cli/simple-commands/status.js +1 -1
  46. package/dist/src/cli/simple-commands/status.js.map +1 -1
  47. package/dist/src/core/version.js +1 -1
  48. package/dist/src/mcp/mcp-server.js +261 -3
  49. package/dist/src/mcp/mcp-server.js.map +1 -1
  50. package/dist/src/reasoningbank/reasoningbank-adapter.js +152 -99
  51. package/dist/src/reasoningbank/reasoningbank-adapter.js.map +1 -1
  52. package/dist/src/utils/metrics-reader.js +39 -37
  53. package/dist/src/utils/metrics-reader.js.map +1 -1
  54. package/docker-test/.claude-flow/metrics/performance.json +3 -3
  55. package/docker-test/.claude-flow/metrics/task-metrics.json +3 -3
  56. package/docker-test/Dockerfile.alpha11-test +26 -0
  57. package/docker-test/Dockerfile.alpha12-test +47 -0
  58. package/docker-test/Dockerfile.local-test +42 -0
  59. package/docker-test/test-alpha11.sh +244 -0
  60. package/docker-test/test-local-fix.sh +235 -0
  61. package/docs/COMMANDS_TO_SKILLS_MIGRATION.md +382 -0
  62. package/docs/FINAL_INIT_STRUCTURE.md +320 -0
  63. package/docs/PATTERN_PERSISTENCE_FIX.md +328 -0
  64. package/docs/RELEASE-NOTES-v2.7.0-alpha.10.md +309 -0
  65. package/docs/RELEASE-NOTES-v2.7.0-alpha.9.md +208 -0
  66. package/docs/RELEASE_v2.7.1.md +244 -0
  67. package/docs/integrations/reasoningbank/MIGRATION-v1.5.13.md +1 -1
  68. package/docs/reasoningbank/CLAUDE-CODE-INTEGRATION.md +563 -0
  69. package/docs/reasoningbank/EXAMPLES.md +611 -0
  70. package/docs/reasoningbank/README.md +1139 -0
  71. package/docs/reasoningbank/agentic-flow-integration.md +800 -0
  72. package/docs/reasoningbank/architecture.md +680 -0
  73. package/docs/reasoningbank/google-research.md +1017 -0
  74. package/docs/reasoningbank/models/.claude-flow/metrics/agent-metrics.json +1 -0
  75. package/docs/reasoningbank/models/.claude-flow/metrics/performance.json +87 -0
  76. package/docs/reasoningbank/models/.claude-flow/metrics/task-metrics.json +10 -0
  77. package/docs/reasoningbank/models/HOW-TO-TRAIN.md +537 -0
  78. package/docs/reasoningbank/models/HOW-TO-USE.md +655 -0
  79. package/docs/reasoningbank/models/INDEX.md +276 -0
  80. package/docs/reasoningbank/models/README.md +345 -0
  81. package/docs/reasoningbank/models/_docs/COMPATIBILITY.md +448 -0
  82. package/docs/reasoningbank/models/_docs/COMPLETION-SUMMARY.md +478 -0
  83. package/docs/reasoningbank/models/_docs/README.md +80 -0
  84. package/docs/reasoningbank/models/_docs/SCHEMA-UPDATE-SUMMARY.md +376 -0
  85. package/docs/reasoningbank/models/_docs/VERIFICATION-COMPLETE.md +370 -0
  86. package/docs/reasoningbank/models/_scripts/README.md +270 -0
  87. package/docs/reasoningbank/models/_scripts/benchmark-all.cjs +407 -0
  88. package/docs/reasoningbank/models/_scripts/fix-schema-compatibility.cjs +300 -0
  89. package/docs/reasoningbank/models/_scripts/schema-validator.cjs +360 -0
  90. package/docs/reasoningbank/models/_scripts/training-coordinator.cjs +85 -0
  91. package/docs/reasoningbank/models/_scripts/validation-suite.cjs +239 -0
  92. package/docs/reasoningbank/models/benchmark-output.log +41 -0
  93. package/docs/reasoningbank/models/code-reasoning/.claude-flow/metrics/agent-metrics.json +1 -0
  94. package/docs/reasoningbank/models/code-reasoning/.claude-flow/metrics/performance.json +87 -0
  95. package/docs/reasoningbank/models/code-reasoning/.claude-flow/metrics/task-metrics.json +18 -0
  96. package/docs/reasoningbank/models/code-reasoning/.swarm/SCHEMA-FIX-REPORT.md +69 -0
  97. package/docs/reasoningbank/models/code-reasoning/.swarm/memory.db +0 -0
  98. package/docs/reasoningbank/models/code-reasoning/.swarm/memory.db.backup +0 -0
  99. package/docs/reasoningbank/models/code-reasoning/README.md +451 -0
  100. package/docs/reasoningbank/models/code-reasoning/TRAINING-SUMMARY.md +416 -0
  101. package/docs/reasoningbank/models/code-reasoning/train-code.js +2059 -0
  102. package/docs/reasoningbank/models/code-reasoning/training.log +18 -0
  103. package/docs/reasoningbank/models/code-reasoning/validation-report.md +349 -0
  104. package/docs/reasoningbank/models/domain-expert/.claude-flow/metrics/agent-metrics.json +1 -0
  105. package/docs/reasoningbank/models/domain-expert/.claude-flow/metrics/performance.json +87 -0
  106. package/docs/reasoningbank/models/domain-expert/.claude-flow/metrics/task-metrics.json +18 -0
  107. package/docs/reasoningbank/models/domain-expert/COMPLETION-REPORT.md +451 -0
  108. package/docs/reasoningbank/models/domain-expert/INDEX.md +182 -0
  109. package/docs/reasoningbank/models/domain-expert/README.md +215 -0
  110. package/docs/reasoningbank/models/domain-expert/SCHEMA-FIX-REPORT.md +65 -0
  111. package/docs/reasoningbank/models/domain-expert/SUMMARY.md +286 -0
  112. package/docs/reasoningbank/models/domain-expert/USAGE.md +394 -0
  113. package/docs/reasoningbank/models/domain-expert/demo-queries.sh +42 -0
  114. package/docs/reasoningbank/models/domain-expert/memory.db +0 -0
  115. package/docs/reasoningbank/models/domain-expert/train-domain.js +1324 -0
  116. package/docs/reasoningbank/models/domain-expert/validate.js +218 -0
  117. package/docs/reasoningbank/models/domain-expert/validation-report.md +89 -0
  118. package/docs/reasoningbank/models/google-research/README.md +455 -0
  119. package/docs/reasoningbank/models/google-research/SCHEMA-FIX-REPORT.md +65 -0
  120. package/docs/reasoningbank/models/google-research/memory.db +0 -0
  121. package/docs/reasoningbank/models/google-research/memory.db.backup +0 -0
  122. package/docs/reasoningbank/models/google-research/train-google.js +697 -0
  123. package/docs/reasoningbank/models/google-research/validation-report.md +99 -0
  124. package/docs/reasoningbank/models/google-research/validation-suite.js +323 -0
  125. package/docs/reasoningbank/models/problem-solving/.claude-flow/metrics/agent-metrics.json +1 -0
  126. package/docs/reasoningbank/models/problem-solving/.claude-flow/metrics/performance.json +87 -0
  127. package/docs/reasoningbank/models/problem-solving/.claude-flow/metrics/task-metrics.json +10 -0
  128. package/docs/reasoningbank/models/problem-solving/.swarm/memory.db +0 -0
  129. package/docs/reasoningbank/models/problem-solving/README.md +629 -0
  130. package/docs/reasoningbank/models/problem-solving/SCHEMA-FIX-REPORT.md +66 -0
  131. package/docs/reasoningbank/models/problem-solving/TRAINING_SUMMARY.md +524 -0
  132. package/docs/reasoningbank/models/problem-solving/memory.db +0 -0
  133. package/docs/reasoningbank/models/problem-solving/memory.db.backup +0 -0
  134. package/docs/reasoningbank/models/problem-solving/train-problem.js +1319 -0
  135. package/docs/reasoningbank/models/problem-solving/validation-report.md +300 -0
  136. package/docs/reasoningbank/models/safla/.claude-flow/metrics/agent-metrics.json +1 -0
  137. package/docs/reasoningbank/models/safla/.claude-flow/metrics/performance.json +87 -0
  138. package/docs/reasoningbank/models/safla/.claude-flow/metrics/task-metrics.json +10 -0
  139. package/docs/reasoningbank/models/safla/CHEATSHEET.md +277 -0
  140. package/docs/reasoningbank/models/safla/COMPLETION_REPORT.txt +108 -0
  141. package/docs/reasoningbank/models/safla/MANIFEST.txt +104 -0
  142. package/docs/reasoningbank/models/safla/QUICKSTART.md +349 -0
  143. package/docs/reasoningbank/models/safla/README.md +457 -0
  144. package/docs/reasoningbank/models/safla/SCHEMA-FIX-REPORT.md +68 -0
  145. package/docs/reasoningbank/models/safla/TRAINING_SUMMARY.md +383 -0
  146. package/docs/reasoningbank/models/safla/memory/memory-store.json +11 -0
  147. package/docs/reasoningbank/models/safla/memory.db +0 -0
  148. package/docs/reasoningbank/models/safla/memory.db.backup +0 -0
  149. package/docs/reasoningbank/models/safla/node_modules/.package-lock.json +456 -0
  150. package/docs/reasoningbank/models/safla/node_modules/base64-js/LICENSE +21 -0
  151. package/docs/reasoningbank/models/safla/node_modules/base64-js/README.md +34 -0
  152. package/docs/reasoningbank/models/safla/node_modules/base64-js/base64js.min.js +1 -0
  153. package/docs/reasoningbank/models/safla/node_modules/base64-js/index.d.ts +3 -0
  154. package/docs/reasoningbank/models/safla/node_modules/base64-js/index.js +150 -0
  155. package/docs/reasoningbank/models/safla/node_modules/base64-js/package.json +47 -0
  156. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/LICENSE +21 -0
  157. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/README.md +99 -0
  158. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/binding.gyp +38 -0
  159. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  160. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/common.gypi +68 -0
  161. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/copy.js +31 -0
  162. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/defines.gypi +41 -0
  163. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/download.sh +122 -0
  164. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/patches/1208.patch +15 -0
  165. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +261480 -0
  166. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +13715 -0
  167. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +719 -0
  168. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3.gyp +80 -0
  169. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/test_extension.c +21 -0
  170. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/database.js +90 -0
  171. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/index.js +3 -0
  172. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
  173. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
  174. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/function.js +31 -0
  175. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
  176. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
  177. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
  178. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/table.js +189 -0
  179. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
  180. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
  181. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
  182. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/util.js +12 -0
  183. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/package.json +54 -0
  184. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/src/better_sqlite3.cpp +2186 -0
  185. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/src/better_sqlite3.hpp +1036 -0
  186. package/docs/reasoningbank/models/safla/node_modules/bindings/LICENSE.md +22 -0
  187. package/docs/reasoningbank/models/safla/node_modules/bindings/README.md +98 -0
  188. package/docs/reasoningbank/models/safla/node_modules/bindings/bindings.js +221 -0
  189. package/docs/reasoningbank/models/safla/node_modules/bindings/package.json +28 -0
  190. package/docs/reasoningbank/models/safla/node_modules/bl/.travis.yml +17 -0
  191. package/docs/reasoningbank/models/safla/node_modules/bl/BufferList.js +396 -0
  192. package/docs/reasoningbank/models/safla/node_modules/bl/LICENSE.md +13 -0
  193. package/docs/reasoningbank/models/safla/node_modules/bl/README.md +247 -0
  194. package/docs/reasoningbank/models/safla/node_modules/bl/bl.js +84 -0
  195. package/docs/reasoningbank/models/safla/node_modules/bl/package.json +37 -0
  196. package/docs/reasoningbank/models/safla/node_modules/bl/test/convert.js +21 -0
  197. package/docs/reasoningbank/models/safla/node_modules/bl/test/indexOf.js +492 -0
  198. package/docs/reasoningbank/models/safla/node_modules/bl/test/isBufferList.js +32 -0
  199. package/docs/reasoningbank/models/safla/node_modules/bl/test/test.js +869 -0
  200. package/docs/reasoningbank/models/safla/node_modules/buffer/AUTHORS.md +70 -0
  201. package/docs/reasoningbank/models/safla/node_modules/buffer/LICENSE +21 -0
  202. package/docs/reasoningbank/models/safla/node_modules/buffer/README.md +410 -0
  203. package/docs/reasoningbank/models/safla/node_modules/buffer/index.d.ts +186 -0
  204. package/docs/reasoningbank/models/safla/node_modules/buffer/index.js +1817 -0
  205. package/docs/reasoningbank/models/safla/node_modules/buffer/package.json +96 -0
  206. package/docs/reasoningbank/models/safla/node_modules/chownr/LICENSE +15 -0
  207. package/docs/reasoningbank/models/safla/node_modules/chownr/README.md +3 -0
  208. package/docs/reasoningbank/models/safla/node_modules/chownr/chownr.js +167 -0
  209. package/docs/reasoningbank/models/safla/node_modules/chownr/package.json +29 -0
  210. package/docs/reasoningbank/models/safla/node_modules/decompress-response/index.d.ts +22 -0
  211. package/docs/reasoningbank/models/safla/node_modules/decompress-response/index.js +58 -0
  212. package/docs/reasoningbank/models/safla/node_modules/decompress-response/license +9 -0
  213. package/docs/reasoningbank/models/safla/node_modules/decompress-response/package.json +56 -0
  214. package/docs/reasoningbank/models/safla/node_modules/decompress-response/readme.md +48 -0
  215. package/docs/reasoningbank/models/safla/node_modules/deep-extend/CHANGELOG.md +46 -0
  216. package/docs/reasoningbank/models/safla/node_modules/deep-extend/LICENSE +20 -0
  217. package/docs/reasoningbank/models/safla/node_modules/deep-extend/README.md +91 -0
  218. package/docs/reasoningbank/models/safla/node_modules/deep-extend/index.js +1 -0
  219. package/docs/reasoningbank/models/safla/node_modules/deep-extend/lib/deep-extend.js +150 -0
  220. package/docs/reasoningbank/models/safla/node_modules/deep-extend/package.json +62 -0
  221. package/docs/reasoningbank/models/safla/node_modules/detect-libc/LICENSE +201 -0
  222. package/docs/reasoningbank/models/safla/node_modules/detect-libc/README.md +163 -0
  223. package/docs/reasoningbank/models/safla/node_modules/detect-libc/index.d.ts +14 -0
  224. package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/detect-libc.js +313 -0
  225. package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/elf.js +39 -0
  226. package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/filesystem.js +51 -0
  227. package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/process.js +24 -0
  228. package/docs/reasoningbank/models/safla/node_modules/detect-libc/package.json +44 -0
  229. package/docs/reasoningbank/models/safla/node_modules/end-of-stream/LICENSE +21 -0
  230. package/docs/reasoningbank/models/safla/node_modules/end-of-stream/README.md +54 -0
  231. package/docs/reasoningbank/models/safla/node_modules/end-of-stream/index.js +96 -0
  232. package/docs/reasoningbank/models/safla/node_modules/end-of-stream/package.json +37 -0
  233. package/docs/reasoningbank/models/safla/node_modules/expand-template/.travis.yml +6 -0
  234. package/docs/reasoningbank/models/safla/node_modules/expand-template/LICENSE +21 -0
  235. package/docs/reasoningbank/models/safla/node_modules/expand-template/README.md +43 -0
  236. package/docs/reasoningbank/models/safla/node_modules/expand-template/index.js +26 -0
  237. package/docs/reasoningbank/models/safla/node_modules/expand-template/package.json +29 -0
  238. package/docs/reasoningbank/models/safla/node_modules/expand-template/test.js +67 -0
  239. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/.travis.yml +30 -0
  240. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/History.md +21 -0
  241. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/LICENSE +20 -0
  242. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/README.md +74 -0
  243. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/index.d.ts +2 -0
  244. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/index.js +66 -0
  245. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/package.json +32 -0
  246. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/test/test.js +24 -0
  247. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/test/tests.json +13 -0
  248. package/docs/reasoningbank/models/safla/node_modules/fs-constants/LICENSE +21 -0
  249. package/docs/reasoningbank/models/safla/node_modules/fs-constants/README.md +26 -0
  250. package/docs/reasoningbank/models/safla/node_modules/fs-constants/browser.js +1 -0
  251. package/docs/reasoningbank/models/safla/node_modules/fs-constants/index.js +1 -0
  252. package/docs/reasoningbank/models/safla/node_modules/fs-constants/package.json +19 -0
  253. package/docs/reasoningbank/models/safla/node_modules/github-from-package/.travis.yml +4 -0
  254. package/docs/reasoningbank/models/safla/node_modules/github-from-package/LICENSE +18 -0
  255. package/docs/reasoningbank/models/safla/node_modules/github-from-package/example/package.json +8 -0
  256. package/docs/reasoningbank/models/safla/node_modules/github-from-package/example/url.js +3 -0
  257. package/docs/reasoningbank/models/safla/node_modules/github-from-package/index.js +17 -0
  258. package/docs/reasoningbank/models/safla/node_modules/github-from-package/package.json +30 -0
  259. package/docs/reasoningbank/models/safla/node_modules/github-from-package/readme.markdown +53 -0
  260. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/a.json +8 -0
  261. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/b.json +5 -0
  262. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/c.json +5 -0
  263. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/d.json +7 -0
  264. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/e.json +5 -0
  265. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/url.js +19 -0
  266. package/docs/reasoningbank/models/safla/node_modules/ieee754/LICENSE +11 -0
  267. package/docs/reasoningbank/models/safla/node_modules/ieee754/README.md +51 -0
  268. package/docs/reasoningbank/models/safla/node_modules/ieee754/index.d.ts +10 -0
  269. package/docs/reasoningbank/models/safla/node_modules/ieee754/index.js +85 -0
  270. package/docs/reasoningbank/models/safla/node_modules/ieee754/package.json +52 -0
  271. package/docs/reasoningbank/models/safla/node_modules/inherits/LICENSE +16 -0
  272. package/docs/reasoningbank/models/safla/node_modules/inherits/README.md +42 -0
  273. package/docs/reasoningbank/models/safla/node_modules/inherits/inherits.js +9 -0
  274. package/docs/reasoningbank/models/safla/node_modules/inherits/inherits_browser.js +27 -0
  275. package/docs/reasoningbank/models/safla/node_modules/inherits/package.json +29 -0
  276. package/docs/reasoningbank/models/safla/node_modules/ini/LICENSE +15 -0
  277. package/docs/reasoningbank/models/safla/node_modules/ini/README.md +102 -0
  278. package/docs/reasoningbank/models/safla/node_modules/ini/ini.js +206 -0
  279. package/docs/reasoningbank/models/safla/node_modules/ini/package.json +33 -0
  280. package/docs/reasoningbank/models/safla/node_modules/mimic-response/index.d.ts +17 -0
  281. package/docs/reasoningbank/models/safla/node_modules/mimic-response/index.js +77 -0
  282. package/docs/reasoningbank/models/safla/node_modules/mimic-response/license +9 -0
  283. package/docs/reasoningbank/models/safla/node_modules/mimic-response/package.json +42 -0
  284. package/docs/reasoningbank/models/safla/node_modules/mimic-response/readme.md +78 -0
  285. package/docs/reasoningbank/models/safla/node_modules/minimist/.eslintrc +29 -0
  286. package/docs/reasoningbank/models/safla/node_modules/minimist/.github/FUNDING.yml +12 -0
  287. package/docs/reasoningbank/models/safla/node_modules/minimist/.nycrc +14 -0
  288. package/docs/reasoningbank/models/safla/node_modules/minimist/CHANGELOG.md +298 -0
  289. package/docs/reasoningbank/models/safla/node_modules/minimist/LICENSE +18 -0
  290. package/docs/reasoningbank/models/safla/node_modules/minimist/README.md +121 -0
  291. package/docs/reasoningbank/models/safla/node_modules/minimist/example/parse.js +4 -0
  292. package/docs/reasoningbank/models/safla/node_modules/minimist/index.js +263 -0
  293. package/docs/reasoningbank/models/safla/node_modules/minimist/package.json +75 -0
  294. package/docs/reasoningbank/models/safla/node_modules/minimist/test/all_bool.js +34 -0
  295. package/docs/reasoningbank/models/safla/node_modules/minimist/test/bool.js +177 -0
  296. package/docs/reasoningbank/models/safla/node_modules/minimist/test/dash.js +43 -0
  297. package/docs/reasoningbank/models/safla/node_modules/minimist/test/default_bool.js +37 -0
  298. package/docs/reasoningbank/models/safla/node_modules/minimist/test/dotted.js +24 -0
  299. package/docs/reasoningbank/models/safla/node_modules/minimist/test/kv_short.js +32 -0
  300. package/docs/reasoningbank/models/safla/node_modules/minimist/test/long.js +33 -0
  301. package/docs/reasoningbank/models/safla/node_modules/minimist/test/num.js +38 -0
  302. package/docs/reasoningbank/models/safla/node_modules/minimist/test/parse.js +209 -0
  303. package/docs/reasoningbank/models/safla/node_modules/minimist/test/parse_modified.js +11 -0
  304. package/docs/reasoningbank/models/safla/node_modules/minimist/test/proto.js +64 -0
  305. package/docs/reasoningbank/models/safla/node_modules/minimist/test/short.js +69 -0
  306. package/docs/reasoningbank/models/safla/node_modules/minimist/test/stop_early.js +17 -0
  307. package/docs/reasoningbank/models/safla/node_modules/minimist/test/unknown.js +104 -0
  308. package/docs/reasoningbank/models/safla/node_modules/minimist/test/whitespace.js +10 -0
  309. package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/LICENSE +21 -0
  310. package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/README.md +18 -0
  311. package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/index.js +98 -0
  312. package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/package.json +18 -0
  313. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +31 -0
  314. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/LICENSE +21 -0
  315. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/README.md +52 -0
  316. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/index.js +214 -0
  317. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/index.md +0 -0
  318. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/package.json +42 -0
  319. package/docs/reasoningbank/models/safla/node_modules/node-abi/LICENSE +21 -0
  320. package/docs/reasoningbank/models/safla/node_modules/node-abi/README.md +54 -0
  321. package/docs/reasoningbank/models/safla/node_modules/node-abi/abi_registry.json +408 -0
  322. package/docs/reasoningbank/models/safla/node_modules/node-abi/index.js +179 -0
  323. package/docs/reasoningbank/models/safla/node_modules/node-abi/package.json +45 -0
  324. package/docs/reasoningbank/models/safla/node_modules/once/LICENSE +15 -0
  325. package/docs/reasoningbank/models/safla/node_modules/once/README.md +79 -0
  326. package/docs/reasoningbank/models/safla/node_modules/once/once.js +42 -0
  327. package/docs/reasoningbank/models/safla/node_modules/once/package.json +33 -0
  328. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/CHANGELOG.md +131 -0
  329. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/CONTRIBUTING.md +6 -0
  330. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/LICENSE +21 -0
  331. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/README.md +163 -0
  332. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/asset.js +44 -0
  333. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/bin.js +78 -0
  334. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/download.js +142 -0
  335. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/error.js +14 -0
  336. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/help.txt +16 -0
  337. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/index.js +1 -0
  338. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/log.js +33 -0
  339. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/package.json +67 -0
  340. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/proxy.js +35 -0
  341. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/rc.js +64 -0
  342. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/util.js +143 -0
  343. package/docs/reasoningbank/models/safla/node_modules/pump/.github/FUNDING.yml +2 -0
  344. package/docs/reasoningbank/models/safla/node_modules/pump/.travis.yml +5 -0
  345. package/docs/reasoningbank/models/safla/node_modules/pump/LICENSE +21 -0
  346. package/docs/reasoningbank/models/safla/node_modules/pump/README.md +74 -0
  347. package/docs/reasoningbank/models/safla/node_modules/pump/SECURITY.md +5 -0
  348. package/docs/reasoningbank/models/safla/node_modules/pump/index.js +86 -0
  349. package/docs/reasoningbank/models/safla/node_modules/pump/package.json +24 -0
  350. package/docs/reasoningbank/models/safla/node_modules/pump/test-browser.js +66 -0
  351. package/docs/reasoningbank/models/safla/node_modules/pump/test-node.js +53 -0
  352. package/docs/reasoningbank/models/safla/node_modules/rc/LICENSE.APACHE2 +15 -0
  353. package/docs/reasoningbank/models/safla/node_modules/rc/LICENSE.BSD +26 -0
  354. package/docs/reasoningbank/models/safla/node_modules/rc/LICENSE.MIT +24 -0
  355. package/docs/reasoningbank/models/safla/node_modules/rc/README.md +227 -0
  356. package/docs/reasoningbank/models/safla/node_modules/rc/browser.js +7 -0
  357. package/docs/reasoningbank/models/safla/node_modules/rc/cli.js +4 -0
  358. package/docs/reasoningbank/models/safla/node_modules/rc/index.js +53 -0
  359. package/docs/reasoningbank/models/safla/node_modules/rc/lib/utils.js +104 -0
  360. package/docs/reasoningbank/models/safla/node_modules/rc/package.json +29 -0
  361. package/docs/reasoningbank/models/safla/node_modules/rc/test/ini.js +16 -0
  362. package/docs/reasoningbank/models/safla/node_modules/rc/test/nested-env-vars.js +50 -0
  363. package/docs/reasoningbank/models/safla/node_modules/rc/test/test.js +59 -0
  364. package/docs/reasoningbank/models/safla/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  365. package/docs/reasoningbank/models/safla/node_modules/readable-stream/GOVERNANCE.md +136 -0
  366. package/docs/reasoningbank/models/safla/node_modules/readable-stream/LICENSE +47 -0
  367. package/docs/reasoningbank/models/safla/node_modules/readable-stream/README.md +106 -0
  368. package/docs/reasoningbank/models/safla/node_modules/readable-stream/errors-browser.js +127 -0
  369. package/docs/reasoningbank/models/safla/node_modules/readable-stream/errors.js +116 -0
  370. package/docs/reasoningbank/models/safla/node_modules/readable-stream/experimentalWarning.js +17 -0
  371. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_duplex.js +126 -0
  372. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_passthrough.js +37 -0
  373. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_readable.js +1027 -0
  374. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_transform.js +190 -0
  375. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_writable.js +641 -0
  376. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/async_iterator.js +180 -0
  377. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/buffer_list.js +183 -0
  378. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/destroy.js +96 -0
  379. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +86 -0
  380. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -0
  381. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/from.js +52 -0
  382. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/pipeline.js +86 -0
  383. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/state.js +22 -0
  384. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  385. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  386. package/docs/reasoningbank/models/safla/node_modules/readable-stream/package.json +68 -0
  387. package/docs/reasoningbank/models/safla/node_modules/readable-stream/readable-browser.js +9 -0
  388. package/docs/reasoningbank/models/safla/node_modules/readable-stream/readable.js +16 -0
  389. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/LICENSE +21 -0
  390. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/README.md +584 -0
  391. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/index.d.ts +187 -0
  392. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/index.js +65 -0
  393. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/package.json +51 -0
  394. package/docs/reasoningbank/models/safla/node_modules/semver/LICENSE +15 -0
  395. package/docs/reasoningbank/models/safla/node_modules/semver/README.md +664 -0
  396. package/docs/reasoningbank/models/safla/node_modules/semver/bin/semver.js +191 -0
  397. package/docs/reasoningbank/models/safla/node_modules/semver/classes/comparator.js +143 -0
  398. package/docs/reasoningbank/models/safla/node_modules/semver/classes/index.js +7 -0
  399. package/docs/reasoningbank/models/safla/node_modules/semver/classes/range.js +557 -0
  400. package/docs/reasoningbank/models/safla/node_modules/semver/classes/semver.js +333 -0
  401. package/docs/reasoningbank/models/safla/node_modules/semver/functions/clean.js +8 -0
  402. package/docs/reasoningbank/models/safla/node_modules/semver/functions/cmp.js +54 -0
  403. package/docs/reasoningbank/models/safla/node_modules/semver/functions/coerce.js +62 -0
  404. package/docs/reasoningbank/models/safla/node_modules/semver/functions/compare-build.js +9 -0
  405. package/docs/reasoningbank/models/safla/node_modules/semver/functions/compare-loose.js +5 -0
  406. package/docs/reasoningbank/models/safla/node_modules/semver/functions/compare.js +7 -0
  407. package/docs/reasoningbank/models/safla/node_modules/semver/functions/diff.js +60 -0
  408. package/docs/reasoningbank/models/safla/node_modules/semver/functions/eq.js +5 -0
  409. package/docs/reasoningbank/models/safla/node_modules/semver/functions/gt.js +5 -0
  410. package/docs/reasoningbank/models/safla/node_modules/semver/functions/gte.js +5 -0
  411. package/docs/reasoningbank/models/safla/node_modules/semver/functions/inc.js +21 -0
  412. package/docs/reasoningbank/models/safla/node_modules/semver/functions/lt.js +5 -0
  413. package/docs/reasoningbank/models/safla/node_modules/semver/functions/lte.js +5 -0
  414. package/docs/reasoningbank/models/safla/node_modules/semver/functions/major.js +5 -0
  415. package/docs/reasoningbank/models/safla/node_modules/semver/functions/minor.js +5 -0
  416. package/docs/reasoningbank/models/safla/node_modules/semver/functions/neq.js +5 -0
  417. package/docs/reasoningbank/models/safla/node_modules/semver/functions/parse.js +18 -0
  418. package/docs/reasoningbank/models/safla/node_modules/semver/functions/patch.js +5 -0
  419. package/docs/reasoningbank/models/safla/node_modules/semver/functions/prerelease.js +8 -0
  420. package/docs/reasoningbank/models/safla/node_modules/semver/functions/rcompare.js +5 -0
  421. package/docs/reasoningbank/models/safla/node_modules/semver/functions/rsort.js +5 -0
  422. package/docs/reasoningbank/models/safla/node_modules/semver/functions/satisfies.js +12 -0
  423. package/docs/reasoningbank/models/safla/node_modules/semver/functions/sort.js +5 -0
  424. package/docs/reasoningbank/models/safla/node_modules/semver/functions/valid.js +8 -0
  425. package/docs/reasoningbank/models/safla/node_modules/semver/index.js +91 -0
  426. package/docs/reasoningbank/models/safla/node_modules/semver/internal/constants.js +37 -0
  427. package/docs/reasoningbank/models/safla/node_modules/semver/internal/debug.js +11 -0
  428. package/docs/reasoningbank/models/safla/node_modules/semver/internal/identifiers.js +29 -0
  429. package/docs/reasoningbank/models/safla/node_modules/semver/internal/lrucache.js +42 -0
  430. package/docs/reasoningbank/models/safla/node_modules/semver/internal/parse-options.js +17 -0
  431. package/docs/reasoningbank/models/safla/node_modules/semver/internal/re.js +223 -0
  432. package/docs/reasoningbank/models/safla/node_modules/semver/package.json +78 -0
  433. package/docs/reasoningbank/models/safla/node_modules/semver/preload.js +4 -0
  434. package/docs/reasoningbank/models/safla/node_modules/semver/range.bnf +16 -0
  435. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/gtr.js +6 -0
  436. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/intersects.js +9 -0
  437. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/ltr.js +6 -0
  438. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/max-satisfying.js +27 -0
  439. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/min-satisfying.js +26 -0
  440. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/min-version.js +63 -0
  441. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/outside.js +82 -0
  442. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/simplify.js +49 -0
  443. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/subset.js +249 -0
  444. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/to-comparators.js +10 -0
  445. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/valid.js +13 -0
  446. package/docs/reasoningbank/models/safla/node_modules/simple-concat/.travis.yml +3 -0
  447. package/docs/reasoningbank/models/safla/node_modules/simple-concat/LICENSE +20 -0
  448. package/docs/reasoningbank/models/safla/node_modules/simple-concat/README.md +44 -0
  449. package/docs/reasoningbank/models/safla/node_modules/simple-concat/index.js +15 -0
  450. package/docs/reasoningbank/models/safla/node_modules/simple-concat/package.json +47 -0
  451. package/docs/reasoningbank/models/safla/node_modules/simple-concat/test/basic.js +41 -0
  452. package/docs/reasoningbank/models/safla/node_modules/simple-get/.github/dependabot.yml +15 -0
  453. package/docs/reasoningbank/models/safla/node_modules/simple-get/.github/workflows/ci.yml +23 -0
  454. package/docs/reasoningbank/models/safla/node_modules/simple-get/LICENSE +20 -0
  455. package/docs/reasoningbank/models/safla/node_modules/simple-get/README.md +333 -0
  456. package/docs/reasoningbank/models/safla/node_modules/simple-get/index.js +108 -0
  457. package/docs/reasoningbank/models/safla/node_modules/simple-get/package.json +67 -0
  458. package/docs/reasoningbank/models/safla/node_modules/string_decoder/LICENSE +48 -0
  459. package/docs/reasoningbank/models/safla/node_modules/string_decoder/README.md +47 -0
  460. package/docs/reasoningbank/models/safla/node_modules/string_decoder/lib/string_decoder.js +296 -0
  461. package/docs/reasoningbank/models/safla/node_modules/string_decoder/package.json +34 -0
  462. package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/index.js +70 -0
  463. package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/license +21 -0
  464. package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/package.json +42 -0
  465. package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/readme.md +64 -0
  466. package/docs/reasoningbank/models/safla/node_modules/tar-fs/.travis.yml +6 -0
  467. package/docs/reasoningbank/models/safla/node_modules/tar-fs/LICENSE +21 -0
  468. package/docs/reasoningbank/models/safla/node_modules/tar-fs/README.md +165 -0
  469. package/docs/reasoningbank/models/safla/node_modules/tar-fs/index.js +363 -0
  470. package/docs/reasoningbank/models/safla/node_modules/tar-fs/package.json +41 -0
  471. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -0
  472. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -0
  473. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  474. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  475. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  476. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  477. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  478. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  479. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/e/file +0 -0
  480. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  481. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/index.js +346 -0
  482. package/docs/reasoningbank/models/safla/node_modules/tar-stream/LICENSE +21 -0
  483. package/docs/reasoningbank/models/safla/node_modules/tar-stream/README.md +168 -0
  484. package/docs/reasoningbank/models/safla/node_modules/tar-stream/extract.js +257 -0
  485. package/docs/reasoningbank/models/safla/node_modules/tar-stream/headers.js +295 -0
  486. package/docs/reasoningbank/models/safla/node_modules/tar-stream/index.js +2 -0
  487. package/docs/reasoningbank/models/safla/node_modules/tar-stream/pack.js +255 -0
  488. package/docs/reasoningbank/models/safla/node_modules/tar-stream/package.json +58 -0
  489. package/docs/reasoningbank/models/safla/node_modules/tar-stream/sandbox.js +11 -0
  490. package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/LICENSE +55 -0
  491. package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/README.md +4 -0
  492. package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/index.js +244 -0
  493. package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/package.json +22 -0
  494. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/History.md +16 -0
  495. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/LICENSE +24 -0
  496. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/README.md +53 -0
  497. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/browser.js +67 -0
  498. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/node.js +6 -0
  499. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/package.json +27 -0
  500. package/docs/reasoningbank/models/safla/node_modules/wrappy/LICENSE +15 -0
  501. package/docs/reasoningbank/models/safla/node_modules/wrappy/README.md +36 -0
  502. package/docs/reasoningbank/models/safla/node_modules/wrappy/package.json +29 -0
  503. package/docs/reasoningbank/models/safla/node_modules/wrappy/wrappy.js +33 -0
  504. package/docs/reasoningbank/models/safla/package-lock.json +463 -0
  505. package/docs/reasoningbank/models/safla/package.json +14 -0
  506. package/docs/reasoningbank/models/safla/train-safla.js +524 -0
  507. package/docs/reasoningbank/models/safla/training.log +64 -0
  508. package/docs/reasoningbank/models/safla/validate-safla.js +449 -0
  509. package/docs/reasoningbank/models/safla/validation-report.md +115 -0
  510. package/docs/reasoningbank/models/safla/validation-results.json +189 -0
  511. package/docs/reasoningbank/tutorial-advanced.md +869 -0
  512. package/docs/reasoningbank/tutorial-basic.md +626 -0
  513. package/docs/reports/validation/PROCESS-EXIT-FIX-v2.7.0-alpha.9.md +154 -0
  514. package/docs/reports/validation/REASONINGBANK-v1.5.13-VALIDATION.md +1 -1
  515. package/docs/skills/skills-tutorial.md +2910 -0
  516. package/docs/skills-tutorial.md +1251 -0
  517. package/package.json +4 -3
  518. package/src/cli/simple-commands/init/index.js +32 -14
  519. package/src/cli/simple-commands/init/skills-copier.js +215 -0
  520. package/src/cli/simple-commands/process-ui-enhanced.js +1 -1
  521. package/src/cli/simple-commands/status.js +1 -1
  522. package/src/mcp/mcp-server.js +302 -2
  523. package/src/reasoningbank/reasoningbank-adapter.js +8 -6
  524. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
  525. package/.claude/commands/analysis/bottleneck-detect.md +0 -162
  526. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  527. package/.claude/commands/analysis/performance-report.md +0 -25
  528. package/.claude/commands/flow-nexus/app-store.md +0 -124
  529. package/.claude/commands/flow-nexus/challenges.md +0 -120
  530. package/.claude/commands/flow-nexus/login-registration.md +0 -65
  531. package/.claude/commands/flow-nexus/neural-network.md +0 -134
  532. package/.claude/commands/flow-nexus/payments.md +0 -116
  533. package/.claude/commands/flow-nexus/sandbox.md +0 -83
  534. package/.claude/commands/flow-nexus/swarm.md +0 -87
  535. package/.claude/commands/flow-nexus/user-tools.md +0 -152
  536. package/.claude/commands/flow-nexus/workflow.md +0 -115
  537. package/.claude/commands/github/code-review-swarm.md +0 -514
  538. package/.claude/commands/github/github-modes.md +0 -147
  539. package/.claude/commands/github/issue-tracker.md +0 -292
  540. package/.claude/commands/github/multi-repo-swarm.md +0 -519
  541. package/.claude/commands/github/pr-manager.md +0 -170
  542. package/.claude/commands/github/project-board-sync.md +0 -471
  543. package/.claude/commands/github/release-manager.md +0 -338
  544. package/.claude/commands/github/release-swarm.md +0 -544
  545. package/.claude/commands/github/repo-architect.md +0 -367
  546. package/.claude/commands/github/swarm-issue.md +0 -482
  547. package/.claude/commands/github/swarm-pr.md +0 -285
  548. package/.claude/commands/github/sync-coordinator.md +0 -301
  549. package/.claude/commands/github/workflow-automation.md +0 -442
  550. package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
  551. package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
  552. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -8
  553. package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
  554. package/.claude/commands/hive-mind/hive-mind.md +0 -27
  555. package/.claude/commands/hooks/overview.md +0 -132
  556. package/.claude/commands/memory/usage.md +0 -46
  557. package/.claude/commands/pair/commands.md +0 -546
  558. package/.claude/commands/pair/config.md +0 -510
  559. package/.claude/commands/pair/examples.md +0 -512
  560. package/.claude/commands/pair/modes.md +0 -348
  561. package/.claude/commands/pair/session.md +0 -407
  562. package/.claude/commands/pair/start.md +0 -209
  563. package/.claude/commands/sparc/orchestrator.md +0 -132
  564. package/.claude/commands/sparc/sparc-modes.md +0 -174
  565. package/.claude/commands/stream-chain/pipeline.md +0 -121
  566. package/.claude/commands/stream-chain/run.md +0 -70
  567. package/.claude/commands/swarm/analysis.md +0 -95
  568. package/.claude/commands/swarm/development.md +0 -96
  569. package/.claude/commands/swarm/examples.md +0 -168
  570. package/.claude/commands/swarm/maintenance.md +0 -102
  571. package/.claude/commands/swarm/optimization.md +0 -117
  572. package/.claude/commands/swarm/research.md +0 -136
  573. package/.claude/commands/swarm/swarm-analysis.md +0 -8
  574. package/.claude/commands/swarm/swarm-spawn.md +0 -19
  575. package/.claude/commands/swarm/swarm-strategies.md +0 -8
  576. package/.claude/commands/swarm/testing.md +0 -131
  577. package/.claude/commands/truth/start.md +0 -143
  578. package/.claude/commands/verify/check.md +0 -50
  579. package/.claude/commands/verify/start.md +0 -128
  580. /package/{.claude/agents → docs}/reasoning/README.md +0 -0
  581. /package/{.claude/agents → docs}/reasoning/example-reasoning-agent-template.md +0 -0
@@ -1,57 +1,70 @@
1
- import { createReasoningBank } from 'agentic-flow/dist/reasoningbank/wasm-adapter.js';
1
+ import * as ReasoningBank from 'agentic-flow/reasoningbank';
2
2
  import { v4 as uuidv4 } from 'uuid';
3
- let wasmInstance = null;
3
+ let backendInitialized = false;
4
4
  let initPromise = null;
5
5
  const queryCache = new Map();
6
6
  const CACHE_SIZE = 100;
7
7
  const CACHE_TTL = 60000;
8
- async function getWasmInstance() {
9
- if (wasmInstance) {
10
- return wasmInstance;
8
+ async function ensureInitialized() {
9
+ if (backendInitialized) {
10
+ return true;
11
11
  }
12
12
  if (initPromise) {
13
13
  return initPromise;
14
14
  }
15
15
  initPromise = (async ()=>{
16
16
  try {
17
- const dbName = process.env.CLAUDE_FLOW_DB_NAME || 'claude-flow-memory';
18
- wasmInstance = await createReasoningBank(dbName);
19
- console.log('[ReasoningBank] WASM initialized successfully');
20
- return wasmInstance;
17
+ await ReasoningBank.initialize();
18
+ backendInitialized = true;
19
+ console.log('[ReasoningBank] Node.js backend initialized successfully');
20
+ return true;
21
21
  } catch (error) {
22
- console.error('[ReasoningBank] WASM initialization failed:', error);
23
- throw new Error(`Failed to initialize ReasoningBank WASM: ${error.message}`);
22
+ console.error('[ReasoningBank] Backend initialization failed:', error);
23
+ throw new Error(`Failed to initialize ReasoningBank: ${error.message}`);
24
24
  }
25
25
  })();
26
26
  return initPromise;
27
27
  }
28
28
  export async function initializeReasoningBank() {
29
- await getWasmInstance();
29
+ await ensureInitialized();
30
30
  return true;
31
31
  }
32
32
  export async function storeMemory(key, value, options = {}) {
33
- const wasm = await getWasmInstance();
33
+ await ensureInitialized();
34
34
  try {
35
- const pattern = {
36
- task_description: value,
37
- task_category: options.namespace || 'default',
38
- strategy: key,
39
- success_score: options.confidence || 0.8,
40
- metadata: {
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',
41
43
  agent: options.agent || 'memory-agent',
42
- domain: options.domain || 'general',
43
- type: options.type || 'fact',
44
+ task_type: options.type || 'fact',
44
45
  original_key: key,
45
46
  original_value: value,
46
- namespace: options.namespace || 'default',
47
- created_at: new Date().toISOString()
48
- }
47
+ namespace: options.namespace || 'default'
48
+ },
49
+ confidence: options.confidence || 0.8,
50
+ usage_count: 0
49
51
  };
50
- const patternId = await wasm.storePattern(pattern);
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
+ }
51
64
  queryCache.clear();
52
- return patternId;
65
+ return memoryId;
53
66
  } catch (error) {
54
- console.error('[ReasoningBank] WASM storeMemory failed:', error);
67
+ console.error('[ReasoningBank] storeMemory failed:', error);
55
68
  throw new Error(`Failed to store memory: ${error.message}`);
56
69
  }
57
70
  }
@@ -60,34 +73,41 @@ export async function queryMemories(searchQuery, options = {}) {
60
73
  if (cached) {
61
74
  return cached;
62
75
  }
63
- const wasm = await getWasmInstance();
76
+ await ensureInitialized();
64
77
  const limit = options.limit || 10;
65
- const namespace = options.namespace || 'default';
78
+ const namespace = options.namespace || options.domain || 'default';
66
79
  try {
67
- const results = await wasm.findSimilar(searchQuery, namespace, limit);
68
- const memories = results.map((pattern)=>({
69
- id: pattern.id || `mem_${uuidv4()}`,
70
- key: pattern.strategy || pattern.metadata?.original_key || 'unknown',
71
- value: pattern.task_description || pattern.metadata?.original_value || '',
72
- namespace: pattern.task_category || pattern.metadata?.namespace || 'default',
73
- confidence: pattern.success_score || 0.8,
74
- usage_count: pattern.usage_count || 0,
75
- created_at: pattern.metadata?.created_at || new Date().toISOString(),
76
- score: pattern.similarity_score || 0,
77
- _pattern: pattern
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
85
+ });
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
78
96
  }));
79
97
  if (memories.length === 0) {
80
- console.warn('[ReasoningBank] Semantic search returned 0 results, trying category fallback');
81
- const categoryResults = await wasm.searchByCategory(namespace, limit);
82
- const fallbackMemories = categoryResults.map((pattern)=>({
83
- id: pattern.id || `mem_${uuidv4()}`,
84
- key: pattern.strategy || pattern.metadata?.original_key || 'unknown',
85
- value: pattern.task_description || pattern.metadata?.original_value || '',
86
- namespace: pattern.task_category || pattern.metadata?.namespace || 'default',
87
- confidence: pattern.success_score || 0.8,
88
- usage_count: pattern.usage_count || 0,
89
- created_at: pattern.metadata?.created_at || new Date().toISOString(),
90
- _pattern: pattern
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()
91
111
  }));
92
112
  setCachedQuery(searchQuery, options, fallbackMemories);
93
113
  return fallbackMemories;
@@ -95,17 +115,20 @@ export async function queryMemories(searchQuery, options = {}) {
95
115
  setCachedQuery(searchQuery, options, memories);
96
116
  return memories;
97
117
  } catch (error) {
98
- console.warn('[ReasoningBank] WASM query failed, trying category fallback:', error.message);
118
+ console.warn('[ReasoningBank] Query failed, trying database fallback:', error.message);
99
119
  try {
100
- const categoryResults = await wasm.searchByCategory(namespace, limit);
101
- const fallbackMemories = categoryResults.map((pattern)=>({
102
- id: pattern.id || `mem_${uuidv4()}`,
103
- key: pattern.strategy || pattern.metadata?.original_key || 'unknown',
104
- value: pattern.task_description || pattern.metadata?.original_value || '',
105
- namespace: pattern.task_category || pattern.metadata?.namespace || 'default',
106
- confidence: pattern.success_score || 0.8,
107
- usage_count: pattern.usage_count || 0,
108
- created_at: pattern.metadata?.created_at || new Date().toISOString()
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()
109
132
  }));
110
133
  setCachedQuery(searchQuery, options, fallbackMemories);
111
134
  return fallbackMemories;
@@ -116,19 +139,25 @@ export async function queryMemories(searchQuery, options = {}) {
116
139
  }
117
140
  }
118
141
  export async function listMemories(options = {}) {
119
- const wasm = await getWasmInstance();
142
+ await ensureInitialized();
120
143
  const limit = options.limit || 10;
121
- const namespace = options.namespace || 'default';
144
+ const namespace = options.namespace;
122
145
  try {
123
- const patterns = await wasm.searchByCategory(namespace, limit);
124
- return patterns.map((pattern)=>({
125
- id: pattern.id || `mem_${uuidv4()}`,
126
- key: pattern.strategy || pattern.metadata?.original_key || 'unknown',
127
- value: pattern.task_description || pattern.metadata?.original_value || '',
128
- namespace: pattern.task_category || pattern.metadata?.namespace || 'default',
129
- confidence: pattern.success_score || 0.8,
130
- usage_count: pattern.usage_count || 0,
131
- created_at: pattern.metadata?.created_at || new Date().toISOString()
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);
152
+ }
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()
132
161
  }));
133
162
  } catch (error) {
134
163
  console.error('[ReasoningBank] listMemories failed:', error);
@@ -136,19 +165,25 @@ export async function listMemories(options = {}) {
136
165
  }
137
166
  }
138
167
  export async function getStatus() {
139
- const wasm = await getWasmInstance();
168
+ await ensureInitialized();
140
169
  try {
141
- const stats = await wasm.getStats();
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();
142
177
  return {
143
- total_memories: stats.total_patterns || 0,
144
- total_categories: stats.total_categories || 0,
145
- storage_backend: stats.storage_backend || 'unknown',
146
- wasm_version: stats.wasm_version || '1.5.11',
147
- performance: 'WASM-powered (0.04ms/op)',
148
- avg_confidence: 0.8,
149
- total_usage: 0,
150
- total_embeddings: stats.total_patterns || 0,
151
- total_trajectories: 0
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
152
187
  };
153
188
  } catch (error) {
154
189
  console.error('[ReasoningBank] getStatus failed:', error);
@@ -159,20 +194,25 @@ export async function getStatus() {
159
194
  }
160
195
  }
161
196
  export async function checkReasoningBankTables() {
162
- const wasm = await getWasmInstance();
163
197
  try {
164
- await wasm.getStats();
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));
165
209
  return {
166
210
  exists: true,
167
- existingTables: [
168
- 'WASM patterns storage'
169
- ],
170
- missingTables: [],
171
- requiredTables: [
172
- 'WASM patterns storage'
173
- ],
174
- backend: 'WASM',
175
- note: 'WASM backend does not use traditional SQL tables'
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'
176
216
  };
177
217
  } catch (error) {
178
218
  return {
@@ -186,17 +226,17 @@ export async function checkReasoningBankTables() {
186
226
  }
187
227
  export async function migrateReasoningBank() {
188
228
  try {
189
- await getWasmInstance();
229
+ await ReasoningBank.db.runMigrations();
190
230
  return {
191
231
  success: true,
192
- message: 'WASM backend initialized successfully',
193
- migrated: false,
194
- note: 'WASM backend does not require traditional migration'
232
+ message: 'Database migrations completed successfully',
233
+ migrated: true,
234
+ database_path: process.env.CLAUDE_FLOW_DB_PATH || '.swarm/memory.db'
195
235
  };
196
236
  } catch (error) {
197
237
  return {
198
238
  success: false,
199
- message: `WASM initialization failed: ${error.message}`,
239
+ message: `Migration failed: ${error.message}`,
200
240
  error: error.message
201
241
  };
202
242
  }
@@ -226,5 +266,18 @@ function setCachedQuery(searchQuery, options, results) {
226
266
  timestamp: Date.now()
227
267
  });
228
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
+ }
281
+ }
229
282
 
230
283
  //# sourceMappingURL=reasoningbank-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/reasoningbank/reasoningbank-adapter.js"],"sourcesContent":["/**\n * ReasoningBank Adapter for Claude-Flow (WASM-Powered)\n *\n * Wraps agentic-flow's ReasoningBank WASM for ultra-fast performance\n * Performance: 3ms/op storage, 10,000-25,000 ops/sec (250x+ faster than SDK)\n *\n * Now uses agentic-flow@1.5.12 with proper ESM WASM bindings!\n */\n\nimport { createReasoningBank } from 'agentic-flow/dist/reasoningbank/wasm-adapter.js';\nimport { v4 as uuidv4 } from 'uuid';\n\n// WASM instance (singleton)\nlet wasmInstance = null;\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 WASM instance\n * @returns {Promise<ReasoningBankAdapter>}\n */\nasync function getWasmInstance() {\n if (wasmInstance) {\n return wasmInstance;\n }\n\n if (initPromise) {\n return initPromise;\n }\n\n initPromise = (async () => {\n try {\n // Create WASM instance with database name from environment or default\n const dbName = process.env.CLAUDE_FLOW_DB_NAME || 'claude-flow-memory';\n wasmInstance = await createReasoningBank(dbName);\n console.log('[ReasoningBank] WASM initialized successfully');\n return wasmInstance;\n } catch (error) {\n console.error('[ReasoningBank] WASM initialization failed:', error);\n throw new Error(`Failed to initialize ReasoningBank WASM: ${error.message}`);\n }\n })();\n\n return initPromise;\n}\n\n/**\n * Initialize ReasoningBank database (WASM version)\n */\nexport async function initializeReasoningBank() {\n // Just initialize the WASM instance\n await getWasmInstance();\n return true;\n}\n\n/**\n * Store a memory in ReasoningBank (WASM-powered for 0.04ms performance)\n *\n * Maps claude-flow memory model to ReasoningBank pattern model:\n * - key -> strategy\n * - value -> task_description\n * - namespace -> task_category\n * - confidence -> success_score\n */\nexport async function storeMemory(key, value, options = {}) {\n const wasm = await getWasmInstance();\n\n try {\n // Map our memory model to ReasoningBank pattern model\n const pattern = {\n task_description: value,\n task_category: options.namespace || 'default',\n strategy: key,\n success_score: options.confidence || 0.8,\n // Include metadata for compatibility\n metadata: {\n agent: options.agent || 'memory-agent',\n domain: options.domain || 'general',\n type: options.type || 'fact',\n original_key: key,\n original_value: value,\n namespace: options.namespace || 'default',\n created_at: new Date().toISOString()\n }\n };\n\n // Store using WASM (ultra-fast: 0.04ms/op)\n const patternId = await wasm.storePattern(pattern);\n\n // Invalidate query cache when new memory is added\n queryCache.clear();\n\n return patternId;\n } catch (error) {\n console.error('[ReasoningBank] WASM storeMemory failed:', error);\n throw new Error(`Failed to store memory: ${error.message}`);\n }\n}\n\n/**\n * Query memories from ReasoningBank (WASM-powered semantic search)\n *\n * Uses WASM findSimilar for ultra-fast semantic search\n * Fallback to searchByCategory 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 const wasm = await getWasmInstance();\n const limit = options.limit || 10;\n const namespace = options.namespace || 'default';\n\n try {\n // Try semantic search first (WASM-powered, ultra-fast)\n const results = await wasm.findSimilar(\n searchQuery,\n namespace,\n limit\n );\n\n // Map WASM pattern results to our memory format\n const memories = results.map(pattern => ({\n id: pattern.id || `mem_${uuidv4()}`,\n key: pattern.strategy || pattern.metadata?.original_key || 'unknown',\n value: pattern.task_description || pattern.metadata?.original_value || '',\n namespace: pattern.task_category || pattern.metadata?.namespace || 'default',\n confidence: pattern.success_score || 0.8,\n usage_count: pattern.usage_count || 0,\n created_at: pattern.metadata?.created_at || new Date().toISOString(),\n score: pattern.similarity_score || 0,\n // Include original pattern for debugging\n _pattern: pattern\n }));\n\n // If no results, try category search as fallback\n if (memories.length === 0) {\n console.warn('[ReasoningBank] Semantic search returned 0 results, trying category fallback');\n const categoryResults = await wasm.searchByCategory(namespace, limit);\n\n const fallbackMemories = categoryResults.map(pattern => ({\n id: pattern.id || `mem_${uuidv4()}`,\n key: pattern.strategy || pattern.metadata?.original_key || 'unknown',\n value: pattern.task_description || pattern.metadata?.original_value || '',\n namespace: pattern.task_category || pattern.metadata?.namespace || 'default',\n confidence: pattern.success_score || 0.8,\n usage_count: pattern.usage_count || 0,\n created_at: pattern.metadata?.created_at || new Date().toISOString(),\n _pattern: pattern\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] WASM query failed, trying category fallback:', error.message);\n\n try {\n // Final fallback: search by category\n const categoryResults = await wasm.searchByCategory(namespace, limit);\n\n const fallbackMemories = categoryResults.map(pattern => ({\n id: pattern.id || `mem_${uuidv4()}`,\n key: pattern.strategy || pattern.metadata?.original_key || 'unknown',\n value: pattern.task_description || pattern.metadata?.original_value || '',\n namespace: pattern.task_category || pattern.metadata?.namespace || 'default',\n confidence: pattern.success_score || 0.8,\n usage_count: pattern.usage_count || 0,\n created_at: pattern.metadata?.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 WASM searchByCategory with no filter)\n */\nexport async function listMemories(options = {}) {\n const wasm = await getWasmInstance();\n const limit = options.limit || 10;\n const namespace = options.namespace || 'default';\n\n try {\n // Use category search to list all memories in namespace\n const patterns = await wasm.searchByCategory(namespace, limit);\n\n return patterns.map(pattern => ({\n id: pattern.id || `mem_${uuidv4()}`,\n key: pattern.strategy || pattern.metadata?.original_key || 'unknown',\n value: pattern.task_description || pattern.metadata?.original_value || '',\n namespace: pattern.task_category || pattern.metadata?.namespace || 'default',\n confidence: pattern.success_score || 0.8,\n usage_count: pattern.usage_count || 0,\n created_at: pattern.metadata?.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 (WASM-powered)\n */\nexport async function getStatus() {\n const wasm = await getWasmInstance();\n\n try {\n const stats = await wasm.getStats();\n\n return {\n total_memories: stats.total_patterns || 0,\n total_categories: stats.total_categories || 0,\n storage_backend: stats.storage_backend || 'unknown',\n wasm_version: stats.wasm_version || '1.5.11',\n performance: 'WASM-powered (0.04ms/op)',\n avg_confidence: 0.8, // WASM doesn't track this, use default\n total_usage: 0, // WASM doesn't track this\n total_embeddings: stats.total_patterns || 0,\n total_trajectories: 0 // Not applicable in WASM\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 (WASM version always has required data)\n */\nexport async function checkReasoningBankTables() {\n const wasm = await getWasmInstance();\n\n try {\n await wasm.getStats();\n\n return {\n exists: true,\n existingTables: ['WASM patterns storage'],\n missingTables: [],\n requiredTables: ['WASM patterns storage'],\n backend: 'WASM',\n note: 'WASM backend does not use traditional SQL tables'\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 (not needed for WASM, always initialized)\n */\nexport async function migrateReasoningBank() {\n try {\n await getWasmInstance();\n\n return {\n success: true,\n message: 'WASM backend initialized successfully',\n migrated: false,\n note: 'WASM backend does not require traditional migration'\n };\n } catch (error) {\n return {\n success: false,\n message: `WASM initialization 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"],"names":["createReasoningBank","v4","uuidv4","wasmInstance","initPromise","queryCache","Map","CACHE_SIZE","CACHE_TTL","getWasmInstance","dbName","process","env","CLAUDE_FLOW_DB_NAME","console","log","error","Error","message","initializeReasoningBank","storeMemory","key","value","options","wasm","pattern","task_description","task_category","namespace","strategy","success_score","confidence","metadata","agent","domain","type","original_key","original_value","created_at","Date","toISOString","patternId","storePattern","clear","queryMemories","searchQuery","cached","getCachedQuery","limit","results","findSimilar","memories","map","id","usage_count","score","similarity_score","_pattern","length","warn","categoryResults","searchByCategory","fallbackMemories","setCachedQuery","fallbackError","listMemories","patterns","getStatus","stats","getStats","total_memories","total_patterns","total_categories","storage_backend","wasm_version","performance","avg_confidence","total_usage","total_embeddings","total_trajectories","checkReasoningBankTables","exists","existingTables","missingTables","requiredTables","backend","note","migrateReasoningBank","success","migrated","cacheKey","JSON","stringify","get","now","timestamp","size","firstKey","keys","next","delete","set"],"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":"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"}
@@ -1,11 +1,13 @@
1
- import * as fs from 'fs/promises';
2
- import * as path from 'path';
1
+ import { promises as fs } from 'fs';
2
+ import path from 'path';
3
3
  import { exec } from 'child_process';
4
4
  import { promisify } from 'util';
5
5
  const execAsync = promisify(exec);
6
- export class MetricsReader {
7
- metricsDir = '.claude-flow/metrics';
8
- sessionsDir = '.claude-flow/sessions';
6
+ let MetricsReader = class MetricsReader {
7
+ constructor(){
8
+ this.metricsDir = '.claude-flow/metrics';
9
+ this.sessionsDir = '.claude-flow/sessions';
10
+ }
9
11
  async getSystemMetrics() {
10
12
  try {
11
13
  const filePath = path.join(this.metricsDir, 'system-metrics.json');
@@ -16,6 +18,15 @@ export class MetricsReader {
16
18
  return null;
17
19
  }
18
20
  }
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
+ }
19
30
  async getTaskMetrics() {
20
31
  try {
21
32
  const filePath = path.join(this.metricsDir, 'task-metrics.json');
@@ -36,30 +47,30 @@ export class MetricsReader {
36
47
  }
37
48
  async getActiveAgents() {
38
49
  try {
39
- const perfMetrics = await this.getPerformanceMetrics();
40
- const sessionFiles = await this.getSessionFiles();
41
50
  const agents = [];
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);
51
+ const agentsDir = '.claude-flow/agents';
52
+ try {
53
+ const agentFiles = await fs.readdir(agentsDir);
54
+ for (const file of agentFiles){
55
+ if (file.endsWith('.json')) {
56
+ try {
57
+ const content = await fs.readFile(path.join(agentsDir, file), 'utf8');
58
+ const agent = JSON.parse(content);
59
+ agents.push(agent);
60
+ } catch {}
48
61
  }
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
- });
62
+ }
63
+ } catch {}
64
+ if (agents.length === 0) {
65
+ const sessionFiles = await this.getSessionFiles();
66
+ for (const file of sessionFiles){
67
+ try {
68
+ const content = await fs.readFile(path.join(this.sessionsDir, 'pair', file), 'utf8');
69
+ const sessionData = JSON.parse(content);
70
+ if (sessionData.agents && Array.isArray(sessionData.agents)) {
71
+ agents.push(...sessionData.agents);
72
+ }
73
+ } catch {}
63
74
  }
64
75
  }
65
76
  return agents;
@@ -135,7 +146,7 @@ export class MetricsReader {
135
146
  }
136
147
  async getMCPServerStatus() {
137
148
  try {
138
- const { stdout } = await execAsync('ps aux | grep -E "mcp-server\\.js|claude-flow mcp start" | grep -v grep | wc -l');
149
+ const { stdout } = await execAsync('ps aux | grep -E "mcp" | grep -v grep | wc -l');
139
150
  const processCount = parseInt(stdout.trim(), 10);
140
151
  const { stdout: orchestratorOut } = await execAsync('ps aux | grep -E "claude-flow start" | grep -v grep | wc -l');
141
152
  const orchestratorRunning = parseInt(orchestratorOut.trim(), 10) > 0;
@@ -164,15 +175,6 @@ export class MetricsReader {
164
175
  };
165
176
  }
166
177
  }
167
- }
168
-
169
- //# sourceMappingURL=metrics-reader.js.map processCount: 0,
170
- orchestratorRunning: false,
171
- port: null,
172
- connections: 0
173
- };
174
- }
175
- }
176
178
  };
177
179
  export { MetricsReader };
178
180
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/metrics-reader.ts"],"sourcesContent":["import * as fs from 'fs/promises';\nimport * as path from 'path';\nimport { exec } from 'child_process';\nimport { promisify } from 'util';\n\nconst execAsync = promisify(exec);\n\ninterface SystemMetrics {\n timestamp: number;\n memoryTotal: number;\n memoryUsed: number;\n memoryFree: number;\n memoryUsagePercent: number;\n memoryEfficiency: number;\n cpuCount: number;\n cpuLoad: number;\n platform: string;\n uptime: number;\n}\n\ninterface TaskMetric {\n id: string;\n type: string;\n success: boolean;\n duration: number;\n timestamp: number;\n metadata: Record<string, any>;\n}\n\ninterface PerformanceMetrics {\n startTime: number;\n totalTasks: number;\n successfulTasks: number;\n failedTasks: number;\n totalAgents: number;\n activeAgents: number;\n neuralEvents: number;\n}\n\ninterface Agent {\n id: string;\n name: string;\n type: string;\n status: 'active' | 'idle' | 'busy';\n activeTasks: number;\n lastActivity?: number;\n}\n\ninterface SessionData {\n id: string;\n startTime: number;\n endTime?: number;\n agents: Agent[];\n tasks: any[];\n status: 'active' | 'completed' | 'paused';\n}\n\ninterface MCPServerStatus {\n running: boolean;\n processCount: number;\n orchestratorRunning: boolean;\n port: number | null;\n connections: number;\n}\n\nexport class MetricsReader {\n private metricsDir = '.claude-flow/metrics';\n private sessionsDir = '.claude-flow/sessions';\n\n async getSystemMetrics(): Promise<SystemMetrics | null> {\n try {\n const filePath = path.join(this.metricsDir, 'system-metrics.json');\n const content = await fs.readFile(filePath, 'utf8');\n const metrics: SystemMetrics[] = JSON.parse(content);\n \n // Return the most recent metric\n return metrics.length > 0 ? metrics[metrics.length - 1] : null;\n } catch (error) {\n return null;\n }\n }\n\n async getTaskMetrics(): Promise<TaskMetric[]> {\n try {\n const filePath = path.join(this.metricsDir, 'task-metrics.json');\n const content = await fs.readFile(filePath, 'utf8');\n return JSON.parse(content);\n } catch (error) {\n return [];\n }\n }\n\n async getPerformanceMetrics(): Promise<PerformanceMetrics | null> {\n try {\n const filePath = path.join(this.metricsDir, 'performance.json');\n const content = await fs.readFile(filePath, 'utf8');\n return JSON.parse(content);\n } catch (error) {\n return null;\n }\n }\n\n async getActiveAgents(): Promise<Agent[]> {\n try {\n // First check performance metrics for agent count\n const perfMetrics = await this.getPerformanceMetrics();\n \n // Also check session files for more detailed agent info\n const sessionFiles = await this.getSessionFiles();\n const agents: Agent[] = [];\n \n for (const file of sessionFiles) {\n try {\n const content = await fs.readFile(path.join(this.sessionsDir, 'pair', file), 'utf8');\n const sessionData = JSON.parse(content);\n \n if (sessionData.agents && Array.isArray(sessionData.agents)) {\n agents.push(...sessionData.agents);\n }\n } catch {\n // Skip invalid session files\n }\n }\n \n // If no agents found in sessions, create mock agents based on performance metrics\n if (agents.length === 0 && perfMetrics) {\n const activeCount = perfMetrics.activeAgents || 0;\n const totalCount = perfMetrics.totalAgents || 0;\n \n for (let i = 0; i < totalCount; i++) {\n agents.push({\n id: `agent-${i + 1}`,\n name: `Agent ${i + 1}`,\n type: i === 0 ? 'orchestrator' : 'worker',\n status: i < activeCount ? 'active' : 'idle',\n activeTasks: i < activeCount ? 1 : 0,\n lastActivity: Date.now() - (i * 1000)\n });\n }\n }\n \n return agents;\n } catch (error) {\n return [];\n }\n }\n\n async getSessionStatus(): Promise<SessionData | null> {\n try {\n const sessionFiles = await this.getSessionFiles();\n \n if (sessionFiles.length === 0) {\n return null;\n }\n \n // Get the most recent session\n const mostRecentFile = sessionFiles[sessionFiles.length - 1];\n const content = await fs.readFile(path.join(this.sessionsDir, 'pair', mostRecentFile), 'utf8');\n return JSON.parse(content);\n } catch (error) {\n return null;\n }\n }\n\n async getRecentTasks(limit: number = 10): Promise<any[]> {\n try {\n const taskMetrics = await this.getTaskMetrics();\n \n // Sort by timestamp descending and take the limit\n return taskMetrics\n .sort((a, b) => b.timestamp - a.timestamp)\n .slice(0, limit)\n .map(task => ({\n id: task.id,\n type: task.type,\n status: task.success ? 'completed' : 'failed',\n startTime: task.timestamp - task.duration,\n endTime: task.timestamp,\n duration: task.duration\n }));\n } catch (error) {\n return [];\n }\n }\n\n async getOverallHealth(): Promise<'healthy' | 'warning' | 'error'> {\n try {\n const systemMetrics = await this.getSystemMetrics();\n const perfMetrics = await this.getPerformanceMetrics();\n \n if (!systemMetrics && !perfMetrics) {\n return 'error';\n }\n \n // Check memory usage\n if (systemMetrics && systemMetrics.memoryUsagePercent > 90) {\n return 'error';\n }\n \n if (systemMetrics && systemMetrics.memoryUsagePercent > 75) {\n return 'warning';\n }\n \n // Check CPU load\n if (systemMetrics && systemMetrics.cpuLoad > 0.8) {\n return 'warning';\n }\n \n // Check task failure rate\n if (perfMetrics && perfMetrics.totalTasks > 0) {\n const failureRate = perfMetrics.failedTasks / perfMetrics.totalTasks;\n if (failureRate > 0.5) {\n return 'error';\n }\n if (failureRate > 0.2) {\n return 'warning';\n }\n }\n \n return 'healthy';\n } catch (error) {\n return 'error';\n }\n }\n\n private async getSessionFiles(): Promise<string[]> {\n try {\n const files = await fs.readdir(path.join(this.sessionsDir, 'pair'));\n return files.filter(f => f.endsWith('.json')).sort();\n } catch (error) {\n return [];\n }\n }\n\n async getMCPServerStatus(): Promise<MCPServerStatus> {\n try {\n // Check if MCP server process is running\n const { stdout } = await execAsync('ps aux | grep -E \"mcp-server\\\\.js|claude-flow mcp start\" | grep -v grep | wc -l');\n const processCount = parseInt(stdout.trim(), 10);\n \n // Check for orchestrator running\n const { stdout: orchestratorOut } = await execAsync('ps aux | grep -E \"claude-flow start\" | grep -v grep | wc -l');\n const orchestratorRunning = parseInt(orchestratorOut.trim(), 10) > 0;\n \n // Determine status\n const isRunning = processCount > 0;\n \n // Try to get port from process (default is 3000)\n let port: number | null = 3000;\n try {\n const { stdout: portOut } = await execAsync('lsof -i :3000 2>/dev/null | grep LISTEN | wc -l');\n if (parseInt(portOut.trim(), 10) === 0) {\n // If port 3000 not listening, check other common ports\n port = null;\n }\n } catch {\n // lsof might not be available or port not in use\n }\n \n return {\n running: isRunning,\n processCount,\n orchestratorRunning,\n port,\n connections: processCount > 0 ? Math.max(1, processCount - 1) : 0 // Estimate connections\n };\n } catch (error) {\n // Fallback if commands fail\n return {\n running: false,\n processCount: 0,\n orchestratorRunning: false,\n port: null,\n connections: 0\n };\n }\n }\n}"],"names":["fs","path","exec","promisify","execAsync","MetricsReader","metricsDir","sessionsDir","getSystemMetrics","filePath","join","content","readFile","metrics","JSON","parse","length","error","getTaskMetrics","getPerformanceMetrics","getActiveAgents","perfMetrics","sessionFiles","getSessionFiles","agents","file","sessionData","Array","isArray","push","activeCount","activeAgents","totalCount","totalAgents","i","id","name","type","status","activeTasks","lastActivity","Date","now","getSessionStatus","mostRecentFile","getRecentTasks","limit","taskMetrics","sort","a","b","timestamp","slice","map","task","success","startTime","duration","endTime","getOverallHealth","systemMetrics","memoryUsagePercent","cpuLoad","totalTasks","failureRate","failedTasks","files","readdir","filter","f","endsWith","getMCPServerStatus","stdout","processCount","parseInt","trim","orchestratorOut","orchestratorRunning","isRunning","port","portOut","running","connections","Math","max"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/utils/metrics-reader.js"],"sourcesContent":["import { promises as fs } from 'fs';\nimport path from 'path';\nimport { exec } from 'child_process';\nimport { promisify } from 'util';\n\nconst execAsync = promisify(exec);\n\nclass MetricsReader {\n constructor() {\n this.metricsDir = '.claude-flow/metrics';\n this.sessionsDir = '.claude-flow/sessions';\n }\n\n async getSystemMetrics() {\n try {\n const filePath = path.join(this.metricsDir, 'system-metrics.json');\n const content = await fs.readFile(filePath, 'utf8');\n const metrics = JSON.parse(content);\n \n // Return the most recent metric\n return metrics.length > 0 ? metrics[metrics.length - 1] : null;\n } catch (error) {\n return null;\n }\n }\n\n async getTaskQueue() {\n try {\n const queueFile = '.claude-flow/tasks/queue.json';\n const content = await fs.readFile(queueFile, 'utf8');\n return JSON.parse(content);\n } catch (error) {\n return [];\n }\n }\n\n async getTaskMetrics() {\n try {\n const filePath = path.join(this.metricsDir, 'task-metrics.json');\n const content = await fs.readFile(filePath, 'utf8');\n return JSON.parse(content);\n } catch (error) {\n return [];\n }\n }\n\n async getPerformanceMetrics() {\n try {\n const filePath = path.join(this.metricsDir, 'performance.json');\n const content = await fs.readFile(filePath, 'utf8');\n return JSON.parse(content);\n } catch (error) {\n return null;\n }\n }\n\n async getActiveAgents() {\n try {\n const agents = [];\n \n // Check for agents in the .claude-flow/agents directory\n const agentsDir = '.claude-flow/agents';\n try {\n const agentFiles = await fs.readdir(agentsDir);\n for (const file of agentFiles) {\n if (file.endsWith('.json')) {\n try {\n const content = await fs.readFile(path.join(agentsDir, file), 'utf8');\n const agent = JSON.parse(content);\n agents.push(agent);\n } catch {\n // Skip invalid agent files\n }\n }\n }\n } catch {\n // Agents directory doesn't exist yet\n }\n \n // If no agents found in directory, check session files\n if (agents.length === 0) {\n const sessionFiles = await this.getSessionFiles();\n for (const file of sessionFiles) {\n try {\n const content = await fs.readFile(path.join(this.sessionsDir, 'pair', file), 'utf8');\n const sessionData = JSON.parse(content);\n \n if (sessionData.agents && Array.isArray(sessionData.agents)) {\n agents.push(...sessionData.agents);\n }\n } catch {\n // Skip invalid session files\n }\n }\n }\n \n return agents;\n } catch (error) {\n return [];\n }\n }\n\n async getSessionStatus() {\n try {\n const sessionFiles = await this.getSessionFiles();\n \n if (sessionFiles.length === 0) {\n return null;\n }\n \n // Get the most recent session\n const mostRecentFile = sessionFiles[sessionFiles.length - 1];\n const content = await fs.readFile(path.join(this.sessionsDir, 'pair', mostRecentFile), 'utf8');\n return JSON.parse(content);\n } catch (error) {\n return null;\n }\n }\n\n async getRecentTasks(limit = 10) {\n try {\n const taskMetrics = await this.getTaskMetrics();\n \n // Sort by timestamp descending and take the limit\n return taskMetrics\n .sort((a, b) => b.timestamp - a.timestamp)\n .slice(0, limit)\n .map(task => ({\n id: task.id,\n type: task.type,\n status: task.success ? 'completed' : 'failed',\n startTime: task.timestamp - task.duration,\n endTime: task.timestamp,\n duration: task.duration\n }));\n } catch (error) {\n return [];\n }\n }\n\n async getOverallHealth() {\n try {\n const systemMetrics = await this.getSystemMetrics();\n const perfMetrics = await this.getPerformanceMetrics();\n \n if (!systemMetrics && !perfMetrics) {\n return 'error';\n }\n \n // Check memory usage\n if (systemMetrics && systemMetrics.memoryUsagePercent > 90) {\n return 'error';\n }\n \n if (systemMetrics && systemMetrics.memoryUsagePercent > 75) {\n return 'warning';\n }\n \n // Check CPU load\n if (systemMetrics && systemMetrics.cpuLoad > 0.8) {\n return 'warning';\n }\n \n // Check task failure rate\n if (perfMetrics && perfMetrics.totalTasks > 0) {\n const failureRate = perfMetrics.failedTasks / perfMetrics.totalTasks;\n if (failureRate > 0.5) {\n return 'error';\n }\n if (failureRate > 0.2) {\n return 'warning';\n }\n }\n \n return 'healthy';\n } catch (error) {\n return 'error';\n }\n }\n\n async getSessionFiles() {\n try {\n const files = await fs.readdir(path.join(this.sessionsDir, 'pair'));\n return files.filter(f => f.endsWith('.json')).sort();\n } catch (error) {\n return [];\n }\n }\n\n async getMCPServerStatus() {\n try {\n // Check if MCP server process is running (including flow-nexus and other MCP variants)\n const { stdout } = await execAsync('ps aux | grep -E \"mcp\" | grep -v grep | wc -l');\n const processCount = parseInt(stdout.trim(), 10);\n \n // Check for orchestrator running\n const { stdout: orchestratorOut } = await execAsync('ps aux | grep -E \"claude-flow start\" | grep -v grep | wc -l');\n const orchestratorRunning = parseInt(orchestratorOut.trim(), 10) > 0;\n \n // Determine status\n const isRunning = processCount > 0;\n \n // Try to get port from process (default is 3000)\n let port = 3000;\n try {\n const { stdout: portOut } = await execAsync('lsof -i :3000 2>/dev/null | grep LISTEN | wc -l');\n if (parseInt(portOut.trim(), 10) === 0) {\n // If port 3000 not listening, check other common ports\n port = null;\n }\n } catch {\n // lsof might not be available or port not in use\n }\n \n return {\n running: isRunning,\n processCount,\n orchestratorRunning,\n port,\n connections: processCount > 0 ? Math.max(1, processCount - 1) : 0 // Estimate connections\n };\n } catch (error) {\n // Fallback if commands fail\n return {\n running: false,\n processCount: 0,\n orchestratorRunning: false,\n port: null,\n connections: 0\n };\n }\n }\n}\n\nexport { MetricsReader };"],"names":["promises","fs","path","exec","promisify","execAsync","MetricsReader","metricsDir","sessionsDir","getSystemMetrics","filePath","join","content","readFile","metrics","JSON","parse","length","error","getTaskQueue","queueFile","getTaskMetrics","getPerformanceMetrics","getActiveAgents","agents","agentsDir","agentFiles","readdir","file","endsWith","agent","push","sessionFiles","getSessionFiles","sessionData","Array","isArray","getSessionStatus","mostRecentFile","getRecentTasks","limit","taskMetrics","sort","a","b","timestamp","slice","map","task","id","type","status","success","startTime","duration","endTime","getOverallHealth","systemMetrics","perfMetrics","memoryUsagePercent","cpuLoad","totalTasks","failureRate","failedTasks","files","filter","f","getMCPServerStatus","stdout","processCount","parseInt","trim","orchestratorOut","orchestratorRunning","isRunning","port","portOut","running","connections","Math","max"],"mappings":"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"}AG,KAAK;gBAChD,OAAO;YACT;YAGA,IAAIzC,eAAeA,YAAY0C,UAAU,GAAG,GAAG;gBAC7C,MAAMC,cAAc3C,YAAY4C,WAAW,GAAG5C,YAAY0C,UAAU;gBACpE,IAAIC,cAAc,KAAK;oBACrB,OAAO;gBACT;gBACA,IAAIA,cAAc,KAAK;oBACrB,OAAO;gBACT;YACF;YAEA,OAAO;QACT,EAAE,OAAO/C,OAAO;YACd,OAAO;QACT;IACF;IAEA,MAAcM,kBAAqC;QACjD,IAAI;YACF,MAAM2C,QAAQ,MAAMlE,GAAGmE,OAAO,CAAClE,KAAKS,IAAI,CAAC,IAAI,CAACH,WAAW,EAAE;YAC3D,OAAO2D,MAAME,MAAM,CAACC,CAAAA,IAAKA,EAAEC,QAAQ,CAAC,UAAUtB,IAAI;QACpD,EAAE,OAAO/B,OAAO;YACd,OAAO,EAAE;QACX;IACF;IAEA,MAAMsD,qBAA+C;QACnD,IAAI;YAEF,MAAM,EAAEC,MAAM,EAAE,GAAG,MAAMpE,UAAU;YACnC,MAAMqE,eAAeC,SAASF,OAAOG,IAAI,IAAI;YAG7C,MAAM,EAAEH,QAAQI,eAAe,EAAE,GAAG,MAAMxE,UAAU;YACpD,MAAMyE,sBAAsBH,SAASE,gBAAgBD,IAAI,IAAI,MAAM;YAGnE,MAAMG,YAAYL,eAAe;YAGjC,IAAIM,OAAsB;YAC1B,IAAI;gBACF,MAAM,EAAEP,QAAQQ,OAAO,EAAE,GAAG,MAAM5E,UAAU;gBAC5C,IAAIsE,SAASM,QAAQL,IAAI,IAAI,QAAQ,GAAG;oBAEtCI,OAAO;gBACT;YACF,EAAE,OAAM,CAER;YAEA,OAAO;gBACLE,SAASH;gBACTL;gBACAI;gBACAE;gBACAG,aAAaT,eAAe,IAAIU,KAAKC,GAAG,CAAC,GAAGX,eAAe,KAAK;YAClE;QACF,EAAE,OAAOxD,OAAO;YAEd,OAAO;gBACLgE,SAAS;gBACTR,cAAc;gBACdI,qBAAqB;gBACrBE,MAAM;gBACNG,aAAa;YACf;QACF;IACF;AACF"}