claude-flow 3.0.0-alpha.5 → 3.0.0-alpha.63

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 (429) hide show
  1. package/README.md +1573 -41
  2. package/bin/cli.js +140 -26
  3. package/bin/mcp-server.js +188 -0
  4. package/dist/src/commands/agent.d.ts +8 -0
  5. package/dist/src/commands/agent.d.ts.map +1 -0
  6. package/dist/src/commands/agent.js +819 -0
  7. package/dist/src/commands/agent.js.map +1 -0
  8. package/dist/src/commands/analyze.d.ts +19 -0
  9. package/dist/src/commands/analyze.d.ts.map +1 -0
  10. package/dist/src/commands/analyze.js +1823 -0
  11. package/dist/src/commands/analyze.js.map +1 -0
  12. package/dist/src/commands/claims.d.ts +10 -0
  13. package/dist/src/commands/claims.d.ts.map +1 -0
  14. package/dist/src/commands/claims.js +288 -0
  15. package/dist/src/commands/claims.js.map +1 -0
  16. package/dist/src/commands/completions.d.ts +10 -0
  17. package/dist/src/commands/completions.d.ts.map +1 -0
  18. package/dist/src/commands/completions.js +539 -0
  19. package/dist/src/commands/completions.js.map +1 -0
  20. package/dist/src/commands/config.d.ts +8 -0
  21. package/dist/src/commands/config.d.ts.map +1 -0
  22. package/dist/src/commands/config.js +406 -0
  23. package/dist/src/commands/config.js.map +1 -0
  24. package/dist/src/commands/daemon.d.ts +8 -0
  25. package/dist/src/commands/daemon.d.ts.map +1 -0
  26. package/dist/src/commands/daemon.js +593 -0
  27. package/dist/src/commands/daemon.js.map +1 -0
  28. package/dist/src/commands/deployment.d.ts +10 -0
  29. package/dist/src/commands/deployment.d.ts.map +1 -0
  30. package/dist/src/commands/deployment.js +289 -0
  31. package/dist/src/commands/deployment.js.map +1 -0
  32. package/dist/src/commands/doctor.d.ts +10 -0
  33. package/dist/src/commands/doctor.d.ts.map +1 -0
  34. package/dist/src/commands/doctor.js +448 -0
  35. package/dist/src/commands/doctor.js.map +1 -0
  36. package/dist/src/commands/embeddings.d.ts +18 -0
  37. package/dist/src/commands/embeddings.d.ts.map +1 -0
  38. package/dist/src/commands/embeddings.js +831 -0
  39. package/dist/src/commands/embeddings.js.map +1 -0
  40. package/dist/src/commands/hive-mind.d.ts +8 -0
  41. package/dist/src/commands/hive-mind.d.ts.map +1 -0
  42. package/dist/src/commands/hive-mind.js +844 -0
  43. package/dist/src/commands/hive-mind.js.map +1 -0
  44. package/dist/src/commands/hooks.d.ts +8 -0
  45. package/dist/src/commands/hooks.d.ts.map +1 -0
  46. package/dist/src/commands/hooks.js +2892 -0
  47. package/dist/src/commands/hooks.js.map +1 -0
  48. package/dist/src/commands/index.d.ts +89 -0
  49. package/dist/src/commands/index.d.ts.map +1 -0
  50. package/dist/src/commands/index.js +258 -0
  51. package/dist/src/commands/index.js.map +1 -0
  52. package/dist/src/commands/init.d.ts +8 -0
  53. package/dist/src/commands/init.d.ts.map +1 -0
  54. package/dist/src/commands/init.js +603 -0
  55. package/dist/src/commands/init.js.map +1 -0
  56. package/dist/src/commands/issues.d.ts +21 -0
  57. package/dist/src/commands/issues.d.ts.map +1 -0
  58. package/dist/src/commands/issues.js +567 -0
  59. package/dist/src/commands/issues.js.map +1 -0
  60. package/dist/src/commands/mcp.d.ts +11 -0
  61. package/dist/src/commands/mcp.d.ts.map +1 -0
  62. package/dist/src/commands/mcp.js +662 -0
  63. package/dist/src/commands/mcp.js.map +1 -0
  64. package/dist/src/commands/memory.d.ts +8 -0
  65. package/dist/src/commands/memory.d.ts.map +1 -0
  66. package/dist/src/commands/memory.js +1200 -0
  67. package/dist/src/commands/memory.js.map +1 -0
  68. package/dist/src/commands/migrate.d.ts +8 -0
  69. package/dist/src/commands/migrate.d.ts.map +1 -0
  70. package/dist/src/commands/migrate.js +398 -0
  71. package/dist/src/commands/migrate.js.map +1 -0
  72. package/dist/src/commands/neural.d.ts +10 -0
  73. package/dist/src/commands/neural.d.ts.map +1 -0
  74. package/dist/src/commands/neural.js +224 -0
  75. package/dist/src/commands/neural.js.map +1 -0
  76. package/dist/src/commands/performance.d.ts +10 -0
  77. package/dist/src/commands/performance.d.ts.map +1 -0
  78. package/dist/src/commands/performance.js +262 -0
  79. package/dist/src/commands/performance.js.map +1 -0
  80. package/dist/src/commands/plugins.d.ts +11 -0
  81. package/dist/src/commands/plugins.d.ts.map +1 -0
  82. package/dist/src/commands/plugins.js +630 -0
  83. package/dist/src/commands/plugins.js.map +1 -0
  84. package/dist/src/commands/process.d.ts +10 -0
  85. package/dist/src/commands/process.d.ts.map +1 -0
  86. package/dist/src/commands/process.js +641 -0
  87. package/dist/src/commands/process.js.map +1 -0
  88. package/dist/src/commands/progress.d.ts +11 -0
  89. package/dist/src/commands/progress.d.ts.map +1 -0
  90. package/dist/src/commands/progress.js +259 -0
  91. package/dist/src/commands/progress.js.map +1 -0
  92. package/dist/src/commands/providers.d.ts +10 -0
  93. package/dist/src/commands/providers.d.ts.map +1 -0
  94. package/dist/src/commands/providers.js +232 -0
  95. package/dist/src/commands/providers.js.map +1 -0
  96. package/dist/src/commands/route.d.ts +16 -0
  97. package/dist/src/commands/route.d.ts.map +1 -0
  98. package/dist/src/commands/route.js +813 -0
  99. package/dist/src/commands/route.js.map +1 -0
  100. package/dist/src/commands/security.d.ts +10 -0
  101. package/dist/src/commands/security.d.ts.map +1 -0
  102. package/dist/src/commands/security.js +261 -0
  103. package/dist/src/commands/security.js.map +1 -0
  104. package/dist/src/commands/session.d.ts +8 -0
  105. package/dist/src/commands/session.d.ts.map +1 -0
  106. package/dist/src/commands/session.js +750 -0
  107. package/dist/src/commands/session.js.map +1 -0
  108. package/dist/src/commands/start.d.ts +8 -0
  109. package/dist/src/commands/start.d.ts.map +1 -0
  110. package/dist/src/commands/start.js +418 -0
  111. package/dist/src/commands/start.js.map +1 -0
  112. package/dist/src/commands/status.d.ts +8 -0
  113. package/dist/src/commands/status.d.ts.map +1 -0
  114. package/dist/src/commands/status.js +584 -0
  115. package/dist/src/commands/status.js.map +1 -0
  116. package/dist/src/commands/swarm.d.ts +8 -0
  117. package/dist/src/commands/swarm.d.ts.map +1 -0
  118. package/dist/src/commands/swarm.js +726 -0
  119. package/dist/src/commands/swarm.js.map +1 -0
  120. package/dist/src/commands/task.d.ts +8 -0
  121. package/dist/src/commands/task.d.ts.map +1 -0
  122. package/dist/src/commands/task.js +671 -0
  123. package/dist/src/commands/task.js.map +1 -0
  124. package/dist/src/commands/transfer-store.d.ts +13 -0
  125. package/dist/src/commands/transfer-store.d.ts.map +1 -0
  126. package/dist/src/commands/transfer-store.js +428 -0
  127. package/dist/src/commands/transfer-store.js.map +1 -0
  128. package/dist/src/commands/workflow.d.ts +8 -0
  129. package/dist/src/commands/workflow.d.ts.map +1 -0
  130. package/dist/src/commands/workflow.js +617 -0
  131. package/dist/src/commands/workflow.js.map +1 -0
  132. package/dist/src/config-adapter.d.ts +15 -0
  133. package/dist/src/config-adapter.d.ts.map +1 -0
  134. package/dist/src/config-adapter.js +185 -0
  135. package/dist/src/config-adapter.js.map +1 -0
  136. package/dist/src/index.d.ts +57 -0
  137. package/dist/src/index.d.ts.map +1 -0
  138. package/dist/src/index.js +388 -0
  139. package/dist/src/index.js.map +1 -0
  140. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  141. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
  142. package/dist/src/infrastructure/in-memory-repositories.js +264 -0
  143. package/dist/src/infrastructure/in-memory-repositories.js.map +1 -0
  144. package/dist/src/init/claudemd-generator.d.ts +15 -0
  145. package/dist/src/init/claudemd-generator.d.ts.map +1 -0
  146. package/dist/src/init/claudemd-generator.js +674 -0
  147. package/dist/src/init/claudemd-generator.js.map +1 -0
  148. package/dist/src/init/executor.d.ts +11 -0
  149. package/dist/src/init/executor.d.ts.map +1 -0
  150. package/dist/src/init/executor.js +763 -0
  151. package/dist/src/init/executor.js.map +1 -0
  152. package/dist/src/init/helpers-generator.d.ts +42 -0
  153. package/dist/src/init/helpers-generator.d.ts.map +1 -0
  154. package/dist/src/init/helpers-generator.js +613 -0
  155. package/dist/src/init/helpers-generator.js.map +1 -0
  156. package/dist/src/init/index.d.ts +12 -0
  157. package/dist/src/init/index.d.ts.map +1 -0
  158. package/dist/src/init/index.js +15 -0
  159. package/dist/src/init/index.js.map +1 -0
  160. package/dist/src/init/mcp-generator.d.ts +27 -0
  161. package/dist/src/init/mcp-generator.d.ts.map +1 -0
  162. package/dist/src/init/mcp-generator.js +100 -0
  163. package/dist/src/init/mcp-generator.js.map +1 -0
  164. package/dist/src/init/settings-generator.d.ts +14 -0
  165. package/dist/src/init/settings-generator.d.ts.map +1 -0
  166. package/dist/src/init/settings-generator.js +311 -0
  167. package/dist/src/init/settings-generator.js.map +1 -0
  168. package/dist/src/init/statusline-generator.d.ts +20 -0
  169. package/dist/src/init/statusline-generator.d.ts.map +1 -0
  170. package/dist/src/init/statusline-generator.js +369 -0
  171. package/dist/src/init/statusline-generator.js.map +1 -0
  172. package/dist/src/init/types.d.ts +246 -0
  173. package/dist/src/init/types.d.ts.map +1 -0
  174. package/dist/src/init/types.js +216 -0
  175. package/dist/src/init/types.js.map +1 -0
  176. package/dist/src/mcp-client.d.ts +92 -0
  177. package/dist/src/mcp-client.d.ts.map +1 -0
  178. package/dist/src/mcp-client.js +207 -0
  179. package/dist/src/mcp-client.js.map +1 -0
  180. package/dist/src/mcp-server.d.ts +158 -0
  181. package/dist/src/mcp-server.d.ts.map +1 -0
  182. package/dist/src/mcp-server.js +584 -0
  183. package/dist/src/mcp-server.js.map +1 -0
  184. package/dist/src/mcp-tools/agent-tools.d.ts +8 -0
  185. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -0
  186. package/dist/src/mcp-tools/agent-tools.js +426 -0
  187. package/dist/src/mcp-tools/agent-tools.js.map +1 -0
  188. package/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
  189. package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -0
  190. package/dist/src/mcp-tools/analyze-tools.js +317 -0
  191. package/dist/src/mcp-tools/analyze-tools.js.map +1 -0
  192. package/dist/src/mcp-tools/config-tools.d.ts +8 -0
  193. package/dist/src/mcp-tools/config-tools.d.ts.map +1 -0
  194. package/dist/src/mcp-tools/config-tools.js +333 -0
  195. package/dist/src/mcp-tools/config-tools.js.map +1 -0
  196. package/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
  197. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -0
  198. package/dist/src/mcp-tools/hive-mind-tools.js +447 -0
  199. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -0
  200. package/dist/src/mcp-tools/hooks-tools.d.ts +41 -0
  201. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -0
  202. package/dist/src/mcp-tools/hooks-tools.js +1836 -0
  203. package/dist/src/mcp-tools/hooks-tools.js.map +1 -0
  204. package/dist/src/mcp-tools/index.d.ts +20 -0
  205. package/dist/src/mcp-tools/index.d.ts.map +1 -0
  206. package/dist/src/mcp-tools/index.js +19 -0
  207. package/dist/src/mcp-tools/index.js.map +1 -0
  208. package/dist/src/mcp-tools/memory-tools.d.ts +8 -0
  209. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -0
  210. package/dist/src/mcp-tools/memory-tools.js +235 -0
  211. package/dist/src/mcp-tools/memory-tools.js.map +1 -0
  212. package/dist/src/mcp-tools/progress-tools.d.ts +14 -0
  213. package/dist/src/mcp-tools/progress-tools.d.ts.map +1 -0
  214. package/dist/src/mcp-tools/progress-tools.js +343 -0
  215. package/dist/src/mcp-tools/progress-tools.js.map +1 -0
  216. package/dist/src/mcp-tools/session-tools.d.ts +8 -0
  217. package/dist/src/mcp-tools/session-tools.d.ts.map +1 -0
  218. package/dist/src/mcp-tools/session-tools.js +315 -0
  219. package/dist/src/mcp-tools/session-tools.js.map +1 -0
  220. package/dist/src/mcp-tools/swarm-tools.d.ts +8 -0
  221. package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -0
  222. package/dist/src/mcp-tools/swarm-tools.js +102 -0
  223. package/dist/src/mcp-tools/swarm-tools.js.map +1 -0
  224. package/dist/src/mcp-tools/task-tools.d.ts +8 -0
  225. package/dist/src/mcp-tools/task-tools.d.ts.map +1 -0
  226. package/dist/src/mcp-tools/task-tools.js +302 -0
  227. package/dist/src/mcp-tools/task-tools.js.map +1 -0
  228. package/dist/src/mcp-tools/transfer-tools.d.ts +14 -0
  229. package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -0
  230. package/dist/src/mcp-tools/transfer-tools.js +396 -0
  231. package/dist/src/mcp-tools/transfer-tools.js.map +1 -0
  232. package/dist/src/mcp-tools/types.d.ts +31 -0
  233. package/dist/src/mcp-tools/types.d.ts.map +1 -0
  234. package/dist/src/mcp-tools/types.js +7 -0
  235. package/dist/src/mcp-tools/types.js.map +1 -0
  236. package/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
  237. package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -0
  238. package/dist/src/mcp-tools/workflow-tools.js +481 -0
  239. package/dist/src/mcp-tools/workflow-tools.js.map +1 -0
  240. package/dist/src/memory/memory-initializer.d.ts +229 -0
  241. package/dist/src/memory/memory-initializer.d.ts.map +1 -0
  242. package/dist/src/memory/memory-initializer.js +1248 -0
  243. package/dist/src/memory/memory-initializer.js.map +1 -0
  244. package/dist/src/output.d.ts +133 -0
  245. package/dist/src/output.d.ts.map +1 -0
  246. package/dist/src/output.js +513 -0
  247. package/dist/src/output.js.map +1 -0
  248. package/dist/src/parser.d.ts +41 -0
  249. package/dist/src/parser.d.ts.map +1 -0
  250. package/dist/src/parser.js +353 -0
  251. package/dist/src/parser.js.map +1 -0
  252. package/dist/src/plugins/store/discovery.d.ts +73 -0
  253. package/dist/src/plugins/store/discovery.d.ts.map +1 -0
  254. package/dist/src/plugins/store/discovery.js +568 -0
  255. package/dist/src/plugins/store/discovery.js.map +1 -0
  256. package/dist/src/plugins/store/index.d.ts +76 -0
  257. package/dist/src/plugins/store/index.d.ts.map +1 -0
  258. package/dist/src/plugins/store/index.js +141 -0
  259. package/dist/src/plugins/store/index.js.map +1 -0
  260. package/dist/src/plugins/store/search.d.ts +46 -0
  261. package/dist/src/plugins/store/search.d.ts.map +1 -0
  262. package/dist/src/plugins/store/search.js +230 -0
  263. package/dist/src/plugins/store/search.js.map +1 -0
  264. package/dist/src/plugins/store/types.d.ts +274 -0
  265. package/dist/src/plugins/store/types.d.ts.map +1 -0
  266. package/dist/src/plugins/store/types.js +7 -0
  267. package/dist/src/plugins/store/types.js.map +1 -0
  268. package/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
  269. package/dist/src/plugins/tests/demo-plugin-store.d.ts.map +1 -0
  270. package/dist/src/plugins/tests/demo-plugin-store.js +126 -0
  271. package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -0
  272. package/dist/src/plugins/tests/standalone-test.d.ts +12 -0
  273. package/dist/src/plugins/tests/standalone-test.d.ts.map +1 -0
  274. package/dist/src/plugins/tests/standalone-test.js +188 -0
  275. package/dist/src/plugins/tests/standalone-test.js.map +1 -0
  276. package/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
  277. package/dist/src/plugins/tests/test-plugin-store.d.ts.map +1 -0
  278. package/dist/src/plugins/tests/test-plugin-store.js +206 -0
  279. package/dist/src/plugins/tests/test-plugin-store.js.map +1 -0
  280. package/dist/src/prompt.d.ts +44 -0
  281. package/dist/src/prompt.d.ts.map +1 -0
  282. package/dist/src/prompt.js +501 -0
  283. package/dist/src/prompt.js.map +1 -0
  284. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  285. package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
  286. package/dist/src/ruvector/ast-analyzer.js +277 -0
  287. package/dist/src/ruvector/ast-analyzer.js.map +1 -0
  288. package/dist/src/ruvector/coverage-router.d.ts +160 -0
  289. package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
  290. package/dist/src/ruvector/coverage-router.js +529 -0
  291. package/dist/src/ruvector/coverage-router.js.map +1 -0
  292. package/dist/src/ruvector/coverage-tools.d.ts +33 -0
  293. package/dist/src/ruvector/coverage-tools.d.ts.map +1 -0
  294. package/dist/src/ruvector/coverage-tools.js +157 -0
  295. package/dist/src/ruvector/coverage-tools.js.map +1 -0
  296. package/dist/src/ruvector/diff-classifier.d.ts +175 -0
  297. package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
  298. package/dist/src/ruvector/diff-classifier.js +698 -0
  299. package/dist/src/ruvector/diff-classifier.js.map +1 -0
  300. package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  301. package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
  302. package/dist/src/ruvector/graph-analyzer.js +929 -0
  303. package/dist/src/ruvector/graph-analyzer.js.map +1 -0
  304. package/dist/src/ruvector/index.d.ts +27 -0
  305. package/dist/src/ruvector/index.d.ts.map +1 -0
  306. package/dist/src/ruvector/index.js +53 -0
  307. package/dist/src/ruvector/index.js.map +1 -0
  308. package/dist/src/ruvector/q-learning-router.d.ts +211 -0
  309. package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
  310. package/dist/src/ruvector/q-learning-router.js +681 -0
  311. package/dist/src/ruvector/q-learning-router.js.map +1 -0
  312. package/dist/src/ruvector/vector-db.d.ts +69 -0
  313. package/dist/src/ruvector/vector-db.d.ts.map +1 -0
  314. package/dist/src/ruvector/vector-db.js +243 -0
  315. package/dist/src/ruvector/vector-db.js.map +1 -0
  316. package/dist/src/services/claim-service.d.ts +204 -0
  317. package/dist/src/services/claim-service.d.ts.map +1 -0
  318. package/dist/src/services/claim-service.js +818 -0
  319. package/dist/src/services/claim-service.js.map +1 -0
  320. package/dist/src/services/container-worker-pool.d.ts +197 -0
  321. package/dist/src/services/container-worker-pool.d.ts.map +1 -0
  322. package/dist/src/services/container-worker-pool.js +581 -0
  323. package/dist/src/services/container-worker-pool.js.map +1 -0
  324. package/dist/src/services/headless-worker-executor.d.ts +304 -0
  325. package/dist/src/services/headless-worker-executor.d.ts.map +1 -0
  326. package/dist/src/services/headless-worker-executor.js +997 -0
  327. package/dist/src/services/headless-worker-executor.js.map +1 -0
  328. package/dist/src/services/index.d.ts +13 -0
  329. package/dist/src/services/index.d.ts.map +1 -0
  330. package/dist/src/services/index.js +11 -0
  331. package/dist/src/services/index.js.map +1 -0
  332. package/dist/src/services/worker-daemon.d.ts +203 -0
  333. package/dist/src/services/worker-daemon.d.ts.map +1 -0
  334. package/dist/src/services/worker-daemon.js +745 -0
  335. package/dist/src/services/worker-daemon.js.map +1 -0
  336. package/dist/src/services/worker-queue.d.ts +194 -0
  337. package/dist/src/services/worker-queue.d.ts.map +1 -0
  338. package/dist/src/services/worker-queue.js +511 -0
  339. package/dist/src/services/worker-queue.js.map +1 -0
  340. package/dist/src/suggest.d.ts +53 -0
  341. package/dist/src/suggest.d.ts.map +1 -0
  342. package/dist/src/suggest.js +200 -0
  343. package/dist/src/suggest.js.map +1 -0
  344. package/dist/src/transfer/anonymization/index.d.ts +25 -0
  345. package/dist/src/transfer/anonymization/index.d.ts.map +1 -0
  346. package/dist/src/transfer/anonymization/index.js +175 -0
  347. package/dist/src/transfer/anonymization/index.js.map +1 -0
  348. package/dist/src/transfer/deploy-seraphine.d.ts +13 -0
  349. package/dist/src/transfer/deploy-seraphine.d.ts.map +1 -0
  350. package/dist/src/transfer/deploy-seraphine.js +205 -0
  351. package/dist/src/transfer/deploy-seraphine.js.map +1 -0
  352. package/dist/src/transfer/export.d.ts +25 -0
  353. package/dist/src/transfer/export.d.ts.map +1 -0
  354. package/dist/src/transfer/export.js +113 -0
  355. package/dist/src/transfer/export.js.map +1 -0
  356. package/dist/src/transfer/index.d.ts +12 -0
  357. package/dist/src/transfer/index.d.ts.map +1 -0
  358. package/dist/src/transfer/index.js +31 -0
  359. package/dist/src/transfer/index.js.map +1 -0
  360. package/dist/src/transfer/ipfs/client.d.ts +31 -0
  361. package/dist/src/transfer/ipfs/client.d.ts.map +1 -0
  362. package/dist/src/transfer/ipfs/client.js +74 -0
  363. package/dist/src/transfer/ipfs/client.js.map +1 -0
  364. package/dist/src/transfer/ipfs/upload.d.ts +95 -0
  365. package/dist/src/transfer/ipfs/upload.d.ts.map +1 -0
  366. package/dist/src/transfer/ipfs/upload.js +410 -0
  367. package/dist/src/transfer/ipfs/upload.js.map +1 -0
  368. package/dist/src/transfer/models/seraphine.d.ts +72 -0
  369. package/dist/src/transfer/models/seraphine.d.ts.map +1 -0
  370. package/dist/src/transfer/models/seraphine.js +373 -0
  371. package/dist/src/transfer/models/seraphine.js.map +1 -0
  372. package/dist/src/transfer/serialization/cfp.d.ts +49 -0
  373. package/dist/src/transfer/serialization/cfp.d.ts.map +1 -0
  374. package/dist/src/transfer/serialization/cfp.js +180 -0
  375. package/dist/src/transfer/serialization/cfp.js.map +1 -0
  376. package/dist/src/transfer/store/discovery.d.ts +84 -0
  377. package/dist/src/transfer/store/discovery.d.ts.map +1 -0
  378. package/dist/src/transfer/store/discovery.js +275 -0
  379. package/dist/src/transfer/store/discovery.js.map +1 -0
  380. package/dist/src/transfer/store/download.d.ts +70 -0
  381. package/dist/src/transfer/store/download.d.ts.map +1 -0
  382. package/dist/src/transfer/store/download.js +295 -0
  383. package/dist/src/transfer/store/download.js.map +1 -0
  384. package/dist/src/transfer/store/index.d.ts +84 -0
  385. package/dist/src/transfer/store/index.d.ts.map +1 -0
  386. package/dist/src/transfer/store/index.js +153 -0
  387. package/dist/src/transfer/store/index.js.map +1 -0
  388. package/dist/src/transfer/store/publish.d.ts +76 -0
  389. package/dist/src/transfer/store/publish.d.ts.map +1 -0
  390. package/dist/src/transfer/store/publish.js +262 -0
  391. package/dist/src/transfer/store/publish.js.map +1 -0
  392. package/dist/src/transfer/store/registry.d.ts +58 -0
  393. package/dist/src/transfer/store/registry.d.ts.map +1 -0
  394. package/dist/src/transfer/store/registry.js +285 -0
  395. package/dist/src/transfer/store/registry.js.map +1 -0
  396. package/dist/src/transfer/store/search.d.ts +54 -0
  397. package/dist/src/transfer/store/search.d.ts.map +1 -0
  398. package/dist/src/transfer/store/search.js +232 -0
  399. package/dist/src/transfer/store/search.js.map +1 -0
  400. package/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
  401. package/dist/src/transfer/store/tests/standalone-test.d.ts.map +1 -0
  402. package/dist/src/transfer/store/tests/standalone-test.js +190 -0
  403. package/dist/src/transfer/store/tests/standalone-test.js.map +1 -0
  404. package/dist/src/transfer/store/types.d.ts +193 -0
  405. package/dist/src/transfer/store/types.d.ts.map +1 -0
  406. package/dist/src/transfer/store/types.js +6 -0
  407. package/dist/src/transfer/store/types.js.map +1 -0
  408. package/dist/src/transfer/test-seraphine.d.ts +6 -0
  409. package/dist/src/transfer/test-seraphine.d.ts.map +1 -0
  410. package/dist/src/transfer/test-seraphine.js +105 -0
  411. package/dist/src/transfer/test-seraphine.js.map +1 -0
  412. package/dist/src/transfer/tests/test-store.d.ts +7 -0
  413. package/dist/src/transfer/tests/test-store.d.ts.map +1 -0
  414. package/dist/src/transfer/tests/test-store.js +214 -0
  415. package/dist/src/transfer/tests/test-store.js.map +1 -0
  416. package/dist/src/transfer/types.d.ts +245 -0
  417. package/dist/src/transfer/types.d.ts.map +1 -0
  418. package/dist/src/transfer/types.js +6 -0
  419. package/dist/src/transfer/types.js.map +1 -0
  420. package/dist/src/types.d.ts +198 -0
  421. package/dist/src/types.d.ts.map +1 -0
  422. package/dist/src/types.js +38 -0
  423. package/dist/src/types.js.map +1 -0
  424. package/dist/tsconfig.tsbuildinfo +1 -0
  425. package/package.json +33 -47
  426. package/dist/index.d.ts +0 -30
  427. package/dist/index.d.ts.map +0 -1
  428. package/dist/index.js +0 -30
  429. package/dist/index.js.map +0 -1
