claude-flow 2.7.0-alpha.1 → 2.7.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (621) 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-memory-patterns/SKILL.md +166 -0
  4. package/.claude/skills/agentdb-vector-search/SKILL.md +126 -0
  5. package/.claude/skills/flow-nexus-neural/SKILL.md +738 -0
  6. package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -0
  7. package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -0
  8. package/.claude/skills/github-code-review/SKILL.md +1140 -0
  9. package/.claude/skills/github-multi-repo/SKILL.md +874 -0
  10. package/.claude/skills/github-project-management/SKILL.md +1277 -0
  11. package/.claude/skills/github-release-management/SKILL.md +1081 -0
  12. package/.claude/skills/github-workflow-automation/SKILL.md +1065 -0
  13. package/.claude/skills/hive-mind-advanced/SKILL.md +712 -0
  14. package/.claude/skills/hooks-automation/SKILL.md +1201 -0
  15. package/.claude/skills/pair-programming/SKILL.md +1202 -0
  16. package/.claude/skills/performance-analysis/SKILL.md +563 -0
  17. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
  18. package/.claude/skills/skill-builder/SKILL.md +910 -0
  19. package/.claude/skills/sparc-methodology/SKILL.md +1115 -0
  20. package/.claude/skills/stream-chain/SKILL.md +563 -0
  21. package/.claude/skills/swarm-advanced/SKILL.md +973 -0
  22. package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
  23. package/.claude/skills/verification-quality/SKILL.md +649 -0
  24. package/.claude/test-reasoningbank-hooks.sh +99 -0
  25. package/CHANGELOG.md +304 -0
  26. package/README.md +231 -221
  27. package/bin/claude-flow +8 -8
  28. package/dist/src/cli/help-formatter.js.map +1 -1
  29. package/dist/src/cli/simple-cli.js +172 -182
  30. package/dist/src/cli/simple-cli.js.map +1 -1
  31. package/dist/src/cli/simple-commands/config.js +257 -115
  32. package/dist/src/cli/simple-commands/config.js.map +1 -1
  33. package/dist/src/cli/simple-commands/init/index.js +45 -0
  34. package/dist/src/cli/simple-commands/init/index.js.map +1 -1
  35. package/dist/src/cli/simple-commands/memory.js +64 -19
  36. package/dist/src/cli/simple-commands/memory.js.map +1 -1
  37. package/dist/src/cli/simple-commands/performance-metrics.js +231 -1
  38. package/dist/src/cli/simple-commands/performance-metrics.js.map +1 -1
  39. package/dist/src/cli/validation-helper.js.map +1 -1
  40. package/dist/src/core/version.js +1 -1
  41. package/dist/src/reasoningbank/reasoningbank-adapter.js +260 -121
  42. package/dist/src/reasoningbank/reasoningbank-adapter.js.map +1 -1
  43. package/dist/src/utils/key-redactor.js.map +1 -1
  44. package/dist/src/utils/metrics-reader.js +29 -41
  45. package/dist/src/utils/metrics-reader.js.map +1 -1
  46. package/docker-test/.claude-flow/metrics/agent-metrics.json +1 -0
  47. package/docker-test/.claude-flow/metrics/performance.json +87 -0
  48. package/docker-test/.claude-flow/metrics/task-metrics.json +10 -0
  49. package/docker-test/Dockerfile.reasoningbank-test +21 -0
  50. package/docker-test/reasoningbank-validation.mjs +201 -0
  51. package/docs/.claude-flow/metrics/agent-metrics.json +1 -0
  52. package/docs/.claude-flow/metrics/performance.json +9 -0
  53. package/docs/.claude-flow/metrics/task-metrics.json +10 -0
  54. package/docs/CLI-MEMORY-COMMANDS-WORKING.md +150 -0
  55. package/docs/COMMANDS_TO_SKILLS_MIGRATION.md +382 -0
  56. package/docs/FINAL_INIT_STRUCTURE.md +320 -0
  57. package/docs/INDEX.md +36 -5
  58. package/docs/PERFORMANCE-JSON-IMPROVEMENTS.md +277 -0
  59. package/docs/PERFORMANCE-METRICS-GUIDE.md +259 -0
  60. package/docs/RELEASE-NOTES-v2.7.0-alpha.10.md +309 -0
  61. package/docs/RELEASE-NOTES-v2.7.0-alpha.9.md +208 -0
  62. package/docs/integrations/README.md +61 -0
  63. package/docs/{AGENTIC_FLOW_SECURITY_TEST_REPORT.md → integrations/agentic-flow/AGENTIC_FLOW_SECURITY_TEST_REPORT.md} +7 -7
  64. package/docs/integrations/reasoningbank/MIGRATION-v1.5.13.md +189 -0
  65. package/docs/integrations/reasoningbank/REASONINGBANK-STATUS.md +219 -0
  66. package/docs/reasoningbank/CLAUDE-CODE-INTEGRATION.md +563 -0
  67. package/docs/reasoningbank/EXAMPLES.md +611 -0
  68. package/docs/reasoningbank/README.md +1139 -0
  69. package/docs/reasoningbank/agentic-flow-integration.md +800 -0
  70. package/docs/reasoningbank/architecture.md +680 -0
  71. package/docs/reasoningbank/google-research.md +1017 -0
  72. package/docs/reasoningbank/models/.claude-flow/metrics/agent-metrics.json +1 -0
  73. package/docs/reasoningbank/models/.claude-flow/metrics/performance.json +87 -0
  74. package/docs/reasoningbank/models/.claude-flow/metrics/task-metrics.json +10 -0
  75. package/docs/reasoningbank/models/HOW-TO-TRAIN.md +537 -0
  76. package/docs/reasoningbank/models/HOW-TO-USE.md +655 -0
  77. package/docs/reasoningbank/models/INDEX.md +276 -0
  78. package/docs/reasoningbank/models/README.md +345 -0
  79. package/docs/reasoningbank/models/_docs/COMPATIBILITY.md +448 -0
  80. package/docs/reasoningbank/models/_docs/COMPLETION-SUMMARY.md +478 -0
  81. package/docs/reasoningbank/models/_docs/README.md +80 -0
  82. package/docs/reasoningbank/models/_docs/SCHEMA-UPDATE-SUMMARY.md +376 -0
  83. package/docs/reasoningbank/models/_docs/VERIFICATION-COMPLETE.md +370 -0
  84. package/docs/reasoningbank/models/_scripts/README.md +270 -0
  85. package/docs/reasoningbank/models/_scripts/benchmark-all.cjs +407 -0
  86. package/docs/reasoningbank/models/_scripts/fix-schema-compatibility.cjs +300 -0
  87. package/docs/reasoningbank/models/_scripts/schema-validator.cjs +360 -0
  88. package/docs/reasoningbank/models/_scripts/training-coordinator.cjs +85 -0
  89. package/docs/reasoningbank/models/_scripts/validation-suite.cjs +239 -0
  90. package/docs/reasoningbank/models/benchmark-output.log +41 -0
  91. package/docs/reasoningbank/models/code-reasoning/.claude-flow/metrics/agent-metrics.json +1 -0
  92. package/docs/reasoningbank/models/code-reasoning/.claude-flow/metrics/performance.json +87 -0
  93. package/docs/reasoningbank/models/code-reasoning/.claude-flow/metrics/task-metrics.json +18 -0
  94. package/docs/reasoningbank/models/code-reasoning/.swarm/SCHEMA-FIX-REPORT.md +69 -0
  95. package/docs/reasoningbank/models/code-reasoning/.swarm/memory.db +0 -0
  96. package/docs/reasoningbank/models/code-reasoning/.swarm/memory.db.backup +0 -0
  97. package/docs/reasoningbank/models/code-reasoning/README.md +451 -0
  98. package/docs/reasoningbank/models/code-reasoning/TRAINING-SUMMARY.md +416 -0
  99. package/docs/reasoningbank/models/code-reasoning/train-code.js +2059 -0
  100. package/docs/reasoningbank/models/code-reasoning/training.log +18 -0
  101. package/docs/reasoningbank/models/code-reasoning/validation-report.md +349 -0
  102. package/docs/reasoningbank/models/domain-expert/.claude-flow/metrics/agent-metrics.json +1 -0
  103. package/docs/reasoningbank/models/domain-expert/.claude-flow/metrics/performance.json +87 -0
  104. package/docs/reasoningbank/models/domain-expert/.claude-flow/metrics/task-metrics.json +18 -0
  105. package/docs/reasoningbank/models/domain-expert/COMPLETION-REPORT.md +451 -0
  106. package/docs/reasoningbank/models/domain-expert/INDEX.md +182 -0
  107. package/docs/reasoningbank/models/domain-expert/README.md +215 -0
  108. package/docs/reasoningbank/models/domain-expert/SCHEMA-FIX-REPORT.md +65 -0
  109. package/docs/reasoningbank/models/domain-expert/SUMMARY.md +286 -0
  110. package/docs/reasoningbank/models/domain-expert/USAGE.md +394 -0
  111. package/docs/reasoningbank/models/domain-expert/demo-queries.sh +42 -0
  112. package/docs/reasoningbank/models/domain-expert/memory.db +0 -0
  113. package/docs/reasoningbank/models/domain-expert/train-domain.js +1324 -0
  114. package/docs/reasoningbank/models/domain-expert/validate.js +218 -0
  115. package/docs/reasoningbank/models/domain-expert/validation-report.md +89 -0
  116. package/docs/reasoningbank/models/google-research/README.md +455 -0
  117. package/docs/reasoningbank/models/google-research/SCHEMA-FIX-REPORT.md +65 -0
  118. package/docs/reasoningbank/models/google-research/memory.db +0 -0
  119. package/docs/reasoningbank/models/google-research/memory.db.backup +0 -0
  120. package/docs/reasoningbank/models/google-research/train-google.js +697 -0
  121. package/docs/reasoningbank/models/google-research/validation-report.md +99 -0
  122. package/docs/reasoningbank/models/google-research/validation-suite.js +323 -0
  123. package/docs/reasoningbank/models/problem-solving/.claude-flow/metrics/agent-metrics.json +1 -0
  124. package/docs/reasoningbank/models/problem-solving/.claude-flow/metrics/performance.json +87 -0
  125. package/docs/reasoningbank/models/problem-solving/.claude-flow/metrics/task-metrics.json +10 -0
  126. package/docs/reasoningbank/models/problem-solving/.swarm/memory.db +0 -0
  127. package/docs/reasoningbank/models/problem-solving/README.md +629 -0
  128. package/docs/reasoningbank/models/problem-solving/SCHEMA-FIX-REPORT.md +66 -0
  129. package/docs/reasoningbank/models/problem-solving/TRAINING_SUMMARY.md +524 -0
  130. package/docs/reasoningbank/models/problem-solving/memory.db +0 -0
  131. package/docs/reasoningbank/models/problem-solving/memory.db.backup +0 -0
  132. package/docs/reasoningbank/models/problem-solving/train-problem.js +1319 -0
  133. package/docs/reasoningbank/models/problem-solving/validation-report.md +300 -0
  134. package/docs/reasoningbank/models/safla/.claude-flow/metrics/agent-metrics.json +1 -0
  135. package/docs/reasoningbank/models/safla/.claude-flow/metrics/performance.json +87 -0
  136. package/docs/reasoningbank/models/safla/.claude-flow/metrics/task-metrics.json +10 -0
  137. package/docs/reasoningbank/models/safla/CHEATSHEET.md +277 -0
  138. package/docs/reasoningbank/models/safla/COMPLETION_REPORT.txt +108 -0
  139. package/docs/reasoningbank/models/safla/MANIFEST.txt +104 -0
  140. package/docs/reasoningbank/models/safla/QUICKSTART.md +349 -0
  141. package/docs/reasoningbank/models/safla/README.md +457 -0
  142. package/docs/reasoningbank/models/safla/SCHEMA-FIX-REPORT.md +68 -0
  143. package/docs/reasoningbank/models/safla/TRAINING_SUMMARY.md +383 -0
  144. package/docs/reasoningbank/models/safla/memory/memory-store.json +11 -0
  145. package/docs/reasoningbank/models/safla/memory.db +0 -0
  146. package/docs/reasoningbank/models/safla/memory.db.backup +0 -0
  147. package/docs/reasoningbank/models/safla/node_modules/.package-lock.json +456 -0
  148. package/docs/reasoningbank/models/safla/node_modules/base64-js/LICENSE +21 -0
  149. package/docs/reasoningbank/models/safla/node_modules/base64-js/README.md +34 -0
  150. package/docs/reasoningbank/models/safla/node_modules/base64-js/base64js.min.js +1 -0
  151. package/docs/reasoningbank/models/safla/node_modules/base64-js/index.d.ts +3 -0
  152. package/docs/reasoningbank/models/safla/node_modules/base64-js/index.js +150 -0
  153. package/docs/reasoningbank/models/safla/node_modules/base64-js/package.json +47 -0
  154. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/LICENSE +21 -0
  155. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/README.md +99 -0
  156. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/binding.gyp +38 -0
  157. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  158. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/common.gypi +68 -0
  159. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/copy.js +31 -0
  160. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/defines.gypi +41 -0
  161. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/download.sh +122 -0
  162. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/patches/1208.patch +15 -0
  163. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +261480 -0
  164. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +13715 -0
  165. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +719 -0
  166. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/sqlite3.gyp +80 -0
  167. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/deps/test_extension.c +21 -0
  168. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/database.js +90 -0
  169. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/index.js +3 -0
  170. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
  171. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
  172. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/function.js +31 -0
  173. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
  174. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
  175. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
  176. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/table.js +189 -0
  177. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
  178. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
  179. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
  180. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/lib/util.js +12 -0
  181. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/package.json +54 -0
  182. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/src/better_sqlite3.cpp +2186 -0
  183. package/docs/reasoningbank/models/safla/node_modules/better-sqlite3/src/better_sqlite3.hpp +1036 -0
  184. package/docs/reasoningbank/models/safla/node_modules/bindings/LICENSE.md +22 -0
  185. package/docs/reasoningbank/models/safla/node_modules/bindings/README.md +98 -0
  186. package/docs/reasoningbank/models/safla/node_modules/bindings/bindings.js +221 -0
  187. package/docs/reasoningbank/models/safla/node_modules/bindings/package.json +28 -0
  188. package/docs/reasoningbank/models/safla/node_modules/bl/.travis.yml +17 -0
  189. package/docs/reasoningbank/models/safla/node_modules/bl/BufferList.js +396 -0
  190. package/docs/reasoningbank/models/safla/node_modules/bl/LICENSE.md +13 -0
  191. package/docs/reasoningbank/models/safla/node_modules/bl/README.md +247 -0
  192. package/docs/reasoningbank/models/safla/node_modules/bl/bl.js +84 -0
  193. package/docs/reasoningbank/models/safla/node_modules/bl/package.json +37 -0
  194. package/docs/reasoningbank/models/safla/node_modules/bl/test/convert.js +21 -0
  195. package/docs/reasoningbank/models/safla/node_modules/bl/test/indexOf.js +492 -0
  196. package/docs/reasoningbank/models/safla/node_modules/bl/test/isBufferList.js +32 -0
  197. package/docs/reasoningbank/models/safla/node_modules/bl/test/test.js +869 -0
  198. package/docs/reasoningbank/models/safla/node_modules/buffer/AUTHORS.md +70 -0
  199. package/docs/reasoningbank/models/safla/node_modules/buffer/LICENSE +21 -0
  200. package/docs/reasoningbank/models/safla/node_modules/buffer/README.md +410 -0
  201. package/docs/reasoningbank/models/safla/node_modules/buffer/index.d.ts +186 -0
  202. package/docs/reasoningbank/models/safla/node_modules/buffer/index.js +1817 -0
  203. package/docs/reasoningbank/models/safla/node_modules/buffer/package.json +96 -0
  204. package/docs/reasoningbank/models/safla/node_modules/chownr/LICENSE +15 -0
  205. package/docs/reasoningbank/models/safla/node_modules/chownr/README.md +3 -0
  206. package/docs/reasoningbank/models/safla/node_modules/chownr/chownr.js +167 -0
  207. package/docs/reasoningbank/models/safla/node_modules/chownr/package.json +29 -0
  208. package/docs/reasoningbank/models/safla/node_modules/decompress-response/index.d.ts +22 -0
  209. package/docs/reasoningbank/models/safla/node_modules/decompress-response/index.js +58 -0
  210. package/docs/reasoningbank/models/safla/node_modules/decompress-response/license +9 -0
  211. package/docs/reasoningbank/models/safla/node_modules/decompress-response/package.json +56 -0
  212. package/docs/reasoningbank/models/safla/node_modules/decompress-response/readme.md +48 -0
  213. package/docs/reasoningbank/models/safla/node_modules/deep-extend/CHANGELOG.md +46 -0
  214. package/docs/reasoningbank/models/safla/node_modules/deep-extend/LICENSE +20 -0
  215. package/docs/reasoningbank/models/safla/node_modules/deep-extend/README.md +91 -0
  216. package/docs/reasoningbank/models/safla/node_modules/deep-extend/index.js +1 -0
  217. package/docs/reasoningbank/models/safla/node_modules/deep-extend/lib/deep-extend.js +150 -0
  218. package/docs/reasoningbank/models/safla/node_modules/deep-extend/package.json +62 -0
  219. package/docs/reasoningbank/models/safla/node_modules/detect-libc/LICENSE +201 -0
  220. package/docs/reasoningbank/models/safla/node_modules/detect-libc/README.md +163 -0
  221. package/docs/reasoningbank/models/safla/node_modules/detect-libc/index.d.ts +14 -0
  222. package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/detect-libc.js +313 -0
  223. package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/elf.js +39 -0
  224. package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/filesystem.js +51 -0
  225. package/docs/reasoningbank/models/safla/node_modules/detect-libc/lib/process.js +24 -0
  226. package/docs/reasoningbank/models/safla/node_modules/detect-libc/package.json +44 -0
  227. package/docs/reasoningbank/models/safla/node_modules/end-of-stream/LICENSE +21 -0
  228. package/docs/reasoningbank/models/safla/node_modules/end-of-stream/README.md +54 -0
  229. package/docs/reasoningbank/models/safla/node_modules/end-of-stream/index.js +96 -0
  230. package/docs/reasoningbank/models/safla/node_modules/end-of-stream/package.json +37 -0
  231. package/docs/reasoningbank/models/safla/node_modules/expand-template/.travis.yml +6 -0
  232. package/docs/reasoningbank/models/safla/node_modules/expand-template/LICENSE +21 -0
  233. package/docs/reasoningbank/models/safla/node_modules/expand-template/README.md +43 -0
  234. package/docs/reasoningbank/models/safla/node_modules/expand-template/index.js +26 -0
  235. package/docs/reasoningbank/models/safla/node_modules/expand-template/package.json +29 -0
  236. package/docs/reasoningbank/models/safla/node_modules/expand-template/test.js +67 -0
  237. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/.travis.yml +30 -0
  238. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/History.md +21 -0
  239. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/LICENSE +20 -0
  240. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/README.md +74 -0
  241. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/index.d.ts +2 -0
  242. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/index.js +66 -0
  243. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/package.json +32 -0
  244. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/test/test.js +24 -0
  245. package/docs/reasoningbank/models/safla/node_modules/file-uri-to-path/test/tests.json +13 -0
  246. package/docs/reasoningbank/models/safla/node_modules/fs-constants/LICENSE +21 -0
  247. package/docs/reasoningbank/models/safla/node_modules/fs-constants/README.md +26 -0
  248. package/docs/reasoningbank/models/safla/node_modules/fs-constants/browser.js +1 -0
  249. package/docs/reasoningbank/models/safla/node_modules/fs-constants/index.js +1 -0
  250. package/docs/reasoningbank/models/safla/node_modules/fs-constants/package.json +19 -0
  251. package/docs/reasoningbank/models/safla/node_modules/github-from-package/.travis.yml +4 -0
  252. package/docs/reasoningbank/models/safla/node_modules/github-from-package/LICENSE +18 -0
  253. package/docs/reasoningbank/models/safla/node_modules/github-from-package/example/package.json +8 -0
  254. package/docs/reasoningbank/models/safla/node_modules/github-from-package/example/url.js +3 -0
  255. package/docs/reasoningbank/models/safla/node_modules/github-from-package/index.js +17 -0
  256. package/docs/reasoningbank/models/safla/node_modules/github-from-package/package.json +30 -0
  257. package/docs/reasoningbank/models/safla/node_modules/github-from-package/readme.markdown +53 -0
  258. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/a.json +8 -0
  259. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/b.json +5 -0
  260. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/c.json +5 -0
  261. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/d.json +7 -0
  262. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/e.json +5 -0
  263. package/docs/reasoningbank/models/safla/node_modules/github-from-package/test/url.js +19 -0
  264. package/docs/reasoningbank/models/safla/node_modules/ieee754/LICENSE +11 -0
  265. package/docs/reasoningbank/models/safla/node_modules/ieee754/README.md +51 -0
  266. package/docs/reasoningbank/models/safla/node_modules/ieee754/index.d.ts +10 -0
  267. package/docs/reasoningbank/models/safla/node_modules/ieee754/index.js +85 -0
  268. package/docs/reasoningbank/models/safla/node_modules/ieee754/package.json +52 -0
  269. package/docs/reasoningbank/models/safla/node_modules/inherits/LICENSE +16 -0
  270. package/docs/reasoningbank/models/safla/node_modules/inherits/README.md +42 -0
  271. package/docs/reasoningbank/models/safla/node_modules/inherits/inherits.js +9 -0
  272. package/docs/reasoningbank/models/safla/node_modules/inherits/inherits_browser.js +27 -0
  273. package/docs/reasoningbank/models/safla/node_modules/inherits/package.json +29 -0
  274. package/docs/reasoningbank/models/safla/node_modules/ini/LICENSE +15 -0
  275. package/docs/reasoningbank/models/safla/node_modules/ini/README.md +102 -0
  276. package/docs/reasoningbank/models/safla/node_modules/ini/ini.js +206 -0
  277. package/docs/reasoningbank/models/safla/node_modules/ini/package.json +33 -0
  278. package/docs/reasoningbank/models/safla/node_modules/mimic-response/index.d.ts +17 -0
  279. package/docs/reasoningbank/models/safla/node_modules/mimic-response/index.js +77 -0
  280. package/docs/reasoningbank/models/safla/node_modules/mimic-response/license +9 -0
  281. package/docs/reasoningbank/models/safla/node_modules/mimic-response/package.json +42 -0
  282. package/docs/reasoningbank/models/safla/node_modules/mimic-response/readme.md +78 -0
  283. package/docs/reasoningbank/models/safla/node_modules/minimist/.eslintrc +29 -0
  284. package/docs/reasoningbank/models/safla/node_modules/minimist/.github/FUNDING.yml +12 -0
  285. package/docs/reasoningbank/models/safla/node_modules/minimist/.nycrc +14 -0
  286. package/docs/reasoningbank/models/safla/node_modules/minimist/CHANGELOG.md +298 -0
  287. package/docs/reasoningbank/models/safla/node_modules/minimist/LICENSE +18 -0
  288. package/docs/reasoningbank/models/safla/node_modules/minimist/README.md +121 -0
  289. package/docs/reasoningbank/models/safla/node_modules/minimist/example/parse.js +4 -0
  290. package/docs/reasoningbank/models/safla/node_modules/minimist/index.js +263 -0
  291. package/docs/reasoningbank/models/safla/node_modules/minimist/package.json +75 -0
  292. package/docs/reasoningbank/models/safla/node_modules/minimist/test/all_bool.js +34 -0
  293. package/docs/reasoningbank/models/safla/node_modules/minimist/test/bool.js +177 -0
  294. package/docs/reasoningbank/models/safla/node_modules/minimist/test/dash.js +43 -0
  295. package/docs/reasoningbank/models/safla/node_modules/minimist/test/default_bool.js +37 -0
  296. package/docs/reasoningbank/models/safla/node_modules/minimist/test/dotted.js +24 -0
  297. package/docs/reasoningbank/models/safla/node_modules/minimist/test/kv_short.js +32 -0
  298. package/docs/reasoningbank/models/safla/node_modules/minimist/test/long.js +33 -0
  299. package/docs/reasoningbank/models/safla/node_modules/minimist/test/num.js +38 -0
  300. package/docs/reasoningbank/models/safla/node_modules/minimist/test/parse.js +209 -0
  301. package/docs/reasoningbank/models/safla/node_modules/minimist/test/parse_modified.js +11 -0
  302. package/docs/reasoningbank/models/safla/node_modules/minimist/test/proto.js +64 -0
  303. package/docs/reasoningbank/models/safla/node_modules/minimist/test/short.js +69 -0
  304. package/docs/reasoningbank/models/safla/node_modules/minimist/test/stop_early.js +17 -0
  305. package/docs/reasoningbank/models/safla/node_modules/minimist/test/unknown.js +104 -0
  306. package/docs/reasoningbank/models/safla/node_modules/minimist/test/whitespace.js +10 -0
  307. package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/LICENSE +21 -0
  308. package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/README.md +18 -0
  309. package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/index.js +98 -0
  310. package/docs/reasoningbank/models/safla/node_modules/mkdirp-classic/package.json +18 -0
  311. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +31 -0
  312. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/LICENSE +21 -0
  313. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/README.md +52 -0
  314. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/index.js +214 -0
  315. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/index.md +0 -0
  316. package/docs/reasoningbank/models/safla/node_modules/napi-build-utils/package.json +42 -0
  317. package/docs/reasoningbank/models/safla/node_modules/node-abi/LICENSE +21 -0
  318. package/docs/reasoningbank/models/safla/node_modules/node-abi/README.md +54 -0
  319. package/docs/reasoningbank/models/safla/node_modules/node-abi/abi_registry.json +408 -0
  320. package/docs/reasoningbank/models/safla/node_modules/node-abi/index.js +179 -0
  321. package/docs/reasoningbank/models/safla/node_modules/node-abi/package.json +45 -0
  322. package/docs/reasoningbank/models/safla/node_modules/once/LICENSE +15 -0
  323. package/docs/reasoningbank/models/safla/node_modules/once/README.md +79 -0
  324. package/docs/reasoningbank/models/safla/node_modules/once/once.js +42 -0
  325. package/docs/reasoningbank/models/safla/node_modules/once/package.json +33 -0
  326. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/CHANGELOG.md +131 -0
  327. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/CONTRIBUTING.md +6 -0
  328. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/LICENSE +21 -0
  329. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/README.md +163 -0
  330. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/asset.js +44 -0
  331. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/bin.js +78 -0
  332. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/download.js +142 -0
  333. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/error.js +14 -0
  334. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/help.txt +16 -0
  335. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/index.js +1 -0
  336. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/log.js +33 -0
  337. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/package.json +67 -0
  338. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/proxy.js +35 -0
  339. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/rc.js +64 -0
  340. package/docs/reasoningbank/models/safla/node_modules/prebuild-install/util.js +143 -0
  341. package/docs/reasoningbank/models/safla/node_modules/pump/.github/FUNDING.yml +2 -0
  342. package/docs/reasoningbank/models/safla/node_modules/pump/.travis.yml +5 -0
  343. package/docs/reasoningbank/models/safla/node_modules/pump/LICENSE +21 -0
  344. package/docs/reasoningbank/models/safla/node_modules/pump/README.md +74 -0
  345. package/docs/reasoningbank/models/safla/node_modules/pump/SECURITY.md +5 -0
  346. package/docs/reasoningbank/models/safla/node_modules/pump/index.js +86 -0
  347. package/docs/reasoningbank/models/safla/node_modules/pump/package.json +24 -0
  348. package/docs/reasoningbank/models/safla/node_modules/pump/test-browser.js +66 -0
  349. package/docs/reasoningbank/models/safla/node_modules/pump/test-node.js +53 -0
  350. package/docs/reasoningbank/models/safla/node_modules/rc/LICENSE.APACHE2 +15 -0
  351. package/docs/reasoningbank/models/safla/node_modules/rc/LICENSE.BSD +26 -0
  352. package/docs/reasoningbank/models/safla/node_modules/rc/LICENSE.MIT +24 -0
  353. package/docs/reasoningbank/models/safla/node_modules/rc/README.md +227 -0
  354. package/docs/reasoningbank/models/safla/node_modules/rc/browser.js +7 -0
  355. package/docs/reasoningbank/models/safla/node_modules/rc/cli.js +4 -0
  356. package/docs/reasoningbank/models/safla/node_modules/rc/index.js +53 -0
  357. package/docs/reasoningbank/models/safla/node_modules/rc/lib/utils.js +104 -0
  358. package/docs/reasoningbank/models/safla/node_modules/rc/package.json +29 -0
  359. package/docs/reasoningbank/models/safla/node_modules/rc/test/ini.js +16 -0
  360. package/docs/reasoningbank/models/safla/node_modules/rc/test/nested-env-vars.js +50 -0
  361. package/docs/reasoningbank/models/safla/node_modules/rc/test/test.js +59 -0
  362. package/docs/reasoningbank/models/safla/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  363. package/docs/reasoningbank/models/safla/node_modules/readable-stream/GOVERNANCE.md +136 -0
  364. package/docs/reasoningbank/models/safla/node_modules/readable-stream/LICENSE +47 -0
  365. package/docs/reasoningbank/models/safla/node_modules/readable-stream/README.md +106 -0
  366. package/docs/reasoningbank/models/safla/node_modules/readable-stream/errors-browser.js +127 -0
  367. package/docs/reasoningbank/models/safla/node_modules/readable-stream/errors.js +116 -0
  368. package/docs/reasoningbank/models/safla/node_modules/readable-stream/experimentalWarning.js +17 -0
  369. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_duplex.js +126 -0
  370. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_passthrough.js +37 -0
  371. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_readable.js +1027 -0
  372. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_transform.js +190 -0
  373. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/_stream_writable.js +641 -0
  374. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/async_iterator.js +180 -0
  375. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/buffer_list.js +183 -0
  376. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/destroy.js +96 -0
  377. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +86 -0
  378. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -0
  379. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/from.js +52 -0
  380. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/pipeline.js +86 -0
  381. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/state.js +22 -0
  382. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  383. package/docs/reasoningbank/models/safla/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  384. package/docs/reasoningbank/models/safla/node_modules/readable-stream/package.json +68 -0
  385. package/docs/reasoningbank/models/safla/node_modules/readable-stream/readable-browser.js +9 -0
  386. package/docs/reasoningbank/models/safla/node_modules/readable-stream/readable.js +16 -0
  387. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/LICENSE +21 -0
  388. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/README.md +584 -0
  389. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/index.d.ts +187 -0
  390. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/index.js +65 -0
  391. package/docs/reasoningbank/models/safla/node_modules/safe-buffer/package.json +51 -0
  392. package/docs/reasoningbank/models/safla/node_modules/semver/LICENSE +15 -0
  393. package/docs/reasoningbank/models/safla/node_modules/semver/README.md +664 -0
  394. package/docs/reasoningbank/models/safla/node_modules/semver/bin/semver.js +191 -0
  395. package/docs/reasoningbank/models/safla/node_modules/semver/classes/comparator.js +143 -0
  396. package/docs/reasoningbank/models/safla/node_modules/semver/classes/index.js +7 -0
  397. package/docs/reasoningbank/models/safla/node_modules/semver/classes/range.js +557 -0
  398. package/docs/reasoningbank/models/safla/node_modules/semver/classes/semver.js +333 -0
  399. package/docs/reasoningbank/models/safla/node_modules/semver/functions/clean.js +8 -0
  400. package/docs/reasoningbank/models/safla/node_modules/semver/functions/cmp.js +54 -0
  401. package/docs/reasoningbank/models/safla/node_modules/semver/functions/coerce.js +62 -0
  402. package/docs/reasoningbank/models/safla/node_modules/semver/functions/compare-build.js +9 -0
  403. package/docs/reasoningbank/models/safla/node_modules/semver/functions/compare-loose.js +5 -0
  404. package/docs/reasoningbank/models/safla/node_modules/semver/functions/compare.js +7 -0
  405. package/docs/reasoningbank/models/safla/node_modules/semver/functions/diff.js +60 -0
  406. package/docs/reasoningbank/models/safla/node_modules/semver/functions/eq.js +5 -0
  407. package/docs/reasoningbank/models/safla/node_modules/semver/functions/gt.js +5 -0
  408. package/docs/reasoningbank/models/safla/node_modules/semver/functions/gte.js +5 -0
  409. package/docs/reasoningbank/models/safla/node_modules/semver/functions/inc.js +21 -0
  410. package/docs/reasoningbank/models/safla/node_modules/semver/functions/lt.js +5 -0
  411. package/docs/reasoningbank/models/safla/node_modules/semver/functions/lte.js +5 -0
  412. package/docs/reasoningbank/models/safla/node_modules/semver/functions/major.js +5 -0
  413. package/docs/reasoningbank/models/safla/node_modules/semver/functions/minor.js +5 -0
  414. package/docs/reasoningbank/models/safla/node_modules/semver/functions/neq.js +5 -0
  415. package/docs/reasoningbank/models/safla/node_modules/semver/functions/parse.js +18 -0
  416. package/docs/reasoningbank/models/safla/node_modules/semver/functions/patch.js +5 -0
  417. package/docs/reasoningbank/models/safla/node_modules/semver/functions/prerelease.js +8 -0
  418. package/docs/reasoningbank/models/safla/node_modules/semver/functions/rcompare.js +5 -0
  419. package/docs/reasoningbank/models/safla/node_modules/semver/functions/rsort.js +5 -0
  420. package/docs/reasoningbank/models/safla/node_modules/semver/functions/satisfies.js +12 -0
  421. package/docs/reasoningbank/models/safla/node_modules/semver/functions/sort.js +5 -0
  422. package/docs/reasoningbank/models/safla/node_modules/semver/functions/valid.js +8 -0
  423. package/docs/reasoningbank/models/safla/node_modules/semver/index.js +91 -0
  424. package/docs/reasoningbank/models/safla/node_modules/semver/internal/constants.js +37 -0
  425. package/docs/reasoningbank/models/safla/node_modules/semver/internal/debug.js +11 -0
  426. package/docs/reasoningbank/models/safla/node_modules/semver/internal/identifiers.js +29 -0
  427. package/docs/reasoningbank/models/safla/node_modules/semver/internal/lrucache.js +42 -0
  428. package/docs/reasoningbank/models/safla/node_modules/semver/internal/parse-options.js +17 -0
  429. package/docs/reasoningbank/models/safla/node_modules/semver/internal/re.js +223 -0
  430. package/docs/reasoningbank/models/safla/node_modules/semver/package.json +78 -0
  431. package/docs/reasoningbank/models/safla/node_modules/semver/preload.js +4 -0
  432. package/docs/reasoningbank/models/safla/node_modules/semver/range.bnf +16 -0
  433. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/gtr.js +6 -0
  434. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/intersects.js +9 -0
  435. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/ltr.js +6 -0
  436. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/max-satisfying.js +27 -0
  437. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/min-satisfying.js +26 -0
  438. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/min-version.js +63 -0
  439. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/outside.js +82 -0
  440. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/simplify.js +49 -0
  441. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/subset.js +249 -0
  442. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/to-comparators.js +10 -0
  443. package/docs/reasoningbank/models/safla/node_modules/semver/ranges/valid.js +13 -0
  444. package/docs/reasoningbank/models/safla/node_modules/simple-concat/.travis.yml +3 -0
  445. package/docs/reasoningbank/models/safla/node_modules/simple-concat/LICENSE +20 -0
  446. package/docs/reasoningbank/models/safla/node_modules/simple-concat/README.md +44 -0
  447. package/docs/reasoningbank/models/safla/node_modules/simple-concat/index.js +15 -0
  448. package/docs/reasoningbank/models/safla/node_modules/simple-concat/package.json +47 -0
  449. package/docs/reasoningbank/models/safla/node_modules/simple-concat/test/basic.js +41 -0
  450. package/docs/reasoningbank/models/safla/node_modules/simple-get/.github/dependabot.yml +15 -0
  451. package/docs/reasoningbank/models/safla/node_modules/simple-get/.github/workflows/ci.yml +23 -0
  452. package/docs/reasoningbank/models/safla/node_modules/simple-get/LICENSE +20 -0
  453. package/docs/reasoningbank/models/safla/node_modules/simple-get/README.md +333 -0
  454. package/docs/reasoningbank/models/safla/node_modules/simple-get/index.js +108 -0
  455. package/docs/reasoningbank/models/safla/node_modules/simple-get/package.json +67 -0
  456. package/docs/reasoningbank/models/safla/node_modules/string_decoder/LICENSE +48 -0
  457. package/docs/reasoningbank/models/safla/node_modules/string_decoder/README.md +47 -0
  458. package/docs/reasoningbank/models/safla/node_modules/string_decoder/lib/string_decoder.js +296 -0
  459. package/docs/reasoningbank/models/safla/node_modules/string_decoder/package.json +34 -0
  460. package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/index.js +70 -0
  461. package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/license +21 -0
  462. package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/package.json +42 -0
  463. package/docs/reasoningbank/models/safla/node_modules/strip-json-comments/readme.md +64 -0
  464. package/docs/reasoningbank/models/safla/node_modules/tar-fs/.travis.yml +6 -0
  465. package/docs/reasoningbank/models/safla/node_modules/tar-fs/LICENSE +21 -0
  466. package/docs/reasoningbank/models/safla/node_modules/tar-fs/README.md +165 -0
  467. package/docs/reasoningbank/models/safla/node_modules/tar-fs/index.js +363 -0
  468. package/docs/reasoningbank/models/safla/node_modules/tar-fs/package.json +41 -0
  469. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -0
  470. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -0
  471. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  472. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  473. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  474. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  475. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  476. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  477. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/e/file +0 -0
  478. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  479. package/docs/reasoningbank/models/safla/node_modules/tar-fs/test/index.js +346 -0
  480. package/docs/reasoningbank/models/safla/node_modules/tar-stream/LICENSE +21 -0
  481. package/docs/reasoningbank/models/safla/node_modules/tar-stream/README.md +168 -0
  482. package/docs/reasoningbank/models/safla/node_modules/tar-stream/extract.js +257 -0
  483. package/docs/reasoningbank/models/safla/node_modules/tar-stream/headers.js +295 -0
  484. package/docs/reasoningbank/models/safla/node_modules/tar-stream/index.js +2 -0
  485. package/docs/reasoningbank/models/safla/node_modules/tar-stream/pack.js +255 -0
  486. package/docs/reasoningbank/models/safla/node_modules/tar-stream/package.json +58 -0
  487. package/docs/reasoningbank/models/safla/node_modules/tar-stream/sandbox.js +11 -0
  488. package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/LICENSE +55 -0
  489. package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/README.md +4 -0
  490. package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/index.js +244 -0
  491. package/docs/reasoningbank/models/safla/node_modules/tunnel-agent/package.json +22 -0
  492. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/History.md +16 -0
  493. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/LICENSE +24 -0
  494. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/README.md +53 -0
  495. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/browser.js +67 -0
  496. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/node.js +6 -0
  497. package/docs/reasoningbank/models/safla/node_modules/util-deprecate/package.json +27 -0
  498. package/docs/reasoningbank/models/safla/node_modules/wrappy/LICENSE +15 -0
  499. package/docs/reasoningbank/models/safla/node_modules/wrappy/README.md +36 -0
  500. package/docs/reasoningbank/models/safla/node_modules/wrappy/package.json +29 -0
  501. package/docs/reasoningbank/models/safla/node_modules/wrappy/wrappy.js +33 -0
  502. package/docs/reasoningbank/models/safla/package-lock.json +463 -0
  503. package/docs/reasoningbank/models/safla/package.json +14 -0
  504. package/docs/reasoningbank/models/safla/train-safla.js +524 -0
  505. package/docs/reasoningbank/models/safla/training.log +64 -0
  506. package/docs/reasoningbank/models/safla/validate-safla.js +449 -0
  507. package/docs/reasoningbank/models/safla/validation-report.md +115 -0
  508. package/docs/reasoningbank/models/safla/validation-results.json +189 -0
  509. package/docs/reasoningbank/tutorial-advanced.md +869 -0
  510. package/docs/reasoningbank/tutorial-basic.md +626 -0
  511. package/docs/reports/README.md +49 -0
  512. package/docs/reports/REASONINGBANK_STATUS_UPDATE_v2_7_0_alpha_7.md +366 -0
  513. package/docs/reports/validation/DOCKER-VALIDATION-REPORT-v2.7.0-alpha.7.md +361 -0
  514. package/docs/reports/validation/DOCKER_SQL_FALLBACK_VALIDATION.md +398 -0
  515. package/docs/{MEMORY_REDACTION_TEST_REPORT.md → reports/validation/MEMORY_REDACTION_TEST_REPORT.md} +7 -7
  516. package/docs/reports/validation/PROCESS-EXIT-FIX-v2.7.0-alpha.9.md +154 -0
  517. package/docs/reports/validation/REASONINGBANK-v1.5.13-VALIDATION.md +235 -0
  518. package/docs/reports/validation/SQL_FALLBACK_VALIDATION_REPORT.md +405 -0
  519. package/docs/reports/validation/VALIDATION-SUMMARY.md +192 -0
  520. package/docs/setup/MCP-SETUP-GUIDE.md +154 -0
  521. package/docs/skills/skills-tutorial.md +2910 -0
  522. package/docs/technical/README.md +36 -0
  523. package/docs/technical/fixes/WASM-ESM-FIX-SUMMARY.md +114 -0
  524. package/package.json +7 -6
  525. package/src/cli/simple-commands/init/index.js +85 -0
  526. package/src/cli/simple-commands/init/skills-copier.js +197 -0
  527. package/src/cli/simple-commands/memory.js +89 -21
  528. package/src/cli/simple-commands/performance-metrics.js +268 -2
  529. package/src/reasoningbank/reasoningbank-adapter.js +360 -148
  530. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
  531. package/.claude/commands/analysis/bottleneck-detect.md +0 -162
  532. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  533. package/.claude/commands/analysis/performance-report.md +0 -25
  534. package/.claude/commands/flow-nexus/app-store.md +0 -124
  535. package/.claude/commands/flow-nexus/challenges.md +0 -120
  536. package/.claude/commands/flow-nexus/login-registration.md +0 -65
  537. package/.claude/commands/flow-nexus/neural-network.md +0 -134
  538. package/.claude/commands/flow-nexus/payments.md +0 -116
  539. package/.claude/commands/flow-nexus/sandbox.md +0 -83
  540. package/.claude/commands/flow-nexus/swarm.md +0 -87
  541. package/.claude/commands/flow-nexus/user-tools.md +0 -152
  542. package/.claude/commands/flow-nexus/workflow.md +0 -115
  543. package/.claude/commands/github/code-review-swarm.md +0 -514
  544. package/.claude/commands/github/github-modes.md +0 -147
  545. package/.claude/commands/github/issue-tracker.md +0 -292
  546. package/.claude/commands/github/multi-repo-swarm.md +0 -519
  547. package/.claude/commands/github/pr-manager.md +0 -170
  548. package/.claude/commands/github/project-board-sync.md +0 -471
  549. package/.claude/commands/github/release-manager.md +0 -338
  550. package/.claude/commands/github/release-swarm.md +0 -544
  551. package/.claude/commands/github/repo-architect.md +0 -367
  552. package/.claude/commands/github/swarm-issue.md +0 -482
  553. package/.claude/commands/github/swarm-pr.md +0 -285
  554. package/.claude/commands/github/sync-coordinator.md +0 -301
  555. package/.claude/commands/github/workflow-automation.md +0 -442
  556. package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
  557. package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
  558. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -8
  559. package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
  560. package/.claude/commands/hive-mind/hive-mind.md +0 -27
  561. package/.claude/commands/hooks/overview.md +0 -132
  562. package/.claude/commands/memory/usage.md +0 -46
  563. package/.claude/commands/pair/commands.md +0 -546
  564. package/.claude/commands/pair/config.md +0 -510
  565. package/.claude/commands/pair/examples.md +0 -512
  566. package/.claude/commands/pair/modes.md +0 -348
  567. package/.claude/commands/pair/session.md +0 -407
  568. package/.claude/commands/pair/start.md +0 -209
  569. package/.claude/commands/sparc/orchestrator.md +0 -132
  570. package/.claude/commands/sparc/sparc-modes.md +0 -174
  571. package/.claude/commands/stream-chain/pipeline.md +0 -121
  572. package/.claude/commands/stream-chain/run.md +0 -70
  573. package/.claude/commands/swarm/analysis.md +0 -95
  574. package/.claude/commands/swarm/development.md +0 -96
  575. package/.claude/commands/swarm/examples.md +0 -168
  576. package/.claude/commands/swarm/maintenance.md +0 -102
  577. package/.claude/commands/swarm/optimization.md +0 -117
  578. package/.claude/commands/swarm/research.md +0 -136
  579. package/.claude/commands/swarm/swarm-analysis.md +0 -8
  580. package/.claude/commands/swarm/swarm-spawn.md +0 -19
  581. package/.claude/commands/swarm/swarm-strategies.md +0 -8
  582. package/.claude/commands/swarm/testing.md +0 -131
  583. package/.claude/commands/truth/start.md +0 -143
  584. package/.claude/commands/verify/check.md +0 -50
  585. package/.claude/commands/verify/start.md +0 -128
  586. /package/docs/{AGENT-BOOSTER-INTEGRATION.md → integrations/agent-booster/AGENT-BOOSTER-INTEGRATION.md} +0 -0
  587. /package/docs/{AGENTIC-FLOW-INTEGRATION-GUIDE.md → integrations/agentic-flow/AGENTIC-FLOW-INTEGRATION-GUIDE.md} +0 -0
  588. /package/docs/{AGENTIC_FLOW_EXECUTION_FIX_REPORT.md → integrations/agentic-flow/AGENTIC_FLOW_EXECUTION_FIX_REPORT.md} +0 -0
  589. /package/docs/{AGENTIC_FLOW_INTEGRATION_STATUS.md → integrations/agentic-flow/AGENTIC_FLOW_INTEGRATION_STATUS.md} +0 -0
  590. /package/docs/{AGENTIC_FLOW_MVP_COMPLETE.md → integrations/agentic-flow/AGENTIC_FLOW_MVP_COMPLETE.md} +0 -0
  591. /package/docs/{epic-sdk-integration.md → integrations/epic-sdk/epic-sdk-integration.md} +0 -0
  592. /package/docs/{REASONING-AGENTS.md → integrations/reasoningbank/REASONING-AGENTS.md} +0 -0
  593. /package/docs/{REASONINGBANK-AGENT-CREATION-GUIDE.md → integrations/reasoningbank/REASONINGBANK-AGENT-CREATION-GUIDE.md} +0 -0
  594. /package/docs/{REASONINGBANK-ANALYSIS-COMPLETE.md → integrations/reasoningbank/REASONINGBANK-ANALYSIS-COMPLETE.md} +0 -0
  595. /package/docs/{REASONINGBANK-BENCHMARK-RESULTS.md → integrations/reasoningbank/REASONINGBANK-BENCHMARK-RESULTS.md} +0 -0
  596. /package/docs/{REASONINGBANK-BENCHMARK.md → integrations/reasoningbank/REASONINGBANK-BENCHMARK.md} +0 -0
  597. /package/docs/{REASONINGBANK-CLI-INTEGRATION.md → integrations/reasoningbank/REASONINGBANK-CLI-INTEGRATION.md} +0 -0
  598. /package/docs/{REASONINGBANK-CORE-INTEGRATION.md → integrations/reasoningbank/REASONINGBANK-CORE-INTEGRATION.md} +0 -0
  599. /package/docs/{REASONINGBANK-COST-OPTIMIZATION.md → integrations/reasoningbank/REASONINGBANK-COST-OPTIMIZATION.md} +0 -0
  600. /package/docs/{REASONINGBANK-DEMO.md → integrations/reasoningbank/REASONINGBANK-DEMO.md} +0 -0
  601. /package/docs/{REASONINGBANK-INTEGRATION-COMPLETE.md → integrations/reasoningbank/REASONINGBANK-INTEGRATION-COMPLETE.md} +0 -0
  602. /package/docs/{REASONINGBANK-INTEGRATION-STATUS.md → integrations/reasoningbank/REASONINGBANK-INTEGRATION-STATUS.md} +0 -0
  603. /package/docs/{REASONINGBANK-VALIDATION.md → integrations/reasoningbank/REASONINGBANK-VALIDATION.md} +0 -0
  604. /package/docs/{REASONINGBANK_ARCHITECTURE.md → integrations/reasoningbank/REASONINGBANK_ARCHITECTURE.md} +0 -0
  605. /package/docs/{REASONINGBANK_INTEGRATION_COMPLETE.md → integrations/reasoningbank/REASONINGBANK_INTEGRATION_COMPLETE.md} +0 -0
  606. /package/docs/{REASONINGBANK_INTEGRATION_PLAN.md → integrations/reasoningbank/REASONINGBANK_INTEGRATION_PLAN.md} +0 -0
  607. /package/{.claude/agents → docs}/reasoning/README.md +0 -0
  608. /package/{.claude/agents → docs}/reasoning/example-reasoning-agent-template.md +0 -0
  609. /package/docs/{DEEP_REVIEW_COMPREHENSIVE_REPORT.md → reports/analysis/DEEP_REVIEW_COMPREHENSIVE_REPORT.md} +0 -0
  610. /package/docs/{REGRESSION-ANALYSIS-REPORT.md → reports/analysis/REGRESSION-ANALYSIS-REPORT.md} +0 -0
  611. /package/docs/{COMMIT_SUMMARY.md → reports/releases/COMMIT_SUMMARY.md} +0 -0
  612. /package/docs/{INTEGRATION_COMPLETE.md → reports/releases/INTEGRATION_COMPLETE.md} +0 -0
  613. /package/docs/{PRE_RELEASE_FIXES_REPORT.md → reports/releases/PRE_RELEASE_FIXES_REPORT.md} +0 -0
  614. /package/docs/{RELEASE_v2.6.0-alpha.2.md → reports/releases/RELEASE_v2.6.0-alpha.2.md} +0 -0
  615. /package/docs/{COMMAND-VERIFICATION-REPORT.md → reports/validation/COMMAND-VERIFICATION-REPORT.md} +0 -0
  616. /package/docs/{DOCKER-VALIDATION-REPORT.md → reports/validation/DOCKER-VALIDATION-REPORT.md} +0 -0
  617. /package/docs/{FINAL_PRE_PUBLISH_VALIDATION.md → reports/validation/FINAL_PRE_PUBLISH_VALIDATION.md} +0 -0
  618. /package/docs/{FINAL_VALIDATION_REPORT.md → reports/validation/FINAL_VALIDATION_REPORT.md} +0 -0
  619. /package/docs/{ENV-SETUP-GUIDE.md → setup/ENV-SETUP-GUIDE.md} +0 -0
  620. /package/docs/{HOOKS-V2-MODIFICATION.md → technical/fixes/HOOKS-V2-MODIFICATION.md} +0 -0
  621. /package/docs/{PERFORMANCE-SYSTEMS-STATUS.md → technical/performance/PERFORMANCE-SYSTEMS-STATUS.md} +0 -0
