@claude-flow/cli 3.32.3 → 3.32.5

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 (683) hide show
  1. package/.claude/helpers/helpers.manifest.json +2 -2
  2. package/catalog-manifest.json +2 -2
  3. package/dist/src/agenticow/speculative-exploration.d.ts +148 -0
  4. package/dist/src/agenticow/speculative-exploration.js +218 -0
  5. package/dist/src/appliance/gguf-engine.d.ts +91 -0
  6. package/dist/src/appliance/gguf-engine.js +425 -0
  7. package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  8. package/dist/src/appliance/ruvllm-bridge.js +292 -0
  9. package/dist/src/appliance/rvfa-builder.d.ts +44 -0
  10. package/dist/src/appliance/rvfa-builder.js +329 -0
  11. package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  12. package/dist/src/appliance/rvfa-distribution.js +370 -0
  13. package/dist/src/appliance/rvfa-format.d.ts +111 -0
  14. package/dist/src/appliance/rvfa-format.js +393 -0
  15. package/dist/src/appliance/rvfa-runner.d.ts +69 -0
  16. package/dist/src/appliance/rvfa-runner.js +237 -0
  17. package/dist/src/appliance/rvfa-signing.d.ts +123 -0
  18. package/dist/src/appliance/rvfa-signing.js +347 -0
  19. package/dist/src/auth/client.d.ts +89 -0
  20. package/dist/src/auth/client.js +242 -0
  21. package/dist/src/auth/constants.d.ts +7 -0
  22. package/dist/src/auth/constants.js +7 -0
  23. package/dist/src/auth/scopes.d.ts +14 -0
  24. package/dist/src/auth/scopes.js +21 -0
  25. package/dist/src/auth/security-bridge.d.ts +36 -0
  26. package/dist/src/auth/security-bridge.js +42 -0
  27. package/dist/src/auth/session.d.ts +20 -0
  28. package/dist/src/auth/session.js +32 -0
  29. package/dist/src/auth/state.d.ts +19 -0
  30. package/dist/src/auth/state.js +53 -0
  31. package/dist/src/auth/types.d.ts +27 -0
  32. package/dist/src/auth/types.js +11 -0
  33. package/dist/src/autopilot-state.d.ts +77 -0
  34. package/dist/src/autopilot-state.js +271 -0
  35. package/dist/src/benchmarks/gaia-agent-planning.smoke.d.ts +18 -0
  36. package/dist/src/benchmarks/gaia-agent-planning.smoke.js +253 -0
  37. package/dist/src/benchmarks/gaia-agent.d.ts +198 -0
  38. package/dist/src/benchmarks/gaia-agent.js +651 -0
  39. package/dist/src/benchmarks/gaia-causal-memory.d.ts +133 -0
  40. package/dist/src/benchmarks/gaia-causal-memory.js +281 -0
  41. package/dist/src/benchmarks/gaia-causal-memory.smoke.d.ts +22 -0
  42. package/dist/src/benchmarks/gaia-causal-memory.smoke.js +300 -0
  43. package/dist/src/benchmarks/gaia-convergence.d.ts +138 -0
  44. package/dist/src/benchmarks/gaia-convergence.js +260 -0
  45. package/dist/src/benchmarks/gaia-convergence.smoke.d.ts +19 -0
  46. package/dist/src/benchmarks/gaia-convergence.smoke.js +246 -0
  47. package/dist/src/benchmarks/gaia-critic.d.ts +123 -0
  48. package/dist/src/benchmarks/gaia-critic.js +312 -0
  49. package/dist/src/benchmarks/gaia-critic.smoke.d.ts +21 -0
  50. package/dist/src/benchmarks/gaia-critic.smoke.js +327 -0
  51. package/dist/src/benchmarks/gaia-decomposer.d.ts +125 -0
  52. package/dist/src/benchmarks/gaia-decomposer.js +350 -0
  53. package/dist/src/benchmarks/gaia-decomposer.smoke.d.ts +21 -0
  54. package/dist/src/benchmarks/gaia-decomposer.smoke.js +228 -0
  55. package/dist/src/benchmarks/gaia-e2e-smoke.d.ts +27 -0
  56. package/dist/src/benchmarks/gaia-e2e-smoke.js +136 -0
  57. package/dist/src/benchmarks/gaia-extract.smoke.d.ts +45 -0
  58. package/dist/src/benchmarks/gaia-extract.smoke.js +242 -0
  59. package/dist/src/benchmarks/gaia-hardness/features.d.ts +46 -0
  60. package/dist/src/benchmarks/gaia-hardness/features.js +170 -0
  61. package/dist/src/benchmarks/gaia-hardness/predictor.d.ts +105 -0
  62. package/dist/src/benchmarks/gaia-hardness/predictor.js +260 -0
  63. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.d.ts +20 -0
  64. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.js +235 -0
  65. package/dist/src/benchmarks/gaia-hardness/train-data-loader.d.ts +51 -0
  66. package/dist/src/benchmarks/gaia-hardness/train-data-loader.js +179 -0
  67. package/dist/src/benchmarks/gaia-judge.d.ts +88 -0
  68. package/dist/src/benchmarks/gaia-judge.js +437 -0
  69. package/dist/src/benchmarks/gaia-loader.d.ts +87 -0
  70. package/dist/src/benchmarks/gaia-loader.js +326 -0
  71. package/dist/src/benchmarks/gaia-tools/file_read.d.ts +35 -0
  72. package/dist/src/benchmarks/gaia-tools/file_read.js +403 -0
  73. package/dist/src/benchmarks/gaia-tools/grounded_query.d.ts +126 -0
  74. package/dist/src/benchmarks/gaia-tools/grounded_query.js +225 -0
  75. package/dist/src/benchmarks/gaia-tools/index.d.ts +32 -0
  76. package/dist/src/benchmarks/gaia-tools/index.js +36 -0
  77. package/dist/src/benchmarks/gaia-tools/types.d.ts +62 -0
  78. package/dist/src/benchmarks/gaia-tools/types.js +12 -0
  79. package/dist/src/benchmarks/gaia-tools/web_search.d.ts +30 -0
  80. package/dist/src/benchmarks/gaia-tools/web_search.js +210 -0
  81. package/dist/src/benchmarks/gaia-voting.d.ts +88 -0
  82. package/dist/src/benchmarks/gaia-voting.js +297 -0
  83. package/dist/src/benchmarks/gaia-voting.smoke.d.ts +20 -0
  84. package/dist/src/benchmarks/gaia-voting.smoke.js +332 -0
  85. package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  86. package/dist/src/benchmarks/pretrain/index.js +404 -0
  87. package/dist/src/business-pods/bbs-budget-tracker.d.ts +139 -0
  88. package/dist/src/business-pods/bbs-budget-tracker.js +358 -0
  89. package/dist/src/business-pods/domain-affinity-policy.d.ts +47 -0
  90. package/dist/src/business-pods/domain-affinity-policy.js +65 -0
  91. package/dist/src/business-pods/pod-schema.d.ts +96 -0
  92. package/dist/src/business-pods/pod-schema.js +225 -0
  93. package/dist/src/commands/advisor.d.ts +15 -0
  94. package/dist/src/commands/advisor.js +94 -0
  95. package/dist/src/commands/agent-wasm.d.ts +14 -0
  96. package/dist/src/commands/agent-wasm.js +333 -0
  97. package/dist/src/commands/agent.d.ts +8 -0
  98. package/dist/src/commands/agent.js +927 -0
  99. package/dist/src/commands/analyze.d.ts +19 -0
  100. package/dist/src/commands/analyze.js +2047 -0
  101. package/dist/src/commands/announcements.d.ts +17 -0
  102. package/dist/src/commands/announcements.js +0 -0
  103. package/dist/src/commands/appliance-advanced.d.ts +9 -0
  104. package/dist/src/commands/appliance-advanced.js +215 -0
  105. package/dist/src/commands/appliance.d.ts +8 -0
  106. package/dist/src/commands/appliance.js +404 -0
  107. package/dist/src/commands/auth.d.ts +15 -0
  108. package/dist/src/commands/auth.js +244 -0
  109. package/dist/src/commands/autopilot.d.ts +15 -0
  110. package/dist/src/commands/autopilot.js +407 -0
  111. package/dist/src/commands/benchmark.d.ts +10 -0
  112. package/dist/src/commands/benchmark.js +460 -0
  113. package/dist/src/commands/claims.d.ts +10 -0
  114. package/dist/src/commands/claims.js +620 -0
  115. package/dist/src/commands/cleanup.d.ts +13 -0
  116. package/dist/src/commands/cleanup.js +250 -0
  117. package/dist/src/commands/completions.d.ts +10 -0
  118. package/dist/src/commands/completions.js +539 -0
  119. package/dist/src/commands/config.d.ts +8 -0
  120. package/dist/src/commands/config.js +428 -0
  121. package/dist/src/commands/daemon.d.ts +59 -0
  122. package/dist/src/commands/daemon.js +1733 -0
  123. package/dist/src/commands/deployment.d.ts +10 -0
  124. package/dist/src/commands/deployment.js +672 -0
  125. package/dist/src/commands/doctor.d.ts +10 -0
  126. package/dist/src/commands/doctor.js +1902 -0
  127. package/dist/src/commands/eject.d.ts +33 -0
  128. package/dist/src/commands/eject.js +195 -0
  129. package/dist/src/commands/embeddings.d.ts +18 -0
  130. package/dist/src/commands/embeddings.js +1623 -0
  131. package/dist/src/commands/funnel.d.ts +18 -0
  132. package/dist/src/commands/funnel.js +302 -0
  133. package/dist/src/commands/gaia-bench.d.ts +40 -0
  134. package/dist/src/commands/gaia-bench.js +597 -0
  135. package/dist/src/commands/guidance.d.ts +8 -0
  136. package/dist/src/commands/guidance.js +556 -0
  137. package/dist/src/commands/hive-mind.d.ts +11 -0
  138. package/dist/src/commands/hive-mind.js +1319 -0
  139. package/dist/src/commands/hooks.d.ts +8 -0
  140. package/dist/src/commands/hooks.js +4606 -0
  141. package/dist/src/commands/index.d.ts +118 -0
  142. package/dist/src/commands/index.js +366 -0
  143. package/dist/src/commands/init.d.ts +13 -0
  144. package/dist/src/commands/init.js +1297 -0
  145. package/dist/src/commands/issues.d.ts +21 -0
  146. package/dist/src/commands/issues.js +567 -0
  147. package/dist/src/commands/mcp.d.ts +11 -0
  148. package/dist/src/commands/mcp.js +732 -0
  149. package/dist/src/commands/memory-backup.d.ts +11 -0
  150. package/dist/src/commands/memory-backup.js +46 -0
  151. package/dist/src/commands/memory-distill.d.ts +27 -0
  152. package/dist/src/commands/memory-distill.js +374 -0
  153. package/dist/src/commands/memory.d.ts +8 -0
  154. package/dist/src/commands/memory.js +1596 -0
  155. package/dist/src/commands/metaharness.d.ts +39 -0
  156. package/dist/src/commands/metaharness.js +215 -0
  157. package/dist/src/commands/migrate.d.ts +8 -0
  158. package/dist/src/commands/migrate.js +742 -0
  159. package/dist/src/commands/neural.d.ts +10 -0
  160. package/dist/src/commands/neural.js +4331 -0
  161. package/dist/src/commands/performance.d.ts +10 -0
  162. package/dist/src/commands/performance.js +583 -0
  163. package/dist/src/commands/plugins.d.ts +11 -0
  164. package/dist/src/commands/plugins.js +826 -0
  165. package/dist/src/commands/process.d.ts +10 -0
  166. package/dist/src/commands/process.js +694 -0
  167. package/dist/src/commands/progress.d.ts +11 -0
  168. package/dist/src/commands/progress.js +259 -0
  169. package/dist/src/commands/providers.d.ts +10 -0
  170. package/dist/src/commands/providers.js +502 -0
  171. package/dist/src/commands/proxy-lifecycle.d.ts +20 -0
  172. package/dist/src/commands/proxy-lifecycle.js +277 -0
  173. package/dist/src/commands/proxy.d.ts +21 -0
  174. package/dist/src/commands/proxy.js +403 -0
  175. package/dist/src/commands/route.d.ts +16 -0
  176. package/dist/src/commands/route.js +822 -0
  177. package/dist/src/commands/ruvector/backup.d.ts +11 -0
  178. package/dist/src/commands/ruvector/backup.js +747 -0
  179. package/dist/src/commands/ruvector/benchmark.d.ts +11 -0
  180. package/dist/src/commands/ruvector/benchmark.js +490 -0
  181. package/dist/src/commands/ruvector/import.d.ts +18 -0
  182. package/dist/src/commands/ruvector/import.js +373 -0
  183. package/dist/src/commands/ruvector/index.d.ts +29 -0
  184. package/dist/src/commands/ruvector/index.js +129 -0
  185. package/dist/src/commands/ruvector/init.d.ts +11 -0
  186. package/dist/src/commands/ruvector/init.js +467 -0
  187. package/dist/src/commands/ruvector/migrate.d.ts +11 -0
  188. package/dist/src/commands/ruvector/migrate.js +498 -0
  189. package/dist/src/commands/ruvector/optimize.d.ts +11 -0
  190. package/dist/src/commands/ruvector/optimize.js +505 -0
  191. package/dist/src/commands/ruvector/pg-utils.d.ts +14 -0
  192. package/dist/src/commands/ruvector/pg-utils.js +41 -0
  193. package/dist/src/commands/ruvector/setup.d.ts +18 -0
  194. package/dist/src/commands/ruvector/setup.js +765 -0
  195. package/dist/src/commands/ruvector/status.d.ts +11 -0
  196. package/dist/src/commands/ruvector/status.js +479 -0
  197. package/dist/src/commands/security.d.ts +10 -0
  198. package/dist/src/commands/security.js +1012 -0
  199. package/dist/src/commands/session.d.ts +8 -0
  200. package/dist/src/commands/session.js +757 -0
  201. package/dist/src/commands/settings.d.ts +19 -0
  202. package/dist/src/commands/settings.js +180 -0
  203. package/dist/src/commands/spinner.d.ts +16 -0
  204. package/dist/src/commands/spinner.js +329 -0
  205. package/dist/src/commands/start.d.ts +8 -0
  206. package/dist/src/commands/start.js +418 -0
  207. package/dist/src/commands/status.d.ts +8 -0
  208. package/dist/src/commands/status.js +608 -0
  209. package/dist/src/commands/swarm.d.ts +8 -0
  210. package/dist/src/commands/swarm.js +891 -0
  211. package/dist/src/commands/task.d.ts +8 -0
  212. package/dist/src/commands/task.js +675 -0
  213. package/dist/src/commands/transfer-store.d.ts +13 -0
  214. package/dist/src/commands/transfer-store.js +428 -0
  215. package/dist/src/commands/update.d.ts +8 -0
  216. package/dist/src/commands/update.js +276 -0
  217. package/dist/src/commands/verify.d.ts +19 -0
  218. package/dist/src/commands/verify.js +261 -0
  219. package/dist/src/commands/version.d.ts +42 -0
  220. package/dist/src/commands/version.js +106 -0
  221. package/dist/src/commands/workflow.d.ts +8 -0
  222. package/dist/src/commands/workflow.js +617 -0
  223. package/dist/src/config/harness-feedback-applier.d.ts +50 -0
  224. package/dist/src/config/harness-feedback-applier.js +122 -0
  225. package/dist/src/config/proven-config-refresh.d.ts +39 -0
  226. package/dist/src/config/proven-config-refresh.js +154 -0
  227. package/dist/src/config/proven-config-rvfa.d.ts +23 -0
  228. package/dist/src/config/proven-config-rvfa.js +73 -0
  229. package/dist/src/config/proven-config.d.ts +86 -0
  230. package/dist/src/config/proven-config.js +176 -0
  231. package/dist/src/config-adapter.d.ts +15 -0
  232. package/dist/src/config-adapter.js +186 -0
  233. package/dist/src/encryption/vault.d.ts +94 -0
  234. package/dist/src/encryption/vault.js +172 -0
  235. package/dist/src/fs-secure.d.ts +86 -0
  236. package/dist/src/fs-secure.js +133 -0
  237. package/dist/src/funnel/advisor-tip.d.ts +58 -0
  238. package/dist/src/funnel/advisor-tip.js +92 -0
  239. package/dist/src/funnel/attribution.d.ts +37 -0
  240. package/dist/src/funnel/attribution.js +101 -0
  241. package/dist/src/funnel/consent.d.ts +22 -0
  242. package/dist/src/funnel/consent.js +58 -0
  243. package/dist/src/funnel/credit-errors.d.ts +31 -0
  244. package/dist/src/funnel/credit-errors.js +88 -0
  245. package/dist/src/funnel/credit-notifier.d.ts +44 -0
  246. package/dist/src/funnel/credit-notifier.js +74 -0
  247. package/dist/src/funnel/disclosure.d.ts +47 -0
  248. package/dist/src/funnel/disclosure.js +109 -0
  249. package/dist/src/funnel/enrollment.d.ts +36 -0
  250. package/dist/src/funnel/enrollment.js +64 -0
  251. package/dist/src/funnel/environment.d.ts +17 -0
  252. package/dist/src/funnel/environment.js +39 -0
  253. package/dist/src/funnel/event-transport.d.ts +51 -0
  254. package/dist/src/funnel/event-transport.js +199 -0
  255. package/dist/src/funnel/events.d.ts +42 -0
  256. package/dist/src/funnel/events.js +150 -0
  257. package/dist/src/funnel/index.d.ts +21 -0
  258. package/dist/src/funnel/index.js +21 -0
  259. package/dist/src/funnel/insights.d.ts +50 -0
  260. package/dist/src/funnel/insights.js +120 -0
  261. package/dist/src/funnel/local-signals.d.ts +20 -0
  262. package/dist/src/funnel/local-signals.js +77 -0
  263. package/dist/src/funnel/message-transport.d.ts +51 -0
  264. package/dist/src/funnel/message-transport.js +149 -0
  265. package/dist/src/funnel/messages.d.ts +55 -0
  266. package/dist/src/funnel/messages.js +160 -0
  267. package/dist/src/funnel/payout.d.ts +40 -0
  268. package/dist/src/funnel/payout.js +60 -0
  269. package/dist/src/funnel/power-saver-notifier.d.ts +44 -0
  270. package/dist/src/funnel/power-saver-notifier.js +92 -0
  271. package/dist/src/funnel/precedence.d.ts +16 -0
  272. package/dist/src/funnel/precedence.js +85 -0
  273. package/dist/src/funnel/promo.d.ts +41 -0
  274. package/dist/src/funnel/promo.js +144 -0
  275. package/dist/src/funnel/rate-limit-notifier.d.ts +55 -0
  276. package/dist/src/funnel/rate-limit-notifier.js +102 -0
  277. package/dist/src/funnel/rotation.d.ts +19 -0
  278. package/dist/src/funnel/rotation.js +70 -0
  279. package/dist/src/funnel/state.d.ts +13 -0
  280. package/dist/src/funnel/state.js +52 -0
  281. package/dist/src/funnel/toggle-cooldown.d.ts +17 -0
  282. package/dist/src/funnel/toggle-cooldown.js +32 -0
  283. package/dist/src/funnel/types.d.ts +98 -0
  284. package/dist/src/funnel/types.js +26 -0
  285. package/dist/src/index.d.ts +81 -0
  286. package/dist/src/index.js +609 -0
  287. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  288. package/dist/src/infrastructure/in-memory-repositories.js +264 -0
  289. package/dist/src/init/claudemd-generator.d.ts +16 -0
  290. package/dist/src/init/claudemd-generator.js +368 -0
  291. package/dist/src/init/executor.d.ts +41 -0
  292. package/dist/src/init/executor.js +2142 -0
  293. package/dist/src/init/helper-refresh.d.ts +79 -0
  294. package/dist/src/init/helper-refresh.js +347 -0
  295. package/dist/src/init/helper-signing.d.ts +37 -0
  296. package/dist/src/init/helper-signing.js +67 -0
  297. package/dist/src/init/helpers-generator.d.ts +87 -0
  298. package/dist/src/init/helpers-generator.js +1456 -0
  299. package/dist/src/init/index.d.ts +13 -0
  300. package/dist/src/init/index.js +15 -0
  301. package/dist/src/init/mcp-generator.d.ts +26 -0
  302. package/dist/src/init/mcp-generator.js +126 -0
  303. package/dist/src/init/memory-package-resolver.d.ts +53 -0
  304. package/dist/src/init/memory-package-resolver.js +118 -0
  305. package/dist/src/init/settings-generator.d.ts +14 -0
  306. package/dist/src/init/settings-generator.js +462 -0
  307. package/dist/src/init/statusline-generator.d.ts +28 -0
  308. package/dist/src/init/statusline-generator.js +177 -0
  309. package/dist/src/init/types.d.ts +331 -0
  310. package/dist/src/init/types.js +276 -0
  311. package/dist/src/log-filters.d.ts +46 -0
  312. package/dist/src/log-filters.js +107 -0
  313. package/dist/src/mcp-client.d.ts +92 -0
  314. package/dist/src/mcp-client.js +397 -0
  315. package/dist/src/mcp-server.d.ts +163 -0
  316. package/dist/src/mcp-server.js +751 -0
  317. package/dist/src/mcp-tools/agent-execute-core.d.ts +115 -0
  318. package/dist/src/mcp-tools/agent-execute-core.js +587 -0
  319. package/dist/src/mcp-tools/agent-tools.d.ts +9 -0
  320. package/dist/src/mcp-tools/agent-tools.js +837 -0
  321. package/dist/src/mcp-tools/agentbbs-tools.d.ts +28 -0
  322. package/dist/src/mcp-tools/agentbbs-tools.js +394 -0
  323. package/dist/src/mcp-tools/agentdb-tools.d.ts +35 -0
  324. package/dist/src/mcp-tools/agentdb-tools.js +1473 -0
  325. package/dist/src/mcp-tools/agenticow-loader.d.ts +59 -0
  326. package/dist/src/mcp-tools/agenticow-loader.js +105 -0
  327. package/dist/src/mcp-tools/agenticow-speculate-tools.d.ts +24 -0
  328. package/dist/src/mcp-tools/agenticow-speculate-tools.js +209 -0
  329. package/dist/src/mcp-tools/agenticow-tools.d.ts +36 -0
  330. package/dist/src/mcp-tools/agenticow-tools.js +360 -0
  331. package/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
  332. package/dist/src/mcp-tools/analyze-tools.js +346 -0
  333. package/dist/src/mcp-tools/auto-install.d.ts +83 -0
  334. package/dist/src/mcp-tools/auto-install.js +131 -0
  335. package/dist/src/mcp-tools/autopilot-tools.d.ts +12 -0
  336. package/dist/src/mcp-tools/autopilot-tools.js +231 -0
  337. package/dist/src/mcp-tools/browser-intent-tools.d.ts +162 -0
  338. package/dist/src/mcp-tools/browser-intent-tools.js +548 -0
  339. package/dist/src/mcp-tools/browser-session-tools.d.ts +27 -0
  340. package/dist/src/mcp-tools/browser-session-tools.js +398 -0
  341. package/dist/src/mcp-tools/browser-tools.d.ts +21 -0
  342. package/dist/src/mcp-tools/browser-tools.js +760 -0
  343. package/dist/src/mcp-tools/business-pod-tools.d.ts +20 -0
  344. package/dist/src/mcp-tools/business-pod-tools.js +169 -0
  345. package/dist/src/mcp-tools/claims-tools.d.ts +12 -0
  346. package/dist/src/mcp-tools/claims-tools.js +863 -0
  347. package/dist/src/mcp-tools/config-tools.d.ts +8 -0
  348. package/dist/src/mcp-tools/config-tools.js +411 -0
  349. package/dist/src/mcp-tools/coordination-tools.d.ts +13 -0
  350. package/dist/src/mcp-tools/coordination-tools.js +729 -0
  351. package/dist/src/mcp-tools/daa-tools.d.ts +13 -0
  352. package/dist/src/mcp-tools/daa-tools.js +534 -0
  353. package/dist/src/mcp-tools/embeddings-tools.d.ts +9 -0
  354. package/dist/src/mcp-tools/embeddings-tools.js +904 -0
  355. package/dist/src/mcp-tools/github-tools.d.ts +9 -0
  356. package/dist/src/mcp-tools/github-tools.js +659 -0
  357. package/dist/src/mcp-tools/guidance-tools.d.ts +15 -0
  358. package/dist/src/mcp-tools/guidance-tools.js +639 -0
  359. package/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
  360. package/dist/src/mcp-tools/hive-mind-tools.js +953 -0
  361. package/dist/src/mcp-tools/hooks-tools.d.ts +65 -0
  362. package/dist/src/mcp-tools/hooks-tools.js +4836 -0
  363. package/dist/src/mcp-tools/http-fetch-tools.d.ts +55 -0
  364. package/dist/src/mcp-tools/http-fetch-tools.js +329 -0
  365. package/dist/src/mcp-tools/index.d.ts +34 -0
  366. package/dist/src/mcp-tools/index.js +40 -0
  367. package/dist/src/mcp-tools/managed-agent-tools.d.ts +22 -0
  368. package/dist/src/mcp-tools/managed-agent-tools.js +357 -0
  369. package/dist/src/mcp-tools/memory-tools.d.ts +14 -0
  370. package/dist/src/mcp-tools/memory-tools.js +1330 -0
  371. package/dist/src/mcp-tools/metaharness-tools.d.ts +51 -0
  372. package/dist/src/mcp-tools/metaharness-tools.js +684 -0
  373. package/dist/src/mcp-tools/neural-tools.d.ts +54 -0
  374. package/dist/src/mcp-tools/neural-tools.js +1168 -0
  375. package/dist/src/mcp-tools/performance-tools.d.ts +16 -0
  376. package/dist/src/mcp-tools/performance-tools.js +675 -0
  377. package/dist/src/mcp-tools/progress-tools.d.ts +14 -0
  378. package/dist/src/mcp-tools/progress-tools.js +348 -0
  379. package/dist/src/mcp-tools/request-tracker.d.ts +17 -0
  380. package/dist/src/mcp-tools/request-tracker.js +27 -0
  381. package/dist/src/mcp-tools/ruvllm-tools.d.ts +9 -0
  382. package/dist/src/mcp-tools/ruvllm-tools.js +355 -0
  383. package/dist/src/mcp-tools/security-tools.d.ts +18 -0
  384. package/dist/src/mcp-tools/security-tools.js +556 -0
  385. package/dist/src/mcp-tools/session-tools.d.ts +8 -0
  386. package/dist/src/mcp-tools/session-tools.js +517 -0
  387. package/dist/src/mcp-tools/swarm-tools.d.ts +37 -0
  388. package/dist/src/mcp-tools/swarm-tools.js +390 -0
  389. package/dist/src/mcp-tools/system-tools.d.ts +13 -0
  390. package/dist/src/mcp-tools/system-tools.js +688 -0
  391. package/dist/src/mcp-tools/task-tools.d.ts +8 -0
  392. package/dist/src/mcp-tools/task-tools.js +487 -0
  393. package/dist/src/mcp-tools/terminal-tools.d.ts +8 -0
  394. package/dist/src/mcp-tools/terminal-tools.js +306 -0
  395. package/dist/src/mcp-tools/testgen-tools.d.ts +26 -0
  396. package/dist/src/mcp-tools/testgen-tools.js +168 -0
  397. package/dist/src/mcp-tools/tool-loop-guardrail.d.ts +31 -0
  398. package/dist/src/mcp-tools/tool-loop-guardrail.js +71 -0
  399. package/dist/src/mcp-tools/transfer-tools.d.ts +14 -0
  400. package/dist/src/mcp-tools/transfer-tools.js +447 -0
  401. package/dist/src/mcp-tools/types.d.ts +8 -0
  402. package/dist/src/mcp-tools/types.js +8 -0
  403. package/dist/src/mcp-tools/validate-input.d.ts +9 -0
  404. package/dist/src/mcp-tools/validate-input.js +9 -0
  405. package/dist/src/mcp-tools/wasm-agent-tools.d.ts +13 -0
  406. package/dist/src/mcp-tools/wasm-agent-tools.js +840 -0
  407. package/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
  408. package/dist/src/mcp-tools/workflow-tools.js +884 -0
  409. package/dist/src/memory/bge-embedder.d.ts +25 -0
  410. package/dist/src/memory/bge-embedder.js +121 -0
  411. package/dist/src/memory/cross-encoder-rerank.d.ts +33 -0
  412. package/dist/src/memory/cross-encoder-rerank.js +123 -0
  413. package/dist/src/memory/embedding-policy.d.ts +21 -0
  414. package/dist/src/memory/embedding-policy.js +30 -0
  415. package/dist/src/memory/embedding-quantization.d.ts +62 -0
  416. package/dist/src/memory/embedding-quantization.js +156 -0
  417. package/dist/src/memory/ewc-consolidation.d.ts +305 -0
  418. package/dist/src/memory/ewc-consolidation.js +611 -0
  419. package/dist/src/memory/graph-edge-writer.d.ts +95 -0
  420. package/dist/src/memory/graph-edge-writer.js +217 -0
  421. package/dist/src/memory/hybrid-retrieval.d.ts +77 -0
  422. package/dist/src/memory/hybrid-retrieval.js +192 -0
  423. package/dist/src/memory/intelligence.d.ts +405 -0
  424. package/dist/src/memory/intelligence.js +1316 -0
  425. package/dist/src/memory/lucene-bm25.d.ts +19 -0
  426. package/dist/src/memory/lucene-bm25.js +308 -0
  427. package/dist/src/memory/memory-bridge.d.ts +537 -0
  428. package/dist/src/memory/memory-bridge.js +2460 -0
  429. package/dist/src/memory/memory-initializer.d.ts +556 -0
  430. package/dist/src/memory/memory-initializer.js +3021 -0
  431. package/dist/src/memory/neural-package-bridge.d.ts +48 -0
  432. package/dist/src/memory/neural-package-bridge.js +87 -0
  433. package/dist/src/memory/rabitq-index.d.ts +60 -0
  434. package/dist/src/memory/rabitq-index.js +242 -0
  435. package/dist/src/memory/sona-optimizer.d.ts +267 -0
  436. package/dist/src/memory/sona-optimizer.js +779 -0
  437. package/dist/src/memory/structured-distill.d.ts +48 -0
  438. package/dist/src/memory/structured-distill.js +125 -0
  439. package/dist/src/output.d.ts +9 -0
  440. package/dist/src/output.js +9 -0
  441. package/dist/src/parser.d.ts +89 -0
  442. package/dist/src/parser.js +516 -0
  443. package/dist/src/plugins/manager.d.ts +133 -0
  444. package/dist/src/plugins/manager.js +415 -0
  445. package/dist/src/plugins/store/discovery.d.ts +99 -0
  446. package/dist/src/plugins/store/discovery.js +1224 -0
  447. package/dist/src/plugins/store/index.d.ts +76 -0
  448. package/dist/src/plugins/store/index.js +141 -0
  449. package/dist/src/plugins/store/search.d.ts +46 -0
  450. package/dist/src/plugins/store/search.js +230 -0
  451. package/dist/src/plugins/store/types.d.ts +279 -0
  452. package/dist/src/plugins/store/types.js +7 -0
  453. package/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
  454. package/dist/src/plugins/tests/demo-plugin-store.js +126 -0
  455. package/dist/src/plugins/tests/standalone-test.d.ts +12 -0
  456. package/dist/src/plugins/tests/standalone-test.js +188 -0
  457. package/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
  458. package/dist/src/plugins/tests/test-plugin-store.js +206 -0
  459. package/dist/src/production/circuit-breaker.d.ts +101 -0
  460. package/dist/src/production/circuit-breaker.js +241 -0
  461. package/dist/src/production/error-handler.d.ts +92 -0
  462. package/dist/src/production/error-handler.js +299 -0
  463. package/dist/src/production/index.d.ts +23 -0
  464. package/dist/src/production/index.js +18 -0
  465. package/dist/src/production/monitoring.d.ts +161 -0
  466. package/dist/src/production/monitoring.js +356 -0
  467. package/dist/src/production/rate-limiter.d.ts +80 -0
  468. package/dist/src/production/rate-limiter.js +201 -0
  469. package/dist/src/production/retry.d.ts +48 -0
  470. package/dist/src/production/retry.js +179 -0
  471. package/dist/src/prompt.d.ts +44 -0
  472. package/dist/src/prompt.js +501 -0
  473. package/dist/src/proxy/install.d.ts +29 -0
  474. package/dist/src/proxy/install.js +135 -0
  475. package/dist/src/proxy/lifecycle.d.ts +61 -0
  476. package/dist/src/proxy/lifecycle.js +249 -0
  477. package/dist/src/proxy/paths.d.ts +34 -0
  478. package/dist/src/proxy/paths.js +70 -0
  479. package/dist/src/proxy/release.d.ts +47 -0
  480. package/dist/src/proxy/release.js +138 -0
  481. package/dist/src/proxy/token-bridge.d.ts +5 -0
  482. package/dist/src/proxy/token-bridge.js +61 -0
  483. package/dist/src/proxy/verify.d.ts +44 -0
  484. package/dist/src/proxy/verify.js +68 -0
  485. package/dist/src/runtime/headless.d.ts +60 -0
  486. package/dist/src/runtime/headless.js +284 -0
  487. package/dist/src/runtime/parent-death-watchdog.d.ts +42 -0
  488. package/dist/src/runtime/parent-death-watchdog.js +70 -0
  489. package/dist/src/ruvector/agent-wasm.d.ts +228 -0
  490. package/dist/src/ruvector/agent-wasm.js +463 -0
  491. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  492. package/dist/src/ruvector/ast-analyzer.js +277 -0
  493. package/dist/src/ruvector/codemods/engine.d.ts +45 -0
  494. package/dist/src/ruvector/codemods/engine.js +291 -0
  495. package/dist/src/ruvector/codemods/scope-analysis.d.ts +29 -0
  496. package/dist/src/ruvector/codemods/scope-analysis.js +162 -0
  497. package/dist/src/ruvector/coverage-router.d.ts +160 -0
  498. package/dist/src/ruvector/coverage-router.js +531 -0
  499. package/dist/src/ruvector/coverage-tools.d.ts +33 -0
  500. package/dist/src/ruvector/coverage-tools.js +157 -0
  501. package/dist/src/ruvector/diff-classifier.d.ts +175 -0
  502. package/dist/src/ruvector/diff-classifier.js +699 -0
  503. package/dist/src/ruvector/diskann-backend.d.ts +78 -0
  504. package/dist/src/ruvector/diskann-backend.js +310 -0
  505. package/dist/src/ruvector/enhanced-model-router.d.ts +172 -0
  506. package/dist/src/ruvector/enhanced-model-router.js +577 -0
  507. package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  508. package/dist/src/ruvector/graph-analyzer.js +929 -0
  509. package/dist/src/ruvector/graph-backend.d.ts +79 -0
  510. package/dist/src/ruvector/graph-backend.js +220 -0
  511. package/dist/src/ruvector/index.d.ts +38 -0
  512. package/dist/src/ruvector/index.js +86 -0
  513. package/dist/src/ruvector/lora-adapter.d.ts +292 -0
  514. package/dist/src/ruvector/lora-adapter.js +710 -0
  515. package/dist/src/ruvector/model-prices.d.ts +50 -0
  516. package/dist/src/ruvector/model-prices.js +72 -0
  517. package/dist/src/ruvector/model-router.d.ts +408 -0
  518. package/dist/src/ruvector/model-router.js +1162 -0
  519. package/dist/src/ruvector/neural-router.d.ts +182 -0
  520. package/dist/src/ruvector/neural-router.js +825 -0
  521. package/dist/src/ruvector/output-verifier.d.ts +83 -0
  522. package/dist/src/ruvector/output-verifier.js +277 -0
  523. package/dist/src/ruvector/q-learning-router.d.ts +227 -0
  524. package/dist/src/ruvector/q-learning-router.js +721 -0
  525. package/dist/src/ruvector/router-calibrator.d.ts +65 -0
  526. package/dist/src/ruvector/router-calibrator.js +120 -0
  527. package/dist/src/ruvector/router-parallel-recorder.d.ts +127 -0
  528. package/dist/src/ruvector/router-parallel-recorder.js +183 -0
  529. package/dist/src/ruvector/router-trajectory.d.ts +194 -0
  530. package/dist/src/ruvector/router-trajectory.js +281 -0
  531. package/dist/src/ruvector/run-transcript-recorder.d.ts +154 -0
  532. package/dist/src/ruvector/run-transcript-recorder.js +209 -0
  533. package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  534. package/dist/src/ruvector/ruvllm-wasm.js +379 -0
  535. package/dist/src/ruvector/semantic-router.d.ts +77 -0
  536. package/dist/src/ruvector/semantic-router.js +178 -0
  537. package/dist/src/ruvector/task-embedder.d.ts +56 -0
  538. package/dist/src/ruvector/task-embedder.js +237 -0
  539. package/dist/src/ruvector/trajectory-tree.d.ts +113 -0
  540. package/dist/src/ruvector/trajectory-tree.js +237 -0
  541. package/dist/src/ruvector/vector-db.d.ts +73 -0
  542. package/dist/src/ruvector/vector-db.js +301 -0
  543. package/dist/src/ruvector/wasm-embedder.d.ts +13 -0
  544. package/dist/src/ruvector/wasm-embedder.js +143 -0
  545. package/dist/src/security/builtin-aidefence.d.ts +34 -0
  546. package/dist/src/security/builtin-aidefence.js +86 -0
  547. package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  548. package/dist/src/services/agentic-flow-bridge.js +95 -0
  549. package/dist/src/services/ai-job-dedup.d.ts +61 -0
  550. package/dist/src/services/ai-job-dedup.js +136 -0
  551. package/dist/src/services/checkpoint-gate.d.ts +140 -0
  552. package/dist/src/services/checkpoint-gate.js +223 -0
  553. package/dist/src/services/claim-service.d.ts +204 -0
  554. package/dist/src/services/claim-service.js +818 -0
  555. package/dist/src/services/config-file-manager.d.ts +37 -0
  556. package/dist/src/services/config-file-manager.js +224 -0
  557. package/dist/src/services/container-worker-pool.d.ts +204 -0
  558. package/dist/src/services/container-worker-pool.js +589 -0
  559. package/dist/src/services/daemon-autostart.d.ts +17 -0
  560. package/dist/src/services/daemon-autostart.js +102 -0
  561. package/dist/src/services/distill-oracle.d.ts +190 -0
  562. package/dist/src/services/distill-oracle.js +349 -0
  563. package/dist/src/services/distill-tuning.d.ts +111 -0
  564. package/dist/src/services/distill-tuning.js +510 -0
  565. package/dist/src/services/evolve-proof.d.ts +253 -0
  566. package/dist/src/services/evolve-proof.js +343 -0
  567. package/dist/src/services/fable-harness.d.ts +208 -0
  568. package/dist/src/services/fable-harness.js +388 -0
  569. package/dist/src/services/git-workspace-identity.d.ts +42 -0
  570. package/dist/src/services/git-workspace-identity.js +99 -0
  571. package/dist/src/services/global-ai-budget.d.ts +135 -0
  572. package/dist/src/services/global-ai-budget.js +415 -0
  573. package/dist/src/services/harness-benchmark.d.ts +68 -0
  574. package/dist/src/services/harness-benchmark.js +94 -0
  575. package/dist/src/services/harness-canary.d.ts +60 -0
  576. package/dist/src/services/harness-canary.js +69 -0
  577. package/dist/src/services/harness-corpus-harvester.d.ts +51 -0
  578. package/dist/src/services/harness-corpus-harvester.js +74 -0
  579. package/dist/src/services/harness-flywheel-generations.d.ts +115 -0
  580. package/dist/src/services/harness-flywheel-generations.js +360 -0
  581. package/dist/src/services/harness-flywheel-runtime.d.ts +25 -0
  582. package/dist/src/services/harness-flywheel-runtime.js +92 -0
  583. package/dist/src/services/harness-flywheel.d.ts +48 -0
  584. package/dist/src/services/harness-flywheel.js +207 -0
  585. package/dist/src/services/harness-frozen-eval.d.ts +22 -0
  586. package/dist/src/services/harness-frozen-eval.js +66 -0
  587. package/dist/src/services/harness-hosts.d.ts +40 -0
  588. package/dist/src/services/harness-hosts.js +88 -0
  589. package/dist/src/services/harness-improvement-ledger.d.ts +63 -0
  590. package/dist/src/services/harness-improvement-ledger.js +101 -0
  591. package/dist/src/services/harness-loop.d.ts +53 -0
  592. package/dist/src/services/harness-loop.js +85 -0
  593. package/dist/src/services/harness-qualification.d.ts +66 -0
  594. package/dist/src/services/harness-qualification.js +143 -0
  595. package/dist/src/services/harness-replay.d.ts +37 -0
  596. package/dist/src/services/harness-replay.js +92 -0
  597. package/dist/src/services/harness-verify.d.ts +33 -0
  598. package/dist/src/services/harness-verify.js +26 -0
  599. package/dist/src/services/harness-worker.d.ts +23 -0
  600. package/dist/src/services/harness-worker.js +66 -0
  601. package/dist/src/services/headless-worker-executor.d.ts +358 -0
  602. package/dist/src/services/headless-worker-executor.js +1269 -0
  603. package/dist/src/services/index.d.ts +13 -0
  604. package/dist/src/services/index.js +11 -0
  605. package/dist/src/services/memory-backup.d.ts +53 -0
  606. package/dist/src/services/memory-backup.js +198 -0
  607. package/dist/src/services/memory-distillation.d.ts +41 -0
  608. package/dist/src/services/memory-distillation.js +277 -0
  609. package/dist/src/services/native-training.d.ts +68 -0
  610. package/dist/src/services/native-training.js +141 -0
  611. package/dist/src/services/registry-api.d.ts +58 -0
  612. package/dist/src/services/registry-api.js +146 -0
  613. package/dist/src/services/repo-supervisor.d.ts +70 -0
  614. package/dist/src/services/repo-supervisor.js +228 -0
  615. package/dist/src/services/ruvector-training.d.ts +222 -0
  616. package/dist/src/services/ruvector-training.js +693 -0
  617. package/dist/src/services/swarm-memory-branches.d.ts +135 -0
  618. package/dist/src/services/swarm-memory-branches.js +213 -0
  619. package/dist/src/services/weight-eft.d.ts +305 -0
  620. package/dist/src/services/weight-eft.js +296 -0
  621. package/dist/src/services/worker-daemon.d.ts +439 -0
  622. package/dist/src/services/worker-daemon.js +1865 -0
  623. package/dist/src/services/worker-queue.d.ts +194 -0
  624. package/dist/src/services/worker-queue.js +513 -0
  625. package/dist/src/services/workspace-lease.d.ts +55 -0
  626. package/dist/src/services/workspace-lease.js +191 -0
  627. package/dist/src/suggest.d.ts +53 -0
  628. package/dist/src/suggest.js +200 -0
  629. package/dist/src/transfer/anonymization/index.d.ts +25 -0
  630. package/dist/src/transfer/anonymization/index.js +175 -0
  631. package/dist/src/transfer/deploy-seraphine.d.ts +13 -0
  632. package/dist/src/transfer/deploy-seraphine.js +205 -0
  633. package/dist/src/transfer/export.d.ts +25 -0
  634. package/dist/src/transfer/export.js +113 -0
  635. package/dist/src/transfer/index.d.ts +12 -0
  636. package/dist/src/transfer/index.js +31 -0
  637. package/dist/src/transfer/ipfs/client.d.ts +109 -0
  638. package/dist/src/transfer/ipfs/client.js +307 -0
  639. package/dist/src/transfer/ipfs/upload.d.ts +95 -0
  640. package/dist/src/transfer/ipfs/upload.js +413 -0
  641. package/dist/src/transfer/models/seraphine.d.ts +72 -0
  642. package/dist/src/transfer/models/seraphine.js +373 -0
  643. package/dist/src/transfer/serialization/cfp.d.ts +49 -0
  644. package/dist/src/transfer/serialization/cfp.js +183 -0
  645. package/dist/src/transfer/storage/gcs.d.ts +82 -0
  646. package/dist/src/transfer/storage/gcs.js +272 -0
  647. package/dist/src/transfer/storage/index.d.ts +6 -0
  648. package/dist/src/transfer/storage/index.js +6 -0
  649. package/dist/src/transfer/store/discovery.d.ts +84 -0
  650. package/dist/src/transfer/store/discovery.js +382 -0
  651. package/dist/src/transfer/store/download.d.ts +70 -0
  652. package/dist/src/transfer/store/download.js +334 -0
  653. package/dist/src/transfer/store/index.d.ts +84 -0
  654. package/dist/src/transfer/store/index.js +153 -0
  655. package/dist/src/transfer/store/publish.d.ts +76 -0
  656. package/dist/src/transfer/store/publish.js +294 -0
  657. package/dist/src/transfer/store/registry.d.ts +58 -0
  658. package/dist/src/transfer/store/registry.js +285 -0
  659. package/dist/src/transfer/store/search.d.ts +54 -0
  660. package/dist/src/transfer/store/search.js +232 -0
  661. package/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
  662. package/dist/src/transfer/store/tests/standalone-test.js +190 -0
  663. package/dist/src/transfer/store/types.d.ts +193 -0
  664. package/dist/src/transfer/store/types.js +6 -0
  665. package/dist/src/transfer/test-seraphine.d.ts +6 -0
  666. package/dist/src/transfer/test-seraphine.js +105 -0
  667. package/dist/src/transfer/tests/test-store.d.ts +7 -0
  668. package/dist/src/transfer/tests/test-store.js +214 -0
  669. package/dist/src/transfer/types.d.ts +245 -0
  670. package/dist/src/transfer/types.js +6 -0
  671. package/dist/src/types.d.ts +13 -0
  672. package/dist/src/types.js +13 -0
  673. package/dist/src/update/checker.d.ts +34 -0
  674. package/dist/src/update/checker.js +191 -0
  675. package/dist/src/update/executor.d.ts +33 -0
  676. package/dist/src/update/executor.js +217 -0
  677. package/dist/src/update/index.d.ts +33 -0
  678. package/dist/src/update/index.js +64 -0
  679. package/dist/src/update/rate-limiter.d.ts +20 -0
  680. package/dist/src/update/rate-limiter.js +96 -0
  681. package/dist/src/update/validator.d.ts +17 -0
  682. package/dist/src/update/validator.js +123 -0
  683. package/package.json +1 -1
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `ruflo announcements` — manage ruflo entries in Claude Code's
3
+ * companyAnnouncements settings (ADR-319).
4
+ *
5
+ * Claude Code exposes `companyAnnouncements: string[]` in
6
+ * ~/.claude/settings.json. The array is shown at Claude Code startup,
7
+ * cycled at random if multiple entries exist. Higher-attention than
8
+ * the spinner row (once per session, prominently rendered) and
9
+ * lower-frequency (once per Claude Code launch vs. every processing pause).
10
+ *
11
+ * Same architectural guarantees as ADR-318 (spinner): append-only,
12
+ * backup-first, ZWJ-marker-tagged for clean removal.
13
+ */
14
+ import type { Command } from '../types.js';
15
+ export declare const announcementsCommand: Command;
16
+ export default announcementsCommand;
17
+ //# sourceMappingURL=announcements.d.ts.map
@@ -0,0 +1,9 @@
1
+ /**
2
+ * V3 CLI Appliance Advanced Commands (Phase 3-4)
3
+ * Sign, publish, and hot-patch RVFA appliances.
4
+ */
5
+ import type { Command } from '../types.js';
6
+ export declare const signCommand: Command;
7
+ export declare const publishCommand: Command;
8
+ export declare const updateAppCommand: Command;
9
+ //# sourceMappingURL=appliance-advanced.d.ts.map
@@ -0,0 +1,215 @@
1
+ /**
2
+ * V3 CLI Appliance Advanced Commands (Phase 3-4)
3
+ * Sign, publish, and hot-patch RVFA appliances.
4
+ */
5
+ import { output } from '../output.js';
6
+ function fmtSize(bytes) {
7
+ if (bytes < 1024)
8
+ return `${bytes} B`;
9
+ if (bytes < 1024 * 1024)
10
+ return `${(bytes / 1024).toFixed(1)} KB`;
11
+ if (bytes < 1024 * 1024 * 1024)
12
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
13
+ return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)} GB`;
14
+ }
15
+ function errMsg(err) {
16
+ return err instanceof Error ? err.message : String(err);
17
+ }
18
+ const fail = (msg, detail) => {
19
+ output.printError(msg, detail);
20
+ return { success: false, exitCode: 1 };
21
+ };
22
+ function hdr(title) {
23
+ output.writeln();
24
+ output.writeln(output.bold(title));
25
+ output.writeln(output.dim('─'.repeat(50)));
26
+ output.writeln();
27
+ }
28
+ async function requireFile(file) {
29
+ const fs = await import('fs');
30
+ if (!fs.existsSync(file)) {
31
+ output.printError(`File not found: ${file}`);
32
+ return false;
33
+ }
34
+ return true;
35
+ }
36
+ // SIGN
37
+ export const signCommand = {
38
+ name: 'sign',
39
+ description: 'Sign an RVFA appliance with Ed25519 for tamper detection',
40
+ options: [
41
+ { name: 'file', short: 'f', type: 'string', description: 'Path to .rvf file', required: true },
42
+ { name: 'key', short: 'k', type: 'string', description: 'Path to Ed25519 private key (PEM)' },
43
+ { name: 'generate-keys', type: 'boolean', description: 'Generate a new key pair' },
44
+ { name: 'key-dir', type: 'string', description: 'Directory for key storage', default: '.rvfa-keys' },
45
+ { name: 'signer', type: 'string', description: 'Publisher name for signature metadata' },
46
+ ],
47
+ action: async (ctx) => {
48
+ const file = ctx.flags.file;
49
+ const keyPath = ctx.flags.key;
50
+ const genKeys = ctx.flags['generate-keys'];
51
+ const keyDir = ctx.flags['key-dir'] || '.rvfa-keys';
52
+ const signer = ctx.flags.signer;
53
+ if (!file)
54
+ return fail('--file is required');
55
+ try {
56
+ const signing = await import('../appliance/rvfa-signing.js');
57
+ if (genKeys) {
58
+ hdr('Generating Ed25519 Key Pair');
59
+ const kp = await signing.generateKeyPair();
60
+ const paths = await signing.saveKeyPair(kp, keyDir);
61
+ output.printSuccess(`Public key: ${paths.publicKeyPath}`);
62
+ output.printSuccess(`Private key: ${paths.privateKeyPath}`);
63
+ output.printInfo(`Fingerprint: ${kp.fingerprint}`);
64
+ output.writeln(output.dim(' Keep the private key secure. Share only the public key.'));
65
+ output.writeln();
66
+ }
67
+ if (!(await requireFile(file)))
68
+ return { success: false, exitCode: 1 };
69
+ hdr('Signing RVFA Appliance');
70
+ let privateKey;
71
+ if (keyPath) {
72
+ const fs = await import('fs');
73
+ privateKey = fs.readFileSync(keyPath);
74
+ }
75
+ else {
76
+ const kp = await signing.loadKeyPair(keyDir);
77
+ privateKey = kp.privateKey;
78
+ }
79
+ const s = new signing.RvfaSigner(privateKey);
80
+ const meta = await s.signAppliance(file, signer);
81
+ output.printSuccess('Appliance signed successfully');
82
+ output.printInfo(`Algorithm: ${meta.algorithm}`);
83
+ output.printInfo(`Fingerprint: ${meta.publicKeyFingerprint}`);
84
+ output.printInfo(`Signed at: ${meta.signedAt}`);
85
+ if (signer)
86
+ output.printInfo(`Signed by: ${signer}`);
87
+ output.printInfo(`Signature: ${meta.signature.slice(0, 32)}...`);
88
+ return { success: true, data: meta };
89
+ }
90
+ catch (err) {
91
+ return fail('Signing failed', errMsg(err));
92
+ }
93
+ },
94
+ };
95
+ // PUBLISH
96
+ export const publishCommand = {
97
+ name: 'publish',
98
+ description: 'Publish an RVFA appliance to IPFS via Pinata',
99
+ options: [
100
+ { name: 'file', short: 'f', type: 'string', description: 'Path to .rvf file', required: true },
101
+ { name: 'name', short: 'n', type: 'string', description: 'Publication name' },
102
+ { name: 'description', type: 'string', description: 'Description' },
103
+ ],
104
+ action: async (ctx) => {
105
+ const file = ctx.flags.file;
106
+ if (!file)
107
+ return fail('--file is required');
108
+ if (!(await requireFile(file)))
109
+ return { success: false, exitCode: 1 };
110
+ try {
111
+ const dist = await import('../appliance/rvfa-distribution.js');
112
+ hdr('Publishing RVFA to IPFS');
113
+ output.printInfo(`File: ${file}`);
114
+ output.writeln();
115
+ const publisher = dist.createPublisher();
116
+ const result = await publisher.publish(file, {
117
+ name: ctx.flags.name,
118
+ description: ctx.flags.description,
119
+ });
120
+ output.printSuccess('Published successfully');
121
+ output.printInfo(`CID: ${output.bold(result.cid)}`);
122
+ output.printInfo(`Size: ${fmtSize(result.size)}`);
123
+ output.printInfo(`Gateway: ${result.gatewayUrl}`);
124
+ return { success: true, data: result };
125
+ }
126
+ catch (err) {
127
+ return fail('Publishing failed', errMsg(err));
128
+ }
129
+ },
130
+ };
131
+ // UPDATE (hot-patch)
132
+ export const updateAppCommand = {
133
+ name: 'update',
134
+ description: 'Hot-patch a section in an RVFA appliance',
135
+ options: [
136
+ { name: 'file', short: 'f', type: 'string', description: 'Path to .rvf file', required: true },
137
+ { name: 'section', short: 's', type: 'string', description: 'Section to patch (e.g. ruflo, models)', required: true },
138
+ { name: 'patch', short: 'p', type: 'string', description: 'Path to .rvfp patch file' },
139
+ { name: 'data', short: 'd', type: 'string', description: 'Path to new section data (creates patch automatically)' },
140
+ { name: 'version', type: 'string', description: 'Patch version', default: '0.0.1' },
141
+ { name: 'no-backup', type: 'boolean', description: 'Skip backup creation' },
142
+ { name: 'public-key', type: 'string', description: 'Path to public key for patch verification' },
143
+ ],
144
+ action: async (ctx) => {
145
+ const file = ctx.flags.file;
146
+ const section = ctx.flags.section;
147
+ const patchPath = ctx.flags.patch;
148
+ const dataPath = ctx.flags.data;
149
+ if (!file || !section)
150
+ return fail('--file and --section are required');
151
+ if (!patchPath && !dataPath)
152
+ return fail('Provide --patch (RVFP file) or --data (raw section data)');
153
+ if (!(await requireFile(file)))
154
+ return { success: false, exitCode: 1 };
155
+ try {
156
+ const dist = await import('../appliance/rvfa-distribution.js');
157
+ const { RvfaReader } = await import('../appliance/rvfa-format.js');
158
+ const fs = await import('fs');
159
+ hdr('RVFA Hot-Patch Update');
160
+ output.printInfo(`Appliance: ${file}`);
161
+ output.printInfo(`Section: ${section}`);
162
+ output.writeln();
163
+ let patchBuf;
164
+ if (patchPath) {
165
+ if (!(await requireFile(patchPath)))
166
+ return { success: false, exitCode: 1 };
167
+ patchBuf = fs.readFileSync(patchPath);
168
+ output.printInfo(`Patch file: ${patchPath} (${fmtSize(patchBuf.length)})`);
169
+ }
170
+ else {
171
+ if (!(await requireFile(dataPath)))
172
+ return { success: false, exitCode: 1 };
173
+ const newData = fs.readFileSync(dataPath);
174
+ const reader = await RvfaReader.fromFile(file);
175
+ const appHdr = reader.getHeader();
176
+ output.printInfo(`Creating patch for section "${section}" (${fmtSize(newData.length)} new data)`);
177
+ patchBuf = await dist.RvfaPatcher.createPatch({
178
+ targetName: appHdr.name,
179
+ targetVersion: appHdr.appVersion,
180
+ sectionId: section,
181
+ sectionData: newData,
182
+ patchVersion: ctx.flags.version || '0.0.1',
183
+ compression: 'gzip',
184
+ });
185
+ }
186
+ let pubKey;
187
+ if (ctx.flags['public-key']) {
188
+ const pkPath = ctx.flags['public-key'];
189
+ if (!(await requireFile(pkPath)))
190
+ return { success: false, exitCode: 1 };
191
+ pubKey = fs.readFileSync(pkPath);
192
+ }
193
+ const result = await dist.RvfaPatcher.applyPatch(file, patchBuf, {
194
+ backup: !ctx.flags['no-backup'],
195
+ verify: true,
196
+ publicKey: pubKey,
197
+ });
198
+ if (result.success) {
199
+ output.printSuccess(`Section "${result.patchedSection}" updated successfully`);
200
+ output.printInfo(`New size: ${fmtSize(result.newSize)}`);
201
+ if (result.backupPath)
202
+ output.printInfo(`Backup: ${result.backupPath}`);
203
+ }
204
+ else {
205
+ output.printError('Patch failed');
206
+ result.errors.forEach(e => output.writeln(` ${output.error('X')} ${e}`));
207
+ }
208
+ return { success: result.success, exitCode: result.success ? 0 : 1, data: result };
209
+ }
210
+ catch (err) {
211
+ return fail('Update failed', errMsg(err));
212
+ }
213
+ },
214
+ };
215
+ //# sourceMappingURL=appliance-advanced.js.map
@@ -0,0 +1,8 @@
1
+ /**
2
+ * V3 CLI Appliance Command
3
+ * Self-contained RVFA appliance management (build, inspect, verify, extract, run, sign, publish, update)
4
+ */
5
+ import type { Command } from '../types.js';
6
+ export declare const applianceCommand: Command;
7
+ export default applianceCommand;
8
+ //# sourceMappingURL=appliance.d.ts.map
@@ -0,0 +1,404 @@
1
+ /**
2
+ * V3 CLI Appliance Command
3
+ * Self-contained RVFA appliance management (build, inspect, verify, extract, run, sign, publish, update)
4
+ */
5
+ import { existsSync, mkdirSync, statSync } from 'node:fs';
6
+ import { join as pathJoin, resolve as pathResolve } from 'node:path';
7
+ import { output } from '../output.js';
8
+ import { signCommand, publishCommand, updateAppCommand } from './appliance-advanced.js';
9
+ function fmtSize(bytes) {
10
+ if (bytes < 1024)
11
+ return `${bytes} B`;
12
+ if (bytes < 1024 * 1024)
13
+ return `${(bytes / 1024).toFixed(1)} KB`;
14
+ if (bytes < 1024 * 1024 * 1024)
15
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
16
+ return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)} GB`;
17
+ }
18
+ function errMsg(err) {
19
+ return err instanceof Error ? err.message : String(err);
20
+ }
21
+ const fail = (msg, detail) => {
22
+ output.printError(msg, detail);
23
+ return { success: false, exitCode: 1 };
24
+ };
25
+ async function loadModule(path, exportName, label) {
26
+ try {
27
+ const mod = await import(path);
28
+ return mod[exportName];
29
+ }
30
+ catch {
31
+ output.printError(`RVFA ${label} module not found`, 'Install with: npm install @claude-flow/appliance');
32
+ return null;
33
+ }
34
+ }
35
+ async function requireFile(file) {
36
+ if (!existsSync(file)) {
37
+ output.printError(`File not found: ${file}`);
38
+ return false;
39
+ }
40
+ return true;
41
+ }
42
+ function header(title) {
43
+ output.writeln();
44
+ output.writeln(output.bold(title));
45
+ output.writeln(output.dim('─'.repeat(50)));
46
+ output.writeln();
47
+ }
48
+ async function runSteps(steps, delay = 300) {
49
+ for (const step of steps) {
50
+ const spinner = output.createSpinner({ text: step + '...', spinner: 'dots' });
51
+ spinner.start();
52
+ await new Promise(r => setTimeout(r, delay));
53
+ spinner.succeed(step);
54
+ }
55
+ }
56
+ // BUILD
57
+ const buildCommand = {
58
+ name: 'build',
59
+ description: 'Build a self-contained ruflo.rvf appliance',
60
+ options: [
61
+ { name: 'profile', short: 'p', type: 'string', description: 'Build profile: cloud, hybrid, offline', default: 'cloud' },
62
+ { name: 'output', short: 'o', type: 'string', description: 'Output file path', default: 'ruflo.rvf' },
63
+ { name: 'arch', type: 'string', description: 'Target architecture', default: 'x86_64' },
64
+ { name: 'models', short: 'm', type: 'array', description: 'Models to include (offline/hybrid)' },
65
+ { name: 'api-keys', type: 'string', description: 'Path to .env file for API key vault' },
66
+ { name: 'verbose', short: 'v', type: 'boolean', description: 'Verbose output' },
67
+ ],
68
+ action: async (ctx) => {
69
+ const profile = ctx.flags.profile || 'cloud';
70
+ const outputPath = ctx.flags.output || 'ruflo.rvf';
71
+ const arch = ctx.flags.arch || 'x86_64';
72
+ const models = ctx.flags.models || [];
73
+ const apiKeysPath = ctx.flags['api-keys'];
74
+ header('RVFA Appliance Builder');
75
+ output.printInfo(`Profile: ${output.highlight(profile)}`);
76
+ output.printInfo(`Arch: ${arch}`);
77
+ output.printInfo(`Output: ${outputPath}`);
78
+ if (models.length > 0)
79
+ output.printInfo(`Models: ${models.join(', ')}`);
80
+ output.writeln();
81
+ const startTime = Date.now();
82
+ const RvfaBuilder = await loadModule('../appliance/rvfa-builder.js', 'RvfaBuilder', 'builder');
83
+ if (!RvfaBuilder)
84
+ return { success: false, exitCode: 1 };
85
+ const steps = [
86
+ 'Collecting kernel artifacts', 'Bundling runtime environment',
87
+ 'Packaging ruflo CLI + MCP tools', 'Compressing sections',
88
+ 'Computing SHA-256 checksums', 'Writing RVFA container',
89
+ ];
90
+ if (profile !== 'cloud' && models.length > 0)
91
+ steps.splice(3, 0, 'Embedding model weights');
92
+ if (apiKeysPath)
93
+ steps.splice(steps.length - 1, 0, 'Sealing API key vault');
94
+ try {
95
+ const builder = new RvfaBuilder({ profile, outputPath, arch, models, apiKeysPath });
96
+ await runSteps(steps);
97
+ const result = await builder.build();
98
+ const duration = ((Date.now() - startTime) / 1000).toFixed(1);
99
+ if (result.sections?.length) {
100
+ output.writeln();
101
+ output.printTable({
102
+ columns: [
103
+ { key: 'id', header: 'Section', width: 16 },
104
+ { key: 'size', header: 'Size', width: 12, align: 'right' },
105
+ ],
106
+ data: result.sections.map(s => ({ id: s.id, size: fmtSize(s.size) })),
107
+ });
108
+ }
109
+ output.writeln();
110
+ output.printSuccess(`Appliance written to ${output.bold(outputPath)}`);
111
+ output.printInfo(`Total size: ${output.bold(fmtSize(result.totalSize))} Duration: ${duration}s`);
112
+ return { success: true, data: result };
113
+ }
114
+ catch (err) {
115
+ return fail('Build failed', errMsg(err));
116
+ }
117
+ },
118
+ };
119
+ // INSPECT
120
+ const inspectCommand = {
121
+ name: 'inspect',
122
+ description: 'Show RVFA appliance header and section manifest',
123
+ options: [
124
+ { name: 'file', short: 'f', type: 'string', description: 'Path to .rvf file', required: true },
125
+ { name: 'json', type: 'boolean', description: 'Output as JSON' },
126
+ ],
127
+ action: async (ctx) => {
128
+ const file = ctx.flags.file;
129
+ if (!file)
130
+ return fail('--file is required');
131
+ const RvfaReader = await loadModule('../appliance/rvfa-format.js', 'RvfaReader', 'format');
132
+ if (!RvfaReader)
133
+ return { success: false, exitCode: 1 };
134
+ if (!(await requireFile(file)))
135
+ return { success: false, exitCode: 1 };
136
+ try {
137
+ const reader = new RvfaReader(file);
138
+ const hdr = await reader.parse();
139
+ if (ctx.flags.json) {
140
+ output.printJson(hdr);
141
+ return { success: true, data: hdr };
142
+ }
143
+ header('RVFA Appliance');
144
+ for (const [label, value] of [
145
+ ['Name', hdr.name || 'ruflo'], ['Version', hdr.version || 'unknown'],
146
+ ['Architecture', hdr.arch || 'x86_64'], ['Profile', hdr.profile || 'cloud'],
147
+ ['Created', hdr.created || 'unknown'],
148
+ ]) {
149
+ output.writeln(` ${output.bold(label.padEnd(16))}${value}`);
150
+ }
151
+ output.writeln();
152
+ output.writeln(output.bold('Sections'));
153
+ output.writeln(output.dim('─'.repeat(60)));
154
+ if (hdr.sections?.length) {
155
+ output.printTable({
156
+ columns: [
157
+ { key: 'id', header: 'Section', width: 14 },
158
+ { key: 'size', header: 'Packed', width: 12, align: 'right' },
159
+ { key: 'original', header: 'Original', width: 12, align: 'right' },
160
+ { key: 'compression', header: 'Compression', width: 12 },
161
+ { key: 'sha256', header: 'SHA-256', width: 18 },
162
+ ],
163
+ data: hdr.sections.map((s) => ({
164
+ id: s.id,
165
+ size: fmtSize(s.size),
166
+ original: fmtSize(s.originalSize ?? s.size),
167
+ compression: s.compression || 'none',
168
+ sha256: s.sha256 ? s.sha256.slice(0, 16) + '..' : output.dim('n/a'),
169
+ })),
170
+ });
171
+ }
172
+ else {
173
+ output.writeln(output.dim(' No sections found'));
174
+ }
175
+ const stat = 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
+ },
187
+ };
188
+ // VERIFY
189
+ const verifyCommand = {
190
+ name: 'verify',
191
+ description: 'Verify appliance integrity and run capability tests',
192
+ options: [
193
+ { name: 'file', short: 'f', type: 'string', description: 'Path to .rvf file', required: true },
194
+ { name: 'quick', short: 'q', type: 'boolean', description: 'Quick check (integrity only, skip capability tests)' },
195
+ ],
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)'));
239
+ }
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
+ },
250
+ };
251
+ // EXTRACT
252
+ const extractCommand = {
253
+ name: 'extract',
254
+ description: 'Extract all sections from an RVFA appliance',
255
+ options: [
256
+ { name: 'file', short: 'f', type: 'string', description: 'Path to .rvf file', required: true },
257
+ { name: 'output', short: 'o', type: 'string', description: 'Output directory', default: './rvfa-extracted' },
258
+ { name: 'section', short: 's', type: 'string', description: 'Extract specific section only' },
259
+ ],
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
+ header('RVFA Extraction');
273
+ const reader = new RvfaReader(file);
274
+ const hdr = await reader.parse();
275
+ const dest = pathResolve(outputDir);
276
+ if (!existsSync(dest))
277
+ mkdirSync(dest, { recursive: true });
278
+ output.printInfo(`Destination: ${dest}`);
279
+ output.writeln();
280
+ if (sectionFilter) {
281
+ if (!hdr.sections?.find((s) => s.id === sectionFilter)) {
282
+ output.printError(`Section not found: ${sectionFilter}`);
283
+ output.printInfo(`Available: ${(hdr.sections || []).map((s) => s.id).join(', ')}`);
284
+ return { success: false, exitCode: 1 };
285
+ }
286
+ const sp = output.createSpinner({ text: `Extracting ${sectionFilter}...`, spinner: 'dots' });
287
+ sp.start();
288
+ const r = await reader.extractSection(sectionFilter, dest);
289
+ sp.succeed(`${sectionFilter}: ${fmtSize(r.size)}`);
290
+ }
291
+ else {
292
+ const results = await reader.extractAll(dest);
293
+ for (const r of results) {
294
+ output.printSuccess(`${r.id.padEnd(14)} ${fmtSize(r.size).padStart(10)} -> ${r.path}`);
295
+ }
296
+ }
297
+ output.writeln();
298
+ output.printSuccess(`Extraction complete: ${dest}`);
299
+ output.writeln(output.dim(' Directory structure:'));
300
+ for (const d of ['kernel', 'runtime', 'ruflo', 'models', 'data', 'verify']) {
301
+ const exists = existsSync(pathJoin(dest, d));
302
+ output.writeln(` ${exists ? output.success('+') : output.dim('-')} ${d}/`);
303
+ }
304
+ return { success: true };
305
+ }
306
+ catch (err) {
307
+ return fail('Extraction failed', errMsg(err));
308
+ }
309
+ },
310
+ };
311
+ // RUN
312
+ const runCommand = {
313
+ name: 'run',
314
+ description: 'Boot and run an RVFA appliance',
315
+ options: [
316
+ { name: 'file', short: 'f', type: 'string', description: 'Path to .rvf file', required: true },
317
+ { name: 'mode', type: 'string', description: 'Run mode: cli, mcp, verify', default: 'cli' },
318
+ { name: 'isolation', type: 'string', description: 'Isolation: container, native', default: 'native' },
319
+ ],
320
+ action: async (ctx) => {
321
+ const file = ctx.flags.file;
322
+ const mode = ctx.flags.mode || 'cli';
323
+ const isolation = ctx.flags.isolation || 'native';
324
+ if (!file)
325
+ return fail('--file is required');
326
+ const RvfaRunner = await loadModule('../appliance/rvfa-runner.js', 'RvfaRunner', 'runner');
327
+ if (!RvfaRunner)
328
+ return { success: false, exitCode: 1 };
329
+ if (!(await requireFile(file)))
330
+ return { success: false, exitCode: 1 };
331
+ try {
332
+ header('RVFA Appliance Boot');
333
+ output.printInfo(`File: ${file}`);
334
+ output.printInfo(`Mode: ${mode}`);
335
+ output.printInfo(`Isolation: ${isolation}`);
336
+ output.writeln();
337
+ await runSteps([
338
+ 'Loading RVFA container', 'Verifying integrity', 'Extracting kernel',
339
+ 'Initializing runtime', `Starting ${mode} interface`,
340
+ ], 250);
341
+ output.writeln();
342
+ const runner = new RvfaRunner({ file, mode, isolation });
343
+ const result = await runner.boot();
344
+ if (mode === 'mcp' && result.port)
345
+ output.printSuccess(`MCP server listening on port ${result.port}`);
346
+ else if (mode === 'verify')
347
+ output.printSuccess('Verification complete');
348
+ else
349
+ output.printSuccess('Appliance is running');
350
+ if (result.pid)
351
+ output.printInfo(`PID: ${result.pid}`);
352
+ return { success: true, data: result };
353
+ }
354
+ catch (err) {
355
+ return fail('Boot failed', errMsg(err));
356
+ }
357
+ },
358
+ };
359
+ // Main command
360
+ export const applianceCommand = {
361
+ name: 'appliance',
362
+ description: 'Self-contained RVFA appliance management (build, inspect, verify, extract, run)',
363
+ aliases: ['rvfa'],
364
+ subcommands: [buildCommand, inspectCommand, verifyCommand, extractCommand, runCommand, signCommand, publishCommand, updateAppCommand],
365
+ examples: [
366
+ { command: 'ruflo appliance build -p cloud', description: 'Build a cloud appliance' },
367
+ { command: 'ruflo appliance inspect -f ruflo.rvf', description: 'Inspect appliance contents' },
368
+ { command: 'ruflo appliance verify -f ruflo.rvf', description: 'Verify integrity' },
369
+ { command: 'ruflo appliance extract -f ruflo.rvf', description: 'Extract sections' },
370
+ { command: 'ruflo appliance run -f ruflo.rvf', description: 'Boot and run appliance' },
371
+ { command: 'ruflo appliance sign -f ruflo.rvf --generate-keys', description: 'Generate keys and sign' },
372
+ { command: 'ruflo appliance publish -f ruflo.rvf', description: 'Publish to IPFS via Pinata' },
373
+ { command: 'ruflo appliance update -f ruflo.rvf -s ruflo -d ./new-ruflo.bin', description: 'Hot-patch a section' },
374
+ ],
375
+ action: async () => {
376
+ output.writeln();
377
+ output.writeln(output.bold('Ruflo Appliance (RVFA)'));
378
+ output.writeln(output.dim('Self-contained deployment format for the full Ruflo platform.'));
379
+ output.writeln();
380
+ output.writeln('Subcommands:');
381
+ output.printList([
382
+ 'build - Build a self-contained ruflo.rvf appliance',
383
+ 'inspect - Show appliance header and section manifest',
384
+ 'verify - Verify appliance integrity and run capability tests',
385
+ 'extract - Extract all sections from an appliance',
386
+ 'run - Boot and run an RVFA appliance',
387
+ 'sign - Sign an appliance with Ed25519 for tamper detection',
388
+ 'publish - Publish an appliance to IPFS via Pinata',
389
+ 'update - Hot-patch a section in an appliance',
390
+ ]);
391
+ output.writeln();
392
+ output.writeln('Profiles:');
393
+ output.printList([
394
+ `${output.bold('cloud')} - API-only, smallest footprint (~15 MB)`,
395
+ `${output.bold('hybrid')} - API + local fallback models (~500 MB)`,
396
+ `${output.bold('offline')} - Fully air-gapped with bundled models (~4 GB)`,
397
+ ]);
398
+ output.writeln();
399
+ output.writeln(output.dim('Use "ruflo appliance <subcommand> --help" for details.'));
400
+ return { success: true };
401
+ },
402
+ };
403
+ export default applianceCommand;
404
+ //# sourceMappingURL=appliance.js.map
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `ruflo auth` — Cognitum identity (ADR-306).
3
+ *
4
+ * `login` obtains OAuth tokens via the loopback PKCE flow (default,
5
+ * interactive desktop), the OOB manual-paste flow (`--no-browser`, or
6
+ * auto-detected headless environments), or `--token-stdin` (CI/enterprise
7
+ * automation — refuses interactively otherwise, per ADR-306). The refresh
8
+ * token goes to the OS keychain when reachable, or nowhere (session-only —
9
+ * a deliberate usability cost, not a bug) when it isn't. The access token
10
+ * itself is NEVER written to disk; see src/auth/session.ts.
11
+ */
12
+ import type { Command } from '../types.js';
13
+ export declare const authCommand: Command;
14
+ export default authCommand;
15
+ //# sourceMappingURL=auth.d.ts.map