kynjal-cli 3.1.4 → 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 +420 -613
  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
@@ -0,0 +1,373 @@
1
+ /**
2
+ * RVFA Runner -- Boot and run self-contained Ruflo appliances.
3
+ *
4
+ * Supports three run modes (cli, mcp, verify) and two isolation
5
+ * strategies (native Node.js, container via Docker).
6
+ *
7
+ * @module @claude-flow/cli/appliance/rvfa-runner
8
+ */
9
+ var __assign = (this && this.__assign) || function () {
10
+ __assign = Object.assign || function(t) {
11
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
12
+ s = arguments[i];
13
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
14
+ t[p] = s[p];
15
+ }
16
+ return t;
17
+ };
18
+ return __assign.apply(this, arguments);
19
+ };
20
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
21
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
22
+ return new (P || (P = Promise))(function (resolve, reject) {
23
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
24
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
25
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
26
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
27
+ });
28
+ };
29
+ var __generator = (this && this.__generator) || function (thisArg, body) {
30
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
31
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
32
+ function verb(n) { return function (v) { return step([n, v]); }; }
33
+ function step(op) {
34
+ if (f) throw new TypeError("Generator is already executing.");
35
+ while (_) try {
36
+ 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;
37
+ if (y = 0, t) op = [op[0] & 2, t.value];
38
+ switch (op[0]) {
39
+ case 0: case 1: t = op; break;
40
+ case 4: _.label++; return { value: op[1], done: false };
41
+ case 5: _.label++; y = op[1]; op = [0]; continue;
42
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
43
+ default:
44
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
45
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
46
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
47
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
48
+ if (t[2]) _.ops.pop();
49
+ _.trys.pop(); continue;
50
+ }
51
+ op = body.call(thisArg, _);
52
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
53
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
54
+ }
55
+ };
56
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
57
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
58
+ if (ar || !(i in from)) {
59
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
60
+ ar[i] = from[i];
61
+ }
62
+ }
63
+ return to.concat(ar || Array.prototype.slice.call(from));
64
+ };
65
+ import { writeFile, mkdir, rm } from 'node:fs/promises';
66
+ import { join } from 'node:path';
67
+ import { spawn } from 'node:child_process';
68
+ import { tmpdir } from 'node:os';
69
+ import { RvfaReader } from './rvfa-format.js';
70
+ // ── Internal helpers ────────────────────────────────────────
71
+ /** Spawn a child process and capture stdout/stderr. */
72
+ function spawnAsync(cmd, args, opts) {
73
+ return new Promise(function (resolve) {
74
+ var start = performance.now();
75
+ var out = [];
76
+ var err = [];
77
+ var child = spawn(cmd, args, {
78
+ cwd: opts.cwd, env: __assign(__assign({}, process.env), opts.env), stdio: ['pipe', 'pipe', 'pipe']
79
+ });
80
+ child.stdout.on('data', function (c) { out.push(c); if (opts.verbose)
81
+ process.stdout.write(c); });
82
+ child.stderr.on('data', function (c) { err.push(c); if (opts.verbose)
83
+ process.stderr.write(c); });
84
+ child.on('close', function (code) { return resolve({
85
+ exitCode: code !== null && code !== void 0 ? code : 1, stdout: Buffer.concat(out).toString(), stderr: Buffer.concat(err).toString(),
86
+ duration: performance.now() - start
87
+ }); });
88
+ child.on('error', function (e) { return resolve({
89
+ exitCode: 1, stdout: '', stderr: e.message, duration: performance.now() - start
90
+ }); });
91
+ });
92
+ }
93
+ var fail = function (stderr) { return ({ exitCode: 1, stdout: '', stderr: stderr, duration: 0 }); };
94
+ var cleanup = function (dir) { return rm(dir, { recursive: true, force: true })["catch"](function () { }); };
95
+ /** Check whether the reader has a section with the given id. */
96
+ function hasSection(reader, id) {
97
+ return reader.getSections().some(function (s) { return s.id === id; });
98
+ }
99
+ /** Safely extract a section, returning null if absent. */
100
+ function tryExtract(reader, id) {
101
+ try {
102
+ return reader.extractSection(id);
103
+ }
104
+ catch (_a) {
105
+ return null;
106
+ }
107
+ }
108
+ // ── Runner ──────────────────────────────────────────────────
109
+ var RvfaRunner = /** @class */ (function () {
110
+ function RvfaRunner(reader) {
111
+ this.reader = reader;
112
+ this.header = reader.getHeader();
113
+ }
114
+ /** Read and parse an RVFA file from disk. Throws on invalid input. */
115
+ RvfaRunner.fromFile = function (rvfaPath) {
116
+ return __awaiter(this, void 0, Promise, function () {
117
+ var reader;
118
+ return __generator(this, function (_a) {
119
+ switch (_a.label) {
120
+ case 0: return [4 /*yield*/, RvfaReader.fromFile(rvfaPath)];
121
+ case 1:
122
+ reader = _a.sent();
123
+ return [2 /*return*/, new RvfaRunner(reader)];
124
+ }
125
+ });
126
+ });
127
+ };
128
+ /** Create a runner from an already-loaded buffer. */
129
+ RvfaRunner.fromBuffer = function (buf) {
130
+ return new RvfaRunner(RvfaReader.fromBuffer(buf));
131
+ };
132
+ /**
133
+ * Boot the appliance: verify integrity, then dispatch to the
134
+ * requested isolation strategy and run mode.
135
+ */
136
+ RvfaRunner.prototype.boot = function (options) {
137
+ return __awaiter(this, void 0, Promise, function () {
138
+ var _a, valid, errors;
139
+ return __generator(this, function (_b) {
140
+ _a = this.reader.verify(), valid = _a.valid, errors = _a.errors;
141
+ if (!valid) {
142
+ return [2 /*return*/, fail("Integrity check failed:\n" + errors.join('\n'))];
143
+ }
144
+ if (options.mode === 'verify')
145
+ return [2 /*return*/, this.runVerify(options)];
146
+ if (options.isolation === 'container')
147
+ return [2 /*return*/, this.runContainer(options)];
148
+ return [2 /*return*/, this.runNative(options)];
149
+ });
150
+ });
151
+ };
152
+ /**
153
+ * Run natively via Node.js: extract RUFLO section to a temp dir,
154
+ * configure env vars, optionally decrypt API-key vault, and spawn.
155
+ */
156
+ RvfaRunner.prototype.runNative = function (options) {
157
+ return __awaiter(this, void 0, Promise, function () {
158
+ var workDir, ruflo, entryFile, env, vault, keys, args;
159
+ return __generator(this, function (_a) {
160
+ switch (_a.label) {
161
+ case 0:
162
+ workDir = join(tmpdir(), "rvfa-" + this.header.name + "-" + Date.now());
163
+ _a.label = 1;
164
+ case 1:
165
+ _a.trys.push([1, , 6, 8]);
166
+ return [4 /*yield*/, mkdir(workDir, { recursive: true })];
167
+ case 2:
168
+ _a.sent();
169
+ ruflo = tryExtract(this.reader, 'ruflo');
170
+ if (!ruflo)
171
+ return [2 /*return*/, fail('RVFA appliance does not contain a "ruflo" section')];
172
+ entryFile = join(workDir, 'ruflo-bundle.js');
173
+ return [4 /*yield*/, writeFile(entryFile, ruflo)];
174
+ case 3:
175
+ _a.sent();
176
+ env = __assign(__assign({}, this.header.boot.env), { RVFA_APPLIANCE_NAME: this.header.name, RVFA_APPLIANCE_VERSION: this.header.appVersion, RVFA_RUN_MODE: options.mode, RVFA_PROFILE: this.header.profile });
177
+ if (!(options.passphrase && this.header.models.provider !== 'ruvllm')) return [3 /*break*/, 5];
178
+ vault = tryExtract(this.reader, 'models');
179
+ if (!vault) return [3 /*break*/, 5];
180
+ return [4 /*yield*/, this.decryptVault(vault, options.passphrase)];
181
+ case 4:
182
+ keys = _a.sent();
183
+ if (keys)
184
+ Object.assign(env, keys);
185
+ _a.label = 5;
186
+ case 5:
187
+ args = __spreadArray([], this.header.boot.args, true);
188
+ if (options.mode === 'mcp')
189
+ args.push('--mcp', '--transport', 'stdio');
190
+ return [2 /*return*/, spawnAsync(this.header.boot.entrypoint || 'node', __spreadArray([entryFile], args, true), {
191
+ cwd: workDir,
192
+ env: env,
193
+ verbose: options.verbose
194
+ })];
195
+ case 6: return [4 /*yield*/, cleanup(workDir)];
196
+ case 7:
197
+ _a.sent();
198
+ return [7 /*endfinally*/];
199
+ case 8: return [2 /*return*/];
200
+ }
201
+ });
202
+ });
203
+ };
204
+ /**
205
+ * Run in a Docker container: generate a Dockerfile from the
206
+ * extracted sections, build the image, and run it.
207
+ */
208
+ RvfaRunner.prototype.runContainer = function (options) {
209
+ return __awaiter(this, void 0, Promise, function () {
210
+ var dockerCheck, workDir, ruflo, data, envFlags, _i, _a, _b, k, v, baseImage, cmdArgs, dockerfile, imageName, build;
211
+ return __generator(this, function (_c) {
212
+ switch (_c.label) {
213
+ case 0: return [4 /*yield*/, spawnAsync('docker', ['info'], { verbose: false })];
214
+ case 1:
215
+ dockerCheck = _c.sent();
216
+ if (dockerCheck.exitCode !== 0) {
217
+ return [2 /*return*/, fail('Docker is not available. Install Docker or use isolation: "native".')];
218
+ }
219
+ workDir = join(tmpdir(), "rvfa-container-" + Date.now());
220
+ _c.label = 2;
221
+ case 2:
222
+ _c.trys.push([2, , 9, 11]);
223
+ return [4 /*yield*/, mkdir(workDir, { recursive: true })];
224
+ case 3:
225
+ _c.sent();
226
+ ruflo = tryExtract(this.reader, 'ruflo');
227
+ if (!ruflo)
228
+ return [2 /*return*/, fail('RVFA appliance does not contain a "ruflo" section')];
229
+ return [4 /*yield*/, writeFile(join(workDir, 'ruflo-bundle.js'), ruflo)];
230
+ case 4:
231
+ _c.sent();
232
+ data = tryExtract(this.reader, 'data');
233
+ if (!data) return [3 /*break*/, 6];
234
+ return [4 /*yield*/, writeFile(join(workDir, 'data.bin'), data)];
235
+ case 5:
236
+ _c.sent();
237
+ _c.label = 6;
238
+ case 6:
239
+ envFlags = [];
240
+ for (_i = 0, _a = Object.entries(this.header.boot.env); _i < _a.length; _i++) {
241
+ _b = _a[_i], k = _b[0], v = _b[1];
242
+ envFlags.push('-e', k + "=" + v);
243
+ }
244
+ envFlags.push('-e', "RVFA_RUN_MODE=" + options.mode, '-e', "RVFA_PROFILE=" + this.header.profile);
245
+ baseImage = this.header.platform === 'alpine' ? 'node:20-alpine' : 'node:20-slim';
246
+ cmdArgs = this.header.boot.args.map(function (a) { return ", \"" + a + "\""; }).join('');
247
+ dockerfile = [
248
+ "FROM " + baseImage,
249
+ 'WORKDIR /app', 'COPY ruflo-bundle.js .',
250
+ data ? 'COPY data.bin .' : '',
251
+ "CMD [\"node\", \"ruflo-bundle.js\"" + cmdArgs + "]",
252
+ ].filter(Boolean).join('\n');
253
+ return [4 /*yield*/, writeFile(join(workDir, 'Dockerfile'), dockerfile)];
254
+ case 7:
255
+ _c.sent();
256
+ imageName = ("rvfa-" + this.header.name + ":" + this.header.appVersion).toLowerCase();
257
+ return [4 /*yield*/, spawnAsync('docker', ['build', '-t', imageName, '.'], {
258
+ cwd: workDir, verbose: options.verbose
259
+ })];
260
+ case 8:
261
+ build = _c.sent();
262
+ if (build.exitCode !== 0) {
263
+ return [2 /*return*/, __assign(__assign({}, build), { stderr: "Docker build failed:\n" + build.stderr })];
264
+ }
265
+ return [2 /*return*/, spawnAsync('docker', __spreadArray(__spreadArray(['run', '--rm'], envFlags, true), [imageName], false), { verbose: options.verbose })];
266
+ case 9: return [4 /*yield*/, cleanup(workDir)];
267
+ case 10:
268
+ _c.sent();
269
+ return [7 /*endfinally*/];
270
+ case 11: return [2 /*return*/];
271
+ }
272
+ });
273
+ });
274
+ };
275
+ /**
276
+ * Run the verification suite. Extracts the VERIFY section and
277
+ * executes it; falls back to a basic integrity report.
278
+ */
279
+ RvfaRunner.prototype.runVerify = function (options) {
280
+ return __awaiter(this, void 0, Promise, function () {
281
+ var start, verifyPayload, _a, valid, errors, lines, workDir;
282
+ return __generator(this, function (_b) {
283
+ switch (_b.label) {
284
+ case 0:
285
+ start = performance.now();
286
+ verifyPayload = tryExtract(this.reader, 'verify');
287
+ if (!verifyPayload) {
288
+ _a = this.reader.verify(), valid = _a.valid, errors = _a.errors;
289
+ lines = __spreadArray(__spreadArray([
290
+ "Appliance: " + this.header.name + " v" + this.header.appVersion,
291
+ "Profile: " + this.header.profile,
292
+ "Sections: " + this.header.sections.length,
293
+ "Integrity: " + (valid ? 'PASS' : 'FAIL')
294
+ ], errors.map(function (e) { return " FAIL: " + e; }), true), [
295
+ errors.length === 0 ? ' All checks PASS' : '',
296
+ ], false);
297
+ return [2 /*return*/, {
298
+ exitCode: valid ? 0 : 1,
299
+ stdout: lines.filter(Boolean).join('\n'), stderr: '',
300
+ duration: performance.now() - start
301
+ }];
302
+ }
303
+ workDir = join(tmpdir(), "rvfa-verify-" + Date.now());
304
+ _b.label = 1;
305
+ case 1:
306
+ _b.trys.push([1, , 4, 6]);
307
+ return [4 /*yield*/, mkdir(workDir, { recursive: true })];
308
+ case 2:
309
+ _b.sent();
310
+ return [4 /*yield*/, writeFile(join(workDir, 'verify.js'), verifyPayload)];
311
+ case 3:
312
+ _b.sent();
313
+ return [2 /*return*/, spawnAsync('node', [join(workDir, 'verify.js')], {
314
+ cwd: workDir, verbose: options.verbose,
315
+ env: { RVFA_APPLIANCE_NAME: this.header.name, RVFA_APPLIANCE_VERSION: this.header.appVersion }
316
+ })];
317
+ case 4: return [4 /*yield*/, cleanup(workDir)];
318
+ case 5:
319
+ _b.sent();
320
+ return [7 /*endfinally*/];
321
+ case 6: return [2 /*return*/];
322
+ }
323
+ });
324
+ });
325
+ };
326
+ /** Return appliance metadata without booting. */
327
+ RvfaRunner.prototype.getInfo = function () {
328
+ var sections = this.reader.getSections();
329
+ var totalSize = sections.reduce(function (sum, s) { return sum + s.size; }, 0);
330
+ return {
331
+ header: __assign({}, this.header),
332
+ sections: sections.map(function (s) { return ({ id: s.id, size: s.size, originalSize: s.originalSize }); }),
333
+ totalSize: totalSize
334
+ };
335
+ };
336
+ // ── Private ───────────────────────────────────────────────
337
+ /**
338
+ * Decrypt an API-key vault (AES-256-GCM).
339
+ * Layout: [16-byte IV][ciphertext][16-byte auth-tag]
340
+ * Key derived via PBKDF2 with salt = "rvfa-vault-{name}".
341
+ */
342
+ RvfaRunner.prototype.decryptVault = function (payload, passphrase) {
343
+ return __awaiter(this, void 0, Promise, function () {
344
+ var _a, createDecipheriv, pbkdf2Sync, iv, tag, ciphertext, key, decipher, dec, _b;
345
+ return __generator(this, function (_c) {
346
+ switch (_c.label) {
347
+ case 0:
348
+ _c.trys.push([0, 2, , 3]);
349
+ return [4 /*yield*/, import('node:crypto')];
350
+ case 1:
351
+ _a = _c.sent(), createDecipheriv = _a.createDecipheriv, pbkdf2Sync = _a.pbkdf2Sync;
352
+ if (payload.length < 33)
353
+ return [2 /*return*/, null];
354
+ iv = payload.subarray(0, 16);
355
+ tag = payload.subarray(payload.length - 16);
356
+ ciphertext = payload.subarray(16, payload.length - 16);
357
+ key = pbkdf2Sync(passphrase, Buffer.from("rvfa-vault-" + this.header.name), 100000, 32, 'sha256');
358
+ decipher = createDecipheriv('aes-256-gcm', key, iv);
359
+ decipher.setAuthTag(tag);
360
+ dec = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
361
+ return [2 /*return*/, JSON.parse(dec.toString('utf-8'))];
362
+ case 2:
363
+ _b = _c.sent();
364
+ return [2 /*return*/, null];
365
+ case 3: return [2 /*return*/];
366
+ }
367
+ });
368
+ });
369
+ };
370
+ return RvfaRunner;
371
+ }());
372
+ export { RvfaRunner };
373
+ //# sourceMappingURL=rvfa-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rvfa-runner.js","sourceRoot":"","sources":["../../../src/appliance/rvfa-runner.ts"],"names":[],"mappings":"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"}