@@ -1,144 +1,283 @@
1
- import { db, initialize, retrieveMemories, computeEmbedding, loadConfig } from 'agentic-flow/dist/reasoningbank/index.js';
1
+ import * as ReasoningBank from 'agentic-flow/reasoningbank';
2
2
  import { v4 as uuidv4 } from 'uuid';
3
+ let backendInitialized = false;
4
+ let initPromise = null;
5
+ const queryCache = new Map();
6
+ const CACHE_SIZE = 100;
7
+ const CACHE_TTL = 60000;
8
+ async function ensureInitialized() {
9
+ if (backendInitialized) {
10
+ return true;
11
+ }
12
+ if (initPromise) {
13
+ return initPromise;
14
+ }
15
+ initPromise = (async ()=>{
16
+ try {
17
+ await ReasoningBank.initialize();
18
+ backendInitialized = true;
19
+ console.log('[ReasoningBank] Node.js backend initialized successfully');
20
+ return true;
21
+ } catch (error) {
22
+ console.error('[ReasoningBank] Backend initialization failed:', error);
23
+ throw new Error(`Failed to initialize ReasoningBank: ${error.message}`);
24
+ }
25
+ })();
26
+ return initPromise;
27
+ }
3
28
  export async function initializeReasoningBank() {
4
- process.env.CLAUDE_FLOW_DB_PATH = '.swarm/memory.db';
5
- await initialize();
29
+ await ensureInitialized();
6
30
  return true;
7
31
  }
