kynjal-cli 3.1.3 → 4.0.0

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 (566) hide show
  1. package/.claude/agents/core/coder.md +1 -1
  2. package/.claude/agents/core/planner.md +2 -2
  3. package/.claude/agents/core/researcher.md +1 -1
  4. package/.claude/agents/core/reviewer.md +1 -1
  5. package/.claude/agents/core/tester.md +1 -1
  6. package/.claude/agents/data/data-ml-model.md +4 -4
  7. package/.claude/agents/development/dev-backend-api.md +4 -4
  8. package/.claude/agents/documentation/docs-api-openapi.md +4 -4
  9. package/.claude/agents/github/code-review-swarm.md +2 -2
  10. package/.claude/agents/github/issue-tracker.md +2 -2
  11. package/.claude/agents/github/pr-manager.md +2 -2
  12. package/.claude/agents/github/release-manager.md +2 -2
  13. package/.claude/agents/github/workflow-automation.md +2 -2
  14. package/.claude/agents/sparc/architecture.md +3 -3
  15. package/.claude/agents/sparc/pseudocode.md +2 -2
  16. package/.claude/agents/sparc/refinement.md +3 -3
  17. package/.claude/agents/sparc/specification.md +2 -2
  18. package/.claude/agents/swarm/adaptive-coordinator.md +1 -1
  19. package/.claude/agents/swarm/hierarchical-coordinator.md +1 -1
  20. package/.claude/agents/swarm/mesh-coordinator.md +1 -1
  21. package/.claude/agents/templates/base-template-generator.md +25 -4
  22. package/.claude/agents/templates/sparc-coordinator.md +3 -3
  23. package/.claude/helpers/auto-commit.sh +1 -1
  24. package/.claude/helpers/auto-memory-hook.mjs +27 -9
  25. package/.claude/helpers/hook-handler.cjs +58 -18
  26. package/.claude/helpers/statusline.cjs +14 -33
  27. package/.claude/helpers/statusline.js +3 -3
  28. package/.claude/settings.json +9 -9
  29. package/.claude/skills/reasoningbank-intelligence/SKILL.md +2 -2
  30. package/.claude/skills/swarm-orchestration/SKILL.md +1 -1
  31. package/README.md +383 -170
  32. package/bin/cli.js +6 -6
  33. package/bin/mcp-server.js +1 -1
  34. package/bin/preinstall.cjs +2 -0
  35. package/dist/src/appliance/gguf-engine.js +664 -0
  36. package/dist/src/appliance/gguf-engine.js.map +1 -0
  37. package/dist/src/appliance/ruvllm-bridge.js +492 -0
  38. package/dist/src/appliance/ruvllm-bridge.js.map +1 -0
  39. package/dist/src/appliance/rvfa-builder.js +383 -0
  40. package/dist/src/appliance/rvfa-builder.js.map +1 -0
  41. package/dist/src/appliance/rvfa-distribution.js +533 -0
  42. package/dist/src/appliance/rvfa-distribution.js.map +1 -0
  43. package/dist/src/appliance/rvfa-format.js +465 -0
  44. package/dist/src/appliance/rvfa-format.js.map +1 -0
  45. package/dist/src/appliance/rvfa-runner.js +373 -0
  46. package/dist/src/appliance/rvfa-runner.js.map +1 -0
  47. package/dist/src/appliance/rvfa-signing.js +469 -0
  48. package/dist/src/appliance/rvfa-signing.js.map +1 -0
  49. package/dist/src/benchmarks/pretrain/index.js +542 -331
  50. package/dist/src/benchmarks/pretrain/index.js.map +1 -1
  51. package/dist/src/commands/agent.d.ts.map +1 -1
  52. package/dist/src/commands/agent.js +725 -502
  53. package/dist/src/commands/agent.js.map +1 -1
  54. package/dist/src/commands/analyze.js +1548 -1218
  55. package/dist/src/commands/analyze.js.map +1 -1
  56. package/dist/src/commands/appliance-advanced.d.ts +9 -0
  57. package/dist/src/commands/appliance-advanced.d.ts.map +1 -0
  58. package/dist/src/commands/appliance-advanced.js +324 -0
  59. package/dist/src/commands/appliance-advanced.js.map +1 -0
  60. package/dist/src/commands/appliance.d.ts +8 -0
  61. package/dist/src/commands/appliance.d.ts.map +1 -0
  62. package/dist/src/commands/appliance.js +581 -0
  63. package/dist/src/commands/appliance.js.map +1 -0
  64. package/dist/src/commands/benchmark.js +523 -372
  65. package/dist/src/commands/benchmark.js.map +1 -1
  66. package/dist/src/commands/claims.js +364 -274
  67. package/dist/src/commands/claims.js.map +1 -1
  68. package/dist/src/commands/cleanup.d.ts +13 -0
  69. package/dist/src/commands/cleanup.d.ts.map +1 -0
  70. package/dist/src/commands/cleanup.js +262 -0
  71. package/dist/src/commands/cleanup.js.map +1 -0
  72. package/dist/src/commands/completions.js +118 -477
  73. package/dist/src/commands/completions.js.map +1 -1
  74. package/dist/src/commands/config.js +303 -237
  75. package/dist/src/commands/config.js.map +1 -1
  76. package/dist/src/commands/daemon.d.ts.map +1 -1
  77. package/dist/src/commands/daemon.js +597 -425
  78. package/dist/src/commands/daemon.js.map +1 -1
  79. package/dist/src/commands/deployment.js +275 -194
  80. package/dist/src/commands/deployment.js.map +1 -1
  81. package/dist/src/commands/doctor.d.ts.map +1 -1
  82. package/dist/src/commands/doctor.js +690 -460
  83. package/dist/src/commands/doctor.js.map +1 -1
  84. package/dist/src/commands/embeddings.js +1543 -1293
  85. package/dist/src/commands/embeddings.js.map +1 -1
  86. package/dist/src/commands/guidance.js +596 -449
  87. package/dist/src/commands/guidance.js.map +1 -1
  88. package/dist/src/commands/hive-mind.js +938 -854
  89. package/dist/src/commands/hive-mind.js.map +1 -1
  90. package/dist/src/commands/hooks.d.ts.map +1 -1
  91. package/dist/src/commands/hooks.js +3677 -2570
  92. package/dist/src/commands/hooks.js.map +1 -1
  93. package/dist/src/commands/index.js +322 -122
  94. package/dist/src/commands/index.js.map +1 -1
  95. package/dist/src/commands/init.d.ts +1 -1
  96. package/dist/src/commands/init.d.ts.map +1 -1
  97. package/dist/src/commands/init.js +943 -787
  98. package/dist/src/commands/init.js.map +1 -1
  99. package/dist/src/commands/issues.js +558 -383
  100. package/dist/src/commands/issues.js.map +1 -1
  101. package/dist/src/commands/mcp.d.ts.map +1 -1
  102. package/dist/src/commands/mcp.js +605 -475
  103. package/dist/src/commands/mcp.js.map +1 -1
  104. package/dist/src/commands/memory.d.ts.map +1 -1
  105. package/dist/src/commands/memory.js +1031 -814
  106. package/dist/src/commands/memory.js.map +1 -1
  107. package/dist/src/commands/migrate.js +347 -282
  108. package/dist/src/commands/migrate.js.map +1 -1
  109. package/dist/src/commands/neural.d.ts.map +1 -1
  110. package/dist/src/commands/neural.js +1563 -1283
  111. package/dist/src/commands/neural.js.map +1 -1
  112. package/dist/src/commands/performance.js +643 -497
  113. package/dist/src/commands/performance.js.map +1 -1
  114. package/dist/src/commands/plugins.js +841 -668
  115. package/dist/src/commands/plugins.js.map +1 -1
  116. package/dist/src/commands/process.js +447 -392
  117. package/dist/src/commands/process.js.map +1 -1
  118. package/dist/src/commands/progress.js +256 -162
  119. package/dist/src/commands/progress.js.map +1 -1
  120. package/dist/src/commands/providers.js +220 -150
  121. package/dist/src/commands/providers.js.map +1 -1
  122. package/dist/src/commands/route.js +665 -520
  123. package/dist/src/commands/route.js.map +1 -1
  124. package/dist/src/commands/ruvector/backup.js +651 -505
  125. package/dist/src/commands/ruvector/backup.js.map +1 -1
  126. package/dist/src/commands/ruvector/benchmark.js +401 -349
  127. package/dist/src/commands/ruvector/benchmark.js.map +1 -1
  128. package/dist/src/commands/ruvector/import.js +267 -225
  129. package/dist/src/commands/ruvector/import.js.map +1 -1
  130. package/dist/src/commands/ruvector/index.js +75 -37
  131. package/dist/src/commands/ruvector/index.js.map +1 -1
  132. package/dist/src/commands/ruvector/init.js +359 -336
  133. package/dist/src/commands/ruvector/init.js.map +1 -1
  134. package/dist/src/commands/ruvector/migrate.js +322 -335
  135. package/dist/src/commands/ruvector/migrate.js.map +1 -1
  136. package/dist/src/commands/ruvector/optimize.js +431 -375
  137. package/dist/src/commands/ruvector/optimize.js.map +1 -1
  138. package/dist/src/commands/ruvector/setup.js +117 -703
  139. package/dist/src/commands/ruvector/setup.js.map +1 -1
  140. package/dist/src/commands/ruvector/status.js +419 -364
  141. package/dist/src/commands/ruvector/status.js.map +1 -1
  142. package/dist/src/commands/security.d.ts.map +1 -1
  143. package/dist/src/commands/security.js +610 -456
  144. package/dist/src/commands/security.js.map +1 -1
  145. package/dist/src/commands/session.d.ts +1 -1
  146. package/dist/src/commands/session.js +627 -505
  147. package/dist/src/commands/session.js.map +1 -1
  148. package/dist/src/commands/start.d.ts +1 -1
  149. package/dist/src/commands/start.js +368 -271
  150. package/dist/src/commands/start.js.map +1 -1
  151. package/dist/src/commands/status.d.ts +1 -1
  152. package/dist/src/commands/status.d.ts.map +1 -1
  153. package/dist/src/commands/status.js +492 -379
  154. package/dist/src/commands/status.js.map +1 -1
  155. package/dist/src/commands/swarm.js +488 -408
  156. package/dist/src/commands/swarm.js.map +1 -1
  157. package/dist/src/commands/task.d.ts +1 -1
  158. package/dist/src/commands/task.js +539 -424
  159. package/dist/src/commands/task.js.map +1 -1
  160. package/dist/src/commands/transfer-store.js +412 -322
  161. package/dist/src/commands/transfer-store.js.map +1 -1
  162. package/dist/src/commands/update.js +291 -196
  163. package/dist/src/commands/update.js.map +1 -1
  164. package/dist/src/commands/workflow.js +486 -386
  165. package/dist/src/commands/workflow.js.map +1 -1
  166. package/dist/src/config-adapter.js +40 -39
  167. package/dist/src/config-adapter.js.map +1 -1
  168. package/dist/src/index.js +416 -312
  169. package/dist/src/index.js.map +1 -1
  170. package/dist/src/infrastructure/in-memory-repositories.js +507 -246
  171. package/dist/src/infrastructure/in-memory-repositories.js.map +1 -1
  172. package/dist/src/init/claudemd-generator.js +78 -368
  173. package/dist/src/init/claudemd-generator.js.map +1 -1
  174. package/dist/src/init/executor.js +1019 -1345
  175. package/dist/src/init/executor.js.map +1 -1
  176. package/dist/src/init/helpers-generator.js +60 -635
  177. package/dist/src/init/helpers-generator.js.map +1 -1
  178. package/dist/src/init/index.d.ts +1 -1
  179. package/dist/src/init/index.d.ts.map +1 -1
  180. package/dist/src/init/index.js +1 -1
  181. package/dist/src/init/index.js.map +1 -1
  182. package/dist/src/init/mcp-generator.d.ts +0 -1
  183. package/dist/src/init/mcp-generator.d.ts.map +1 -1
  184. package/dist/src/init/mcp-generator.js +62 -42
  185. package/dist/src/init/mcp-generator.js.map +1 -1
  186. package/dist/src/init/settings-generator.d.ts.map +1 -1
  187. package/dist/src/init/settings-generator.js +167 -100
  188. package/dist/src/init/settings-generator.js.map +1 -1
  189. package/dist/src/init/statusline-generator.d.ts +16 -8
  190. package/dist/src/init/statusline-generator.d.ts.map +1 -1
  191. package/dist/src/init/statusline-generator.js +20 -1300
  192. package/dist/src/init/statusline-generator.js.map +1 -1
  193. package/dist/src/init/types.d.ts +15 -5
  194. package/dist/src/init/types.d.ts.map +1 -1
  195. package/dist/src/init/types.js +66 -76
  196. package/dist/src/init/types.js.map +1 -1
  197. package/dist/src/mcp-client.js +130 -76
  198. package/dist/src/mcp-client.js.map +1 -1
  199. package/dist/src/mcp-server.js +758 -445
  200. package/dist/src/mcp-server.js.map +1 -1
  201. package/dist/src/mcp-tools/agent-tools.js +492 -391
  202. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  203. package/dist/src/mcp-tools/agentdb-tools.d.ts +30 -0
  204. package/dist/src/mcp-tools/agentdb-tools.d.ts.map +1 -0
  205. package/dist/src/mcp-tools/agentdb-tools.js +758 -0
  206. package/dist/src/mcp-tools/agentdb-tools.js.map +1 -0
  207. package/dist/src/mcp-tools/analyze-tools.js +236 -172
  208. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  209. package/dist/src/mcp-tools/auto-install.js +142 -80
  210. package/dist/src/mcp-tools/auto-install.js.map +1 -1
  211. package/dist/src/mcp-tools/browser-tools.js +375 -252
  212. package/dist/src/mcp-tools/browser-tools.js.map +1 -1
  213. package/dist/src/mcp-tools/claims-tools.js +565 -473
  214. package/dist/src/mcp-tools/claims-tools.js.map +1 -1
  215. package/dist/src/mcp-tools/config-tools.d.ts.map +1 -1
  216. package/dist/src/mcp-tools/config-tools.js +284 -190
  217. package/dist/src/mcp-tools/config-tools.js.map +1 -1
  218. package/dist/src/mcp-tools/coordination-tools.d.ts.map +1 -1
  219. package/dist/src/mcp-tools/coordination-tools.js +600 -349
  220. package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
  221. package/dist/src/mcp-tools/daa-tools.js +367 -289
  222. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  223. package/dist/src/mcp-tools/embeddings-tools.js +693 -582
  224. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  225. package/dist/src/mcp-tools/github-tools.js +312 -261
  226. package/dist/src/mcp-tools/github-tools.js.map +1 -1
  227. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -1
  228. package/dist/src/mcp-tools/hive-mind-tools.js +718 -423
  229. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  230. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  231. package/dist/src/mcp-tools/hooks-tools.js +2726 -1978
  232. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  233. package/dist/src/mcp-tools/index.d.ts +2 -0
  234. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  235. package/dist/src/mcp-tools/index.js +2 -0
  236. package/dist/src/mcp-tools/index.js.map +1 -1
  237. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  238. package/dist/src/mcp-tools/memory-tools.js +514 -329
  239. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  240. package/dist/src/mcp-tools/neural-tools.d.ts.map +1 -1
  241. package/dist/src/mcp-tools/neural-tools.js +428 -326
  242. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  243. package/dist/src/mcp-tools/performance-tools.js +480 -420
  244. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  245. package/dist/src/mcp-tools/progress-tools.js +278 -204
  246. package/dist/src/mcp-tools/progress-tools.js.map +1 -1
  247. package/dist/src/mcp-tools/ruvllm-tools.d.ts +9 -0
  248. package/dist/src/mcp-tools/ruvllm-tools.d.ts.map +1 -0
  249. package/dist/src/mcp-tools/ruvllm-tools.js +399 -0
  250. package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -0
  251. package/dist/src/mcp-tools/security-tools.js +429 -297
  252. package/dist/src/mcp-tools/security-tools.js.map +1 -1
  253. package/dist/src/mcp-tools/session-tools.js +234 -185
  254. package/dist/src/mcp-tools/session-tools.js.map +1 -1
  255. package/dist/src/mcp-tools/swarm-tools.d.ts +2 -1
  256. package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -1
  257. package/dist/src/mcp-tools/swarm-tools.js +303 -64
  258. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  259. package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
  260. package/dist/src/mcp-tools/system-tools.js +352 -200
  261. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  262. package/dist/src/mcp-tools/task-tools.d.ts.map +1 -1
  263. package/dist/src/mcp-tools/task-tools.js +357 -189
  264. package/dist/src/mcp-tools/task-tools.js.map +1 -1
  265. package/dist/src/mcp-tools/terminal-tools.js +196 -148
  266. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  267. package/dist/src/mcp-tools/transfer-tools.js +333 -186
  268. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  269. package/dist/src/mcp-tools/wasm-agent-tools.d.ts +9 -0
  270. package/dist/src/mcp-tools/wasm-agent-tools.d.ts.map +1 -0
  271. package/dist/src/mcp-tools/wasm-agent-tools.js +377 -0
  272. package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -0
  273. package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -1
  274. package/dist/src/mcp-tools/workflow-tools.js +471 -335
  275. package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
  276. package/dist/src/memory/ewc-consolidation.js +345 -173
  277. package/dist/src/memory/ewc-consolidation.js.map +1 -1
  278. package/dist/src/memory/intelligence.js +841 -359
  279. package/dist/src/memory/intelligence.js.map +1 -1
  280. package/dist/src/memory/memory-bridge.js +1964 -0
  281. package/dist/src/memory/memory-bridge.js.map +1 -0
  282. package/dist/src/memory/memory-initializer.js +1895 -1602
  283. package/dist/src/memory/memory-initializer.js.map +1 -1
  284. package/dist/src/memory/sona-optimizer.js +329 -199
  285. package/dist/src/memory/sona-optimizer.js.map +1 -1
  286. package/dist/src/output.d.ts +2 -2
  287. package/dist/src/output.d.ts.map +1 -1
  288. package/dist/src/output.js +273 -242
  289. package/dist/src/output.js.map +1 -1
  290. package/dist/src/parser.js +217 -124
  291. package/dist/src/parser.js.map +1 -1
  292. package/dist/src/plugins/manager.js +531 -278
  293. package/dist/src/plugins/manager.js.map +1 -1
  294. package/dist/src/plugins/store/discovery.js +362 -275
  295. package/dist/src/plugins/store/discovery.js.map +1 -1
  296. package/dist/src/plugins/store/index.js +105 -48
  297. package/dist/src/plugins/store/index.js.map +1 -1
  298. package/dist/src/plugins/store/search.js +107 -69
  299. package/dist/src/plugins/store/search.js.map +1 -1
  300. package/dist/src/plugins/tests/demo-plugin-store.js +160 -113
  301. package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -1
  302. package/dist/src/plugins/tests/standalone-test.js +223 -172
  303. package/dist/src/plugins/tests/standalone-test.js.map +1 -1
  304. package/dist/src/plugins/tests/test-plugin-store.js +228 -190
  305. package/dist/src/plugins/tests/test-plugin-store.js.map +1 -1
  306. package/dist/src/production/circuit-breaker.js +126 -62
  307. package/dist/src/production/circuit-breaker.js.map +1 -1
  308. package/dist/src/production/error-handler.js +156 -86
  309. package/dist/src/production/error-handler.js.map +1 -1
  310. package/dist/src/production/monitoring.js +220 -139
  311. package/dist/src/production/monitoring.js.map +1 -1
  312. package/dist/src/production/rate-limiter.js +93 -74
  313. package/dist/src/production/rate-limiter.js.map +1 -1
  314. package/dist/src/production/retry.js +167 -75
  315. package/dist/src/production/retry.js.map +1 -1
  316. package/dist/src/prompt.js +560 -436
  317. package/dist/src/prompt.js.map +1 -1
  318. package/dist/src/runtime/headless.js +289 -200
  319. package/dist/src/runtime/headless.js.map +1 -1
  320. package/dist/src/ruvector/agent-wasm.js +511 -0
  321. package/dist/src/ruvector/agent-wasm.js.map +1 -0
  322. package/dist/src/ruvector/ast-analyzer.js +232 -145
  323. package/dist/src/ruvector/ast-analyzer.js.map +1 -1
  324. package/dist/src/ruvector/coverage-router.js +419 -287
  325. package/dist/src/ruvector/coverage-router.js.map +1 -1
  326. package/dist/src/ruvector/coverage-tools.js +101 -56
  327. package/dist/src/ruvector/coverage-tools.js.map +1 -1
  328. package/dist/src/ruvector/diff-classifier.js +451 -324
  329. package/dist/src/ruvector/diff-classifier.js.map +1 -1
  330. package/dist/src/ruvector/enhanced-model-router.js +337 -251
  331. package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
  332. package/dist/src/ruvector/flash-attention.js +254 -223
  333. package/dist/src/ruvector/flash-attention.js.map +1 -1
  334. package/dist/src/ruvector/graph-analyzer.js +680 -486
  335. package/dist/src/ruvector/graph-analyzer.js.map +1 -1
  336. package/dist/src/ruvector/index.js +113 -27
  337. package/dist/src/ruvector/index.js.map +1 -1
  338. package/dist/src/ruvector/lora-adapter.js +248 -155
  339. package/dist/src/ruvector/lora-adapter.js.map +1 -1
  340. package/dist/src/ruvector/model-router.js +248 -175
  341. package/dist/src/ruvector/model-router.js.map +1 -1
  342. package/dist/src/ruvector/moe-router.js +286 -228
  343. package/dist/src/ruvector/moe-router.js.map +1 -1
  344. package/dist/src/ruvector/q-learning-router.js +338 -257
  345. package/dist/src/ruvector/q-learning-router.js.map +1 -1
  346. package/dist/src/ruvector/ruvllm-wasm.js +527 -0
  347. package/dist/src/ruvector/ruvllm-wasm.js.map +1 -0
  348. package/dist/src/ruvector/semantic-router.js +67 -60
  349. package/dist/src/ruvector/semantic-router.js.map +1 -1
  350. package/dist/src/ruvector/vector-db.js +205 -119
  351. package/dist/src/ruvector/vector-db.js.map +1 -1
  352. package/dist/src/services/agentic-flow-bridge.js +168 -0
  353. package/dist/src/services/agentic-flow-bridge.js.map +1 -0
  354. package/dist/src/services/claim-service.js +940 -615
  355. package/dist/src/services/claim-service.js.map +1 -1
  356. package/dist/src/services/container-worker-pool.js +669 -399
  357. package/dist/src/services/container-worker-pool.js.map +1 -1
  358. package/dist/src/services/headless-worker-executor.js +467 -441
  359. package/dist/src/services/headless-worker-executor.js.map +1 -1
  360. package/dist/src/services/index.d.ts +5 -5
  361. package/dist/src/services/index.d.ts.map +1 -1
  362. package/dist/src/services/index.js +4 -4
  363. package/dist/src/services/index.js.map +1 -1
  364. package/dist/src/services/registry-api.js +201 -93
  365. package/dist/src/services/registry-api.js.map +1 -1
  366. package/dist/src/services/ruvector-training.js +414 -144
  367. package/dist/src/services/ruvector-training.js.map +1 -1
  368. package/dist/src/services/worker-daemon.js +928 -531
  369. package/dist/src/services/worker-daemon.js.map +1 -1
  370. package/dist/src/services/worker-queue.js +550 -331
  371. package/dist/src/services/worker-queue.js.map +1 -1
  372. package/dist/src/suggest.js +55 -45
  373. package/dist/src/suggest.js.map +1 -1
  374. package/dist/src/transfer/anonymization/index.js +37 -29
  375. package/dist/src/transfer/anonymization/index.js.map +1 -1
  376. package/dist/src/transfer/deploy-seraphine.d.ts +1 -1
  377. package/dist/src/transfer/deploy-seraphine.js +156 -129
  378. package/dist/src/transfer/deploy-seraphine.js.map +1 -1
  379. package/dist/src/transfer/export.js +142 -84
  380. package/dist/src/transfer/export.js.map +1 -1
  381. package/dist/src/transfer/index.d.ts +1 -1
  382. package/dist/src/transfer/index.d.ts.map +1 -1
  383. package/dist/src/transfer/index.js +2 -0
  384. package/dist/src/transfer/index.js.map +1 -1
  385. package/dist/src/transfer/ipfs/client.js +337 -179
  386. package/dist/src/transfer/ipfs/client.js.map +1 -1
  387. package/dist/src/transfer/ipfs/upload.js +434 -290
  388. package/dist/src/transfer/ipfs/upload.js.map +1 -1
  389. package/dist/src/transfer/models/seraphine.js +58 -58
  390. package/dist/src/transfer/models/seraphine.js.map +1 -1
  391. package/dist/src/transfer/serialization/cfp.js +37 -33
  392. package/dist/src/transfer/serialization/cfp.js.map +1 -1
  393. package/dist/src/transfer/storage/gcs.js +248 -139
  394. package/dist/src/transfer/storage/gcs.js.map +1 -1
  395. package/dist/src/transfer/store/discovery.js +353 -243
  396. package/dist/src/transfer/store/discovery.js.map +1 -1
  397. package/dist/src/transfer/store/download.js +365 -243
  398. package/dist/src/transfer/store/download.js.map +1 -1
  399. package/dist/src/transfer/store/index.js +130 -63
  400. package/dist/src/transfer/store/index.js.map +1 -1
  401. package/dist/src/transfer/store/publish.js +258 -184
  402. package/dist/src/transfer/store/publish.js.map +1 -1
  403. package/dist/src/transfer/store/registry.js +73 -51
  404. package/dist/src/transfer/store/registry.js.map +1 -1
  405. package/dist/src/transfer/store/search.js +96 -64
  406. package/dist/src/transfer/store/search.js.map +1 -1
  407. package/dist/src/transfer/store/tests/standalone-test.js +231 -174
  408. package/dist/src/transfer/store/tests/standalone-test.js.map +1 -1
  409. package/dist/src/transfer/test-seraphine.js +130 -95
  410. package/dist/src/transfer/test-seraphine.js.map +1 -1
  411. package/dist/src/transfer/tests/test-store.js +239 -194
  412. package/dist/src/transfer/tests/test-store.js.map +1 -1
  413. package/dist/src/types.js +56 -27
  414. package/dist/src/types.js.map +1 -1
  415. package/dist/src/update/checker.js +183 -106
  416. package/dist/src/update/checker.js.map +1 -1
  417. package/dist/src/update/executor.js +198 -135
  418. package/dist/src/update/executor.js.map +1 -1
  419. package/dist/src/update/index.js +85 -38
  420. package/dist/src/update/index.js.map +1 -1
  421. package/dist/src/update/rate-limiter.js +31 -19
  422. package/dist/src/update/rate-limiter.js.map +1 -1
  423. package/dist/src/update/validator.js +64 -38
  424. package/dist/src/update/validator.js.map +1 -1
  425. package/dist/tsconfig.tsbuildinfo +1 -1
  426. package/package.json +13 -10
  427. package/.claude/agents/custom/accessibility-auditor.yaml +0 -56
  428. package/.claude/agents/custom/design-architect.yaml +0 -48
  429. package/.claude/agents/custom/ui-developer.yaml +0 -46
  430. package/.claude/agents/custom/ux-researcher.yaml +0 -60
  431. package/dist/src/benchmarks/pretrain/index.d.ts +0 -58
  432. package/dist/src/benchmarks/pretrain/index.d.ts.map +0 -1
  433. package/dist/src/commands/index.d.ts +0 -108
  434. package/dist/src/commands/index.d.ts.map +0 -1
  435. package/dist/src/config-adapter.d.ts +0 -15
  436. package/dist/src/config-adapter.d.ts.map +0 -1
  437. package/dist/src/index.d.ts +0 -76
  438. package/dist/src/index.d.ts.map +0 -1
  439. package/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
  440. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +0 -1
  441. package/dist/src/init/claudemd-generator.d.ts +0 -25
  442. package/dist/src/init/claudemd-generator.d.ts.map +0 -1
  443. package/dist/src/init/executor.d.ts +0 -41
  444. package/dist/src/init/executor.d.ts.map +0 -1
  445. package/dist/src/init/helpers-generator.d.ts +0 -60
  446. package/dist/src/init/helpers-generator.d.ts.map +0 -1
  447. package/dist/src/mcp-client.d.ts +0 -92
  448. package/dist/src/mcp-client.d.ts.map +0 -1
  449. package/dist/src/mcp-server.d.ts +0 -161
  450. package/dist/src/mcp-server.d.ts.map +0 -1
  451. package/dist/src/mcp-tools/auto-install.d.ts +0 -83
  452. package/dist/src/mcp-tools/auto-install.d.ts.map +0 -1
  453. package/dist/src/mcp-tools/types.d.ts +0 -31
  454. package/dist/src/mcp-tools/types.d.ts.map +0 -1
  455. package/dist/src/memory/ewc-consolidation.d.ts +0 -271
  456. package/dist/src/memory/ewc-consolidation.d.ts.map +0 -1
  457. package/dist/src/memory/intelligence.d.ts +0 -285
  458. package/dist/src/memory/intelligence.d.ts.map +0 -1
  459. package/dist/src/memory/memory-initializer.d.ts +0 -396
  460. package/dist/src/memory/memory-initializer.d.ts.map +0 -1
  461. package/dist/src/memory/sona-optimizer.d.ts +0 -227
  462. package/dist/src/memory/sona-optimizer.d.ts.map +0 -1
  463. package/dist/src/parser.d.ts +0 -41
  464. package/dist/src/parser.d.ts.map +0 -1
  465. package/dist/src/plugins/manager.d.ts +0 -133
  466. package/dist/src/plugins/manager.d.ts.map +0 -1
  467. package/dist/src/plugins/store/discovery.d.ts +0 -88
  468. package/dist/src/plugins/store/discovery.d.ts.map +0 -1
  469. package/dist/src/plugins/store/index.d.ts +0 -76
  470. package/dist/src/plugins/store/index.d.ts.map +0 -1
  471. package/dist/src/plugins/store/search.d.ts +0 -46
  472. package/dist/src/plugins/store/search.d.ts.map +0 -1
  473. package/dist/src/plugins/store/types.d.ts +0 -274
  474. package/dist/src/plugins/store/types.d.ts.map +0 -1
  475. package/dist/src/production/circuit-breaker.d.ts +0 -101
  476. package/dist/src/production/circuit-breaker.d.ts.map +0 -1
  477. package/dist/src/production/error-handler.d.ts +0 -92
  478. package/dist/src/production/error-handler.d.ts.map +0 -1
  479. package/dist/src/production/monitoring.d.ts +0 -161
  480. package/dist/src/production/monitoring.d.ts.map +0 -1
  481. package/dist/src/production/rate-limiter.d.ts +0 -80
  482. package/dist/src/production/rate-limiter.d.ts.map +0 -1
  483. package/dist/src/production/retry.d.ts +0 -48
  484. package/dist/src/production/retry.d.ts.map +0 -1
  485. package/dist/src/prompt.d.ts +0 -44
  486. package/dist/src/prompt.d.ts.map +0 -1
  487. package/dist/src/runtime/headless.d.ts +0 -60
  488. package/dist/src/runtime/headless.d.ts.map +0 -1
  489. package/dist/src/ruvector/ast-analyzer.d.ts +0 -67
  490. package/dist/src/ruvector/ast-analyzer.d.ts.map +0 -1
  491. package/dist/src/ruvector/coverage-router.d.ts +0 -160
  492. package/dist/src/ruvector/coverage-router.d.ts.map +0 -1
  493. package/dist/src/ruvector/diff-classifier.d.ts +0 -175
  494. package/dist/src/ruvector/diff-classifier.d.ts.map +0 -1
  495. package/dist/src/ruvector/enhanced-model-router.d.ts +0 -146
  496. package/dist/src/ruvector/enhanced-model-router.d.ts.map +0 -1
  497. package/dist/src/ruvector/flash-attention.d.ts +0 -195
  498. package/dist/src/ruvector/flash-attention.d.ts.map +0 -1
  499. package/dist/src/ruvector/graph-analyzer.d.ts +0 -187
  500. package/dist/src/ruvector/graph-analyzer.d.ts.map +0 -1
  501. package/dist/src/ruvector/index.d.ts +0 -34
  502. package/dist/src/ruvector/index.d.ts.map +0 -1
  503. package/dist/src/ruvector/lora-adapter.d.ts +0 -218
  504. package/dist/src/ruvector/lora-adapter.d.ts.map +0 -1
  505. package/dist/src/ruvector/model-router.d.ts +0 -220
  506. package/dist/src/ruvector/model-router.d.ts.map +0 -1
  507. package/dist/src/ruvector/moe-router.d.ts +0 -206
  508. package/dist/src/ruvector/moe-router.d.ts.map +0 -1
  509. package/dist/src/ruvector/q-learning-router.d.ts +0 -211
  510. package/dist/src/ruvector/q-learning-router.d.ts.map +0 -1
  511. package/dist/src/ruvector/semantic-router.d.ts +0 -77
  512. package/dist/src/ruvector/semantic-router.d.ts.map +0 -1
  513. package/dist/src/ruvector/vector-db.d.ts +0 -69
  514. package/dist/src/ruvector/vector-db.d.ts.map +0 -1
  515. package/dist/src/services/claim-service.d.ts +0 -204
  516. package/dist/src/services/claim-service.d.ts.map +0 -1
  517. package/dist/src/services/container-worker-pool.d.ts +0 -197
  518. package/dist/src/services/container-worker-pool.d.ts.map +0 -1
  519. package/dist/src/services/headless-worker-executor.d.ts +0 -304
  520. package/dist/src/services/headless-worker-executor.d.ts.map +0 -1
  521. package/dist/src/services/registry-api.d.ts +0 -58
  522. package/dist/src/services/registry-api.d.ts.map +0 -1
  523. package/dist/src/services/ruvector-training.d.ts +0 -213
  524. package/dist/src/services/ruvector-training.d.ts.map +0 -1
  525. package/dist/src/services/worker-daemon.d.ts +0 -203
  526. package/dist/src/services/worker-daemon.d.ts.map +0 -1
  527. package/dist/src/services/worker-queue.d.ts +0 -194
  528. package/dist/src/services/worker-queue.d.ts.map +0 -1
  529. package/dist/src/suggest.d.ts +0 -53
  530. package/dist/src/suggest.d.ts.map +0 -1
  531. package/dist/src/transfer/export.d.ts +0 -25
  532. package/dist/src/transfer/export.d.ts.map +0 -1
  533. package/dist/src/transfer/ipfs/client.d.ts +0 -109
  534. package/dist/src/transfer/ipfs/client.d.ts.map +0 -1
  535. package/dist/src/transfer/ipfs/upload.d.ts +0 -95
  536. package/dist/src/transfer/ipfs/upload.d.ts.map +0 -1
  537. package/dist/src/transfer/models/seraphine.d.ts +0 -72
  538. package/dist/src/transfer/models/seraphine.d.ts.map +0 -1
  539. package/dist/src/transfer/serialization/cfp.d.ts +0 -49
  540. package/dist/src/transfer/serialization/cfp.d.ts.map +0 -1
  541. package/dist/src/transfer/storage/gcs.d.ts +0 -82
  542. package/dist/src/transfer/storage/gcs.d.ts.map +0 -1
  543. package/dist/src/transfer/store/discovery.d.ts +0 -84
  544. package/dist/src/transfer/store/discovery.d.ts.map +0 -1
  545. package/dist/src/transfer/store/download.d.ts +0 -70
  546. package/dist/src/transfer/store/download.d.ts.map +0 -1
  547. package/dist/src/transfer/store/index.d.ts +0 -84
  548. package/dist/src/transfer/store/index.d.ts.map +0 -1
  549. package/dist/src/transfer/store/publish.d.ts +0 -76
  550. package/dist/src/transfer/store/publish.d.ts.map +0 -1
  551. package/dist/src/transfer/store/search.d.ts +0 -54
  552. package/dist/src/transfer/store/search.d.ts.map +0 -1
  553. package/dist/src/transfer/types.d.ts +0 -245
  554. package/dist/src/transfer/types.d.ts.map +0 -1
  555. package/dist/src/types.d.ts +0 -198
  556. package/dist/src/types.d.ts.map +0 -1
  557. package/dist/src/update/checker.d.ts +0 -34
  558. package/dist/src/update/checker.d.ts.map +0 -1
  559. package/dist/src/update/executor.d.ts +0 -32
  560. package/dist/src/update/executor.d.ts.map +0 -1
  561. package/dist/src/update/index.d.ts +0 -33
  562. package/dist/src/update/index.d.ts.map +0 -1
  563. package/dist/src/update/rate-limiter.d.ts +0 -20
  564. package/dist/src/update/rate-limiter.d.ts.map +0 -1
  565. package/dist/src/update/validator.d.ts +0 -17
  566. package/dist/src/update/validator.d.ts.map +0 -1
