kynjal-cli 4.0.0 → 4.0.2

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 (502) hide show
  1. package/dist/src/appliance/gguf-engine.d.ts +91 -0
  2. package/dist/src/appliance/gguf-engine.d.ts.map +1 -0
  3. package/dist/src/appliance/gguf-engine.js +286 -525
  4. package/dist/src/appliance/gguf-engine.js.map +1 -1
  5. package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  6. package/dist/src/appliance/ruvllm-bridge.d.ts.map +1 -0
  7. package/dist/src/appliance/ruvllm-bridge.js +203 -403
  8. package/dist/src/appliance/ruvllm-bridge.js.map +1 -1
  9. package/dist/src/appliance/rvfa-builder.d.ts +44 -0
  10. package/dist/src/appliance/rvfa-builder.d.ts.map +1 -0
  11. package/dist/src/appliance/rvfa-builder.js +154 -208
  12. package/dist/src/appliance/rvfa-builder.js.map +1 -1
  13. package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  14. package/dist/src/appliance/rvfa-distribution.d.ts.map +1 -0
  15. package/dist/src/appliance/rvfa-distribution.js +260 -423
  16. package/dist/src/appliance/rvfa-distribution.js.map +1 -1
  17. package/dist/src/appliance/rvfa-format.d.ts +111 -0
  18. package/dist/src/appliance/rvfa-format.d.ts.map +1 -0
  19. package/dist/src/appliance/rvfa-format.js +128 -200
  20. package/dist/src/appliance/rvfa-format.js.map +1 -1
  21. package/dist/src/appliance/rvfa-runner.d.ts +69 -0
  22. package/dist/src/appliance/rvfa-runner.d.ts.map +1 -0
  23. package/dist/src/appliance/rvfa-runner.js +168 -304
  24. package/dist/src/appliance/rvfa-runner.js.map +1 -1
  25. package/dist/src/appliance/rvfa-signing.d.ts +123 -0
  26. package/dist/src/appliance/rvfa-signing.d.ts.map +1 -0
  27. package/dist/src/appliance/rvfa-signing.js +173 -295
  28. package/dist/src/appliance/rvfa-signing.js.map +1 -1
  29. package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  30. package/dist/src/benchmarks/pretrain/index.d.ts.map +1 -0
  31. package/dist/src/benchmarks/pretrain/index.js +331 -542
  32. package/dist/src/benchmarks/pretrain/index.js.map +1 -1
  33. package/dist/src/commands/agent.js +574 -697
  34. package/dist/src/commands/agent.js.map +1 -1
  35. package/dist/src/commands/analyze.js +1218 -1548
  36. package/dist/src/commands/analyze.js.map +1 -1
  37. package/dist/src/commands/appliance-advanced.js +158 -267
  38. package/dist/src/commands/appliance-advanced.js.map +1 -1
  39. package/dist/src/commands/appliance.js +318 -493
  40. package/dist/src/commands/appliance.js.map +1 -1
  41. package/dist/src/commands/benchmark.js +372 -523
  42. package/dist/src/commands/benchmark.js.map +1 -1
  43. package/dist/src/commands/claims.js +274 -364
  44. package/dist/src/commands/claims.js.map +1 -1
  45. package/dist/src/commands/cleanup.js +113 -157
  46. package/dist/src/commands/cleanup.js.map +1 -1
  47. package/dist/src/commands/completions.js +477 -118
  48. package/dist/src/commands/completions.js.map +1 -1
  49. package/dist/src/commands/config.js +237 -303
  50. package/dist/src/commands/config.js.map +1 -1
  51. package/dist/src/commands/daemon.js +487 -596
  52. package/dist/src/commands/daemon.js.map +1 -1
  53. package/dist/src/commands/deployment.js +194 -275
  54. package/dist/src/commands/deployment.js.map +1 -1
  55. package/dist/src/commands/doctor.js +504 -686
  56. package/dist/src/commands/doctor.js.map +1 -1
  57. package/dist/src/commands/embeddings.js +1293 -1543
  58. package/dist/src/commands/embeddings.js.map +1 -1
  59. package/dist/src/commands/guidance.js +449 -596
  60. package/dist/src/commands/guidance.js.map +1 -1
  61. package/dist/src/commands/hive-mind.js +854 -938
  62. package/dist/src/commands/hive-mind.js.map +1 -1
  63. package/dist/src/commands/hooks.js +3112 -3519
  64. package/dist/src/commands/hooks.js.map +1 -1
  65. package/dist/src/commands/index.d.ts +115 -0
  66. package/dist/src/commands/index.d.ts.map +1 -0
  67. package/dist/src/commands/index.js +126 -308
  68. package/dist/src/commands/index.js.map +1 -1
  69. package/dist/src/commands/init.js +788 -940
  70. package/dist/src/commands/init.js.map +1 -1
  71. package/dist/src/commands/issues.js +383 -558
  72. package/dist/src/commands/issues.js.map +1 -1
  73. package/dist/src/commands/mcp.js +493 -605
  74. package/dist/src/commands/mcp.js.map +1 -1
  75. package/dist/src/commands/memory.js +833 -1026
  76. package/dist/src/commands/memory.js.map +1 -1
  77. package/dist/src/commands/migrate.js +282 -347
  78. package/dist/src/commands/migrate.js.map +1 -1
  79. package/dist/src/commands/neural.js +1289 -1563
  80. package/dist/src/commands/neural.js.map +1 -1
  81. package/dist/src/commands/performance.js +497 -643
  82. package/dist/src/commands/performance.js.map +1 -1
  83. package/dist/src/commands/plugins.js +668 -841
  84. package/dist/src/commands/plugins.js.map +1 -1
  85. package/dist/src/commands/process.js +392 -447
  86. package/dist/src/commands/process.js.map +1 -1
  87. package/dist/src/commands/progress.js +162 -256
  88. package/dist/src/commands/progress.js.map +1 -1
  89. package/dist/src/commands/providers.js +150 -220
  90. package/dist/src/commands/providers.js.map +1 -1
  91. package/dist/src/commands/route.js +520 -665
  92. package/dist/src/commands/route.js.map +1 -1
  93. package/dist/src/commands/ruvector/backup.js +505 -651
  94. package/dist/src/commands/ruvector/backup.js.map +1 -1
  95. package/dist/src/commands/ruvector/benchmark.js +349 -401
  96. package/dist/src/commands/ruvector/benchmark.js.map +1 -1
  97. package/dist/src/commands/ruvector/import.js +224 -266
  98. package/dist/src/commands/ruvector/import.js.map +1 -1
  99. package/dist/src/commands/ruvector/index.js +37 -75
  100. package/dist/src/commands/ruvector/index.js.map +1 -1
  101. package/dist/src/commands/ruvector/init.js +336 -359
  102. package/dist/src/commands/ruvector/init.js.map +1 -1
  103. package/dist/src/commands/ruvector/migrate.js +335 -322
  104. package/dist/src/commands/ruvector/migrate.js.map +1 -1
  105. package/dist/src/commands/ruvector/optimize.js +375 -431
  106. package/dist/src/commands/ruvector/optimize.js.map +1 -1
  107. package/dist/src/commands/ruvector/setup.js +703 -117
  108. package/dist/src/commands/ruvector/setup.js.map +1 -1
  109. package/dist/src/commands/ruvector/status.js +364 -419
  110. package/dist/src/commands/ruvector/status.js.map +1 -1
  111. package/dist/src/commands/security.js +485 -608
  112. package/dist/src/commands/security.js.map +1 -1
  113. package/dist/src/commands/session.js +504 -626
  114. package/dist/src/commands/session.js.map +1 -1
  115. package/dist/src/commands/start.js +267 -364
  116. package/dist/src/commands/start.js.map +1 -1
  117. package/dist/src/commands/status.js +380 -486
  118. package/dist/src/commands/status.js.map +1 -1
  119. package/dist/src/commands/swarm.js +408 -488
  120. package/dist/src/commands/swarm.js.map +1 -1
  121. package/dist/src/commands/task.js +423 -538
  122. package/dist/src/commands/task.js.map +1 -1
  123. package/dist/src/commands/transfer-store.js +322 -412
  124. package/dist/src/commands/transfer-store.js.map +1 -1
  125. package/dist/src/commands/update.js +196 -291
  126. package/dist/src/commands/update.js.map +1 -1
  127. package/dist/src/commands/workflow.js +386 -486
  128. package/dist/src/commands/workflow.js.map +1 -1
  129. package/dist/src/config-adapter.d.ts +15 -0
  130. package/dist/src/config-adapter.d.ts.map +1 -0
  131. package/dist/src/config-adapter.js +38 -39
  132. package/dist/src/config-adapter.js.map +1 -1
  133. package/dist/src/index.d.ts +77 -0
  134. package/dist/src/index.d.ts.map +1 -0
  135. package/dist/src/index.js +309 -411
  136. package/dist/src/index.js.map +1 -1
  137. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  138. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
  139. package/dist/src/infrastructure/in-memory-repositories.js +246 -507
  140. package/dist/src/infrastructure/in-memory-repositories.js.map +1 -1
  141. package/dist/src/init/claudemd-generator.d.ts +25 -0
  142. package/dist/src/init/claudemd-generator.d.ts.map +1 -0
  143. package/dist/src/init/claudemd-generator.js +368 -78
  144. package/dist/src/init/claudemd-generator.js.map +1 -1
  145. package/dist/src/init/executor.d.ts +41 -0
  146. package/dist/src/init/executor.d.ts.map +1 -0
  147. package/dist/src/init/executor.js +1307 -996
  148. package/dist/src/init/executor.js.map +1 -1
  149. package/dist/src/init/helpers-generator.d.ts +60 -0
  150. package/dist/src/init/helpers-generator.d.ts.map +1 -0
  151. package/dist/src/init/helpers-generator.js +657 -12
  152. package/dist/src/init/helpers-generator.js.map +1 -1
  153. package/dist/src/init/index.d.ts +1 -1
  154. package/dist/src/init/index.d.ts.map +1 -1
  155. package/dist/src/init/index.js +1 -1
  156. package/dist/src/init/index.js.map +1 -1
  157. package/dist/src/init/mcp-generator.js +33 -37
  158. package/dist/src/init/mcp-generator.js.map +1 -1
  159. package/dist/src/init/settings-generator.js +76 -77
  160. package/dist/src/init/settings-generator.js.map +1 -1
  161. package/dist/src/init/statusline-generator.js +801 -3
  162. package/dist/src/init/statusline-generator.js.map +1 -1
  163. package/dist/src/init/types.d.ts +1 -1
  164. package/dist/src/init/types.d.ts.map +1 -1
  165. package/dist/src/init/types.js +76 -59
  166. package/dist/src/init/types.js.map +1 -1
  167. package/dist/src/mcp-client.d.ts +92 -0
  168. package/dist/src/mcp-client.d.ts.map +1 -0
  169. package/dist/src/mcp-client.js +81 -125
  170. package/dist/src/mcp-client.js.map +1 -1
  171. package/dist/src/mcp-server.d.ts +161 -0
  172. package/dist/src/mcp-server.d.ts.map +1 -0
  173. package/dist/src/mcp-server.js +470 -757
  174. package/dist/src/mcp-server.js.map +1 -1
  175. package/dist/src/mcp-tools/agent-tools.js +391 -492
  176. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  177. package/dist/src/mcp-tools/agentdb-tools.js +332 -533
  178. package/dist/src/mcp-tools/agentdb-tools.js.map +1 -1
  179. package/dist/src/mcp-tools/analyze-tools.js +172 -236
  180. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  181. package/dist/src/mcp-tools/auto-install.d.ts +83 -0
  182. package/dist/src/mcp-tools/auto-install.d.ts.map +1 -0
  183. package/dist/src/mcp-tools/auto-install.js +80 -142
  184. package/dist/src/mcp-tools/auto-install.js.map +1 -1
  185. package/dist/src/mcp-tools/browser-tools.js +252 -375
  186. package/dist/src/mcp-tools/browser-tools.js.map +1 -1
  187. package/dist/src/mcp-tools/claims-tools.js +473 -565
  188. package/dist/src/mcp-tools/claims-tools.js.map +1 -1
  189. package/dist/src/mcp-tools/config-tools.js +197 -272
  190. package/dist/src/mcp-tools/config-tools.js.map +1 -1
  191. package/dist/src/mcp-tools/coordination-tools.js +500 -572
  192. package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
  193. package/dist/src/mcp-tools/daa-tools.js +286 -364
  194. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  195. package/dist/src/mcp-tools/embeddings-tools.js +582 -693
  196. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  197. package/dist/src/mcp-tools/github-tools.js +260 -311
  198. package/dist/src/mcp-tools/github-tools.js.map +1 -1
  199. package/dist/src/mcp-tools/hive-mind-tools.js +573 -640
  200. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  201. package/dist/src/mcp-tools/hooks-tools.js +2215 -2648
  202. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  203. package/dist/src/mcp-tools/memory-tools.js +350 -505
  204. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  205. package/dist/src/mcp-tools/neural-tools.js +315 -412
  206. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  207. package/dist/src/mcp-tools/performance-tools.js +420 -480
  208. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  209. package/dist/src/mcp-tools/progress-tools.js +204 -278
  210. package/dist/src/mcp-tools/progress-tools.js.map +1 -1
  211. package/dist/src/mcp-tools/ruvllm-tools.js +163 -279
  212. package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -1
  213. package/dist/src/mcp-tools/security-tools.js +297 -429
  214. package/dist/src/mcp-tools/security-tools.js.map +1 -1
  215. package/dist/src/mcp-tools/session-tools.js +185 -234
  216. package/dist/src/mcp-tools/session-tools.js.map +1 -1
  217. package/dist/src/mcp-tools/swarm-tools.js +207 -260
  218. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  219. package/dist/src/mcp-tools/system-tools.js +276 -325
  220. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  221. package/dist/src/mcp-tools/task-tools.js +270 -336
  222. package/dist/src/mcp-tools/task-tools.js.map +1 -1
  223. package/dist/src/mcp-tools/terminal-tools.js +148 -196
  224. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  225. package/dist/src/mcp-tools/transfer-tools.js +186 -333
  226. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  227. package/dist/src/mcp-tools/types.d.ts +31 -0
  228. package/dist/src/mcp-tools/types.d.ts.map +1 -0
  229. package/dist/src/mcp-tools/wasm-agent-tools.js +133 -280
  230. package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -1
  231. package/dist/src/mcp-tools/workflow-tools.js +405 -450
  232. package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
  233. package/dist/src/memory/ewc-consolidation.d.ts +295 -0
  234. package/dist/src/memory/ewc-consolidation.d.ts.map +1 -0
  235. package/dist/src/memory/ewc-consolidation.js +190 -303
  236. package/dist/src/memory/ewc-consolidation.js.map +1 -1
  237. package/dist/src/memory/intelligence.d.ts +338 -0
  238. package/dist/src/memory/intelligence.d.ts.map +1 -0
  239. package/dist/src/memory/intelligence.js +569 -794
  240. package/dist/src/memory/intelligence.js.map +1 -1
  241. package/dist/src/memory/memory-bridge.d.ts +407 -0
  242. package/dist/src/memory/memory-bridge.d.ts.map +1 -0
  243. package/dist/src/memory/memory-bridge.js +1170 -1640
  244. package/dist/src/memory/memory-bridge.js.map +1 -1
  245. package/dist/src/memory/memory-initializer.d.ts +412 -0
  246. package/dist/src/memory/memory-initializer.d.ts.map +1 -0
  247. package/dist/src/memory/memory-initializer.js +1836 -1851
  248. package/dist/src/memory/memory-initializer.js.map +1 -1
  249. package/dist/src/memory/sona-optimizer.d.ts +227 -0
  250. package/dist/src/memory/sona-optimizer.d.ts.map +1 -0
  251. package/dist/src/memory/sona-optimizer.js +199 -329
  252. package/dist/src/memory/sona-optimizer.js.map +1 -1
  253. package/dist/src/output.d.ts +2 -2
  254. package/dist/src/output.d.ts.map +1 -1
  255. package/dist/src/output.js +242 -272
  256. package/dist/src/output.js.map +1 -1
  257. package/dist/src/parser.d.ts +51 -0
  258. package/dist/src/parser.d.ts.map +1 -0
  259. package/dist/src/parser.js +140 -187
  260. package/dist/src/parser.js.map +1 -1
  261. package/dist/src/plugins/manager.d.ts +133 -0
  262. package/dist/src/plugins/manager.d.ts.map +1 -0
  263. package/dist/src/plugins/manager.js +285 -521
  264. package/dist/src/plugins/manager.js.map +1 -1
  265. package/dist/src/plugins/store/discovery.d.ts +88 -0
  266. package/dist/src/plugins/store/discovery.d.ts.map +1 -0
  267. package/dist/src/plugins/store/discovery.js +271 -358
  268. package/dist/src/plugins/store/discovery.js.map +1 -1
  269. package/dist/src/plugins/store/index.d.ts +76 -0
  270. package/dist/src/plugins/store/index.d.ts.map +1 -0
  271. package/dist/src/plugins/store/index.js +48 -105
  272. package/dist/src/plugins/store/index.js.map +1 -1
  273. package/dist/src/plugins/store/search.d.ts +46 -0
  274. package/dist/src/plugins/store/search.d.ts.map +1 -0
  275. package/dist/src/plugins/store/search.js +69 -107
  276. package/dist/src/plugins/store/search.js.map +1 -1
  277. package/dist/src/plugins/store/types.d.ts +274 -0
  278. package/dist/src/plugins/store/types.d.ts.map +1 -0
  279. package/dist/src/plugins/tests/demo-plugin-store.js +113 -160
  280. package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -1
  281. package/dist/src/plugins/tests/standalone-test.js +172 -223
  282. package/dist/src/plugins/tests/standalone-test.js.map +1 -1
  283. package/dist/src/plugins/tests/test-plugin-store.js +190 -228
  284. package/dist/src/plugins/tests/test-plugin-store.js.map +1 -1
  285. package/dist/src/production/circuit-breaker.d.ts +101 -0
  286. package/dist/src/production/circuit-breaker.d.ts.map +1 -0
  287. package/dist/src/production/circuit-breaker.js +62 -126
  288. package/dist/src/production/circuit-breaker.js.map +1 -1
  289. package/dist/src/production/error-handler.d.ts +92 -0
  290. package/dist/src/production/error-handler.d.ts.map +1 -0
  291. package/dist/src/production/error-handler.js +86 -156
  292. package/dist/src/production/error-handler.js.map +1 -1
  293. package/dist/src/production/monitoring.d.ts +161 -0
  294. package/dist/src/production/monitoring.d.ts.map +1 -0
  295. package/dist/src/production/monitoring.js +139 -220
  296. package/dist/src/production/monitoring.js.map +1 -1
  297. package/dist/src/production/rate-limiter.d.ts +80 -0
  298. package/dist/src/production/rate-limiter.d.ts.map +1 -0
  299. package/dist/src/production/rate-limiter.js +74 -93
  300. package/dist/src/production/rate-limiter.js.map +1 -1
  301. package/dist/src/production/retry.d.ts +48 -0
  302. package/dist/src/production/retry.d.ts.map +1 -0
  303. package/dist/src/production/retry.js +75 -167
  304. package/dist/src/production/retry.js.map +1 -1
  305. package/dist/src/prompt.d.ts +44 -0
  306. package/dist/src/prompt.d.ts.map +1 -0
  307. package/dist/src/prompt.js +436 -560
  308. package/dist/src/prompt.js.map +1 -1
  309. package/dist/src/runtime/headless.d.ts +60 -0
  310. package/dist/src/runtime/headless.d.ts.map +1 -0
  311. package/dist/src/runtime/headless.js +197 -286
  312. package/dist/src/runtime/headless.js.map +1 -1
  313. package/dist/src/ruvector/agent-wasm.d.ts +182 -0
  314. package/dist/src/ruvector/agent-wasm.d.ts.map +1 -0
  315. package/dist/src/ruvector/agent-wasm.js +156 -351
  316. package/dist/src/ruvector/agent-wasm.js.map +1 -1
  317. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  318. package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
  319. package/dist/src/ruvector/ast-analyzer.js +145 -232
  320. package/dist/src/ruvector/ast-analyzer.js.map +1 -1
  321. package/dist/src/ruvector/coverage-router.d.ts +160 -0
  322. package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
  323. package/dist/src/ruvector/coverage-router.js +287 -419
  324. package/dist/src/ruvector/coverage-router.js.map +1 -1
  325. package/dist/src/ruvector/coverage-tools.js +56 -101
  326. package/dist/src/ruvector/coverage-tools.js.map +1 -1
  327. package/dist/src/ruvector/diff-classifier.d.ts +175 -0
  328. package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
  329. package/dist/src/ruvector/diff-classifier.js +324 -451
  330. package/dist/src/ruvector/diff-classifier.js.map +1 -1
  331. package/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
  332. package/dist/src/ruvector/enhanced-model-router.d.ts.map +1 -0
  333. package/dist/src/ruvector/enhanced-model-router.js +260 -336
  334. package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
  335. package/dist/src/ruvector/flash-attention.d.ts +195 -0
  336. package/dist/src/ruvector/flash-attention.d.ts.map +1 -0
  337. package/dist/src/ruvector/flash-attention.js +223 -254
  338. package/dist/src/ruvector/flash-attention.js.map +1 -1
  339. package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  340. package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
  341. package/dist/src/ruvector/graph-analyzer.js +486 -680
  342. package/dist/src/ruvector/graph-analyzer.js.map +1 -1
  343. package/dist/src/ruvector/index.d.ts +40 -0
  344. package/dist/src/ruvector/index.d.ts.map +1 -0
  345. package/dist/src/ruvector/index.js +36 -106
  346. package/dist/src/ruvector/index.js.map +1 -1
  347. package/dist/src/ruvector/lora-adapter.d.ts +218 -0
  348. package/dist/src/ruvector/lora-adapter.d.ts.map +1 -0
  349. package/dist/src/ruvector/lora-adapter.js +155 -248
  350. package/dist/src/ruvector/lora-adapter.js.map +1 -1
  351. package/dist/src/ruvector/model-router.d.ts +220 -0
  352. package/dist/src/ruvector/model-router.d.ts.map +1 -0
  353. package/dist/src/ruvector/model-router.js +175 -248
  354. package/dist/src/ruvector/model-router.js.map +1 -1
  355. package/dist/src/ruvector/moe-router.d.ts +206 -0
  356. package/dist/src/ruvector/moe-router.d.ts.map +1 -0
  357. package/dist/src/ruvector/moe-router.js +228 -286
  358. package/dist/src/ruvector/moe-router.js.map +1 -1
  359. package/dist/src/ruvector/q-learning-router.d.ts +211 -0
  360. package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
  361. package/dist/src/ruvector/q-learning-router.js +257 -338
  362. package/dist/src/ruvector/q-learning-router.js.map +1 -1
  363. package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  364. package/dist/src/ruvector/ruvllm-wasm.d.ts.map +1 -0
  365. package/dist/src/ruvector/ruvllm-wasm.js +270 -434
  366. package/dist/src/ruvector/ruvllm-wasm.js.map +1 -1
  367. package/dist/src/ruvector/semantic-router.d.ts +77 -0
  368. package/dist/src/ruvector/semantic-router.d.ts.map +1 -0
  369. package/dist/src/ruvector/semantic-router.js +60 -67
  370. package/dist/src/ruvector/semantic-router.js.map +1 -1
  371. package/dist/src/ruvector/vector-db.d.ts +69 -0
  372. package/dist/src/ruvector/vector-db.d.ts.map +1 -0
  373. package/dist/src/ruvector/vector-db.js +119 -205
  374. package/dist/src/ruvector/vector-db.js.map +1 -1
  375. package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  376. package/dist/src/services/agentic-flow-bridge.d.ts.map +1 -0
  377. package/dist/src/services/agentic-flow-bridge.js +32 -105
  378. package/dist/src/services/agentic-flow-bridge.js.map +1 -1
  379. package/dist/src/services/claim-service.d.ts +204 -0
  380. package/dist/src/services/claim-service.d.ts.map +1 -0
  381. package/dist/src/services/claim-service.js +615 -940
  382. package/dist/src/services/claim-service.js.map +1 -1
  383. package/dist/src/services/container-worker-pool.d.ts +197 -0
  384. package/dist/src/services/container-worker-pool.d.ts.map +1 -0
  385. package/dist/src/services/container-worker-pool.js +398 -666
  386. package/dist/src/services/container-worker-pool.js.map +1 -1
  387. package/dist/src/services/headless-worker-executor.d.ts +304 -0
  388. package/dist/src/services/headless-worker-executor.d.ts.map +1 -0
  389. package/dist/src/services/headless-worker-executor.js +441 -467
  390. package/dist/src/services/headless-worker-executor.js.map +1 -1
  391. package/dist/src/services/index.d.ts +4 -4
  392. package/dist/src/services/index.d.ts.map +1 -1
  393. package/dist/src/services/index.js +4 -4
  394. package/dist/src/services/index.js.map +1 -1
  395. package/dist/src/services/registry-api.d.ts +58 -0
  396. package/dist/src/services/registry-api.d.ts.map +1 -0
  397. package/dist/src/services/registry-api.js +92 -200
  398. package/dist/src/services/registry-api.js.map +1 -1
  399. package/dist/src/services/ruvector-training.d.ts +222 -0
  400. package/dist/src/services/ruvector-training.d.ts.map +1 -0
  401. package/dist/src/services/ruvector-training.js +257 -337
  402. package/dist/src/services/ruvector-training.js.map +1 -1
  403. package/dist/src/services/worker-daemon.d.ts +228 -0
  404. package/dist/src/services/worker-daemon.d.ts.map +1 -0
  405. package/dist/src/services/worker-daemon.js +591 -849
  406. package/dist/src/services/worker-daemon.js.map +1 -1
  407. package/dist/src/services/worker-queue.d.ts +194 -0
  408. package/dist/src/services/worker-queue.d.ts.map +1 -0
  409. package/dist/src/services/worker-queue.js +331 -548
  410. package/dist/src/services/worker-queue.js.map +1 -1
  411. package/dist/src/suggest.d.ts +53 -0
  412. package/dist/src/suggest.d.ts.map +1 -0
  413. package/dist/src/suggest.js +45 -55
  414. package/dist/src/suggest.js.map +1 -1
  415. package/dist/src/transfer/anonymization/index.js +29 -37
  416. package/dist/src/transfer/anonymization/index.js.map +1 -1
  417. package/dist/src/transfer/deploy-seraphine.js +128 -155
  418. package/dist/src/transfer/deploy-seraphine.js.map +1 -1
  419. package/dist/src/transfer/export.d.ts +25 -0
  420. package/dist/src/transfer/export.d.ts.map +1 -0
  421. package/dist/src/transfer/export.js +84 -142
  422. package/dist/src/transfer/export.js.map +1 -1
  423. package/dist/src/transfer/index.d.ts +1 -1
  424. package/dist/src/transfer/index.d.ts.map +1 -1
  425. package/dist/src/transfer/index.js +0 -2
  426. package/dist/src/transfer/index.js.map +1 -1
  427. package/dist/src/transfer/ipfs/client.d.ts +109 -0
  428. package/dist/src/transfer/ipfs/client.d.ts.map +1 -0
  429. package/dist/src/transfer/ipfs/client.js +187 -337
  430. package/dist/src/transfer/ipfs/client.js.map +1 -1
  431. package/dist/src/transfer/ipfs/upload.d.ts +95 -0
  432. package/dist/src/transfer/ipfs/upload.d.ts.map +1 -0
  433. package/dist/src/transfer/ipfs/upload.js +288 -434
  434. package/dist/src/transfer/ipfs/upload.js.map +1 -1
  435. package/dist/src/transfer/models/seraphine.d.ts +72 -0
  436. package/dist/src/transfer/models/seraphine.d.ts.map +1 -0
  437. package/dist/src/transfer/models/seraphine.js +55 -55
  438. package/dist/src/transfer/models/seraphine.js.map +1 -1
  439. package/dist/src/transfer/serialization/cfp.d.ts +49 -0
  440. package/dist/src/transfer/serialization/cfp.d.ts.map +1 -0
  441. package/dist/src/transfer/serialization/cfp.js +30 -31
  442. package/dist/src/transfer/serialization/cfp.js.map +1 -1
  443. package/dist/src/transfer/storage/gcs.d.ts +82 -0
  444. package/dist/src/transfer/storage/gcs.d.ts.map +1 -0
  445. package/dist/src/transfer/storage/gcs.js +165 -232
  446. package/dist/src/transfer/storage/gcs.js.map +1 -1
  447. package/dist/src/transfer/store/discovery.d.ts +84 -0
  448. package/dist/src/transfer/store/discovery.d.ts.map +1 -0
  449. package/dist/src/transfer/store/discovery.js +239 -349
  450. package/dist/src/transfer/store/discovery.js.map +1 -1
  451. package/dist/src/transfer/store/download.d.ts +70 -0
  452. package/dist/src/transfer/store/download.d.ts.map +1 -0
  453. package/dist/src/transfer/store/download.js +243 -365
  454. package/dist/src/transfer/store/download.js.map +1 -1
  455. package/dist/src/transfer/store/index.d.ts +84 -0
  456. package/dist/src/transfer/store/index.d.ts.map +1 -0
  457. package/dist/src/transfer/store/index.js +63 -130
  458. package/dist/src/transfer/store/index.js.map +1 -1
  459. package/dist/src/transfer/store/publish.d.ts +76 -0
  460. package/dist/src/transfer/store/publish.d.ts.map +1 -0
  461. package/dist/src/transfer/store/publish.js +184 -258
  462. package/dist/src/transfer/store/publish.js.map +1 -1
  463. package/dist/src/transfer/store/registry.js +50 -72
  464. package/dist/src/transfer/store/registry.js.map +1 -1
  465. package/dist/src/transfer/store/search.d.ts +54 -0
  466. package/dist/src/transfer/store/search.d.ts.map +1 -0
  467. package/dist/src/transfer/store/search.js +64 -96
  468. package/dist/src/transfer/store/search.js.map +1 -1
  469. package/dist/src/transfer/store/tests/standalone-test.js +174 -231
  470. package/dist/src/transfer/store/tests/standalone-test.js.map +1 -1
  471. package/dist/src/transfer/test-seraphine.js +95 -130
  472. package/dist/src/transfer/test-seraphine.js.map +1 -1
  473. package/dist/src/transfer/tests/test-store.js +194 -239
  474. package/dist/src/transfer/tests/test-store.js.map +1 -1
  475. package/dist/src/transfer/types.d.ts +245 -0
  476. package/dist/src/transfer/types.d.ts.map +1 -0
  477. package/dist/src/types.d.ts +198 -0
  478. package/dist/src/types.d.ts.map +1 -0
  479. package/dist/src/types.js +26 -55
  480. package/dist/src/types.js.map +1 -1
  481. package/dist/src/update/checker.d.ts +34 -0
  482. package/dist/src/update/checker.d.ts.map +1 -0
  483. package/dist/src/update/checker.js +106 -183
  484. package/dist/src/update/checker.js.map +1 -1
  485. package/dist/src/update/executor.d.ts +32 -0
  486. package/dist/src/update/executor.d.ts.map +1 -0
  487. package/dist/src/update/executor.js +135 -198
  488. package/dist/src/update/executor.js.map +1 -1
  489. package/dist/src/update/index.d.ts +33 -0
  490. package/dist/src/update/index.d.ts.map +1 -0
  491. package/dist/src/update/index.js +38 -85
  492. package/dist/src/update/index.js.map +1 -1
  493. package/dist/src/update/rate-limiter.d.ts +20 -0
  494. package/dist/src/update/rate-limiter.d.ts.map +1 -0
  495. package/dist/src/update/rate-limiter.js +19 -31
  496. package/dist/src/update/rate-limiter.js.map +1 -1
  497. package/dist/src/update/validator.d.ts +17 -0
  498. package/dist/src/update/validator.d.ts.map +1 -0
  499. package/dist/src/update/validator.js +38 -64
  500. package/dist/src/update/validator.js.map +1 -1
  501. package/dist/tsconfig.tsbuildinfo +1 -1
  502. package/package.json +1 -1