@@ -0,0 +1,501 @@
1
+ /**
2
+ * V3 CLI Interactive Prompt System
3
+ * Modern interactive prompts for user input
4
+ */
5
+ import * as readline from 'readline';
6
+ import { output } from './output.js';
7
+ // ============================================
8
+ // Core Prompt Infrastructure
9
+ // ============================================
10
+ class PromptManager {
11
+ rl = null;
12
+ formatter;
13
+ constructor(formatter = output) {
14
+ this.formatter = formatter;
15
+ }
16
+ createInterface() {
17
+ if (!this.rl) {
18
+ this.rl = readline.createInterface({
19
+ input: process.stdin,
20
+ output: process.stdout,
21
+ terminal: true
22
+ });
23
+ // Handle cleanup on exit
24
+ this.rl.on('close', () => {
25
+ this.rl = null;
26
+ });
27
+ }
28
+ return this.rl;
29
+ }
30
+ close() {
31
+ if (this.rl) {
32
+ this.rl.close();
33
+ this.rl = null;
34
+ }
35
+ }
36
+ async question(prompt) {
37
+ return new Promise((resolve) => {
38
+ const rl = this.createInterface();
39
+ rl.question(prompt, (answer) => {
40
+ resolve(answer);
41
+ });
42
+ });
43
+ }
44
+ // ============================================
45
+ // Select Prompt
46
+ // ============================================
47
+ async select(options) {
48
+ const { message, options: choices, default: defaultValue, pageSize = 10 } = options;
49
+ this.formatter.writeln();
50
+ this.formatter.writeln(this.formatter.bold(`? ${message}`));
51
+ this.formatter.writeln(this.formatter.dim(' (Use arrow keys to navigate, enter to select)'));
52
+ this.formatter.writeln();
53
+ // Find default index
54
+ let selectedIndex = 0;
55
+ if (defaultValue !== undefined) {
56
+ const idx = choices.findIndex(c => c.value === defaultValue);
57
+ if (idx !== -1)
58
+ selectedIndex = idx;
59
+ }
60
+ // Display options
61
+ const displayChoices = (currentIndex, startIndex = 0) => {
62
+ // Move cursor up to overwrite
63
+ if (startIndex > 0 || currentIndex > 0) {
64
+ process.stdout.write(`\x1b[${Math.min(choices.length, pageSize)}A`);
65
+ }
66
+ const endIndex = Math.min(startIndex + pageSize, choices.length);
67
+ for (let i = startIndex; i < endIndex; i++) {
68
+ const choice = choices[i];
69
+ const isSelected = i === currentIndex;
70
+ const prefix = isSelected ? this.formatter.info('>') : ' ';
71
+ const label = isSelected
72
+ ? this.formatter.highlight(choice.label)
73
+ : choice.label;
74
+ const hint = choice.hint ? this.formatter.dim(` - ${choice.hint}`) : '';
75
+ const disabled = choice.disabled ? this.formatter.dim(' (disabled)') : '';
76
+ this.formatter.writeln(` ${prefix} ${label}${hint}${disabled}`);
77
+ }
78
+ };
79
+ // Initial display
80
+ displayChoices(selectedIndex);
81
+ return new Promise((resolve, reject) => {
82
+ const rl = this.createInterface();
83
+ // Enable raw mode for arrow key detection
84
+ if (process.stdin.isTTY) {
85
+ process.stdin.setRawMode(true);
86
+ }
87
+ process.stdin.resume();
88
+ const handleKeypress = (key) => {
89
+ const keyStr = key.toString();
90
+ // Arrow keys
91
+ if (keyStr === '\x1b[A') { // Up
92
+ do {
93
+ selectedIndex = (selectedIndex - 1 + choices.length) % choices.length;
94
+ } while (choices[selectedIndex].disabled && selectedIndex !== 0);
95
+ displayChoices(selectedIndex);
96
+ }
97
+ else if (keyStr === '\x1b[B') { // Down
98
+ do {
99
+ selectedIndex = (selectedIndex + 1) % choices.length;
100
+ } while (choices[selectedIndex].disabled && selectedIndex !== choices.length - 1);
101
+ displayChoices(selectedIndex);
102
+ }
103
+ else if (keyStr === '\r' || keyStr === '\n') { // Enter
104
+ cleanup();
105
+ const selected = choices[selectedIndex];
106
+ if (!selected.disabled) {
107
+ this.formatter.writeln();
108
+ this.formatter.writeln(this.formatter.success(`Selected: ${selected.label}`));
109
+ resolve(selected.value);
110
+ }
111
+ }
112
+ else if (keyStr === '\x03') { // Ctrl+C
113
+ cleanup();
114
+ reject(new Error('User cancelled'));
115
+ }
116
+ };
117
+ const cleanup = () => {
118
+ process.stdin.removeListener('data', handleKeypress);
119
+ if (process.stdin.isTTY) {
120
+ process.stdin.setRawMode(false);
121
+ }
122
+ this.close();
123
+ };
124
+ process.stdin.on('data', handleKeypress);
125
+ });
126
+ }
127
+ // ============================================
128
+ // Confirm Prompt
129
+ // ============================================
130
+ async confirm(options) {
131
+ const { message, default: defaultValue = false, active = 'Yes', inactive = 'No' } = options;
132
+ const defaultText = defaultValue ? `${active}/${inactive}` : `${active}/${inactive}`;
133
+ const hint = defaultValue ? `[${active}]` : `[${inactive}]`;
134
+ const prompt = `${this.formatter.bold('?')} ${message} ${this.formatter.dim(hint)} `;
135
+ const answer = await this.question(prompt);
136
+ this.close();
137
+ if (answer === '') {
138
+ return defaultValue;
139
+ }
140
+ const normalized = answer.toLowerCase().trim();
141
+ if (['y', 'yes', 'true', '1'].includes(normalized)) {
142
+ return true;
143
+ }
144
+ if (['n', 'no', 'false', '0'].includes(normalized)) {
145
+ return false;
146
+ }
147
+ return defaultValue;
148
+ }
149
+ // ============================================
150
+ // Input Prompt
151
+ // ============================================
152
+ async input(options) {
153
+ const { message, default: defaultValue, placeholder, validate, mask } = options;
154
+ let prompt = `${this.formatter.bold('?')} ${message}`;
155
+ if (defaultValue) {
156
+ prompt += ` ${this.formatter.dim(`(${defaultValue})`)}`;
157
+ }
158
+ else if (placeholder) {
159
+ prompt += ` ${this.formatter.dim(placeholder)}`;
160
+ }
161
+ prompt += ': ';
162
+ while (true) {
163
+ let answer;
164
+ if (mask) {
165
+ answer = await this.inputMasked(prompt);
166
+ }
167
+ else {
168
+ answer = await this.question(prompt);
169
+ }
170
+ // Use default if empty
171
+ if (answer === '' && defaultValue !== undefined) {
172
+ answer = defaultValue;
173
+ }
174
+ // Validate
175
+ if (validate) {
176
+ const result = validate(answer);
177
+ if (result !== true) {
178
+ const errorMsg = typeof result === 'string' ? result : 'Invalid input';
179
+ this.formatter.writeln(this.formatter.error(` ${errorMsg}`));
180
+ continue;
181
+ }
182
+ }
183
+ this.close();
184
+ return answer;
185
+ }
186
+ }
187
+ async inputMasked(prompt) {
188
+ return new Promise((resolve) => {
189
+ const rl = this.createInterface();
190
+ let password = '';
191
+ // Don't echo characters
192
+ process.stdout.write(prompt);
193
+ if (process.stdin.isTTY) {
194
+ process.stdin.setRawMode(true);
195
+ }
196
+ process.stdin.resume();
197
+ const handleData = (chunk) => {
198
+ const char = chunk.toString();
199
+ if (char === '\n' || char === '\r') {
200
+ // Enter pressed
201
+ process.stdin.removeListener('data', handleData);
202
+ if (process.stdin.isTTY) {
203
+ process.stdin.setRawMode(false);
204
+ }
205
+ process.stdout.write('\n');
206
+ resolve(password);
207
+ }
208
+ else if (char === '\x7f' || char === '\x08') {
209
+ // Backspace
210
+ if (password.length > 0) {
211
+ password = password.slice(0, -1);
212
+ process.stdout.write('\b \b');
213
+ }
214
+ }
215
+ else if (char === '\x03') {
216
+ // Ctrl+C
217
+ process.stdin.removeListener('data', handleData);
218
+ if (process.stdin.isTTY) {
219
+ process.stdin.setRawMode(false);
220
+ }
221
+ resolve('');
222
+ }
223
+ else if (char.charCodeAt(0) >= 32) {
224
+ // Printable character
225
+ password += char;
226
+ process.stdout.write('*');
227
+ }
228
+ };
229
+ process.stdin.on('data', handleData);
230
+ });
231
+ }
232
+ // ============================================
233
+ // Multi-Select Prompt
234
+ // ============================================
235
+ async multiSelect(options) {
236
+ const { message, options: choices, default: defaultValues = [], required = false, min, max } = options;
237
+ this.formatter.writeln();
238
+ this.formatter.writeln(this.formatter.bold(`? ${message}`));
239
+ this.formatter.writeln(this.formatter.dim(' (Use arrow keys to navigate, space to select, enter to confirm)'));
240
+ this.formatter.writeln();
241
+ // Initialize selection state
242
+ const selected = new Set();
243
+ for (let i = 0; i < choices.length; i++) {
244
+ // Check both default array and individual selected property
245
+ if (defaultValues.includes(choices[i].value) || choices[i].selected) {
246
+ selected.add(i);
247
+ }
248
+ }
249
+ let currentIndex = 0;
250
+ // Display options
251
+ const displayChoices = () => {
252
+ // Move cursor up to overwrite
253
+ process.stdout.write(`\x1b[${choices.length}A`);
254
+ for (let i = 0; i < choices.length; i++) {
255
+ const choice = choices[i];
256
+ const isCurrentRow = i === currentIndex;
257
+ const isSelected = selected.has(i);
258
+ const cursor = isCurrentRow ? this.formatter.info('>') : ' ';
259
+ const checkbox = isSelected
260
+ ? this.formatter.success('[x]')
261
+ : this.formatter.dim('[ ]');
262
+ const label = isCurrentRow
263
+ ? this.formatter.highlight(choice.label)
264
+ : choice.label;
265
+ const hint = choice.hint ? this.formatter.dim(` - ${choice.hint}`) : '';
266
+ const disabled = choice.disabled ? this.formatter.dim(' (disabled)') : '';
267
+ this.formatter.writeln(` ${cursor} ${checkbox} ${label}${hint}${disabled}`);
268
+ }
269
+ };
270
+ // Initial display
271
+ for (let i = 0; i < choices.length; i++) {
272
+ this.formatter.writeln('');
273
+ }
274
+ displayChoices();
275
+ return new Promise((resolve, reject) => {
276
+ const rl = this.createInterface();
277
+ if (process.stdin.isTTY) {
278
+ process.stdin.setRawMode(true);
279
+ }
280
+ process.stdin.resume();
281
+ const handleKeypress = (key) => {
282
+ const keyStr = key.toString();
283
+ if (keyStr === '\x1b[A') { // Up
284
+ currentIndex = (currentIndex - 1 + choices.length) % choices.length;
285
+ displayChoices();
286
+ }
287
+ else if (keyStr === '\x1b[B') { // Down
288
+ currentIndex = (currentIndex + 1) % choices.length;
289
+ displayChoices();
290
+ }
291
+ else if (keyStr === ' ') { // Space
292
+ if (!choices[currentIndex].disabled) {
293
+ if (selected.has(currentIndex)) {
294
+ selected.delete(currentIndex);
295
+ }
296
+ else {
297
+ // Check max limit
298
+ if (!max || selected.size < max) {
299
+ selected.add(currentIndex);
300
+ }
301
+ }
302
+ displayChoices();
303
+ }
304
+ }
305
+ else if (keyStr === '\r' || keyStr === '\n') { // Enter
306
+ // Validate selection
307
+ if (required && selected.size === 0) {
308
+ this.formatter.writeln(this.formatter.error(' At least one option must be selected'));
309
+ return;
310
+ }
311
+ if (min && selected.size < min) {
312
+ this.formatter.writeln(this.formatter.error(` At least ${min} options must be selected`));
313
+ return;
314
+ }
315
+ cleanup();
316
+ const selectedValues = Array.from(selected).map(i => choices[i].value);
317
+ const selectedLabels = Array.from(selected).map(i => choices[i].label);
318
+ this.formatter.writeln();
319
+ this.formatter.writeln(this.formatter.success(`Selected: ${selectedLabels.join(', ')}`));
320
+ resolve(selectedValues);
321
+ }
322
+ else if (keyStr === '\x03') { // Ctrl+C
323
+ cleanup();
324
+ reject(new Error('User cancelled'));
325
+ }
326
+ else if (keyStr === 'a') { // Select all
327
+ if (!max || choices.length <= max) {
328
+ for (let i = 0; i < choices.length; i++) {
329
+ if (!choices[i].disabled) {
330
+ selected.add(i);
331
+ }
332
+ }
333
+ displayChoices();
334
+ }
335
+ }
336
+ else if (keyStr === 'n') { // Select none
337
+ selected.clear();
338
+ displayChoices();
339
+ }
340
+ };
341
+ const cleanup = () => {
342
+ process.stdin.removeListener('data', handleKeypress);
343
+ if (process.stdin.isTTY) {
344
+ process.stdin.setRawMode(false);
345
+ }
346
+ this.close();
347
+ };
348
+ process.stdin.on('data', handleKeypress);
349
+ });
350
+ }
351
+ // ============================================
352
+ // Text Prompt (Multi-line)
353
+ // ============================================
354
+ async text(message, placeholder) {
355
+ this.formatter.writeln();
356
+ this.formatter.writeln(this.formatter.bold(`? ${message}`));
357
+ if (placeholder) {
358
+ this.formatter.writeln(this.formatter.dim(` ${placeholder}`));
359
+ }
360
+ this.formatter.writeln(this.formatter.dim(' (Enter an empty line to finish)'));
361
+ this.formatter.writeln();
362
+ const lines = [];
363
+ while (true) {
364
+ const line = await this.question(' > ');
365
+ if (line === '') {
366
+ break;
367
+ }
368
+ lines.push(line);
369
+ }
370
+ this.close();
371
+ return lines.join('\n');
372
+ }
373
+ // ============================================
374
+ // Number Prompt
375
+ // ============================================
376
+ async number(message, options = {}) {
377
+ const { default: defaultValue, min, max } = options;
378
+ const validate = (value) => {
379
+ const num = Number(value);
380
+ if (isNaN(num)) {
381
+ return 'Please enter a valid number';
382
+ }
383
+ if (min !== undefined && num < min) {
384
+ return `Value must be at least ${min}`;
385
+ }
386
+ if (max !== undefined && num > max) {
387
+ return `Value must be at most ${max}`;
388
+ }
389
+ return true;
390
+ };
391
+ const result = await this.input({
392
+ message,
393
+ default: defaultValue?.toString(),
394
+ validate
395
+ });
396
+ return Number(result);
397
+ }
398
+ // ============================================
399
+ // Autocomplete Prompt
400
+ // ============================================
401
+ async autocomplete(message, choices, options = {}) {
402
+ const { limit = 10 } = options;
403
+ this.formatter.writeln();
404
+ this.formatter.writeln(this.formatter.bold(`? ${message}`));
405
+ this.formatter.writeln(this.formatter.dim(' (Type to filter, arrow keys to navigate)'));
406
+ let query = '';
407
+ let selectedIndex = 0;
408
+ let filteredChoices = choices.slice(0, limit);
409
+ const filterChoices = (q) => {
410
+ if (q === '')
411
+ return choices.slice(0, limit);
412
+ const normalized = q.toLowerCase();
413
+ return choices
414
+ .filter(c => c.label.toLowerCase().includes(normalized))
415
+ .slice(0, limit);
416
+ };
417
+ const displayChoices = () => {
418
+ // Clear previous output
419
+ process.stdout.write(`\x1b[${filteredChoices.length + 1}A`);
420
+ process.stdout.write('\x1b[J');
421
+ // Show input
422
+ this.formatter.writeln(` ${this.formatter.dim('>')} ${query}`);
423
+ // Show filtered options
424
+ for (let i = 0; i < filteredChoices.length; i++) {
425
+ const choice = filteredChoices[i];
426
+ const isSelected = i === selectedIndex;
427
+ const prefix = isSelected ? this.formatter.info('>') : ' ';
428
+ const label = isSelected ? this.formatter.highlight(choice.label) : choice.label;
429
+ this.formatter.writeln(` ${prefix} ${label}`);
430
+ }
431
+ };
432
+ // Initial display
433
+ this.formatter.writeln('');
434
+ for (let i = 0; i < limit; i++) {
435
+ this.formatter.writeln('');
436
+ }
437
+ displayChoices();
438
+ return new Promise((resolve, reject) => {
439
+ const rl = this.createInterface();
440
+ if (process.stdin.isTTY) {
441
+ process.stdin.setRawMode(true);
442
+ }
443
+ process.stdin.resume();
444
+ const handleKeypress = (key) => {
445
+ const keyStr = key.toString();
446
+ if (keyStr === '\x1b[A') { // Up
447
+ selectedIndex = Math.max(0, selectedIndex - 1);
448
+ displayChoices();
449
+ }
450
+ else if (keyStr === '\x1b[B') { // Down
451
+ selectedIndex = Math.min(filteredChoices.length - 1, selectedIndex + 1);
452
+ displayChoices();
453
+ }
454
+ else if (keyStr === '\r' || keyStr === '\n') { // Enter
455
+ if (filteredChoices.length > 0) {
456
+ cleanup();
457
+ const selected = filteredChoices[selectedIndex];
458
+ this.formatter.writeln();
459
+ this.formatter.writeln(this.formatter.success(`Selected: ${selected.label}`));
460
+ resolve(selected.value);
461
+ }
462
+ }
463
+ else if (keyStr === '\x7f' || keyStr === '\x08') { // Backspace
464
+ query = query.slice(0, -1);
465
+ filteredChoices = filterChoices(query);
466
+ selectedIndex = 0;
467
+ displayChoices();
468
+ }
469
+ else if (keyStr === '\x03') { // Ctrl+C
470
+ cleanup();
471
+ reject(new Error('User cancelled'));
472
+ }
473
+ else if (keyStr.charCodeAt(0) >= 32 && keyStr.charCodeAt(0) < 127) {
474
+ // Printable character
475
+ query += keyStr;
476
+ filteredChoices = filterChoices(query);
477
+ selectedIndex = 0;
478
+ displayChoices();
479
+ }
480
+ };
481
+ const cleanup = () => {
482
+ process.stdin.removeListener('data', handleKeypress);
483
+ if (process.stdin.isTTY) {
484
+ process.stdin.setRawMode(false);
485
+ }
486
+ this.close();
487
+ };
488
+ process.stdin.on('data', handleKeypress);
489
+ });
490
+ }
491
+ }
492
+ // Export singleton and convenience functions
493
+ export const promptManager = new PromptManager();
494
+ export const select = (options) => promptManager.select(options);
495
+ export const confirm = (options) => promptManager.confirm(options);
496
+ export const input = (options) => promptManager.input(options);
497
+ export const multiSelect = (options) => promptManager.multiSelect(options);
498
+ export const text = (message, placeholder) => promptManager.text(message, placeholder);
499
+ export const number = (message, options) => promptManager.number(message, options);
500
+ export const autocomplete = (message, choices, options) => promptManager.autocomplete(message, choices, options);
501
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * AST Analyzer for Code Analysis
3
+ *
4
+ * Analyzes Abstract Syntax Trees for code understanding
5
+ * and intelligent routing decisions.
6
+ *
7
+ * @module ast-analyzer
8
+ */
9
+ export interface ASTAnalyzerConfig {
10
+ maxFileSize: number;
11
+ languages: string[];
12
+ includeComments: boolean;
13
+ extractTypes: boolean;
14
+ maxDepth: number;
15
+ }
16
+ export interface ASTNode {
17
+ type: string;
18
+ name: string;
19
+ startLine: number;
20
+ endLine: number;
21
+ children: ASTNode[];
22
+ metadata?: Record<string, unknown>;
23
+ }
24
+ export interface ASTAnalysis {
25
+ filePath: string;
26
+ language: string;
27
+ root: ASTNode;
28
+ functions: ASTNode[];
29
+ classes: ASTNode[];
30
+ imports: string[];
31
+ exports: string[];
32
+ complexity: {
33
+ cyclomatic: number;
34
+ cognitive: number;
35
+ loc: number;
36
+ commentDensity: number;
37
+ };
38
+ timestamp: number;
39
+ durationMs: number;
40
+ }
41
+ export declare class ASTAnalyzer {
42
+ private config;
43
+ private ruvectorEngine;
44
+ private useNative;
45
+ private analysisCache;
46
+ constructor(config?: Partial<ASTAnalyzerConfig>);
47
+ initialize(): Promise<void>;
48
+ analyze(code: string, filePath?: string): ASTAnalysis;
49
+ getFunctionAtLine(analysis: ASTAnalysis, line: number): ASTNode | null;
50
+ getClassAtLine(analysis: ASTAnalysis, line: number): ASTNode | null;
51
+ getSymbols(analysis: ASTAnalysis): string[];
52
+ getStats(): Record<string, number>;
53
+ clearCache(): void;
54
+ private getCacheKey;
55
+ private detectLanguage;
56
+ private parseAST;
57
+ private matchFunction;
58
+ private matchClass;
59
+ private findBlockEnd;
60
+ private extractFunctions;
61
+ private extractClasses;
62
+ private extractImports;
63
+ private extractExports;
64
+ private calculateComplexity;
65
+ }
66
+ export declare function createASTAnalyzer(config?: Partial<ASTAnalyzerConfig>): ASTAnalyzer;
67
+ //# sourceMappingURL=ast-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-analyzer.d.ts","sourceRoot":"","sources":["../../../src/ruvector/ast-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAkBD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAuC;gBAEhD,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAI7C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkB,GAAG,WAAW;IAwBhE,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAOtE,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAOnE,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,EAAE;IAO3C,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIlC,UAAU,IAAI,IAAI;IAElB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,QAAQ;IA6BhB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,mBAAmB;CAoB5B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAElF"}