@@ -3,11 +3,67 @@
3
3
  * Handles actual plugin installation, persistence, and lifecycle
4
4
  * Bridges discovery service with file system persistence
5
5
  */
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (_) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
6
53
  import * as fs from 'fs';
7
54
  import * as path from 'path';
8
- import { exec } from 'child_process';
55
+ import { execFile } from 'child_process';
9
56
  import { promisify } from 'util';
10
- const execAsync = promisify(exec);
57
+ var execFileAsync = promisify(execFile);
58
+ /**
59
+ * Validate npm package name to prevent shell injection (S-3)
60
+ */
61
+ var VALID_PACKAGE_RE = /^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*(@[a-z0-9._\-^~>=<]+)?$/;
62
+ function validatePackageName(spec) {
63
+ if (!VALID_PACKAGE_RE.test(spec)) {
64
+ throw new Error("Invalid package name: " + spec);
65
+ }
66
+ }
11
67
  // ============================================================================
12
68
  // Plugin Manager
13
69
  // ============================================================================
@@ -20,14 +76,14 @@ const execAsync = promisify(exec);
20
76
  * - Tracks enabled/disabled state
21
77
  * - Loads plugin modules
22
78
  */
23
- export class PluginManager {
24
- config;
25
- manifest = null;
26
- constructor(baseDir = process.cwd()) {
27
- const pluginsDir = path.join(baseDir, '.claude-flow', 'plugins');
79
+ var PluginManager = /** @class */ (function () {
80
+ function PluginManager(baseDir) {
81
+ if (baseDir === void 0) { baseDir = process.cwd(); }
82
+ this.manifest = null;
83
+ var pluginsDir = path.join(baseDir, '.claude-flow', 'plugins');
28
84
  this.config = {
29
- pluginsDir,
30
- manifestPath: path.join(pluginsDir, 'installed.json'),
85
+ pluginsDir: pluginsDir,
86
+ manifestPath: path.join(pluginsDir, 'installed.json')
31
87
  };
32
88
  }
33
89
  // =========================================================================
@@ -36,345 +92,542 @@ export class PluginManager {
36
92
  /**
37
93
  * Initialize the plugin manager, creating directories and loading manifest
38
94
  */
39
- async initialize() {
40
- // Ensure plugins directory exists
41
- await this.ensureDirectory(this.config.pluginsDir);
42
- // Load or create manifest
43
- this.manifest = await this.loadManifest();
44
- }
45
- async ensureDirectory(dir) {
46
- if (!fs.existsSync(dir)) {
47
- fs.mkdirSync(dir, { recursive: true });
48
- }
49
- }
50
- async loadManifest() {
51
- try {
52
- if (fs.existsSync(this.config.manifestPath)) {
53
- const content = fs.readFileSync(this.config.manifestPath, 'utf-8');
54
- return JSON.parse(content);
55
- }
56
- }
57
- catch (error) {
58
- console.warn('[PluginManager] Failed to load manifest, creating new one');
59
- }
60
- return {
61
- version: '1.0.0',
62
- lastUpdated: new Date().toISOString(),
63
- plugins: {},
64
- };
65
- }
66
- async saveManifest() {
67
- if (!this.manifest)
68
- return;
69
- this.manifest.lastUpdated = new Date().toISOString();
70
- await this.ensureDirectory(path.dirname(this.config.manifestPath));
71
- fs.writeFileSync(this.config.manifestPath, JSON.stringify(this.manifest, null, 2), 'utf-8');
72
- }
95
+ PluginManager.prototype.initialize = function () {
96
+ return __awaiter(this, void 0, Promise, function () {
97
+ var _a;
98
+ return __generator(this, function (_b) {
99
+ switch (_b.label) {
100
+ case 0:
101
+ // Ensure plugins directory exists
102
+ return [4 /*yield*/, this.ensureDirectory(this.config.pluginsDir)];
103
+ case 1:
104
+ // Ensure plugins directory exists
105
+ _b.sent();
106
+ // Load or create manifest
107
+ _a = this;
108
+ return [4 /*yield*/, this.loadManifest()];
109
+ case 2:
110
+ // Load or create manifest
111
+ _a.manifest = _b.sent();
112
+ return [2 /*return*/];
113
+ }
114
+ });
115
+ });
116
+ };
117
+ PluginManager.prototype.ensureDirectory = function (dir) {
118
+ return __awaiter(this, void 0, Promise, function () {
119
+ return __generator(this, function (_a) {
120
+ if (!fs.existsSync(dir)) {
121
+ fs.mkdirSync(dir, { recursive: true });
122
+ }
123
+ return [2 /*return*/];
124
+ });
125
+ });
126
+ };
127
+ PluginManager.prototype.loadManifest = function () {
128
+ return __awaiter(this, void 0, Promise, function () {
129
+ var content;
130
+ return __generator(this, function (_a) {
131
+ try {
132
+ if (fs.existsSync(this.config.manifestPath)) {
133
+ content = fs.readFileSync(this.config.manifestPath, 'utf-8');
134
+ return [2 /*return*/, JSON.parse(content)];
135
+ }
136
+ }
137
+ catch (error) {
138
+ console.warn('[PluginManager] Failed to load manifest, creating new one');
139
+ }
140
+ return [2 /*return*/, {
141
+ version: '1.0.0',
142
+ lastUpdated: new Date().toISOString(),
143
+ plugins: {}
144
+ }];
145
+ });
146
+ });
147
+ };
148
+ PluginManager.prototype.saveManifest = function () {
149
+ return __awaiter(this, void 0, Promise, function () {
150
+ return __generator(this, function (_a) {
151
+ switch (_a.label) {
152
+ case 0:
153
+ if (!this.manifest)
154
+ return [2 /*return*/];
155
+ this.manifest.lastUpdated = new Date().toISOString();
156
+ return [4 /*yield*/, this.ensureDirectory(path.dirname(this.config.manifestPath))];
157
+ case 1:
158
+ _a.sent();
159
+ fs.writeFileSync(this.config.manifestPath, JSON.stringify(this.manifest, null, 2), 'utf-8');
160
+ return [2 /*return*/];
161
+ }
162
+ });
163
+ });
164
+ };
73
165
  // =========================================================================
74
166
  // Installation
75
167
  // =========================================================================
76
168
  /**
77
169
  * Install a plugin from npm
78
170
  */
79
- async installFromNpm(packageName, version) {
80
- if (!this.manifest) {
81
- await this.initialize();
82
- }
83
- const versionSpec = version ? `${packageName}@${version}` : packageName;
84
- try {
85
- // Check if already installed
86
- if (this.manifest.plugins[packageName]) {
87
- return {
88
- success: false,
89
- error: `Plugin ${packageName} is already installed. Use upgrade to update.`,
90
- };
91
- }
92
- // Install to local plugins directory
93
- const installDir = path.join(this.config.pluginsDir, 'node_modules');
94
- await this.ensureDirectory(installDir);
95
- // Use npm to install
96
- console.log(`[PluginManager] Installing ${versionSpec}...`);
97
- const { stdout, stderr } = await execAsync(`npm install --prefix "${this.config.pluginsDir}" ${versionSpec}`, { timeout: 120000 });
98
- // Get installed version
99
- const packageJsonPath = path.join(installDir, packageName, 'package.json');
100
- let installedVersion = version || 'latest';
101
- let commands = [];
102
- let hooks = [];
103
- if (fs.existsSync(packageJsonPath)) {
104
- const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
105
- installedVersion = pkg.version;
106
- // Check for claude-flow plugin metadata
107
- if (pkg['kynjalflow']) {
108
- commands = pkg['kynjalflow'].commands || [];
109
- hooks = pkg['kynjalflow'].hooks || [];
171
+ PluginManager.prototype.installFromNpm = function (packageName, version) {
172
+ return __awaiter(this, void 0, Promise, function () {
173
+ var versionSpec, installDir, packageJsonPath, installedVersion, commands, hooks, pkg, plugin, error_1, errorMsg;
174
+ return __generator(this, function (_a) {
175
+ switch (_a.label) {
176
+ case 0:
177
+ if (!!this.manifest) return [3 /*break*/, 2];
178
+ return [4 /*yield*/, this.initialize()];
179
+ case 1:
180
+ _a.sent();
181
+ _a.label = 2;
182
+ case 2:
183
+ versionSpec = version ? packageName + "@" + version : packageName;
184
+ _a.label = 3;
185
+ case 3:
186
+ _a.trys.push([3, 7, , 8]);
187
+ // Check if already installed
188
+ if (this.manifest.plugins[packageName]) {
189
+ return [2 /*return*/, {
190
+ success: false,
191
+ error: "Plugin " + packageName + " is already installed. Use upgrade to update."
192
+ }];
193
+ }
194
+ installDir = path.join(this.config.pluginsDir, 'node_modules');
195
+ return [4 /*yield*/, this.ensureDirectory(installDir)];
196
+ case 4:
197
+ _a.sent();
198
+ // Validate package name to prevent injection (S-3)
199
+ validatePackageName(versionSpec);
200
+ // Use npm to install (array form prevents shell injection)
201
+ console.log("[PluginManager] Installing " + versionSpec + "...");
202
+ return [4 /*yield*/, execFileAsync('npm', ['install', '--prefix', this.config.pluginsDir, versionSpec], { timeout: 120000 })];
203
+ case 5:
204
+ _a.sent();
205
+ packageJsonPath = path.join(installDir, packageName, 'package.json');
206
+ installedVersion = version || 'latest';
207
+ commands = [];
208
+ hooks = [];
209
+ if (fs.existsSync(packageJsonPath)) {
210
+ pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
211
+ installedVersion = pkg.version;
212
+ // Check for claude-flow plugin metadata
213
+ if (pkg['claude-flow']) {
214
+ commands = pkg['claude-flow'].commands || [];
215
+ hooks = pkg['claude-flow'].hooks || [];
216
+ }
217
+ }
218
+ plugin = {
219
+ name: packageName,
220
+ version: installedVersion,
221
+ installedAt: new Date().toISOString(),
222
+ enabled: true,
223
+ source: 'npm',
224
+ path: path.join(installDir, packageName),
225
+ commands: commands,
226
+ hooks: hooks
227
+ };
228
+ // Save to manifest
229
+ this.manifest.plugins[packageName] = plugin;
230
+ return [4 /*yield*/, this.saveManifest()];
231
+ case 6:
232
+ _a.sent();
233
+ console.log("[PluginManager] Installed " + packageName + "@" + installedVersion);
234
+ return [2 /*return*/, { success: true, plugin: plugin }];
235
+ case 7:
236
+ error_1 = _a.sent();
237
+ errorMsg = error_1 instanceof Error ? error_1.message : String(error_1);
238
+ console.error("[PluginManager] Failed to install " + packageName + ":", errorMsg);
239
+ return [2 /*return*/, { success: false, error: errorMsg }];
240
+ case 8: return [2 /*return*/];
110
241
  }
111
- }
112
- // Create plugin entry
113
- const plugin = {
114
- name: packageName,
115
- version: installedVersion,
116
- installedAt: new Date().toISOString(),
117
- enabled: true,
118
- source: 'npm',
119
- path: path.join(installDir, packageName),
120
- commands,
121
- hooks,
122
- };
123
- // Save to manifest
124
- this.manifest.plugins[packageName] = plugin;
125
- await this.saveManifest();
126
- console.log(`[PluginManager] Installed ${packageName}@${installedVersion}`);
127
- return { success: true, plugin };
128
- }
129
- catch (error) {
130
- const errorMsg = error instanceof Error ? error.message : String(error);
131
- console.error(`[PluginManager] Failed to install ${packageName}:`, errorMsg);
132
- return { success: false, error: errorMsg };
133
- }
134
- }
242
+ });
243
+ });
244
+ };
135
245
  /**
136
246
  * Install a plugin from a local path
137
247
  */
138
- async installFromLocal(sourcePath) {
139
- if (!this.manifest) {
140
- await this.initialize();
141
- }
142
- try {
143
- const absolutePath = path.resolve(sourcePath);
144
- if (!fs.existsSync(absolutePath)) {
145
- return { success: false, error: `Path does not exist: ${absolutePath}` };
146
- }
147
- // Read package.json
148
- const packageJsonPath = path.join(absolutePath, 'package.json');
149
- if (!fs.existsSync(packageJsonPath)) {
150
- return { success: false, error: 'No package.json found at path' };
151
- }
152
- const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
153
- const packageName = pkg.name;
154
- // Check if already installed
155
- if (this.manifest.plugins[packageName]) {
156
- return {
157
- success: false,
158
- error: `Plugin ${packageName} is already installed`,
159
- };
160
- }
161
- // Create plugin entry (link to local path, don't copy)
162
- const plugin = {
163
- name: packageName,
164
- version: pkg.version,
165
- installedAt: new Date().toISOString(),
166
- enabled: true,
167
- source: 'local',
168
- path: absolutePath,
169
- commands: pkg['kynjalflow']?.commands || [],
170
- hooks: pkg['kynjalflow']?.hooks || [],
171
- };
172
- // Save to manifest
173
- this.manifest.plugins[packageName] = plugin;
174
- await this.saveManifest();
175
- console.log(`[PluginManager] Installed local plugin ${packageName}@${pkg.version}`);
176
- return { success: true, plugin };
177
- }
178
- catch (error) {
179
- const errorMsg = error instanceof Error ? error.message : String(error);
180
- console.error(`[PluginManager] Failed to install from local:`, errorMsg);
181
- return { success: false, error: errorMsg };
182
- }
183
- }
248
+ PluginManager.prototype.installFromLocal = function (sourcePath) {
249
+ var _a, _b;
250
+ return __awaiter(this, void 0, Promise, function () {
251
+ var absolutePath, packageJsonPath, pkg, packageName, plugin, error_2, errorMsg;
252
+ return __generator(this, function (_c) {
253
+ switch (_c.label) {
254
+ case 0:
255
+ if (!!this.manifest) return [3 /*break*/, 2];
256
+ return [4 /*yield*/, this.initialize()];
257
+ case 1:
258
+ _c.sent();
259
+ _c.label = 2;
260
+ case 2:
261
+ _c.trys.push([2, 4, , 5]);
262
+ absolutePath = path.resolve(sourcePath);
263
+ if (!fs.existsSync(absolutePath)) {
264
+ return [2 /*return*/, { success: false, error: "Path does not exist: " + absolutePath }];
265
+ }
266
+ packageJsonPath = path.join(absolutePath, 'package.json');
267
+ if (!fs.existsSync(packageJsonPath)) {
268
+ return [2 /*return*/, { success: false, error: 'No package.json found at path' }];
269
+ }
270
+ pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
271
+ packageName = pkg.name;
272
+ // Check if already installed
273
+ if (this.manifest.plugins[packageName]) {
274
+ return [2 /*return*/, {
275
+ success: false,
276
+ error: "Plugin " + packageName + " is already installed"
277
+ }];
278
+ }
279
+ plugin = {
280
+ name: packageName,
281
+ version: pkg.version,
282
+ installedAt: new Date().toISOString(),
283
+ enabled: true,
284
+ source: 'local',
285
+ path: absolutePath,
286
+ commands: ((_a = pkg['claude-flow']) === null || _a === void 0 ? void 0 : _a.commands) || [],
287
+ hooks: ((_b = pkg['claude-flow']) === null || _b === void 0 ? void 0 : _b.hooks) || []
288
+ };
289
+ // Save to manifest
290
+ this.manifest.plugins[packageName] = plugin;
291
+ return [4 /*yield*/, this.saveManifest()];
292
+ case 3:
293
+ _c.sent();
294
+ console.log("[PluginManager] Installed local plugin " + packageName + "@" + pkg.version);
295
+ return [2 /*return*/, { success: true, plugin: plugin }];
296
+ case 4:
297
+ error_2 = _c.sent();
298
+ errorMsg = error_2 instanceof Error ? error_2.message : String(error_2);
299
+ console.error("[PluginManager] Failed to install from local:", errorMsg);
300
+ return [2 /*return*/, { success: false, error: errorMsg }];
301
+ case 5: return [2 /*return*/];
302
+ }
303
+ });
304
+ });
305
+ };
184
306
  // =========================================================================
185
307
  // Uninstallation
186
308
  // =========================================================================
187
309
  /**
188
310
  * Uninstall a plugin
189
311
  */
190
- async uninstall(packageName) {
191
- if (!this.manifest) {
192
- await this.initialize();
193
- }
194
- const plugin = this.manifest.plugins[packageName];
195
- if (!plugin) {
196
- return { success: false, error: `Plugin ${packageName} is not installed` };
197
- }
198
- try {
199
- // For npm-installed plugins, remove from node_modules
200
- if (plugin.source === 'npm') {
201
- await execAsync(`npm uninstall --prefix "${this.config.pluginsDir}" ${packageName}`, { timeout: 60000 });
202
- }
203
- // Remove from manifest
204
- delete this.manifest.plugins[packageName];
205
- await this.saveManifest();
206
- console.log(`[PluginManager] Uninstalled ${packageName}`);
207
- return { success: true };
208
- }
209
- catch (error) {
210
- const errorMsg = error instanceof Error ? error.message : String(error);
211
- console.error(`[PluginManager] Failed to uninstall ${packageName}:`, errorMsg);
212
- return { success: false, error: errorMsg };
213
- }
214
- }
312
+ PluginManager.prototype.uninstall = function (packageName) {
313
+ return __awaiter(this, void 0, Promise, function () {
314
+ var plugin, error_3, errorMsg;
315
+ return __generator(this, function (_a) {
316
+ switch (_a.label) {
317
+ case 0:
318
+ if (!!this.manifest) return [3 /*break*/, 2];
319
+ return [4 /*yield*/, this.initialize()];
320
+ case 1:
321
+ _a.sent();
322
+ _a.label = 2;
323
+ case 2:
324
+ plugin = this.manifest.plugins[packageName];
325
+ if (!plugin) {
326
+ return [2 /*return*/, { success: false, error: "Plugin " + packageName + " is not installed" }];
327
+ }
328
+ _a.label = 3;
329
+ case 3:
330
+ _a.trys.push([3, 7, , 8]);
331
+ if (!(plugin.source === 'npm')) return [3 /*break*/, 5];
332
+ validatePackageName(packageName);
333
+ return [4 /*yield*/, execFileAsync('npm', ['uninstall', '--prefix', this.config.pluginsDir, packageName], { timeout: 60000 })];
334
+ case 4:
335
+ _a.sent();
336
+ _a.label = 5;
337
+ case 5:
338
+ // Remove from manifest
339
+ delete this.manifest.plugins[packageName];
340
+ return [4 /*yield*/, this.saveManifest()];
341
+ case 6:
342
+ _a.sent();
343
+ console.log("[PluginManager] Uninstalled " + packageName);
344
+ return [2 /*return*/, { success: true }];
345
+ case 7:
346
+ error_3 = _a.sent();
347
+ errorMsg = error_3 instanceof Error ? error_3.message : String(error_3);
348
+ console.error("[PluginManager] Failed to uninstall " + packageName + ":", errorMsg);
349
+ return [2 /*return*/, { success: false, error: errorMsg }];
350
+ case 8: return [2 /*return*/];
351
+ }
352
+ });
353
+ });
354
+ };
215
355
  // =========================================================================
216
356
  // Enable/Disable
217
357
  // =========================================================================
218
358
  /**
219
359
  * Enable a plugin
220
360
  */
221
- async enable(packageName) {
222
- if (!this.manifest) {
223
- await this.initialize();
224
- }
225
- const plugin = this.manifest.plugins[packageName];
226
- if (!plugin) {
227
- return { success: false, error: `Plugin ${packageName} is not installed` };
228
- }
229
- plugin.enabled = true;
230
- await this.saveManifest();
231
- return { success: true };
232
- }
361
+ PluginManager.prototype.enable = function (packageName) {
362
+ return __awaiter(this, void 0, Promise, function () {
363
+ var plugin;
364
+ return __generator(this, function (_a) {
365
+ switch (_a.label) {
366
+ case 0:
367
+ if (!!this.manifest) return [3 /*break*/, 2];
368
+ return [4 /*yield*/, this.initialize()];
369
+ case 1:
370
+ _a.sent();
371
+ _a.label = 2;
372
+ case 2:
373
+ plugin = this.manifest.plugins[packageName];
374
+ if (!plugin) {
375
+ return [2 /*return*/, { success: false, error: "Plugin " + packageName + " is not installed" }];
376
+ }
377
+ plugin.enabled = true;
378
+ return [4 /*yield*/, this.saveManifest()];
379
+ case 3:
380
+ _a.sent();
381
+ return [2 /*return*/, { success: true }];
382
+ }
383
+ });
384
+ });
385
+ };
233
386
  /**
234
387
  * Disable a plugin
235
388
  */
236
- async disable(packageName) {
237
- if (!this.manifest) {
238
- await this.initialize();
239
- }
240
- const plugin = this.manifest.plugins[packageName];
241
- if (!plugin) {
242
- return { success: false, error: `Plugin ${packageName} is not installed` };
243
- }
244
- plugin.enabled = false;
245
- await this.saveManifest();
246
- return { success: true };
247
- }
389
+ PluginManager.prototype.disable = function (packageName) {
390
+ return __awaiter(this, void 0, Promise, function () {
391
+ var plugin;
392
+ return __generator(this, function (_a) {
393
+ switch (_a.label) {
394
+ case 0:
395
+ if (!!this.manifest) return [3 /*break*/, 2];
396
+ return [4 /*yield*/, this.initialize()];
397
+ case 1:
398
+ _a.sent();
399
+ _a.label = 2;
400
+ case 2:
401
+ plugin = this.manifest.plugins[packageName];
402
+ if (!plugin) {
403
+ return [2 /*return*/, { success: false, error: "Plugin " + packageName + " is not installed" }];
404
+ }
405
+ plugin.enabled = false;
406
+ return [4 /*yield*/, this.saveManifest()];
407
+ case 3:
408
+ _a.sent();
409
+ return [2 /*return*/, { success: true }];
410
+ }
411
+ });
412
+ });
413
+ };
248
414
  /**
249
415
  * Toggle a plugin's enabled state
250
416
  */
251
- async toggle(packageName) {
252
- if (!this.manifest) {
253
- await this.initialize();
254
- }
255
- const plugin = this.manifest.plugins[packageName];
256
- if (!plugin) {
257
- return { success: false, error: `Plugin ${packageName} is not installed` };
258
- }
259
- plugin.enabled = !plugin.enabled;
260
- await this.saveManifest();
261
- return { success: true, enabled: plugin.enabled };
262
- }
417
+ PluginManager.prototype.toggle = function (packageName) {
418
+ return __awaiter(this, void 0, Promise, function () {
419
+ var plugin;
420
+ return __generator(this, function (_a) {
421
+ switch (_a.label) {
422
+ case 0:
423
+ if (!!this.manifest) return [3 /*break*/, 2];
424
+ return [4 /*yield*/, this.initialize()];
425
+ case 1:
426
+ _a.sent();
427
+ _a.label = 2;
428
+ case 2:
429
+ plugin = this.manifest.plugins[packageName];
430
+ if (!plugin) {
431
+ return [2 /*return*/, { success: false, error: "Plugin " + packageName + " is not installed" }];
432
+ }
433
+ plugin.enabled = !plugin.enabled;
434
+ return [4 /*yield*/, this.saveManifest()];
435
+ case 3:
436
+ _a.sent();
437
+ return [2 /*return*/, { success: true, enabled: plugin.enabled }];
438
+ }
439
+ });
440
+ });
441
+ };
263
442
  // =========================================================================
264
443
  // Query
265
444
  // =========================================================================
266
445
  /**
267
446
  * Get all installed plugins
268
447
  */
269
- async getInstalled() {
270
- if (!this.manifest) {
271
- await this.initialize();
272
- }
273
- return Object.values(this.manifest.plugins);
274
- }
448
+ PluginManager.prototype.getInstalled = function () {
449
+ return __awaiter(this, void 0, Promise, function () {
450
+ return __generator(this, function (_a) {
451
+ switch (_a.label) {
452
+ case 0:
453
+ if (!!this.manifest) return [3 /*break*/, 2];
454
+ return [4 /*yield*/, this.initialize()];
455
+ case 1:
456
+ _a.sent();
457
+ _a.label = 2;
458
+ case 2: return [2 /*return*/, Object.values(this.manifest.plugins)];
459
+ }
460
+ });
461
+ });
462
+ };
275
463
  /**
276
464
  * Get enabled plugins
277
465
  */
278
- async getEnabled() {
279
- const all = await this.getInstalled();
280
- return all.filter(p => p.enabled);
281
- }
466
+ PluginManager.prototype.getEnabled = function () {
467
+ return __awaiter(this, void 0, Promise, function () {
468
+ var all;
469
+ return __generator(this, function (_a) {
470
+ switch (_a.label) {
471
+ case 0: return [4 /*yield*/, this.getInstalled()];
472
+ case 1:
473
+ all = _a.sent();
474
+ return [2 /*return*/, all.filter(function (p) { return p.enabled; })];
475
+ }
476
+ });
477
+ });
478
+ };
282
479
  /**
283
480
  * Check if a plugin is installed
284
481
  */
285
- async isInstalled(packageName) {
286
- if (!this.manifest) {
287
- await this.initialize();
288
- }
289
- return packageName in this.manifest.plugins;
290
- }
482
+ PluginManager.prototype.isInstalled = function (packageName) {
483
+ return __awaiter(this, void 0, Promise, function () {
484
+ return __generator(this, function (_a) {
485
+ switch (_a.label) {
486
+ case 0:
487
+ if (!!this.manifest) return [3 /*break*/, 2];
488
+ return [4 /*yield*/, this.initialize()];
489
+ case 1:
490
+ _a.sent();
491
+ _a.label = 2;
492
+ case 2: return [2 /*return*/, packageName in this.manifest.plugins];
493
+ }
494
+ });
495
+ });
496
+ };
291
497
  /**
292
498
  * Get a specific installed plugin
293
499
  */
294
- async getPlugin(packageName) {
295
- if (!this.manifest) {
296
- await this.initialize();
297
- }
298
- return this.manifest.plugins[packageName];
299
- }
500
+ PluginManager.prototype.getPlugin = function (packageName) {
501
+ return __awaiter(this, void 0, Promise, function () {
502
+ return __generator(this, function (_a) {
503
+ switch (_a.label) {
504
+ case 0:
505
+ if (!!this.manifest) return [3 /*break*/, 2];
506
+ return [4 /*yield*/, this.initialize()];
507
+ case 1:
508
+ _a.sent();
509
+ _a.label = 2;
510
+ case 2: return [2 /*return*/, this.manifest.plugins[packageName]];
511
+ }
512
+ });
513
+ });
514
+ };
300
515
  // =========================================================================
301
516
  // Upgrade
302
517
  // =========================================================================
303
518
  /**
304
519
  * Upgrade a plugin to a new version
305
520
  */
306
- async upgrade(packageName, version) {
307
- if (!this.manifest) {
308
- await this.initialize();
309
- }
310
- const existing = this.manifest.plugins[packageName];
311
- if (!existing) {
312
- return { success: false, error: `Plugin ${packageName} is not installed` };
313
- }
314
- if (existing.source !== 'npm') {
315
- return { success: false, error: 'Can only upgrade npm-installed plugins' };
316
- }
317
- try {
318
- const versionSpec = version ? `${packageName}@${version}` : `${packageName}@latest`;
319
- // Reinstall with new version
320
- await execAsync(`npm install --prefix "${this.config.pluginsDir}" ${versionSpec}`, { timeout: 120000 });
321
- // Update manifest
322
- const installDir = path.join(this.config.pluginsDir, 'node_modules');
323
- const packageJsonPath = path.join(installDir, packageName, 'package.json');
324
- if (fs.existsSync(packageJsonPath)) {
325
- const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
326
- existing.version = pkg.version;
327
- existing.commands = pkg['kynjalflow']?.commands || existing.commands;
328
- existing.hooks = pkg['kynjalflow']?.hooks || existing.hooks;
329
- }
330
- await this.saveManifest();
331
- console.log(`[PluginManager] Upgraded ${packageName} to ${existing.version}`);
332
- return { success: true, plugin: existing };
333
- }
334
- catch (error) {
335
- const errorMsg = error instanceof Error ? error.message : String(error);
336
- return { success: false, error: errorMsg };
337
- }
338
- }
521
+ PluginManager.prototype.upgrade = function (packageName, version) {
522
+ var _a, _b;
523
+ return __awaiter(this, void 0, Promise, function () {
524
+ var existing, versionSpec, installDir, packageJsonPath, pkg, error_4, errorMsg;
525
+ return __generator(this, function (_c) {
526
+ switch (_c.label) {
527
+ case 0:
528
+ if (!!this.manifest) return [3 /*break*/, 2];
529
+ return [4 /*yield*/, this.initialize()];
530
+ case 1:
531
+ _c.sent();
532
+ _c.label = 2;
533
+ case 2:
534
+ existing = this.manifest.plugins[packageName];
535
+ if (!existing) {
536
+ return [2 /*return*/, { success: false, error: "Plugin " + packageName + " is not installed" }];
537
+ }
538
+ if (existing.source !== 'npm') {
539
+ return [2 /*return*/, { success: false, error: 'Can only upgrade npm-installed plugins' }];
540
+ }
541
+ _c.label = 3;
542
+ case 3:
543
+ _c.trys.push([3, 6, , 7]);
544
+ versionSpec = version ? packageName + "@" + version : packageName + "@latest";
545
+ // Validate package name to prevent injection (S-3)
546
+ validatePackageName(versionSpec);
547
+ // Reinstall with new version (array form prevents shell injection)
548
+ return [4 /*yield*/, execFileAsync('npm', ['install', '--prefix', this.config.pluginsDir, versionSpec], { timeout: 120000 })];
549
+ case 4:
550
+ // Reinstall with new version (array form prevents shell injection)
551
+ _c.sent();
552
+ installDir = path.join(this.config.pluginsDir, 'node_modules');
553
+ packageJsonPath = path.join(installDir, packageName, 'package.json');
554
+ if (fs.existsSync(packageJsonPath)) {
555
+ pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
556
+ existing.version = pkg.version;
557
+ existing.commands = ((_a = pkg['claude-flow']) === null || _a === void 0 ? void 0 : _a.commands) || existing.commands;
558
+ existing.hooks = ((_b = pkg['claude-flow']) === null || _b === void 0 ? void 0 : _b.hooks) || existing.hooks;
559
+ }
560
+ return [4 /*yield*/, this.saveManifest()];
561
+ case 5:
562
+ _c.sent();
563
+ console.log("[PluginManager] Upgraded " + packageName + " to " + existing.version);
564
+ return [2 /*return*/, { success: true, plugin: existing }];
565
+ case 6:
566
+ error_4 = _c.sent();
567
+ errorMsg = error_4 instanceof Error ? error_4.message : String(error_4);
568
+ return [2 /*return*/, { success: false, error: errorMsg }];
569
+ case 7: return [2 /*return*/];
570
+ }
571
+ });
572
+ });
573
+ };
339
574
  // =========================================================================
340
575
  // Config
341
576
  // =========================================================================
342
577
  /**
343
578
  * Update plugin config
344
579
  */
345
- async setConfig(packageName, config) {
346
- if (!this.manifest) {
347
- await this.initialize();
348
- }
349
- const plugin = this.manifest.plugins[packageName];
350
- if (!plugin) {
351
- return { success: false, error: `Plugin ${packageName} is not installed` };
352
- }
353
- plugin.config = { ...plugin.config, ...config };
354
- await this.saveManifest();
355
- return { success: true };
356
- }
580
+ PluginManager.prototype.setConfig = function (packageName, config) {
581
+ return __awaiter(this, void 0, Promise, function () {
582
+ var plugin;
583
+ return __generator(this, function (_a) {
584
+ switch (_a.label) {
585
+ case 0:
586
+ if (!!this.manifest) return [3 /*break*/, 2];
587
+ return [4 /*yield*/, this.initialize()];
588
+ case 1:
589
+ _a.sent();
590
+ _a.label = 2;
591
+ case 2:
592
+ plugin = this.manifest.plugins[packageName];
593
+ if (!plugin) {
594
+ return [2 /*return*/, { success: false, error: "Plugin " + packageName + " is not installed" }];
595
+ }
596
+ plugin.config = __assign(__assign({}, plugin.config), config);
597
+ return [4 /*yield*/, this.saveManifest()];
598
+ case 3:
599
+ _a.sent();
600
+ return [2 /*return*/, { success: true }];
601
+ }
602
+ });
603
+ });
604
+ };
357
605
  /**
358
606
  * Get plugins directory path
359
607
  */
360
- getPluginsDir() {
608
+ PluginManager.prototype.getPluginsDir = function () {
361
609
  return this.config.pluginsDir;
362
- }
610
+ };
363
611
  /**
364
612
  * Get manifest path
365
613
  */
366
- getManifestPath() {
614
+ PluginManager.prototype.getManifestPath = function () {
367
615
  return this.config.manifestPath;
368
- }
369
- }
616
+ };
617
+ return PluginManager;
618
+ }());
619
+ export { PluginManager };
370
620
  // ============================================================================
371
621
  // Singleton Instance
372
622
  // ============================================================================
373
- let defaultManager = null;
623
+ var defaultManager = null;
374
624
  export function getPluginManager(baseDir) {
375
625
  if (!defaultManager) {
376
626
  defaultManager = new PluginManager(baseDir);
377
627
  }
628
+ else if (baseDir && defaultManager.getPluginsDir() !== path.join(baseDir, '.claude-flow', 'plugins')) {
629
+ console.warn("[PluginManager] Warning: getPluginManager called with different baseDir. Using existing instance. Call resetPluginManager() first to change.");
630
+ }
378
631
  return defaultManager;
379
632
  }
380
633
  export function resetPluginManager() {