@@ -2,96 +2,41 @@
2
2
  * V3 CLI Appliance Command
3
3
  * Self-contained RVFA appliance management (build, inspect, verify, extract, run, sign, publish, update)
4
4
  */
5
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
6
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7
- return new (P || (P = Promise))(function (resolve, reject) {
8
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
9
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
10
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
11
- step((generator = generator.apply(thisArg, _arguments || [])).next());
12
- });
13
- };
14
- var __generator = (this && this.__generator) || function (thisArg, body) {
15
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
16
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
17
- function verb(n) { return function (v) { return step([n, v]); }; }
18
- function step(op) {
19
- if (f) throw new TypeError("Generator is already executing.");
20
- while (_) try {
21
- 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;
22
- if (y = 0, t) op = [op[0] & 2, t.value];
23
- switch (op[0]) {
24
- case 0: case 1: t = op; break;
25
- case 4: _.label++; return { value: op[1], done: false };
26
- case 5: _.label++; y = op[1]; op = [0]; continue;
27
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
28
- default:
29
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
30
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
31
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
32
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
33
- if (t[2]) _.ops.pop();
34
- _.trys.pop(); continue;
35
- }
36
- op = body.call(thisArg, _);
37
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
38
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
39
- }
40
- };
41
5
  import { output } from '../output.js';
42
6
  import { signCommand, publishCommand, updateAppCommand } from './appliance-advanced.js';
43
7
  function fmtSize(bytes) {
44
8
  if (bytes < 1024)
45
- return bytes + " B";
9
+ return `${bytes} B`;
46
10
  if (bytes < 1024 * 1024)
47
- return (bytes / 1024).toFixed(1) + " KB";
11
+ return `${(bytes / 1024).toFixed(1)} KB`;
48
12
  if (bytes < 1024 * 1024 * 1024)
49
- return (bytes / (1024 * 1024)).toFixed(1) + " MB";
50
- return (bytes / (1024 * 1024 * 1024)).toFixed(2) + " GB";
13
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
14
+ return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)} GB`;
51
15
  }
52
16
  function errMsg(err) {
53
17
  return err instanceof Error ? err.message : String(err);
54
18
  }
55
- var fail = function (msg, detail) {
19
+ const fail = (msg, detail) => {
56
20
  output.printError(msg, detail);
57
21
  return { success: false, exitCode: 1 };
58
22
  };
59
- function loadModule(path, exportName, label) {
60
- return __awaiter(this, void 0, Promise, function () {
61
- var mod, _a;
62
- return __generator(this, function (_b) {
63
- switch (_b.label) {
64
- case 0:
65
- _b.trys.push([0, 2, , 3]);
66
- return [4 /*yield*/, import(path)];
67
- case 1:
68
- mod = _b.sent();
69
- return [2 /*return*/, mod[exportName]];
70
- case 2:
71
- _a = _b.sent();
72
- output.printError("RVFA " + label + " module not found", 'Install with: npm install @claude-flow/appliance');
73
- return [2 /*return*/, null];
74
- case 3: return [2 /*return*/];
75
- }
76
- });
77
- });
23
+ async function loadModule(path, exportName, label) {
24
+ try {
25
+ const mod = await import(path);
26
+ return mod[exportName];
27
+ }
28
+ catch {
29
+ output.printError(`RVFA ${label} module not found`, 'Install with: npm install @claude-flow/appliance');
30
+ return null;
31
+ }
78
32
  }
79
- function requireFile(file) {
80
- return __awaiter(this, void 0, Promise, function () {
81
- var fs;
82
- return __generator(this, function (_a) {
83
- switch (_a.label) {
84
- case 0: return [4 /*yield*/, import('fs')];
85
- case 1:
86
- fs = _a.sent();
87
- if (!fs.existsSync(file)) {
88
- output.printError("File not found: " + file);
89
- return [2 /*return*/, false];
90
- }
91
- return [2 /*return*/, true];
92
- }
93
- });
94
- });
33
+ async function requireFile(file) {
34
+ const fs = await import('fs');
35
+ if (!fs.existsSync(file)) {
36
+ output.printError(`File not found: ${file}`);
37
+ return false;
38
+ }
39
+ return true;
95
40
  }
96
41
  function header(title) {
97
42
  output.writeln();
@@ -99,440 +44,322 @@ function header(title) {
99
44
  output.writeln(output.dim('─'.repeat(50)));
100
45
  output.writeln();
101
46
  }
102
- function runSteps(steps, delay) {
103
- if (delay === void 0) { delay = 300; }
104
- return __awaiter(this, void 0, Promise, function () {
105
- var _i, steps_1, step, spinner;
106
- return __generator(this, function (_a) {
107
- switch (_a.label) {
108
- case 0:
109
- _i = 0, steps_1 = steps;
110
- _a.label = 1;
111
- case 1:
112
- if (!(_i < steps_1.length)) return [3 /*break*/, 4];
113
- step = steps_1[_i];
114
- spinner = output.createSpinner({ text: step + '...', spinner: 'dots' });
115
- spinner.start();
116
- return [4 /*yield*/, new Promise(function (r) { return setTimeout(r, delay); })];
117
- case 2:
118
- _a.sent();
119
- spinner.succeed(step);
120
- _a.label = 3;
121
- case 3:
122
- _i++;
123
- return [3 /*break*/, 1];
124
- case 4: return [2 /*return*/];
125
- }
126
- });
127
- });
47
+ async function runSteps(steps, delay = 300) {
48
+ for (const step of steps) {
49
+ const spinner = output.createSpinner({ text: step + '...', spinner: 'dots' });
50
+ spinner.start();
51
+ await new Promise(r => setTimeout(r, delay));
52
+ spinner.succeed(step);
53
+ }
128
54
  }
129
55
  // BUILD
130
- var buildCommand = {
56
+ const buildCommand = {
131
57
  name: 'build',
132
58
  description: 'Build a self-contained ruflo.rvf appliance',
133
59
  options: [
134
- { name: 'profile', short: 'p', type: 'string', description: 'Build profile: cloud, hybrid, offline', "default": 'cloud' },
135
- { name: 'output', short: 'o', type: 'string', description: 'Output file path', "default": 'ruflo.rvf' },
136
- { name: 'arch', type: 'string', description: 'Target architecture', "default": 'x86_64' },
60
+ { name: 'profile', short: 'p', type: 'string', description: 'Build profile: cloud, hybrid, offline', default: 'cloud' },
61
+ { name: 'output', short: 'o', type: 'string', description: 'Output file path', default: 'ruflo.rvf' },
62
+ { name: 'arch', type: 'string', description: 'Target architecture', default: 'x86_64' },
137
63
  { name: 'models', short: 'm', type: 'array', description: 'Models to include (offline/hybrid)' },
138
64
  { name: 'api-keys', type: 'string', description: 'Path to .env file for API key vault' },
139
65
  { name: 'verbose', short: 'v', type: 'boolean', description: 'Verbose output' },
140
66
  ],
141
- action: function (ctx) { return __awaiter(void 0, void 0, Promise, function () {
142
- var profile, outputPath, arch, models, apiKeysPath, startTime, RvfaBuilder, steps, builder, result, duration, err_1;
143
- var _a;
144
- return __generator(this, function (_b) {
145
- switch (_b.label) {
146
- case 0:
147
- profile = ctx.flags.profile || 'cloud';
148
- outputPath = ctx.flags.output || 'ruflo.rvf';
149
- arch = ctx.flags.arch || 'x86_64';
150
- models = ctx.flags.models || [];
151
- apiKeysPath = ctx.flags['api-keys'];
152
- header('RVFA Appliance Builder');
153
- output.printInfo("Profile: " + output.highlight(profile));
154
- output.printInfo("Arch: " + arch);
155
- output.printInfo("Output: " + outputPath);
156
- if (models.length > 0)
157
- output.printInfo("Models: " + models.join(', '));
158
- output.writeln();
159
- startTime = Date.now();
160
- return [4 /*yield*/, loadModule('../appliance/rvfa-builder.js', 'RvfaBuilder', 'builder')];
161
- case 1:
162
- RvfaBuilder = _b.sent();
163
- if (!RvfaBuilder)
164
- return [2 /*return*/, { success: false, exitCode: 1 }];
165
- steps = [
166
- 'Collecting kernel artifacts', 'Bundling runtime environment',
167
- 'Packaging ruflo CLI + MCP tools', 'Compressing sections',
168
- 'Computing SHA-256 checksums', 'Writing RVFA container',
169
- ];
170
- if (profile !== 'cloud' && models.length > 0)
171
- steps.splice(3, 0, 'Embedding model weights');
172
- if (apiKeysPath)
173
- steps.splice(steps.length - 1, 0, 'Sealing API key vault');
174
- _b.label = 2;
175
- case 2:
176
- _b.trys.push([2, 5, , 6]);
177
- builder = new RvfaBuilder({ profile: profile, outputPath: outputPath, arch: arch, models: models, apiKeysPath: apiKeysPath });
178
- return [4 /*yield*/, runSteps(steps)];
179
- case 3:
180
- _b.sent();
181
- return [4 /*yield*/, builder.build()];
182
- case 4:
183
- result = _b.sent();
184
- duration = ((Date.now() - startTime) / 1000).toFixed(1);
185
- if ((_a = result.sections) === null || _a === void 0 ? void 0 : _a.length) {
186
- output.writeln();
187
- output.printTable({
188
- columns: [
189
- { key: 'id', header: 'Section', width: 16 },
190
- { key: 'size', header: 'Size', width: 12, align: 'right' },
191
- ],
192
- data: result.sections.map(function (s) { return ({ id: s.id, size: fmtSize(s.size) }); })
193
- });
194
- }
195
- output.writeln();
196
- output.printSuccess("Appliance written to " + output.bold(outputPath));
197
- output.printInfo("Total size: " + output.bold(fmtSize(result.totalSize)) + " Duration: " + duration + "s");
198
- return [2 /*return*/, { success: true, data: result }];
199
- case 5:
200
- err_1 = _b.sent();
201
- return [2 /*return*/, fail('Build failed', errMsg(err_1))];
202
- case 6: return [2 /*return*/];
67
+ action: async (ctx) => {
68
+ const profile = ctx.flags.profile || 'cloud';
69
+ const outputPath = ctx.flags.output || 'ruflo.rvf';
70
+ const arch = ctx.flags.arch || 'x86_64';
71
+ const models = ctx.flags.models || [];
72
+ const apiKeysPath = ctx.flags['api-keys'];
73
+ header('RVFA Appliance Builder');
74
+ output.printInfo(`Profile: ${output.highlight(profile)}`);
75
+ output.printInfo(`Arch: ${arch}`);
76
+ output.printInfo(`Output: ${outputPath}`);
77
+ if (models.length > 0)
78
+ output.printInfo(`Models: ${models.join(', ')}`);
79
+ output.writeln();
80
+ const startTime = Date.now();
81
+ const RvfaBuilder = await loadModule('../appliance/rvfa-builder.js', 'RvfaBuilder', 'builder');
82
+ if (!RvfaBuilder)
83
+ return { success: false, exitCode: 1 };
84
+ const steps = [
85
+ 'Collecting kernel artifacts', 'Bundling runtime environment',
86
+ 'Packaging ruflo CLI + MCP tools', 'Compressing sections',
87
+ 'Computing SHA-256 checksums', 'Writing RVFA container',
88
+ ];
89
+ if (profile !== 'cloud' && models.length > 0)
90
+ steps.splice(3, 0, 'Embedding model weights');
91
+ if (apiKeysPath)
92
+ steps.splice(steps.length - 1, 0, 'Sealing API key vault');
93
+ try {
94
+ const builder = new RvfaBuilder({ profile, outputPath, arch, models, apiKeysPath });
95
+ await runSteps(steps);
96
+ const result = await builder.build();
97
+ const duration = ((Date.now() - startTime) / 1000).toFixed(1);
98
+ if (result.sections?.length) {
99
+ output.writeln();
100
+ output.printTable({
101
+ columns: [
102
+ { key: 'id', header: 'Section', width: 16 },
103
+ { key: 'size', header: 'Size', width: 12, align: 'right' },
104
+ ],
105
+ data: result.sections.map(s => ({ id: s.id, size: fmtSize(s.size) })),
106
+ });
203
107
  }
204
- });
205
- }); }
108
+ output.writeln();
109
+ output.printSuccess(`Appliance written to ${output.bold(outputPath)}`);
110
+ output.printInfo(`Total size: ${output.bold(fmtSize(result.totalSize))} Duration: ${duration}s`);
111
+ return { success: true, data: result };
112
+ }
113
+ catch (err) {
114
+ return fail('Build failed', errMsg(err));
115
+ }
116
+ },
206
117
  };
207
118
  // INSPECT
208
- var inspectCommand = {
119
+ const inspectCommand = {
209
120
  name: 'inspect',
210
121
  description: 'Show RVFA appliance header and section manifest',
211
122
  options: [
212
123
  { name: 'file', short: 'f', type: 'string', description: 'Path to .rvf file', required: true },
213
124
  { name: 'json', type: 'boolean', description: 'Output as JSON' },
214
125
  ],
215
- action: function (ctx) { return __awaiter(void 0, void 0, Promise, function () {
216
- var file, RvfaReader, reader, hdr, _i, _a, _b, label, value, fs, stat, err_2;
217
- var _c;
218
- return __generator(this, function (_d) {
219
- switch (_d.label) {
220
- case 0:
221
- file = ctx.flags.file;
222
- if (!file)
223
- return [2 /*return*/, fail('--file is required')];
224
- return [4 /*yield*/, loadModule('../appliance/rvfa-format.js', 'RvfaReader', 'format')];
225
- case 1:
226
- RvfaReader = _d.sent();
227
- if (!RvfaReader)
228
- return [2 /*return*/, { success: false, exitCode: 1 }];
229
- return [4 /*yield*/, requireFile(file)];
230
- case 2:
231
- if (!(_d.sent()))
232
- return [2 /*return*/, { success: false, exitCode: 1 }];
233
- _d.label = 3;
234
- case 3:
235
- _d.trys.push([3, 6, , 7]);
236
- reader = new RvfaReader(file);
237
- return [4 /*yield*/, reader.parse()];
238
- case 4:
239
- hdr = _d.sent();
240
- if (ctx.flags.json) {
241
- output.printJson(hdr);
242
- return [2 /*return*/, { success: true, data: hdr }];
243
- }
244
- header('RVFA Appliance');
245
- for (_i = 0, _a = [
246
- ['Name', hdr.name || 'ruflo'], ['Version', hdr.version || 'unknown'],
247
- ['Architecture', hdr.arch || 'x86_64'], ['Profile', hdr.profile || 'cloud'],
248
- ['Created', hdr.created || 'unknown'],
249
- ]; _i < _a.length; _i++) {
250
- _b = _a[_i], label = _b[0], value = _b[1];
251
- output.writeln(" " + output.bold(label.padEnd(16)) + value);
252
- }
253
- output.writeln();
254
- output.writeln(output.bold('Sections'));
255
- output.writeln(output.dim('─'.repeat(60)));
256
- if ((_c = hdr.sections) === null || _c === void 0 ? void 0 : _c.length) {
257
- output.printTable({
258
- columns: [
259
- { key: 'id', header: 'Section', width: 14 },
260
- { key: 'size', header: 'Packed', width: 12, align: 'right' },
261
- { key: 'original', header: 'Original', width: 12, align: 'right' },
262
- { key: 'compression', header: 'Compression', width: 12 },
263
- { key: 'sha256', header: 'SHA-256', width: 18 },
264
- ],
265
- data: hdr.sections.map(function (s) {
266
- var _a;
267
- return ({
268
- id: s.id,
269
- size: fmtSize(s.size),
270
- original: fmtSize((_a = s.originalSize) !== null && _a !== void 0 ? _a : s.size),
271
- compression: s.compression || 'none',
272
- sha256: s.sha256 ? s.sha256.slice(0, 16) + '..' : output.dim('n/a')
273
- });
274
- })
275
- });
276
- }
277
- else {
278
- output.writeln(output.dim(' No sections found'));
279
- }
280
- return [4 /*yield*/, import('fs')];
281
- case 5:
282
- fs = _d.sent();
283
- stat = fs.statSync(file);
284
- output.writeln();
285
- output.printInfo("Total file size: " + output.bold(fmtSize(stat.size)));
286
- if (hdr.footerHash) {
287
- output.printInfo("Footer hash: " + output.dim(hdr.footerHash.slice(0, 32) + '..'));
288
- }
289
- return [2 /*return*/, { success: true, data: hdr }];
290
- case 6:
291
- err_2 = _d.sent();
292
- return [2 /*return*/, fail('Failed to inspect appliance', errMsg(err_2))];
293
- case 7: return [2 /*return*/];
126
+ action: async (ctx) => {
127
+ const file = ctx.flags.file;
128
+ if (!file)
129
+ return fail('--file is required');
130
+ const RvfaReader = await loadModule('../appliance/rvfa-format.js', 'RvfaReader', 'format');
131
+ if (!RvfaReader)
132
+ return { success: false, exitCode: 1 };
133
+ if (!(await requireFile(file)))
134
+ return { success: false, exitCode: 1 };
135
+ try {
136
+ const reader = new RvfaReader(file);
137
+ const hdr = await reader.parse();
138
+ if (ctx.flags.json) {
139
+ output.printJson(hdr);
140
+ return { success: true, data: hdr };
141
+ }
142
+ header('RVFA Appliance');
143
+ for (const [label, value] of [
144
+ ['Name', hdr.name || 'ruflo'], ['Version', hdr.version || 'unknown'],
145
+ ['Architecture', hdr.arch || 'x86_64'], ['Profile', hdr.profile || 'cloud'],
146
+ ['Created', hdr.created || 'unknown'],
147
+ ]) {
148
+ output.writeln(` ${output.bold(label.padEnd(16))}${value}`);
294
149
  }
295
- });
296
- }); }
150
+ output.writeln();
151
+ output.writeln(output.bold('Sections'));
152
+ output.writeln(output.dim('─'.repeat(60)));
153
+ if (hdr.sections?.length) {
154
+ output.printTable({
155
+ columns: [
156
+ { key: 'id', header: 'Section', width: 14 },
157
+ { key: 'size', header: 'Packed', width: 12, align: 'right' },
158
+ { key: 'original', header: 'Original', width: 12, align: 'right' },
159
+ { key: 'compression', header: 'Compression', width: 12 },
160
+ { key: 'sha256', header: 'SHA-256', width: 18 },
161
+ ],
162
+ data: hdr.sections.map((s) => ({
163
+ id: s.id,
164
+ size: fmtSize(s.size),
165
+ original: fmtSize(s.originalSize ?? s.size),
166
+ compression: s.compression || 'none',
167
+ sha256: s.sha256 ? s.sha256.slice(0, 16) + '..' : output.dim('n/a'),
168
+ })),
169
+ });
170
+ }
171
+ else {
172
+ output.writeln(output.dim(' No sections found'));
173
+ }
174
+ const fs = await import('fs');
175
+ const stat = fs.statSync(file);
176
+ output.writeln();
177
+ output.printInfo(`Total file size: ${output.bold(fmtSize(stat.size))}`);
178
+ if (hdr.footerHash) {
179
+ output.printInfo(`Footer hash: ${output.dim(hdr.footerHash.slice(0, 32) + '..')}`);
180
+ }
181
+ return { success: true, data: hdr };
182
+ }
183
+ catch (err) {
184
+ return fail('Failed to inspect appliance', errMsg(err));
185
+ }
186
+ },
297
187
  };
298
188
  // VERIFY
299
- var verifyCommand = {
189
+ const verifyCommand = {
300
190
  name: 'verify',
301
191
  description: 'Verify appliance integrity and run capability tests',
302
192
  options: [
303
193
  { name: 'file', short: 'f', type: 'string', description: 'Path to .rvf file', required: true },
304
194
  { name: 'quick', short: 'q', type: 'boolean', description: 'Quick check (integrity only, skip capability tests)' },
305
195
  ],
306
- action: function (ctx) { return __awaiter(void 0, void 0, Promise, function () {
307
- var file, quick, RvfaReader, reader, hdr, s1, checksums, allValid, bad, s2, footerOk, capOk, s3, pass, err_3;
308
- var _a;
309
- return __generator(this, function (_b) {
310
- switch (_b.label) {
311
- case 0:
312
- file = ctx.flags.file;
313
- quick = ctx.flags.quick;
314
- if (!file)
315
- return [2 /*return*/, fail('--file is required')];
316
- return [4 /*yield*/, loadModule('../appliance/rvfa-format.js', 'RvfaReader', 'format')];
317
- case 1:
318
- RvfaReader = _b.sent();
319
- if (!RvfaReader)
320
- return [2 /*return*/, { success: false, exitCode: 1 }];
321
- return [4 /*yield*/, requireFile(file)];
322
- case 2:
323
- if (!(_b.sent()))
324
- return [2 /*return*/, { success: false, exitCode: 1 }];
325
- _b.label = 3;
326
- case 3:
327
- _b.trys.push([3, 10, , 11]);
328
- header('RVFA Verification');
329
- reader = new RvfaReader(file);
330
- return [4 /*yield*/, reader.parse()];
331
- case 4:
332
- hdr = _b.sent();
333
- s1 = output.createSpinner({ text: 'Verifying section checksums...', spinner: 'dots' });
334
- s1.start();
335
- return [4 /*yield*/, reader.verifyChecksums()];
336
- case 5:
337
- checksums = _b.sent();
338
- allValid = checksums.every(function (r) { return r.valid; });
339
- if (allValid) {
340
- s1.succeed("Section checksums: " + output.success('PASS') + " (" + checksums.length + " sections)");
341
- }
342
- else {
343
- bad = checksums.filter(function (r) { return !r.valid; });
344
- s1.fail("Section checksums: " + output.error('FAIL') + " (" + bad.length + " corrupted)");
345
- bad.forEach(function (f) { return output.writeln(" " + output.error('X') + " " + f.section); });
346
- }
347
- s2 = output.createSpinner({ text: 'Verifying footer hash...', spinner: 'dots' });
348
- s2.start();
349
- return [4 /*yield*/, reader.verifyFooter()];
350
- case 6:
351
- footerOk = _b.sent();
352
- footerOk ? s2.succeed("Footer hash: " + output.success('PASS'))
353
- : s2.fail("Footer hash: " + output.error('FAIL'));
354
- capOk = true;
355
- if (!(!quick && ((_a = hdr.sections) === null || _a === void 0 ? void 0 : _a.find(function (s) { return s.id === 'verify'; })))) return [3 /*break*/, 8];
356
- s3 = output.createSpinner({ text: 'Running capability tests...', spinner: 'dots' });
357
- s3.start();
358
- return [4 /*yield*/, new Promise(function (r) { return setTimeout(r, 500); })];
359
- case 7:
360
- _b.sent();
361
- s3.succeed("Capability tests: " + output.success('PASS'));
362
- return [3 /*break*/, 9];
363
- case 8:
364
- if (quick) {
365
- output.writeln(output.dim(' Skipped capability tests (--quick)'));
366
- }
367
- _b.label = 9;
368
- case 9:
369
- output.writeln();
370
- pass = allValid && footerOk && capOk;
371
- pass ? output.printSuccess('Appliance verification passed')
372
- : output.printError('Appliance verification failed');
373
- return [2 /*return*/, { success: pass, exitCode: pass ? 0 : 1 }];
374
- case 10:
375
- err_3 = _b.sent();
376
- return [2 /*return*/, fail('Verification failed', errMsg(err_3))];
377
- case 11: return [2 /*return*/];
196
+ action: async (ctx) => {
197
+ const file = ctx.flags.file;
198
+ const quick = ctx.flags.quick;
199
+ if (!file)
200
+ return fail('--file is required');
201
+ const RvfaReader = await loadModule('../appliance/rvfa-format.js', 'RvfaReader', 'format');
202
+ if (!RvfaReader)
203
+ return { success: false, exitCode: 1 };
204
+ if (!(await requireFile(file)))
205
+ return { success: false, exitCode: 1 };
206
+ try {
207
+ header('RVFA Verification');
208
+ const reader = new RvfaReader(file);
209
+ const hdr = await reader.parse();
210
+ // Section checksums
211
+ const s1 = output.createSpinner({ text: 'Verifying section checksums...', spinner: 'dots' });
212
+ s1.start();
213
+ const checksums = await reader.verifyChecksums();
214
+ const allValid = checksums.every(r => r.valid);
215
+ if (allValid) {
216
+ s1.succeed(`Section checksums: ${output.success('PASS')} (${checksums.length} sections)`);
217
+ }
218
+ else {
219
+ const bad = checksums.filter(r => !r.valid);
220
+ s1.fail(`Section checksums: ${output.error('FAIL')} (${bad.length} corrupted)`);
221
+ bad.forEach(f => output.writeln(` ${output.error('X')} ${f.section}`));
222
+ }
223
+ // Footer hash
224
+ const s2 = output.createSpinner({ text: 'Verifying footer hash...', spinner: 'dots' });
225
+ s2.start();
226
+ const footerOk = await reader.verifyFooter();
227
+ footerOk ? s2.succeed(`Footer hash: ${output.success('PASS')}`)
228
+ : s2.fail(`Footer hash: ${output.error('FAIL')}`);
229
+ // Capability tests
230
+ let capOk = true;
231
+ if (!quick && hdr.sections?.find((s) => s.id === 'verify')) {
232
+ const s3 = output.createSpinner({ text: 'Running capability tests...', spinner: 'dots' });
233
+ s3.start();
234
+ await new Promise(r => setTimeout(r, 500));
235
+ s3.succeed(`Capability tests: ${output.success('PASS')}`);
236
+ }
237
+ else if (quick) {
238
+ output.writeln(output.dim(' Skipped capability tests (--quick)'));
378
239
  }
379
- });
380
- }); }
240
+ output.writeln();
241
+ const pass = allValid && footerOk && capOk;
242
+ pass ? output.printSuccess('Appliance verification passed')
243
+ : output.printError('Appliance verification failed');
244
+ return { success: pass, exitCode: pass ? 0 : 1 };
245
+ }
246
+ catch (err) {
247
+ return fail('Verification failed', errMsg(err));
248
+ }
249
+ },
381
250
  };
382
251
  // EXTRACT
383
- var extractCommand = {
252
+ const extractCommand = {
384
253
  name: 'extract',
385
254
  description: 'Extract all sections from an RVFA appliance',
386
255
  options: [
387
256
  { name: 'file', short: 'f', type: 'string', description: 'Path to .rvf file', required: true },
388
- { name: 'output', short: 'o', type: 'string', description: 'Output directory', "default": './rvfa-extracted' },
257
+ { name: 'output', short: 'o', type: 'string', description: 'Output directory', default: './rvfa-extracted' },
389
258
  { name: 'section', short: 's', type: 'string', description: 'Extract specific section only' },
390
259
  ],
391
- action: function (ctx) { return __awaiter(void 0, void 0, Promise, function () {
392
- var file, outputDir, sectionFilter, RvfaReader, fs, path, reader, hdr, dest, sp, r, results, _i, results_1, r, _a, _b, d, exists, err_4;
393
- var _c;
394
- return __generator(this, function (_d) {
395
- switch (_d.label) {
396
- case 0:
397
- file = ctx.flags.file;
398
- outputDir = ctx.flags.output || './rvfa-extracted';
399
- sectionFilter = ctx.flags.section;
400
- if (!file)
401
- return [2 /*return*/, fail('--file is required')];
402
- return [4 /*yield*/, loadModule('../appliance/rvfa-format.js', 'RvfaReader', 'format')];
403
- case 1:
404
- RvfaReader = _d.sent();
405
- if (!RvfaReader)
406
- return [2 /*return*/, { success: false, exitCode: 1 }];
407
- return [4 /*yield*/, requireFile(file)];
408
- case 2:
409
- if (!(_d.sent()))
410
- return [2 /*return*/, { success: false, exitCode: 1 }];
411
- _d.label = 3;
412
- case 3:
413
- _d.trys.push([3, 11, , 12]);
414
- return [4 /*yield*/, import('fs')];
415
- case 4:
416
- fs = _d.sent();
417
- return [4 /*yield*/, import('path')];
418
- case 5:
419
- path = _d.sent();
420
- header('RVFA Extraction');
421
- reader = new RvfaReader(file);
422
- return [4 /*yield*/, reader.parse()];
423
- case 6:
424
- hdr = _d.sent();
425
- dest = path.resolve(outputDir);
426
- if (!fs.existsSync(dest))
427
- fs.mkdirSync(dest, { recursive: true });
428
- output.printInfo("Destination: " + dest);
429
- output.writeln();
430
- if (!sectionFilter) return [3 /*break*/, 8];
431
- if (!((_c = hdr.sections) === null || _c === void 0 ? void 0 : _c.find(function (s) { return s.id === sectionFilter; }))) {
432
- output.printError("Section not found: " + sectionFilter);
433
- output.printInfo("Available: " + (hdr.sections || []).map(function (s) { return s.id; }).join(', '));
434
- return [2 /*return*/, { success: false, exitCode: 1 }];
435
- }
436
- sp = output.createSpinner({ text: "Extracting " + sectionFilter + "...", spinner: 'dots' });
437
- sp.start();
438
- return [4 /*yield*/, reader.extractSection(sectionFilter, dest)];
439
- case 7:
440
- r = _d.sent();
441
- sp.succeed(sectionFilter + ": " + fmtSize(r.size));
442
- return [3 /*break*/, 10];
443
- case 8: return [4 /*yield*/, reader.extractAll(dest)];
444
- case 9:
445
- results = _d.sent();
446
- for (_i = 0, results_1 = results; _i < results_1.length; _i++) {
447
- r = results_1[_i];
448
- output.printSuccess(r.id.padEnd(14) + " " + fmtSize(r.size).padStart(10) + " -> " + r.path);
449
- }
450
- _d.label = 10;
451
- case 10:
452
- output.writeln();
453
- output.printSuccess("Extraction complete: " + dest);
454
- output.writeln(output.dim(' Directory structure:'));
455
- for (_a = 0, _b = ['kernel', 'runtime', 'ruflo', 'models', 'data', 'verify']; _a < _b.length; _a++) {
456
- d = _b[_a];
457
- exists = fs.existsSync(path.join(dest, d));
458
- output.writeln(" " + (exists ? output.success('+') : output.dim('-')) + " " + d + "/");
459
- }
460
- return [2 /*return*/, { success: true }];
461
- case 11:
462
- err_4 = _d.sent();
463
- return [2 /*return*/, fail('Extraction failed', errMsg(err_4))];
464
- case 12: return [2 /*return*/];
260
+ action: async (ctx) => {
261
+ const file = ctx.flags.file;
262
+ const outputDir = ctx.flags.output || './rvfa-extracted';
263
+ const sectionFilter = ctx.flags.section;
264
+ if (!file)
265
+ return fail('--file is required');
266
+ const RvfaReader = await loadModule('../appliance/rvfa-format.js', 'RvfaReader', 'format');
267
+ if (!RvfaReader)
268
+ return { success: false, exitCode: 1 };
269
+ if (!(await requireFile(file)))
270
+ return { success: false, exitCode: 1 };
271
+ try {
272
+ const fs = await import('fs');
273
+ const path = await import('path');
274
+ header('RVFA Extraction');
275
+ const reader = new RvfaReader(file);
276
+ const hdr = await reader.parse();
277
+ const dest = path.resolve(outputDir);
278
+ if (!fs.existsSync(dest))
279
+ fs.mkdirSync(dest, { recursive: true });
280
+ output.printInfo(`Destination: ${dest}`);
281
+ output.writeln();
282
+ if (sectionFilter) {
283
+ if (!hdr.sections?.find((s) => s.id === sectionFilter)) {
284
+ output.printError(`Section not found: ${sectionFilter}`);
285
+ output.printInfo(`Available: ${(hdr.sections || []).map((s) => s.id).join(', ')}`);
286
+ return { success: false, exitCode: 1 };
287
+ }
288
+ const sp = output.createSpinner({ text: `Extracting ${sectionFilter}...`, spinner: 'dots' });
289
+ sp.start();
290
+ const r = await reader.extractSection(sectionFilter, dest);
291
+ sp.succeed(`${sectionFilter}: ${fmtSize(r.size)}`);
292
+ }
293
+ else {
294
+ const results = await reader.extractAll(dest);
295
+ for (const r of results) {
296
+ output.printSuccess(`${r.id.padEnd(14)} ${fmtSize(r.size).padStart(10)} -> ${r.path}`);
297
+ }
298
+ }
299
+ output.writeln();
300
+ output.printSuccess(`Extraction complete: ${dest}`);
301
+ output.writeln(output.dim(' Directory structure:'));
302
+ for (const d of ['kernel', 'runtime', 'ruflo', 'models', 'data', 'verify']) {
303
+ const exists = fs.existsSync(path.join(dest, d));
304
+ output.writeln(` ${exists ? output.success('+') : output.dim('-')} ${d}/`);
465
305
  }
466
- });
467
- }); }
306
+ return { success: true };
307
+ }
308
+ catch (err) {
309
+ return fail('Extraction failed', errMsg(err));
310
+ }
311
+ },
468
312
  };
469
313
  // RUN
470
- var runCommand = {
314
+ const runCommand = {
471
315
  name: 'run',
472
316
  description: 'Boot and run an RVFA appliance',
473
317
  options: [
474
318
  { name: 'file', short: 'f', type: 'string', description: 'Path to .rvf file', required: true },
475
- { name: 'mode', type: 'string', description: 'Run mode: cli, mcp, verify', "default": 'cli' },
476
- { name: 'isolation', type: 'string', description: 'Isolation: container, native', "default": 'native' },
319
+ { name: 'mode', type: 'string', description: 'Run mode: cli, mcp, verify', default: 'cli' },
320
+ { name: 'isolation', type: 'string', description: 'Isolation: container, native', default: 'native' },
477
321
  ],
478
- action: function (ctx) { return __awaiter(void 0, void 0, Promise, function () {
479
- var file, mode, isolation, RvfaRunner, runner, result, err_5;
480
- return __generator(this, function (_a) {
481
- switch (_a.label) {
482
- case 0:
483
- file = ctx.flags.file;
484
- mode = ctx.flags.mode || 'cli';
485
- isolation = ctx.flags.isolation || 'native';
486
- if (!file)
487
- return [2 /*return*/, fail('--file is required')];
488
- return [4 /*yield*/, loadModule('../appliance/rvfa-runner.js', 'RvfaRunner', 'runner')];
489
- case 1:
490
- RvfaRunner = _a.sent();
491
- if (!RvfaRunner)
492
- return [2 /*return*/, { success: false, exitCode: 1 }];
493
- return [4 /*yield*/, requireFile(file)];
494
- case 2:
495
- if (!(_a.sent()))
496
- return [2 /*return*/, { success: false, exitCode: 1 }];
497
- _a.label = 3;
498
- case 3:
499
- _a.trys.push([3, 6, , 7]);
500
- header('RVFA Appliance Boot');
501
- output.printInfo("File: " + file);
502
- output.printInfo("Mode: " + mode);
503
- output.printInfo("Isolation: " + isolation);
504
- output.writeln();
505
- return [4 /*yield*/, runSteps([
506
- 'Loading RVFA container', 'Verifying integrity', 'Extracting kernel',
507
- 'Initializing runtime',
508
- "Starting " + mode + " interface",
509
- ], 250)];
510
- case 4:
511
- _a.sent();
512
- output.writeln();
513
- runner = new RvfaRunner({ file: file, mode: mode, isolation: isolation });
514
- return [4 /*yield*/, runner.boot()];
515
- case 5:
516
- result = _a.sent();
517
- if (mode === 'mcp' && result.port)
518
- output.printSuccess("MCP server listening on port " + result.port);
519
- else if (mode === 'verify')
520
- output.printSuccess('Verification complete');
521
- else
522
- output.printSuccess('Appliance is running');
523
- if (result.pid)
524
- output.printInfo("PID: " + result.pid);
525
- return [2 /*return*/, { success: true, data: result }];
526
- case 6:
527
- err_5 = _a.sent();
528
- return [2 /*return*/, fail('Boot failed', errMsg(err_5))];
529
- case 7: return [2 /*return*/];
530
- }
531
- });
532
- }); }
322
+ action: async (ctx) => {
323
+ const file = ctx.flags.file;
324
+ const mode = ctx.flags.mode || 'cli';
325
+ const isolation = ctx.flags.isolation || 'native';
326
+ if (!file)
327
+ return fail('--file is required');
328
+ const RvfaRunner = await loadModule('../appliance/rvfa-runner.js', 'RvfaRunner', 'runner');
329
+ if (!RvfaRunner)
330
+ return { success: false, exitCode: 1 };
331
+ if (!(await requireFile(file)))
332
+ return { success: false, exitCode: 1 };
333
+ try {
334
+ header('RVFA Appliance Boot');
335
+ output.printInfo(`File: ${file}`);
336
+ output.printInfo(`Mode: ${mode}`);
337
+ output.printInfo(`Isolation: ${isolation}`);
338
+ output.writeln();
339
+ await runSteps([
340
+ 'Loading RVFA container', 'Verifying integrity', 'Extracting kernel',
341
+ 'Initializing runtime', `Starting ${mode} interface`,
342
+ ], 250);
343
+ output.writeln();
344
+ const runner = new RvfaRunner({ file, mode, isolation });
345
+ const result = await runner.boot();
346
+ if (mode === 'mcp' && result.port)
347
+ output.printSuccess(`MCP server listening on port ${result.port}`);
348
+ else if (mode === 'verify')
349
+ output.printSuccess('Verification complete');
350
+ else
351
+ output.printSuccess('Appliance is running');
352
+ if (result.pid)
353
+ output.printInfo(`PID: ${result.pid}`);
354
+ return { success: true, data: result };
355
+ }
356
+ catch (err) {
357
+ return fail('Boot failed', errMsg(err));
358
+ }
359
+ },
533
360
  };
534
361
  // Main command
535
- export var applianceCommand = {
362
+ export const applianceCommand = {
536
363
  name: 'appliance',
537
364
  description: 'Self-contained RVFA appliance management (build, inspect, verify, extract, run)',
538
365
  aliases: ['rvfa'],
@@ -547,35 +374,33 @@ export var applianceCommand = {
547
374
  { command: 'ruflo appliance publish -f ruflo.rvf', description: 'Publish to IPFS via Pinata' },
548
375
  { command: 'ruflo appliance update -f ruflo.rvf -s ruflo -d ./new-ruflo.bin', description: 'Hot-patch a section' },
549
376
  ],
550
- action: function () { return __awaiter(void 0, void 0, Promise, function () {
551
- return __generator(this, function (_a) {
552
- output.writeln();
553
- output.writeln(output.bold('Ruflo Appliance (RVFA)'));
554
- output.writeln(output.dim('Self-contained deployment format for the full Ruflo platform.'));
555
- output.writeln();
556
- output.writeln('Subcommands:');
557
- output.printList([
558
- 'build - Build a self-contained ruflo.rvf appliance',
559
- 'inspect - Show appliance header and section manifest',
560
- 'verify - Verify appliance integrity and run capability tests',
561
- 'extract - Extract all sections from an appliance',
562
- 'run - Boot and run an RVFA appliance',
563
- 'sign - Sign an appliance with Ed25519 for tamper detection',
564
- 'publish - Publish an appliance to IPFS via Pinata',
565
- 'update - Hot-patch a section in an appliance',
566
- ]);
567
- output.writeln();
568
- output.writeln('Profiles:');
569
- output.printList([
570
- output.bold('cloud') + " - API-only, smallest footprint (~15 MB)",
571
- output.bold('hybrid') + " - API + local fallback models (~500 MB)",
572
- output.bold('offline') + " - Fully air-gapped with bundled models (~4 GB)",
573
- ]);
574
- output.writeln();
575
- output.writeln(output.dim('Use "ruflo appliance <subcommand> --help" for details.'));
576
- return [2 /*return*/, { success: true }];
577
- });
578
- }); }
377
+ action: async () => {
378
+ output.writeln();
379
+ output.writeln(output.bold('Ruflo Appliance (RVFA)'));
380
+ output.writeln(output.dim('Self-contained deployment format for the full Ruflo platform.'));
381
+ output.writeln();
382
+ output.writeln('Subcommands:');
383
+ output.printList([
384
+ 'build - Build a self-contained ruflo.rvf appliance',
385
+ 'inspect - Show appliance header and section manifest',
386
+ 'verify - Verify appliance integrity and run capability tests',
387
+ 'extract - Extract all sections from an appliance',
388
+ 'run - Boot and run an RVFA appliance',
389
+ 'sign - Sign an appliance with Ed25519 for tamper detection',
390
+ 'publish - Publish an appliance to IPFS via Pinata',
391
+ 'update - Hot-patch a section in an appliance',
392
+ ]);
393
+ output.writeln();
394
+ output.writeln('Profiles:');
395
+ output.printList([
396
+ `${output.bold('cloud')} - API-only, smallest footprint (~15 MB)`,
397
+ `${output.bold('hybrid')} - API + local fallback models (~500 MB)`,
398
+ `${output.bold('offline')} - Fully air-gapped with bundled models (~4 GB)`,
399
+ ]);
400
+ output.writeln();
401
+ output.writeln(output.dim('Use "ruflo appliance <subcommand> --help" for details.'));
402
+ return { success: true };
403
+ },
579
404
  };
580
405
  export default applianceCommand;
581
406
  //# sourceMappingURL=appliance.js.map