8
32
  export async function storeMemory(key, value, options = {}) {
9
- const memoryId = `mem_${uuidv4()}`;
10
- const memory = {
11
- id: memoryId,
12
- type: options.type || 'fact',
13
- pattern_data: JSON.stringify({
14
- key,
15
- value,
16
- namespace: options.namespace || 'default',
17
- agent: options.agent || 'memory-agent',
18
- domain: options.domain || 'general'
19
- }),
20
- confidence: options.confidence || 0.8,
21
- usage_count: 0,
22
- created_at: new Date().toISOString()
23
- };
24
- db.upsertMemory(memory);
33
+ await ensureInitialized();
25
34
  try {
26
- const config = loadConfig();
27
- const embeddingModel = config.embeddings.provider || 'claude';
28
- const embedding = await computeEmbedding(`${key}: ${value}`);
29
- const vectorArray = new Float32Array(embedding);
30
- db.upsertEmbedding({
31
- memory_id: memoryId,
32
- vector: vectorArray,
33
- model: embeddingModel,
34
- dims: vectorArray.length,
35
- created_at: new Date().toISOString()
36
- });
35
+ const memoryId = options.id || uuidv4();
36
+ const memory = {
37
+ id: memoryId,
38
+ type: 'reasoning_memory',
39
+ pattern_data: {
40
+ title: key,
41
+ content: value,
42
+ domain: options.namespace || 'default',
43
+ agent: options.agent || 'memory-agent',
44
+ task_type: options.type || 'fact',
45
+ original_key: key,
46
+ original_value: value,
47
+ namespace: options.namespace || 'default'
48
+ },
49
+ confidence: options.confidence || 0.8,
50
+ usage_count: 0
51
+ };
52
+ ReasoningBank.db.upsertMemory(memory);
53
+ try {
54
+ const embedding = await ReasoningBank.computeEmbedding(value);
55
+ ReasoningBank.db.upsertEmbedding({
56
+ id: memoryId,
57
+ model: 'text-embedding-3-small',
58
+ dims: embedding.length,
59
+ vector: embedding
60
+ });
61
+ } catch (embeddingError) {
62
+ console.warn('[ReasoningBank] Failed to generate embedding:', embeddingError.message);
63
+ }
64
+ queryCache.clear();
65
+ return memoryId;
37
66
  } catch (error) {
38
- console.warn('[ReasoningBank] Warning: Could not compute embedding:', error.message);
67
+ console.error('[ReasoningBank] storeMemory failed:', error);
68
+ throw new Error(`Failed to store memory: ${error.message}`);
39
69
  }
40
- return memoryId;
41
70
  }
42
71
  export async function queryMemories(searchQuery, options = {}) {
72
+ const cached = getCachedQuery(searchQuery, options);
73
+ if (cached) {
74
+ return cached;
75
+ }
76
+ await ensureInitialized();
77
+ const limit = options.limit || 10;
78
+ const namespace = options.namespace || options.domain || 'default';
43
79
  try {
44
- const memories = await retrieveMemories(searchQuery, {
45
- domain: options.domain || 'general',
46
- agent: options.agent || 'memory-agent',
47
- k: options.limit || 10
80
+ const results = await ReasoningBank.retrieveMemories(searchQuery, {
81
+ domain: namespace,
82
+ agent: options.agent || 'query-agent',
83
+ k: limit,
84
+ minConfidence: options.minConfidence || 0.3
48
85
  });
49
- return memories.map((mem)=>{
50
- try {
51
- const data = JSON.parse(mem.pattern_data);
52
- return {
53
- id: mem.id,
54
- key: data.key,
55
- value: data.value,
56
- namespace: data.namespace,
57
- confidence: mem.confidence,
58
- usage_count: mem.usage_count,
59
- created_at: mem.created_at,
60
- score: mem.score || 0
61
- };
62
- } catch {
63
- return null;
64
- }
65
- }).filter(Boolean);
86
+ const memories = results.map((memory)=>({
87
+ id: memory.id,
88
+ key: memory.title || 'unknown',
89
+ value: memory.content || memory.description || '',
90
+ namespace: namespace,
91
+ confidence: memory.components?.reliability || 0.8,
92
+ usage_count: memory.usage_count || 0,
93
+ created_at: memory.created_at || new Date().toISOString(),
94
+ score: memory.score || 0,
95
+ _pattern: memory
96
+ }));
97
+ if (memories.length === 0) {
98
+ console.warn('[ReasoningBank] Semantic search returned 0 results, trying database fallback');
99
+ const fallbackResults = ReasoningBank.db.fetchMemoryCandidates({
100
+ domain: namespace,
101
+ minConfidence: options.minConfidence || 0.3
102
+ });
103
+ const fallbackMemories = fallbackResults.slice(0, limit).map((memory)=>({
104
+ id: memory.id,
105
+ key: memory.pattern_data?.title || memory.pattern_data?.original_key || 'unknown',
106
+ value: memory.pattern_data?.content || memory.pattern_data?.original_value || '',
107
+ namespace: memory.pattern_data?.domain || memory.pattern_data?.namespace || 'default',
108
+ confidence: memory.confidence || 0.8,
109
+ usage_count: memory.usage_count || 0,
110
+ created_at: memory.created_at || new Date().toISOString()
111
+ }));
112
+ setCachedQuery(searchQuery, options, fallbackMemories);
113
+ return fallbackMemories;
114
+ }
115
+ setCachedQuery(searchQuery, options, memories);
116
+ return memories;
66
117
  } catch (error) {
67
- console.warn('[ReasoningBank] Semantic search failed, using simple query:', error.message);
68
- const dbInstance = db.getDb();
69
- const rows = dbInstance.prepare(`
70
- SELECT * FROM patterns
71
- WHERE pattern_data LIKE ?
72
- ORDER BY confidence DESC, usage_count DESC
73
- LIMIT ?
74
- `).all(`%${searchQuery}%`, options.limit || 10);
75
- return rows.map((row)=>{
76
- try {
77
- const data = JSON.parse(row.pattern_data);
78
- return {
79
- id: row.id,
80
- key: data.key,
81
- value: data.value,
82
- namespace: data.namespace,
83
- confidence: row.confidence,
84
- usage_count: row.usage_count,
85
- created_at: row.created_at
86
- };
87
- } catch {
88
- return null;
89
- }
90
- }).filter(Boolean);
118
+ console.warn('[ReasoningBank] Query failed, trying database fallback:', error.message);
119
+ try {
120
+ const fallbackResults = ReasoningBank.db.fetchMemoryCandidates({
121
+ domain: namespace,
122
+ minConfidence: options.minConfidence || 0.3
123
+ });
124
+ const fallbackMemories = fallbackResults.slice(0, limit).map((memory)=>({
125
+ id: memory.id,
126
+ key: memory.pattern_data?.title || 'unknown',
127
+ value: memory.pattern_data?.content || '',
128
+ namespace: memory.pattern_data?.domain || 'default',
129
+ confidence: memory.confidence || 0.8,
130
+ usage_count: memory.usage_count || 0,
131
+ created_at: memory.created_at || new Date().toISOString()
132
+ }));
133
+ setCachedQuery(searchQuery, options, fallbackMemories);
134
+ return fallbackMemories;
135
+ } catch (fallbackError) {
136
+ console.error('[ReasoningBank] All query methods failed:', fallbackError);
137
+ return [];
138
+ }
91
139
  }
92
140
  }
93
141
  export async function listMemories(options = {}) {
94
- const dbInstance = db.getDb();
142
+ await ensureInitialized();
95
143
  const limit = options.limit || 10;
96
- const sortBy = options.sort || 'created_at';
97
- const sortOrder = options.order || 'DESC';
98
- const rows = dbInstance.prepare(`
99
- SELECT * FROM patterns
100
- ORDER BY ${sortBy} ${sortOrder}
101
- LIMIT ?
102
- `).all(limit);
103
- return rows.map((row)=>{
104
- try {
105
- const data = JSON.parse(row.pattern_data);
106
- return {
107
- id: row.id,
108
- key: data.key,
109
- value: data.value,
110
- namespace: data.namespace,
111
- confidence: row.confidence,
112
- usage_count: row.usage_count,
113
- created_at: row.created_at
114
- };
115
- } catch {
116
- return null;
144
+ const namespace = options.namespace;
145
+ try {
146
+ let memories;
147
+ if (namespace && namespace !== 'default') {
148
+ const allMemories = ReasoningBank.db.getAllActiveMemories();
149
+ memories = allMemories.filter((m)=>m.pattern_data?.domain === namespace).slice(0, limit);
150
+ } else {
151
+ memories = ReasoningBank.db.getAllActiveMemories().slice(0, limit);
117
152
  }
118
- }).filter(Boolean);
153
+ return memories.map((memory)=>({
154
+ id: memory.id,
155
+ key: memory.pattern_data?.title || memory.pattern_data?.original_key || 'unknown',
156
+ value: memory.pattern_data?.content || memory.pattern_data?.original_value || '',
157
+ namespace: memory.pattern_data?.domain || memory.pattern_data?.namespace || 'default',
158
+ confidence: memory.confidence || 0.8,
159
+ usage_count: memory.usage_count || 0,
160
+ created_at: memory.created_at || new Date().toISOString()
161
+ }));
162
+ } catch (error) {
163
+ console.error('[ReasoningBank] listMemories failed:', error);
164
+ return [];
165
+ }
119
166
  }
120
167
  export async function getStatus() {
121
- const dbInstance = db.getDb();
122
- const stats = dbInstance.prepare(`
123
- SELECT
124
- COUNT(*) as total_memories,
125
- AVG(confidence) as avg_confidence,
126
- SUM(usage_count) as total_usage
127
- FROM patterns
128
- `).get();
129
- const embeddingCount = dbInstance.prepare(`
130
- SELECT COUNT(*) as count FROM pattern_embeddings
131
- `).get();
132
- const trajectoryCount = dbInstance.prepare(`
133
- SELECT COUNT(*) as count FROM task_trajectories
134
- `).get();
135
- return {
136
- total_memories: stats.total_memories || 0,
137
- avg_confidence: stats.avg_confidence || 0,
138
- total_usage: stats.total_usage || 0,
139
- total_embeddings: embeddingCount.count || 0,
140
- total_trajectories: trajectoryCount.count || 0
141
- };
168
+ await ensureInitialized();
169
+ try {
170
+ const db = ReasoningBank.db.getDb();
171
+ const patterns = db.prepare("SELECT COUNT(*) as count FROM patterns WHERE type = 'reasoning_memory'").get();
172
+ const embeddings = db.prepare("SELECT COUNT(*) as count FROM pattern_embeddings").get();
173
+ const trajectories = db.prepare("SELECT COUNT(*) as count FROM task_trajectories").get();
174
+ const links = db.prepare("SELECT COUNT(*) as count FROM pattern_links").get();
175
+ const avgConf = db.prepare("SELECT AVG(confidence) as avg FROM patterns WHERE type = 'reasoning_memory'").get();
176
+ const domains = db.prepare("SELECT COUNT(DISTINCT json_extract(pattern_data, '$.domain')) as count FROM patterns WHERE type = 'reasoning_memory'").get();
177
+ return {
178
+ total_memories: patterns.count || 0,
179
+ total_categories: domains.count || 0,
180
+ storage_backend: 'SQLite (Node.js)',
181
+ database_path: process.env.CLAUDE_FLOW_DB_PATH || '.swarm/memory.db',
182
+ performance: 'SQLite with persistent storage',
183
+ avg_confidence: avgConf.avg || 0.8,
184
+ total_embeddings: embeddings.count || 0,
185
+ total_trajectories: trajectories.count || 0,
186
+ total_links: links.count || 0
187
+ };
188
+ } catch (error) {
189
+ console.error('[ReasoningBank] getStatus failed:', error);
190
+ return {
191
+ total_memories: 0,
192
+ error: error.message
193
+ };
194
+ }
195
+ }
196
+ export async function checkReasoningBankTables() {
197
+ try {
198
+ await ensureInitialized();
199
+ const db = ReasoningBank.db.getDb();
200
+ const tables = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE 'pattern%'").all();
201
+ const tableNames = tables.map((t)=>t.name);
202
+ const requiredTables = [
203
+ 'patterns',
204
+ 'pattern_embeddings',
205
+ 'pattern_links',
206
+ 'task_trajectories'
207
+ ];
208
+ const missingTables = requiredTables.filter((t)=>!tableNames.includes(t));
209
+ return {
210
+ exists: true,
211
+ existingTables: tableNames,
212
+ missingTables: missingTables,
213
+ requiredTables: requiredTables,
214
+ backend: 'SQLite (Node.js)',
215
+ note: missingTables.length > 0 ? 'Some tables are missing - run migrations' : 'All tables present'
216
+ };
217
+ } catch (error) {
218
+ return {
219
+ exists: false,
220
+ existingTables: [],
221
+ missingTables: [],
222
+ requiredTables: [],
223
+ error: error.message
224
+ };
225
+ }
226
+ }
227
+ export async function migrateReasoningBank() {
228
+ try {
229
+ await ReasoningBank.db.runMigrations();
230
+ return {
231
+ success: true,
232
+ message: 'Database migrations completed successfully',
233
+ migrated: true,
234
+ database_path: process.env.CLAUDE_FLOW_DB_PATH || '.swarm/memory.db'
235
+ };
236
+ } catch (error) {
237
+ return {
238
+ success: false,
239
+ message: `Migration failed: ${error.message}`,
240
+ error: error.message
241
+ };
242
+ }
243
+ }
244
+ function getCachedQuery(searchQuery, options) {
245
+ const cacheKey = JSON.stringify({
246
+ searchQuery,
247
+ options
248
+ });
249
+ const cached = queryCache.get(cacheKey);
250
+ if (cached && Date.now() - cached.timestamp < CACHE_TTL) {
251
+ return cached.results;
252
+ }
253
+ return null;
254
+ }
255
+ function setCachedQuery(searchQuery, options, results) {
256
+ const cacheKey = JSON.stringify({
257
+ searchQuery,
258
+ options
259
+ });
260
+ if (queryCache.size >= CACHE_SIZE) {
261
+ const firstKey = queryCache.keys().next().value;
262
+ queryCache.delete(firstKey);
263
+ }
264
+ queryCache.set(cacheKey, {
265
+ results,
266
+ timestamp: Date.now()
267
+ });
268
+ }
269
+ export function cleanup() {
270
+ try {
271
+ if (backendInitialized) {
272
+ ReasoningBank.clearEmbeddingCache();
273
+ ReasoningBank.db.closeDb();
274
+ backendInitialized = false;
275
+ initPromise = null;
276
+ console.log('[ReasoningBank] Database connection closed');
277
+ }
278
+ } catch (error) {
279
+ console.error('[ReasoningBank] Cleanup failed:', error.message);
280
+ }
142
281
  }
143
282
 
144
283
  //# sourceMappingURL=reasoningbank-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/reasoningbank/reasoningbank-adapter.js"],"sourcesContent":["/**\n * ReasoningBank Adapter for Claude-Flow\n *\n * Wraps agentic-flow's ReasoningBank SDK for use in claude-flow memory commands\n */\n\nimport { db, initialize, retrieveMemories, computeEmbedding, loadConfig } from 'agentic-flow/dist/reasoningbank/index.js';\nimport { v4 as uuidv4 } from 'uuid';\n\n/**\n * Initialize ReasoningBank database\n */\nexport async function initializeReasoningBank() {\n // Set database path\n process.env.CLAUDE_FLOW_DB_PATH = '.swarm/memory.db';\n\n await initialize();\n return true;\n}\n\n/**\n * Store a memory in ReasoningBank\n */\nexport async function storeMemory(key, value, options = {}) {\n const memoryId = `mem_${uuidv4()}`;\n\n const memory = {\n id: memoryId,\n type: options.type || 'fact',\n pattern_data: JSON.stringify({\n key,\n value,\n namespace: options.namespace || 'default',\n agent: options.agent || 'memory-agent',\n domain: options.domain || 'general',\n }),\n confidence: options.confidence || 0.8,\n usage_count: 0,\n created_at: new Date().toISOString(),\n };\n\n // Store memory\n db.upsertMemory(memory);\n\n // Compute and store embedding for semantic search\n try {\n const config = loadConfig();\n const embeddingModel = config.embeddings.provider || 'claude';\n\n const embedding = await computeEmbedding(`${key}: ${value}`);\n const vectorArray = new Float32Array(embedding);\n\n db.upsertEmbedding({\n memory_id: memoryId,\n vector: vectorArray,\n model: embeddingModel, // Dynamic model from config\n dims: vectorArray.length, // Required: embedding dimensions\n created_at: new Date().toISOString(),\n });\n } catch (error) {\n console.warn('[ReasoningBank] Warning: Could not compute embedding:', error.message);\n // Continue without embedding - memory is still stored\n }\n\n return memoryId;\n}\n\n/**\n * Query memories from ReasoningBank\n */\nexport async function queryMemories(searchQuery, options = {}) {\n try {\n // Use ReasoningBank's semantic retrieval\n const memories = await retrieveMemories(searchQuery, {\n domain: options.domain || 'general',\n agent: options.agent || 'memory-agent',\n k: options.limit || 10,\n });\n\n return memories.map(mem => {\n try {\n const data = JSON.parse(mem.pattern_data);\n return {\n id: mem.id,\n key: data.key,\n value: data.value,\n namespace: data.namespace,\n confidence: mem.confidence,\n usage_count: mem.usage_count,\n created_at: mem.created_at,\n score: mem.score || 0,\n };\n } catch {\n return null;\n }\n }).filter(Boolean);\n } catch (error) {\n // Fallback to simple query if semantic search fails\n console.warn('[ReasoningBank] Semantic search failed, using simple query:', error.message);\n\n const dbInstance = db.getDb();\n const rows = dbInstance.prepare(`\n SELECT * FROM patterns\n WHERE pattern_data LIKE ?\n ORDER BY confidence DESC, usage_count DESC\n LIMIT ?\n `).all(`%${searchQuery}%`, options.limit || 10);\n\n return rows.map(row => {\n try {\n const data = JSON.parse(row.pattern_data);\n return {\n id: row.id,\n key: data.key,\n value: data.value,\n namespace: data.namespace,\n confidence: row.confidence,\n usage_count: row.usage_count,\n created_at: row.created_at,\n };\n } catch {\n return null;\n }\n }).filter(Boolean);\n }\n}\n\n/**\n * List all memories\n */\nexport async function listMemories(options = {}) {\n const dbInstance = db.getDb();\n\n const limit = options.limit || 10;\n const sortBy = options.sort || 'created_at';\n const sortOrder = options.order || 'DESC';\n\n const rows = dbInstance.prepare(`\n SELECT * FROM patterns\n ORDER BY ${sortBy} ${sortOrder}\n LIMIT ?\n `).all(limit);\n\n return rows.map(row => {\n try {\n const data = JSON.parse(row.pattern_data);\n return {\n id: row.id,\n key: data.key,\n value: data.value,\n namespace: data.namespace,\n confidence: row.confidence,\n usage_count: row.usage_count,\n created_at: row.created_at,\n };\n } catch {\n return null;\n }\n }).filter(Boolean);\n}\n\n/**\n * Get ReasoningBank statistics\n */\nexport async function getStatus() {\n const dbInstance = db.getDb();\n\n const stats = dbInstance.prepare(`\n SELECT\n COUNT(*) as total_memories,\n AVG(confidence) as avg_confidence,\n SUM(usage_count) as total_usage\n FROM patterns\n `).get();\n\n const embeddingCount = dbInstance.prepare(`\n SELECT COUNT(*) as count FROM pattern_embeddings\n `).get();\n\n const trajectoryCount = dbInstance.prepare(`\n SELECT COUNT(*) as count FROM task_trajectories\n `).get();\n\n return {\n total_memories: stats.total_memories || 0,\n avg_confidence: stats.avg_confidence || 0,\n total_usage: stats.total_usage || 0,\n total_embeddings: embeddingCount.count || 0,\n total_trajectories: trajectoryCount.count || 0,\n };\n}\n"],"names":["db","initialize","retrieveMemories","computeEmbedding","loadConfig","v4","uuidv4","initializeReasoningBank","process","env","CLAUDE_FLOW_DB_PATH","storeMemory","key","value","options","memoryId","memory","id","type","pattern_data","JSON","stringify","namespace","agent","domain","confidence","usage_count","created_at","Date","toISOString","upsertMemory","config","embeddingModel","embeddings","provider","embedding","vectorArray","Float32Array","upsertEmbedding","memory_id","vector","model","dims","length","error","console","warn","message","queryMemories","searchQuery","memories","k","limit","map","mem","data","parse","score","filter","Boolean","dbInstance","getDb","rows","prepare","all","row","listMemories","sortBy","sort","sortOrder","order","getStatus","stats","get","embeddingCount","trajectoryCount","total_memories","avg_confidence","total_usage","total_embeddings","count","total_trajectories"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/reasoningbank/reasoningbank-adapter.js"],"sourcesContent":["/**\n * ReasoningBank Adapter for Claude-Flow (Node.js Backend)\n *\n * Uses agentic-flow@1.5.13 Node.js backend with SQLite for persistent storage\n * Provides semantic search via embeddings and MMR ranking\n *\n * Backend: SQLite with better-sqlite3\n * Features: Persistent storage, semantic search, memory consolidation\n */\n\nimport * as ReasoningBank from 'agentic-flow/reasoningbank';\nimport { v4 as uuidv4 } from 'uuid';\n\n// Backend instance (singleton)\nlet backendInitialized = false;\nlet initPromise = null;\n\n// Query result cache (LRU)\nconst queryCache = new Map();\nconst CACHE_SIZE = 100;\nconst CACHE_TTL = 60000; // 60 seconds\n\n/**\n * Initialize ReasoningBank Node.js backend\n * @returns {Promise<boolean>}\n */\nasync function ensureInitialized() {\n if (backendInitialized) {\n return true;\n }\n\n if (initPromise) {\n return initPromise;\n }\n\n initPromise = (async () => {\n try {\n // Initialize Node.js backend with SQLite database\n await ReasoningBank.initialize();\n backendInitialized = true;\n console.log('[ReasoningBank] Node.js backend initialized successfully');\n return true;\n } catch (error) {\n console.error('[ReasoningBank] Backend initialization failed:', error);\n throw new Error(`Failed to initialize ReasoningBank: ${error.message}`);\n }\n })();\n\n return initPromise;\n}\n\n/**\n * Initialize ReasoningBank database (Node.js version)\n */\nexport async function initializeReasoningBank() {\n // Initialize the Node.js backend\n await ensureInitialized();\n return true;\n}\n\n/**\n * Store a memory in ReasoningBank (Node.js backend with SQLite)\n *\n * Maps claude-flow memory model to ReasoningBank pattern model:\n * - key -> title\n * - value -> content (searchable text)\n * - namespace -> domain\n * - confidence -> confidence score\n */\nexport async function storeMemory(key, value, options = {}) {\n await ensureInitialized();\n\n try {\n const memoryId = options.id || uuidv4();\n\n // Map our memory model to ReasoningBank pattern model\n const memory = {\n id: memoryId,\n type: 'reasoning_memory',\n pattern_data: {\n title: key,\n content: value,\n domain: options.namespace || 'default',\n agent: options.agent || 'memory-agent',\n task_type: options.type || 'fact',\n // Store original values for compatibility\n original_key: key,\n original_value: value,\n namespace: options.namespace || 'default'\n },\n confidence: options.confidence || 0.8,\n usage_count: 0\n };\n\n // Store memory using Node.js backend\n ReasoningBank.db.upsertMemory(memory);\n\n // Generate and store embedding for semantic search\n try {\n const embedding = await ReasoningBank.computeEmbedding(value);\n ReasoningBank.db.upsertEmbedding({\n id: memoryId,\n model: 'text-embedding-3-small', // Default model\n dims: embedding.length,\n vector: embedding\n });\n } catch (embeddingError) {\n console.warn('[ReasoningBank] Failed to generate embedding:', embeddingError.message);\n // Continue without embedding - memory is still stored\n }\n\n // Invalidate query cache when new memory is added\n queryCache.clear();\n\n return memoryId;\n } catch (error) {\n console.error('[ReasoningBank] storeMemory failed:', error);\n throw new Error(`Failed to store memory: ${error.message}`);\n }\n}\n\n/**\n * Query memories from ReasoningBank (Node.js backend with semantic search)\n *\n * Uses retrieveMemories for semantic search via embeddings and MMR ranking\n * Fallback to database query if semantic search fails\n */\nexport async function queryMemories(searchQuery, options = {}) {\n // Check cache first\n const cached = getCachedQuery(searchQuery, options);\n if (cached) {\n return cached;\n }\n\n await ensureInitialized();\n const limit = options.limit || 10;\n // Accept both 'namespace' and 'domain' for compatibility\n const namespace = options.namespace || options.domain || 'default';\n\n try {\n // Try semantic search first using retrieveMemories\n const results = await ReasoningBank.retrieveMemories(searchQuery, {\n domain: namespace,\n agent: options.agent || 'query-agent',\n k: limit,\n minConfidence: options.minConfidence || 0.3\n });\n\n // Map backend results to our memory format\n // retrieveMemories returns: { id, title, content, description, score, components }\n const memories = results.map(memory => ({\n id: memory.id,\n key: memory.title || 'unknown',\n value: memory.content || memory.description || '',\n namespace: namespace, // Use the namespace from our query\n confidence: memory.components?.reliability || 0.8,\n usage_count: memory.usage_count || 0,\n created_at: memory.created_at || new Date().toISOString(),\n score: memory.score || 0,\n // Include original pattern for debugging\n _pattern: memory\n }));\n\n // If no results, try direct database query as fallback\n if (memories.length === 0) {\n console.warn('[ReasoningBank] Semantic search returned 0 results, trying database fallback');\n const fallbackResults = ReasoningBank.db.fetchMemoryCandidates({\n domain: namespace,\n minConfidence: options.minConfidence || 0.3\n });\n\n const fallbackMemories = fallbackResults.slice(0, limit).map(memory => ({\n id: memory.id,\n key: memory.pattern_data?.title || memory.pattern_data?.original_key || 'unknown',\n value: memory.pattern_data?.content || memory.pattern_data?.original_value || '',\n namespace: memory.pattern_data?.domain || memory.pattern_data?.namespace || 'default',\n confidence: memory.confidence || 0.8,\n usage_count: memory.usage_count || 0,\n created_at: memory.created_at || new Date().toISOString()\n }));\n\n // Cache and return fallback results\n setCachedQuery(searchQuery, options, fallbackMemories);\n return fallbackMemories;\n }\n\n // Cache successful results\n setCachedQuery(searchQuery, options, memories);\n return memories;\n } catch (error) {\n console.warn('[ReasoningBank] Query failed, trying database fallback:', error.message);\n\n try {\n // Final fallback: direct database query\n const fallbackResults = ReasoningBank.db.fetchMemoryCandidates({\n domain: namespace,\n minConfidence: options.minConfidence || 0.3\n });\n\n const fallbackMemories = fallbackResults.slice(0, limit).map(memory => ({\n id: memory.id,\n key: memory.pattern_data?.title || 'unknown',\n value: memory.pattern_data?.content || '',\n namespace: memory.pattern_data?.domain || 'default',\n confidence: memory.confidence || 0.8,\n usage_count: memory.usage_count || 0,\n created_at: memory.created_at || new Date().toISOString()\n }));\n\n setCachedQuery(searchQuery, options, fallbackMemories);\n return fallbackMemories;\n } catch (fallbackError) {\n console.error('[ReasoningBank] All query methods failed:', fallbackError);\n return [];\n }\n }\n}\n\n/**\n * List all memories (using Node.js backend database query)\n */\nexport async function listMemories(options = {}) {\n await ensureInitialized();\n const limit = options.limit || 10;\n const namespace = options.namespace;\n\n try {\n let memories;\n\n if (namespace && namespace !== 'default') {\n // Filter by namespace/domain\n const allMemories = ReasoningBank.db.getAllActiveMemories();\n memories = allMemories\n .filter(m => m.pattern_data?.domain === namespace)\n .slice(0, limit);\n } else {\n // Get all active memories\n memories = ReasoningBank.db.getAllActiveMemories().slice(0, limit);\n }\n\n return memories.map(memory => ({\n id: memory.id,\n key: memory.pattern_data?.title || memory.pattern_data?.original_key || 'unknown',\n value: memory.pattern_data?.content || memory.pattern_data?.original_value || '',\n namespace: memory.pattern_data?.domain || memory.pattern_data?.namespace || 'default',\n confidence: memory.confidence || 0.8,\n usage_count: memory.usage_count || 0,\n created_at: memory.created_at || new Date().toISOString()\n }));\n } catch (error) {\n console.error('[ReasoningBank] listMemories failed:', error);\n return [];\n }\n}\n\n/**\n * Get ReasoningBank statistics (Node.js backend)\n */\nexport async function getStatus() {\n await ensureInitialized();\n\n try {\n const db = ReasoningBank.db.getDb();\n\n // Count patterns\n const patterns = db.prepare(\"SELECT COUNT(*) as count FROM patterns WHERE type = 'reasoning_memory'\").get();\n const embeddings = db.prepare(\"SELECT COUNT(*) as count FROM pattern_embeddings\").get();\n const trajectories = db.prepare(\"SELECT COUNT(*) as count FROM task_trajectories\").get();\n const links = db.prepare(\"SELECT COUNT(*) as count FROM pattern_links\").get();\n\n // Get average confidence\n const avgConf = db.prepare(\"SELECT AVG(confidence) as avg FROM patterns WHERE type = 'reasoning_memory'\").get();\n\n // Count unique domains\n const domains = db.prepare(\"SELECT COUNT(DISTINCT json_extract(pattern_data, '$.domain')) as count FROM patterns WHERE type = 'reasoning_memory'\").get();\n\n return {\n total_memories: patterns.count || 0,\n total_categories: domains.count || 0,\n storage_backend: 'SQLite (Node.js)',\n database_path: process.env.CLAUDE_FLOW_DB_PATH || '.swarm/memory.db',\n performance: 'SQLite with persistent storage',\n avg_confidence: avgConf.avg || 0.8,\n total_embeddings: embeddings.count || 0,\n total_trajectories: trajectories.count || 0,\n total_links: links.count || 0\n };\n } catch (error) {\n console.error('[ReasoningBank] getStatus failed:', error);\n return {\n total_memories: 0,\n error: error.message\n };\n }\n}\n\n/**\n * Check which ReasoningBank tables are present (Node.js backend)\n */\nexport async function checkReasoningBankTables() {\n try {\n await ensureInitialized();\n const db = ReasoningBank.db.getDb();\n\n const tables = db.prepare(\"SELECT name FROM sqlite_master WHERE type='table' AND name LIKE 'pattern%'\").all();\n const tableNames = tables.map(t => t.name);\n\n const requiredTables = ['patterns', 'pattern_embeddings', 'pattern_links', 'task_trajectories'];\n const missingTables = requiredTables.filter(t => !tableNames.includes(t));\n\n return {\n exists: true,\n existingTables: tableNames,\n missingTables: missingTables,\n requiredTables: requiredTables,\n backend: 'SQLite (Node.js)',\n note: missingTables.length > 0 ? 'Some tables are missing - run migrations' : 'All tables present'\n };\n } catch (error) {\n return {\n exists: false,\n existingTables: [],\n missingTables: [],\n requiredTables: [],\n error: error.message\n };\n }\n}\n\n/**\n * Migrate existing database (Node.js backend - run migrations)\n */\nexport async function migrateReasoningBank() {\n try {\n await ReasoningBank.db.runMigrations();\n\n return {\n success: true,\n message: 'Database migrations completed successfully',\n migrated: true,\n database_path: process.env.CLAUDE_FLOW_DB_PATH || '.swarm/memory.db'\n };\n } catch (error) {\n return {\n success: false,\n message: `Migration failed: ${error.message}`,\n error: error.message\n };\n }\n}\n\n/**\n * Get cached query results\n */\nfunction getCachedQuery(searchQuery, options) {\n const cacheKey = JSON.stringify({ searchQuery, options });\n const cached = queryCache.get(cacheKey);\n\n if (cached && Date.now() - cached.timestamp < CACHE_TTL) {\n return cached.results;\n }\n\n return null;\n}\n\n/**\n * Set cached query results (LRU eviction)\n */\nfunction setCachedQuery(searchQuery, options, results) {\n const cacheKey = JSON.stringify({ searchQuery, options });\n\n // LRU eviction\n if (queryCache.size >= CACHE_SIZE) {\n const firstKey = queryCache.keys().next().value;\n queryCache.delete(firstKey);\n }\n\n queryCache.set(cacheKey, {\n results,\n timestamp: Date.now()\n });\n}\n\n/**\n * Close database connection and cleanup resources\n * Should be called when done with ReasoningBank operations\n */\nexport function cleanup() {\n try {\n if (backendInitialized) {\n // Clear embedding cache (prevents memory leaks)\n ReasoningBank.clearEmbeddingCache();\n\n // Close database connection\n ReasoningBank.db.closeDb();\n backendInitialized = false;\n initPromise = null;\n console.log('[ReasoningBank] Database connection closed');\n }\n } catch (error) {\n console.error('[ReasoningBank] Cleanup failed:', error.message);\n }\n}\n"],"names":["ReasoningBank","v4","uuidv4","backendInitialized","initPromise","queryCache","Map","CACHE_SIZE","CACHE_TTL","ensureInitialized","initialize","console","log","error","Error","message","initializeReasoningBank","storeMemory","key","value","options","memoryId","id","memory","type","pattern_data","title","content","domain","namespace","agent","task_type","original_key","original_value","confidence","usage_count","db","upsertMemory","embedding","computeEmbedding","upsertEmbedding","model","dims","length","vector","embeddingError","warn","clear","queryMemories","searchQuery","cached","getCachedQuery","limit","results","retrieveMemories","k","minConfidence","memories","map","description","components","reliability","created_at","Date","toISOString","score","_pattern","fallbackResults","fetchMemoryCandidates","fallbackMemories","slice","setCachedQuery","fallbackError","listMemories","allMemories","getAllActiveMemories","filter","m","getStatus","getDb","patterns","prepare","get","embeddings","trajectories","links","avgConf","domains","total_memories","count","total_categories","storage_backend","database_path","process","env","CLAUDE_FLOW_DB_PATH","performance","avg_confidence","avg","total_embeddings","total_trajectories","total_links","checkReasoningBankTables","tables","all","tableNames","t","name","requiredTables","missingTables","includes","exists","existingTables","backend","note","migrateReasoningBank","runMigrations","success","migrated","cacheKey","JSON","stringify","now","timestamp","size","firstKey","keys","next","delete","set","cleanup","clearEmbeddingCache","closeDb"],"mappings":"AAUA,YAAYA,mBAAmB,6BAA6B;AAC5D,SAASC,MAAMC,MAAM,QAAQ,OAAO;AAGpC,IAAIC,qBAAqB;AACzB,IAAIC,cAAc;AAGlB,MAAMC,aAAa,IAAIC;AACvB,MAAMC,aAAa;AACnB,MAAMC,YAAY;AAMlB,eAAeC;IACb,IAAIN,oBAAoB;QACtB,OAAO;IACT;IAEA,IAAIC,aAAa;QACf,OAAOA;IACT;IAEAA,cAAc,AAAC,CAAA;QACb,IAAI;YAEF,MAAMJ,cAAcU,UAAU;YAC9BP,qBAAqB;YACrBQ,QAAQC,GAAG,CAAC;YACZ,OAAO;QACT,EAAE,OAAOC,OAAO;YACdF,QAAQE,KAAK,CAAC,kDAAkDA;YAChE,MAAM,IAAIC,MAAM,CAAC,oCAAoC,EAAED,MAAME,OAAO,EAAE;QACxE;IACF,CAAA;IAEA,OAAOX;AACT;AAKA,OAAO,eAAeY;IAEpB,MAAMP;IACN,OAAO;AACT;AAWA,OAAO,eAAeQ,YAAYC,GAAG,EAAEC,KAAK,EAAEC,UAAU,CAAC,CAAC;IACxD,MAAMX;IAEN,IAAI;QACF,MAAMY,WAAWD,QAAQE,EAAE,IAAIpB;QAG/B,MAAMqB,SAAS;YACbD,IAAID;YACJG,MAAM;YACNC,cAAc;gBACZC,OAAOR;gBACPS,SAASR;gBACTS,QAAQR,QAAQS,SAAS,IAAI;gBAC7BC,OAAOV,QAAQU,KAAK,IAAI;gBACxBC,WAAWX,QAAQI,IAAI,IAAI;gBAE3BQ,cAAcd;gBACde,gBAAgBd;gBAChBU,WAAWT,QAAQS,SAAS,IAAI;YAClC;YACAK,YAAYd,QAAQc,UAAU,IAAI;YAClCC,aAAa;QACf;QAGAnC,cAAcoC,EAAE,CAACC,YAAY,CAACd;QAG9B,IAAI;YACF,MAAMe,YAAY,MAAMtC,cAAcuC,gBAAgB,CAACpB;YACvDnB,cAAcoC,EAAE,CAACI,eAAe,CAAC;gBAC/BlB,IAAID;gBACJoB,OAAO;gBACPC,MAAMJ,UAAUK,MAAM;gBACtBC,QAAQN;YACV;QACF,EAAE,OAAOO,gBAAgB;YACvBlC,QAAQmC,IAAI,CAAC,iDAAiDD,eAAe9B,OAAO;QAEtF;QAGAV,WAAW0C,KAAK;QAEhB,OAAO1B;IACT,EAAE,OAAOR,OAAO;QACdF,QAAQE,KAAK,CAAC,uCAAuCA;QACrD,MAAM,IAAIC,MAAM,CAAC,wBAAwB,EAAED,MAAME,OAAO,EAAE;IAC5D;AACF;AAQA,OAAO,eAAeiC,cAAcC,WAAW,EAAE7B,UAAU,CAAC,CAAC;IAE3D,MAAM8B,SAASC,eAAeF,aAAa7B;IAC3C,IAAI8B,QAAQ;QACV,OAAOA;IACT;IAEA,MAAMzC;IACN,MAAM2C,QAAQhC,QAAQgC,KAAK,IAAI;IAE/B,MAAMvB,YAAYT,QAAQS,SAAS,IAAIT,QAAQQ,MAAM,IAAI;IAEzD,IAAI;QAEF,MAAMyB,UAAU,MAAMrD,cAAcsD,gBAAgB,CAACL,aAAa;YAChErB,QAAQC;YACRC,OAAOV,QAAQU,KAAK,IAAI;YACxByB,GAAGH;YACHI,eAAepC,QAAQoC,aAAa,IAAI;QAC1C;QAIA,MAAMC,WAAWJ,QAAQK,GAAG,CAACnC,CAAAA,SAAW,CAAA;gBACtCD,IAAIC,OAAOD,EAAE;gBACbJ,KAAKK,OAAOG,KAAK,IAAI;gBACrBP,OAAOI,OAAOI,OAAO,IAAIJ,OAAOoC,WAAW,IAAI;gBAC/C9B,WAAWA;gBACXK,YAAYX,OAAOqC,UAAU,EAAEC,eAAe;gBAC9C1B,aAAaZ,OAAOY,WAAW,IAAI;gBACnC2B,YAAYvC,OAAOuC,UAAU,IAAI,IAAIC,OAAOC,WAAW;gBACvDC,OAAO1C,OAAO0C,KAAK,IAAI;gBAEvBC,UAAU3C;YACZ,CAAA;QAGA,IAAIkC,SAASd,MAAM,KAAK,GAAG;YACzBhC,QAAQmC,IAAI,CAAC;YACb,MAAMqB,kBAAkBnE,cAAcoC,EAAE,CAACgC,qBAAqB,CAAC;gBAC7DxC,QAAQC;gBACR2B,eAAepC,QAAQoC,aAAa,IAAI;YAC1C;YAEA,MAAMa,mBAAmBF,gBAAgBG,KAAK,CAAC,GAAGlB,OAAOM,GAAG,CAACnC,CAAAA,SAAW,CAAA;oBACtED,IAAIC,OAAOD,EAAE;oBACbJ,KAAKK,OAAOE,YAAY,EAAEC,SAASH,OAAOE,YAAY,EAAEO,gBAAgB;oBACxEb,OAAOI,OAAOE,YAAY,EAAEE,WAAWJ,OAAOE,YAAY,EAAEQ,kBAAkB;oBAC9EJ,WAAWN,OAAOE,YAAY,EAAEG,UAAUL,OAAOE,YAAY,EAAEI,aAAa;oBAC5EK,YAAYX,OAAOW,UAAU,IAAI;oBACjCC,aAAaZ,OAAOY,WAAW,IAAI;oBACnC2B,YAAYvC,OAAOuC,UAAU,IAAI,IAAIC,OAAOC,WAAW;gBACzD,CAAA;YAGAO,eAAetB,aAAa7B,SAASiD;YACrC,OAAOA;QACT;QAGAE,eAAetB,aAAa7B,SAASqC;QACrC,OAAOA;IACT,EAAE,OAAO5C,OAAO;QACdF,QAAQmC,IAAI,CAAC,2DAA2DjC,MAAME,OAAO;QAErF,IAAI;YAEF,MAAMoD,kBAAkBnE,cAAcoC,EAAE,CAACgC,qBAAqB,CAAC;gBAC7DxC,QAAQC;gBACR2B,eAAepC,QAAQoC,aAAa,IAAI;YAC1C;YAEA,MAAMa,mBAAmBF,gBAAgBG,KAAK,CAAC,GAAGlB,OAAOM,GAAG,CAACnC,CAAAA,SAAW,CAAA;oBACtED,IAAIC,OAAOD,EAAE;oBACbJ,KAAKK,OAAOE,YAAY,EAAEC,SAAS;oBACnCP,OAAOI,OAAOE,YAAY,EAAEE,WAAW;oBACvCE,WAAWN,OAAOE,YAAY,EAAEG,UAAU;oBAC1CM,YAAYX,OAAOW,UAAU,IAAI;oBACjCC,aAAaZ,OAAOY,WAAW,IAAI;oBACnC2B,YAAYvC,OAAOuC,UAAU,IAAI,IAAIC,OAAOC,WAAW;gBACzD,CAAA;YAEAO,eAAetB,aAAa7B,SAASiD;YACrC,OAAOA;QACT,EAAE,OAAOG,eAAe;YACtB7D,QAAQE,KAAK,CAAC,6CAA6C2D;YAC3D,OAAO,EAAE;QACX;IACF;AACF;AAKA,OAAO,eAAeC,aAAarD,UAAU,CAAC,CAAC;IAC7C,MAAMX;IACN,MAAM2C,QAAQhC,QAAQgC,KAAK,IAAI;IAC/B,MAAMvB,YAAYT,QAAQS,SAAS;IAEnC,IAAI;QACF,IAAI4B;QAEJ,IAAI5B,aAAaA,cAAc,WAAW;YAExC,MAAM6C,cAAc1E,cAAcoC,EAAE,CAACuC,oBAAoB;YACzDlB,WAAWiB,YACRE,MAAM,CAACC,CAAAA,IAAKA,EAAEpD,YAAY,EAAEG,WAAWC,WACvCyC,KAAK,CAAC,GAAGlB;QACd,OAAO;YAELK,WAAWzD,cAAcoC,EAAE,CAACuC,oBAAoB,GAAGL,KAAK,CAAC,GAAGlB;QAC9D;QAEA,OAAOK,SAASC,GAAG,CAACnC,CAAAA,SAAW,CAAA;gBAC7BD,IAAIC,OAAOD,EAAE;gBACbJ,KAAKK,OAAOE,YAAY,EAAEC,SAASH,OAAOE,YAAY,EAAEO,gBAAgB;gBACxEb,OAAOI,OAAOE,YAAY,EAAEE,WAAWJ,OAAOE,YAAY,EAAEQ,kBAAkB;gBAC9EJ,WAAWN,OAAOE,YAAY,EAAEG,UAAUL,OAAOE,YAAY,EAAEI,aAAa;gBAC5EK,YAAYX,OAAOW,UAAU,IAAI;gBACjCC,aAAaZ,OAAOY,WAAW,IAAI;gBACnC2B,YAAYvC,OAAOuC,UAAU,IAAI,IAAIC,OAAOC,WAAW;YACzD,CAAA;IACF,EAAE,OAAOnD,OAAO;QACdF,QAAQE,KAAK,CAAC,wCAAwCA;QACtD,OAAO,EAAE;IACX;AACF;AAKA,OAAO,eAAeiE;IACpB,MAAMrE;IAEN,IAAI;QACF,MAAM2B,KAAKpC,cAAcoC,EAAE,CAAC2C,KAAK;QAGjC,MAAMC,WAAW5C,GAAG6C,OAAO,CAAC,0EAA0EC,GAAG;QACzG,MAAMC,aAAa/C,GAAG6C,OAAO,CAAC,oDAAoDC,GAAG;QACrF,MAAME,eAAehD,GAAG6C,OAAO,CAAC,mDAAmDC,GAAG;QACtF,MAAMG,QAAQjD,GAAG6C,OAAO,CAAC,+CAA+CC,GAAG;QAG3E,MAAMI,UAAUlD,GAAG6C,OAAO,CAAC,+EAA+EC,GAAG;QAG7G,MAAMK,UAAUnD,GAAG6C,OAAO,CAAC,wHAAwHC,GAAG;QAEtJ,OAAO;YACLM,gBAAgBR,SAASS,KAAK,IAAI;YAClCC,kBAAkBH,QAAQE,KAAK,IAAI;YACnCE,iBAAiB;YACjBC,eAAeC,QAAQC,GAAG,CAACC,mBAAmB,IAAI;YAClDC,aAAa;YACbC,gBAAgBX,QAAQY,GAAG,IAAI;YAC/BC,kBAAkBhB,WAAWM,KAAK,IAAI;YACtCW,oBAAoBhB,aAAaK,KAAK,IAAI;YAC1CY,aAAahB,MAAMI,KAAK,IAAI;QAC9B;IACF,EAAE,OAAO5E,OAAO;QACdF,QAAQE,KAAK,CAAC,qCAAqCA;QACnD,OAAO;YACL2E,gBAAgB;YAChB3E,OAAOA,MAAME,OAAO;QACtB;IACF;AACF;AAKA,OAAO,eAAeuF;IACpB,IAAI;QACF,MAAM7F;QACN,MAAM2B,KAAKpC,cAAcoC,EAAE,CAAC2C,KAAK;QAEjC,MAAMwB,SAASnE,GAAG6C,OAAO,CAAC,8EAA8EuB,GAAG;QAC3G,MAAMC,aAAaF,OAAO7C,GAAG,CAACgD,CAAAA,IAAKA,EAAEC,IAAI;QAEzC,MAAMC,iBAAiB;YAAC;YAAY;YAAsB;YAAiB;SAAoB;QAC/F,MAAMC,gBAAgBD,eAAehC,MAAM,CAAC8B,CAAAA,IAAK,CAACD,WAAWK,QAAQ,CAACJ;QAEtE,OAAO;YACLK,QAAQ;YACRC,gBAAgBP;YAChBI,eAAeA;YACfD,gBAAgBA;YAChBK,SAAS;YACTC,MAAML,cAAclE,MAAM,GAAG,IAAI,6CAA6C;QAChF;IACF,EAAE,OAAO9B,OAAO;QACd,OAAO;YACLkG,QAAQ;YACRC,gBAAgB,EAAE;YAClBH,eAAe,EAAE;YACjBD,gBAAgB,EAAE;YAClB/F,OAAOA,MAAME,OAAO;QACtB;IACF;AACF;AAKA,OAAO,eAAeoG;IACpB,IAAI;QACF,MAAMnH,cAAcoC,EAAE,CAACgF,aAAa;QAEpC,OAAO;YACLC,SAAS;YACTtG,SAAS;YACTuG,UAAU;YACV1B,eAAeC,QAAQC,GAAG,CAACC,mBAAmB,IAAI;QACpD;IACF,EAAE,OAAOlF,OAAO;QACd,OAAO;YACLwG,SAAS;YACTtG,SAAS,CAAC,kBAAkB,EAAEF,MAAME,OAAO,EAAE;YAC7CF,OAAOA,MAAME,OAAO;QACtB;IACF;AACF;AAKA,SAASoC,eAAeF,WAAW,EAAE7B,OAAO;IAC1C,MAAMmG,WAAWC,KAAKC,SAAS,CAAC;QAAExE;QAAa7B;IAAQ;IACvD,MAAM8B,SAAS7C,WAAW6E,GAAG,CAACqC;IAE9B,IAAIrE,UAAUa,KAAK2D,GAAG,KAAKxE,OAAOyE,SAAS,GAAGnH,WAAW;QACvD,OAAO0C,OAAOG,OAAO;IACvB;IAEA,OAAO;AACT;AAKA,SAASkB,eAAetB,WAAW,EAAE7B,OAAO,EAAEiC,OAAO;IACnD,MAAMkE,WAAWC,KAAKC,SAAS,CAAC;QAAExE;QAAa7B;IAAQ;IAGvD,IAAIf,WAAWuH,IAAI,IAAIrH,YAAY;QACjC,MAAMsH,WAAWxH,WAAWyH,IAAI,GAAGC,IAAI,GAAG5G,KAAK;QAC/Cd,WAAW2H,MAAM,CAACH;IACpB;IAEAxH,WAAW4H,GAAG,CAACV,UAAU;QACvBlE;QACAsE,WAAW5D,KAAK2D,GAAG;IACrB;AACF;AAMA,OAAO,SAASQ;IACd,IAAI;QACF,IAAI/H,oBAAoB;YAEtBH,cAAcmI,mBAAmB;YAGjCnI,cAAcoC,EAAE,CAACgG,OAAO;YACxBjI,qBAAqB;YACrBC,cAAc;YACdO,QAAQC,GAAG,CAAC;QACd;IACF,EAAE,OAAOC,OAAO;QACdF,QAAQE,KAAK,CAAC,mCAAmCA,MAAME,OAAO;IAChE;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/key-redactor.ts"],"sourcesContent":["/**\n * API Key Redaction Utility\n * Prevents sensitive data from leaking into logs, memory, or git commits\n */\n\nexport interface RedactionConfig {\n patterns: RegExp[];\n replacement: string;\n maskLength: number;\n}\n\nexport class KeyRedactor {\n private static readonly API_KEY_PATTERNS = [\n // Anthropic API keys\n /sk-ant-[a-zA-Z0-9_-]{95,}/gi,\n\n // OpenRouter API keys\n /sk-or-[a-zA-Z0-9_-]{32,}/gi,\n\n // Google/Gemini API keys\n /AIza[a-zA-Z0-9_-]{35}/gi,\n\n // Generic API keys\n /[a-zA-Z0-9_-]{20,}API[a-zA-Z0-9_-]{20,}/gi,\n\n // Bearer tokens\n /Bearer\\s+[a-zA-Z0-9_\\-\\.]{20,}/gi,\n\n // Environment variable format\n /([A-Z_]+_API_KEY|[A-Z_]+_TOKEN|[A-Z_]+_SECRET)=[\"']?([^\"'\\s]+)[\"']?/gi,\n\n // Supabase keys\n /eyJ[a-zA-Z0-9_-]*\\.eyJ[a-zA-Z0-9_-]*\\.[a-zA-Z0-9_-]*/gi,\n ];\n\n private static readonly SENSITIVE_FIELDS = [\n 'apiKey',\n 'api_key',\n 'token',\n 'secret',\n 'password',\n 'private_key',\n 'privateKey',\n 'accessToken',\n 'access_token',\n 'refreshToken',\n 'refresh_token',\n ];\n\n /**\n * Redact API keys and sensitive data from text\n */\n static redact(text: string, showPrefix = true): string {\n if (!text) return text;\n\n let redacted = text;\n\n // Redact using patterns\n this.API_KEY_PATTERNS.forEach(pattern => {\n redacted = redacted.replace(pattern, (match) => {\n if (showPrefix && match.length > 8) {\n const prefix = match.substring(0, 8);\n return `${prefix}...[REDACTED]`;\n }\n return '[REDACTED_API_KEY]';\n });\n });\n\n return redacted;\n }\n\n /**\n * Redact sensitive fields in objects\n */\n static redactObject<T extends Record<string, any>>(obj: T, deep = true): T {\n if (!obj || typeof obj !== 'object') return obj;\n\n const redacted = { ...obj };\n\n Object.keys(redacted).forEach(key => {\n const lowerKey = key.toLowerCase();\n\n // Check if field name is sensitive\n const isSensitive = this.SENSITIVE_FIELDS.some(field =>\n lowerKey.includes(field)\n );\n\n if (isSensitive && typeof redacted[key] === 'string') {\n const value = redacted[key] as string;\n if (value && value.length > 8) {\n redacted[key] = `${value.substring(0, 4)}...[REDACTED]` as any;\n } else {\n redacted[key] = '[REDACTED]' as any;\n }\n } else if (deep && typeof redacted[key] === 'object' && redacted[key] !== null) {\n redacted[key] = this.redactObject(redacted[key], deep);\n } else if (typeof redacted[key] === 'string') {\n // Redact any API keys in string values\n redacted[key] = this.redact(redacted[key]) as any;\n }\n });\n\n return redacted;\n }\n\n /**\n * Sanitize text for safe logging\n */\n static sanitize(text: string): string {\n return this.redact(text, true);\n }\n\n /**\n * Sanitize command arguments\n */\n static sanitizeArgs(args: string[]): string[] {\n return args.map(arg => {\n // Check if arg is a flag value pair\n if (arg.includes('key') || arg.includes('token') || arg.includes('secret')) {\n return this.redact(arg);\n }\n return arg;\n });\n }\n\n /**\n * Check if text contains unredacted sensitive data\n */\n static containsSensitiveData(text: string): boolean {\n return this.API_KEY_PATTERNS.some(pattern => pattern.test(text));\n }\n\n /**\n * Validate that text is safe for logging/storage\n */\n static validate(text: string): { safe: boolean; warnings: string[] } {\n const warnings: string[] = [];\n\n this.API_KEY_PATTERNS.forEach((pattern, index) => {\n if (pattern.test(text)) {\n warnings.push(`Potential API key detected (pattern ${index + 1})`);\n }\n });\n\n return {\n safe: warnings.length === 0,\n warnings,\n };\n }\n\n /**\n * Redact environment variables\n */\n static redactEnv(env: Record<string, string | undefined>): Record<string, string> {\n const redacted: Record<string, string> = {};\n\n Object.keys(env).forEach(key => {\n const value = env[key];\n if (!value) {\n redacted[key] = '';\n return;\n }\n\n const lowerKey = key.toLowerCase();\n const isSensitive = lowerKey.includes('key') ||\n lowerKey.includes('token') ||\n lowerKey.includes('secret') ||\n lowerKey.includes('password');\n\n if (isSensitive) {\n redacted[key] = value.length > 8\n ? `${value.substring(0, 4)}...[REDACTED]`\n : '[REDACTED]';\n } else {\n redacted[key] = value;\n }\n });\n\n return redacted;\n }\n}\n\n// Export singleton instance\nexport const redactor = KeyRedactor;\n"],"names":["KeyRedactor","API_KEY_PATTERNS","SENSITIVE_FIELDS","redact","text","showPrefix","redacted","forEach","pattern","replace","match","length","prefix","substring","redactObject","obj","deep","Object","keys","key","lowerKey","toLowerCase","isSensitive","some","field","includes","value","sanitize","sanitizeArgs","args","map","arg","containsSensitiveData","test","validate","warnings","index","push","safe","redactEnv","env","redactor"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/utils/key-redactor.js"],"sourcesContent":["/**\n * API Key Redaction Utility\n * Prevents sensitive data from leaking into logs, memory, or git commits\n */\n\nexport class KeyRedactor {\n static API_KEY_PATTERNS = [\n // Anthropic API keys\n /sk-ant-[a-zA-Z0-9_-]{95,}/gi,\n\n // OpenRouter API keys\n /sk-or-[a-zA-Z0-9_-]{32,}/gi,\n\n // Google/Gemini API keys\n /AIza[a-zA-Z0-9_-]{35}/gi,\n\n // Generic API keys\n /[a-zA-Z0-9_-]{20,}API[a-zA-Z0-9_-]{20,}/gi,\n\n // Bearer tokens\n /Bearer\\s+[a-zA-Z0-9_\\-\\.]{20,}/gi,\n\n // Environment variable format\n /([A-Z_]+_API_KEY|[A-Z_]+_TOKEN|[A-Z_]+_SECRET)=[\"']?([^\"'\\s]+)[\"']?/gi,\n\n // Supabase keys\n /eyJ[a-zA-Z0-9_-]*\\.eyJ[a-zA-Z0-9_-]*\\.[a-zA-Z0-9_-]*/gi,\n ];\n\n static SENSITIVE_FIELDS = [\n 'apiKey',\n 'api_key',\n 'token',\n 'secret',\n 'password',\n 'private_key',\n 'privateKey',\n 'accessToken',\n 'access_token',\n 'refreshToken',\n 'refresh_token',\n ];\n\n /**\n * Redact API keys and sensitive data from text\n */\n static redact(text, showPrefix = true) {\n if (!text) return text;\n\n let redacted = text;\n\n // Redact using patterns\n this.API_KEY_PATTERNS.forEach(pattern => {\n redacted = redacted.replace(pattern, (match) => {\n if (showPrefix && match.length > 8) {\n const prefix = match.substring(0, 8);\n return `${prefix}...[REDACTED]`;\n }\n return '[REDACTED_API_KEY]';\n });\n });\n\n return redacted;\n }\n\n /**\n * Redact sensitive fields in objects\n */\n static redactObject(obj, deep = true) {\n if (!obj || typeof obj !== 'object') return obj;\n\n const redacted = { ...obj };\n\n Object.keys(redacted).forEach(key => {\n const lowerKey = key.toLowerCase();\n\n // Check if field name is sensitive\n const isSensitive = this.SENSITIVE_FIELDS.some(field =>\n lowerKey.includes(field)\n );\n\n if (isSensitive && typeof redacted[key] === 'string') {\n const value = redacted[key];\n if (value && value.length > 8) {\n redacted[key] = `${value.substring(0, 4)}...[REDACTED]`;\n } else {\n redacted[key] = '[REDACTED]';\n }\n } else if (deep && typeof redacted[key] === 'object' && redacted[key] !== null) {\n redacted[key] = this.redactObject(redacted[key], deep);\n } else if (typeof redacted[key] === 'string') {\n // Redact any API keys in string values\n redacted[key] = this.redact(redacted[key]);\n }\n });\n\n return redacted;\n }\n\n /**\n * Sanitize text for safe logging\n */\n static sanitize(text) {\n return this.redact(text, true);\n }\n\n /**\n * Sanitize command arguments\n */\n static sanitizeArgs(args) {\n return args.map(arg => {\n // Check if arg is a flag value pair\n if (arg.includes('key') || arg.includes('token') || arg.includes('secret')) {\n return this.redact(arg);\n }\n return arg;\n });\n }\n\n /**\n * Check if text contains unredacted sensitive data\n */\n static containsSensitiveData(text) {\n return this.API_KEY_PATTERNS.some(pattern => pattern.test(text));\n }\n\n /**\n * Validate that text is safe for logging/storage\n */\n static validate(text) {\n const warnings = [];\n\n this.API_KEY_PATTERNS.forEach((pattern, index) => {\n if (pattern.test(text)) {\n warnings.push(`Potential API key detected (pattern ${index + 1})`);\n }\n });\n\n return {\n safe: warnings.length === 0,\n warnings,\n };\n }\n\n /**\n * Redact environment variables\n */\n static redactEnv(env) {\n const redacted = {};\n\n Object.keys(env).forEach(key => {\n const value = env[key];\n if (!value) {\n redacted[key] = '';\n return;\n }\n\n const lowerKey = key.toLowerCase();\n const isSensitive = lowerKey.includes('key') ||\n lowerKey.includes('token') ||\n lowerKey.includes('secret') ||\n lowerKey.includes('password');\n\n if (isSensitive) {\n redacted[key] = value.length > 8\n ? `${value.substring(0, 4)}...[REDACTED]`\n : '[REDACTED]';\n } else {\n redacted[key] = value;\n }\n });\n\n return redacted;\n }\n}\n\n// Export singleton instance\nexport const redactor = KeyRedactor;\n"],"names":["KeyRedactor","API_KEY_PATTERNS","SENSITIVE_FIELDS","redact","text","showPrefix","redacted","forEach","pattern","replace","match","length","prefix","substring","redactObject","obj","deep","Object","keys","key","lowerKey","toLowerCase","isSensitive","some","field","includes","value","sanitize","sanitizeArgs","args","map","arg","containsSensitiveData","test","validate","warnings","index","push","safe","redactEnv","env","redactor"],"mappings":"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"}
@@ -1,13 +1,11 @@
1
- import { promises as fs } from 'fs';
2
- import path from 'path';
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
3
  import { exec } from 'child_process';
4
4
  import { promisify } from 'util';
5
5
  const execAsync = promisify(exec);
6
- let MetricsReader = class MetricsReader {
7
- constructor(){
8
- this.metricsDir = '.claude-flow/metrics';
9
- this.sessionsDir = '.claude-flow/sessions';
10
- }
6
+ export class MetricsReader {
7
+ metricsDir = '.claude-flow/metrics';
8
+ sessionsDir = '.claude-flow/sessions';
11
9
  async getSystemMetrics() {
12
10
  try {
13
11
  const filePath = path.join(this.metricsDir, 'system-metrics.json');
@@ -18,15 +16,6 @@ let MetricsReader = class MetricsReader {
18
16
  return null;
19
17
  }
20
18
  }
21
- async getTaskQueue() {
22
- try {
23
- const queueFile = '.claude-flow/tasks/queue.json';
24
- const content = await fs.readFile(queueFile, 'utf8');
25
- return JSON.parse(content);
26
- } catch (error) {
27
- return [];
28
- }
29
- }
30
19
  async getTaskMetrics() {
31
20
  try {
32
21
  const filePath = path.join(this.metricsDir, 'task-metrics.json');
@@ -47,30 +36,30 @@ let MetricsReader = class MetricsReader {
47
36
  }
48
37
  async getActiveAgents() {
49
38
  try {
39
+ const perfMetrics = await this.getPerformanceMetrics();
40
+ const sessionFiles = await this.getSessionFiles();
50
41
  const agents = [];
51
- const 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 {}
42
+ for (const file of sessionFiles){
43
+ try {
44
+ const content = await fs.readFile(path.join(this.sessionsDir, 'pair', file), 'utf8');
45
+ const sessionData = JSON.parse(content);
46
+ if (sessionData.agents && Array.isArray(sessionData.agents)) {
47
+ agents.push(...sessionData.agents);
61
48
  }
62
- }
63
- } 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 {}
49
+ } catch {}
50
+ }
51
+ if (agents.length === 0 && perfMetrics) {
52
+ const activeCount = perfMetrics.activeAgents || 0;
53
+ const totalCount = perfMetrics.totalAgents || 0;
54
+ for(let i = 0; i < totalCount; i++){
55
+ agents.push({
56
+ id: `agent-${i + 1}`,
57
+ name: `Agent ${i + 1}`,
58
+ type: i === 0 ? 'orchestrator' : 'worker',
59
+ status: i < activeCount ? 'active' : 'idle',
60
+ activeTasks: i < activeCount ? 1 : 0,
61
+ lastActivity: Date.now() - i * 1000
62
+ });
74
63
  }
75
64
  }
76
65
  return agents;
@@ -146,7 +135,7 @@ let MetricsReader = class MetricsReader {
146
135
  }
147
136
  async getMCPServerStatus() {
148
137
  try {
149
- const { stdout } = await execAsync('ps aux | grep -E "mcp" | grep -v grep | wc -l');
138
+ const { stdout } = await execAsync('ps aux | grep -E "mcp-server\\.js|claude-flow mcp start" | grep -v grep | wc -l');
150
139
  const processCount = parseInt(stdout.trim(), 10);
151
140
  const { stdout: orchestratorOut } = await execAsync('ps aux | grep -E "claude-flow start" | grep -v grep | wc -l');
152
141
  const orchestratorRunning = parseInt(orchestratorOut.trim(), 10) > 0;
@@ -175,7 +164,6 @@ let MetricsReader = class MetricsReader {
175
164
  };
176
165
  }
177
166
  }
178
- };
179
- export { MetricsReader };
167
+ }
180
168
 
181
169
  //# sourceMappingURL=metrics-reader.js.map