kynjal-cli 3.1.3 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/.claude/agents/core/coder.md +1 -1
  2. package/.claude/agents/core/planner.md +2 -2
  3. package/.claude/agents/core/researcher.md +1 -1
  4. package/.claude/agents/core/reviewer.md +1 -1
  5. package/.claude/agents/core/tester.md +1 -1
  6. package/.claude/agents/data/data-ml-model.md +4 -4
  7. package/.claude/agents/development/dev-backend-api.md +4 -4
  8. package/.claude/agents/documentation/docs-api-openapi.md +4 -4
  9. package/.claude/agents/github/code-review-swarm.md +2 -2
  10. package/.claude/agents/github/issue-tracker.md +2 -2
  11. package/.claude/agents/github/pr-manager.md +2 -2
  12. package/.claude/agents/github/release-manager.md +2 -2
  13. package/.claude/agents/github/workflow-automation.md +2 -2
  14. package/.claude/agents/sparc/architecture.md +3 -3
  15. package/.claude/agents/sparc/pseudocode.md +2 -2
  16. package/.claude/agents/sparc/refinement.md +3 -3
  17. package/.claude/agents/sparc/specification.md +2 -2
  18. package/.claude/agents/swarm/adaptive-coordinator.md +1 -1
  19. package/.claude/agents/swarm/hierarchical-coordinator.md +1 -1
  20. package/.claude/agents/swarm/mesh-coordinator.md +1 -1
  21. package/.claude/agents/templates/base-template-generator.md +25 -4
  22. package/.claude/agents/templates/sparc-coordinator.md +3 -3
  23. package/.claude/helpers/auto-commit.sh +1 -1
  24. package/.claude/helpers/auto-memory-hook.mjs +27 -9
  25. package/.claude/helpers/hook-handler.cjs +58 -18
  26. package/.claude/helpers/statusline.cjs +14 -33
  27. package/.claude/helpers/statusline.js +3 -3
  28. package/.claude/settings.json +9 -9
  29. package/.claude/skills/reasoningbank-intelligence/SKILL.md +2 -2
  30. package/.claude/skills/swarm-orchestration/SKILL.md +1 -1
  31. package/README.md +383 -170
  32. package/bin/cli.js +6 -6
  33. package/bin/mcp-server.js +1 -1
  34. package/bin/preinstall.cjs +2 -0
  35. package/dist/src/appliance/gguf-engine.js +664 -0
  36. package/dist/src/appliance/gguf-engine.js.map +1 -0
  37. package/dist/src/appliance/ruvllm-bridge.js +492 -0
  38. package/dist/src/appliance/ruvllm-bridge.js.map +1 -0
  39. package/dist/src/appliance/rvfa-builder.js +383 -0
  40. package/dist/src/appliance/rvfa-builder.js.map +1 -0
  41. package/dist/src/appliance/rvfa-distribution.js +533 -0
  42. package/dist/src/appliance/rvfa-distribution.js.map +1 -0
  43. package/dist/src/appliance/rvfa-format.js +465 -0
  44. package/dist/src/appliance/rvfa-format.js.map +1 -0
  45. package/dist/src/appliance/rvfa-runner.js +373 -0
  46. package/dist/src/appliance/rvfa-runner.js.map +1 -0
  47. package/dist/src/appliance/rvfa-signing.js +469 -0
  48. package/dist/src/appliance/rvfa-signing.js.map +1 -0
  49. package/dist/src/benchmarks/pretrain/index.js +542 -331
  50. package/dist/src/benchmarks/pretrain/index.js.map +1 -1
  51. package/dist/src/commands/agent.d.ts.map +1 -1
  52. package/dist/src/commands/agent.js +725 -502
  53. package/dist/src/commands/agent.js.map +1 -1
  54. package/dist/src/commands/analyze.js +1548 -1218
  55. package/dist/src/commands/analyze.js.map +1 -1
  56. package/dist/src/commands/appliance-advanced.d.ts +9 -0
  57. package/dist/src/commands/appliance-advanced.d.ts.map +1 -0
  58. package/dist/src/commands/appliance-advanced.js +324 -0
  59. package/dist/src/commands/appliance-advanced.js.map +1 -0
  60. package/dist/src/commands/appliance.d.ts +8 -0
  61. package/dist/src/commands/appliance.d.ts.map +1 -0
  62. package/dist/src/commands/appliance.js +581 -0
  63. package/dist/src/commands/appliance.js.map +1 -0
  64. package/dist/src/commands/benchmark.js +523 -372
  65. package/dist/src/commands/benchmark.js.map +1 -1
  66. package/dist/src/commands/claims.js +364 -274
  67. package/dist/src/commands/claims.js.map +1 -1
  68. package/dist/src/commands/cleanup.d.ts +13 -0
  69. package/dist/src/commands/cleanup.d.ts.map +1 -0
  70. package/dist/src/commands/cleanup.js +262 -0
  71. package/dist/src/commands/cleanup.js.map +1 -0
  72. package/dist/src/commands/completions.js +118 -477
  73. package/dist/src/commands/completions.js.map +1 -1
  74. package/dist/src/commands/config.js +303 -237
  75. package/dist/src/commands/config.js.map +1 -1
  76. package/dist/src/commands/daemon.d.ts.map +1 -1
  77. package/dist/src/commands/daemon.js +597 -425
  78. package/dist/src/commands/daemon.js.map +1 -1
  79. package/dist/src/commands/deployment.js +275 -194
  80. package/dist/src/commands/deployment.js.map +1 -1
  81. package/dist/src/commands/doctor.d.ts.map +1 -1
  82. package/dist/src/commands/doctor.js +690 -460
  83. package/dist/src/commands/doctor.js.map +1 -1
  84. package/dist/src/commands/embeddings.js +1543 -1293
  85. package/dist/src/commands/embeddings.js.map +1 -1
  86. package/dist/src/commands/guidance.js +596 -449
  87. package/dist/src/commands/guidance.js.map +1 -1
  88. package/dist/src/commands/hive-mind.js +938 -854
  89. package/dist/src/commands/hive-mind.js.map +1 -1
  90. package/dist/src/commands/hooks.d.ts.map +1 -1
  91. package/dist/src/commands/hooks.js +3677 -2570
  92. package/dist/src/commands/hooks.js.map +1 -1
  93. package/dist/src/commands/index.js +322 -122
  94. package/dist/src/commands/index.js.map +1 -1
  95. package/dist/src/commands/init.d.ts +1 -1
  96. package/dist/src/commands/init.d.ts.map +1 -1
  97. package/dist/src/commands/init.js +943 -787
  98. package/dist/src/commands/init.js.map +1 -1
  99. package/dist/src/commands/issues.js +558 -383
  100. package/dist/src/commands/issues.js.map +1 -1
  101. package/dist/src/commands/mcp.d.ts.map +1 -1
  102. package/dist/src/commands/mcp.js +605 -475
  103. package/dist/src/commands/mcp.js.map +1 -1
  104. package/dist/src/commands/memory.d.ts.map +1 -1
  105. package/dist/src/commands/memory.js +1031 -814
  106. package/dist/src/commands/memory.js.map +1 -1
  107. package/dist/src/commands/migrate.js +347 -282
  108. package/dist/src/commands/migrate.js.map +1 -1
  109. package/dist/src/commands/neural.d.ts.map +1 -1
  110. package/dist/src/commands/neural.js +1563 -1283
  111. package/dist/src/commands/neural.js.map +1 -1
  112. package/dist/src/commands/performance.js +643 -497
  113. package/dist/src/commands/performance.js.map +1 -1
  114. package/dist/src/commands/plugins.js +841 -668
  115. package/dist/src/commands/plugins.js.map +1 -1
  116. package/dist/src/commands/process.js +447 -392
  117. package/dist/src/commands/process.js.map +1 -1
  118. package/dist/src/commands/progress.js +256 -162
  119. package/dist/src/commands/progress.js.map +1 -1
  120. package/dist/src/commands/providers.js +220 -150
  121. package/dist/src/commands/providers.js.map +1 -1
  122. package/dist/src/commands/route.js +665 -520
  123. package/dist/src/commands/route.js.map +1 -1
  124. package/dist/src/commands/ruvector/backup.js +651 -505
  125. package/dist/src/commands/ruvector/backup.js.map +1 -1
  126. package/dist/src/commands/ruvector/benchmark.js +401 -349
  127. package/dist/src/commands/ruvector/benchmark.js.map +1 -1
  128. package/dist/src/commands/ruvector/import.js +267 -225
  129. package/dist/src/commands/ruvector/import.js.map +1 -1
  130. package/dist/src/commands/ruvector/index.js +75 -37
  131. package/dist/src/commands/ruvector/index.js.map +1 -1
  132. package/dist/src/commands/ruvector/init.js +359 -336
  133. package/dist/src/commands/ruvector/init.js.map +1 -1
  134. package/dist/src/commands/ruvector/migrate.js +322 -335
  135. package/dist/src/commands/ruvector/migrate.js.map +1 -1
  136. package/dist/src/commands/ruvector/optimize.js +431 -375
  137. package/dist/src/commands/ruvector/optimize.js.map +1 -1
  138. package/dist/src/commands/ruvector/setup.js +117 -703
  139. package/dist/src/commands/ruvector/setup.js.map +1 -1
  140. package/dist/src/commands/ruvector/status.js +419 -364
  141. package/dist/src/commands/ruvector/status.js.map +1 -1
  142. package/dist/src/commands/security.d.ts.map +1 -1
  143. package/dist/src/commands/security.js +610 -456
  144. package/dist/src/commands/security.js.map +1 -1
  145. package/dist/src/commands/session.d.ts +1 -1
  146. package/dist/src/commands/session.js +627 -505
  147. package/dist/src/commands/session.js.map +1 -1
  148. package/dist/src/commands/start.d.ts +1 -1
  149. package/dist/src/commands/start.js +368 -271
  150. package/dist/src/commands/start.js.map +1 -1
  151. package/dist/src/commands/status.d.ts +1 -1
  152. package/dist/src/commands/status.d.ts.map +1 -1
  153. package/dist/src/commands/status.js +492 -379
  154. package/dist/src/commands/status.js.map +1 -1
  155. package/dist/src/commands/swarm.js +488 -408
  156. package/dist/src/commands/swarm.js.map +1 -1
  157. package/dist/src/commands/task.d.ts +1 -1
  158. package/dist/src/commands/task.js +539 -424
  159. package/dist/src/commands/task.js.map +1 -1
  160. package/dist/src/commands/transfer-store.js +412 -322
  161. package/dist/src/commands/transfer-store.js.map +1 -1
  162. package/dist/src/commands/update.js +291 -196
  163. package/dist/src/commands/update.js.map +1 -1
  164. package/dist/src/commands/workflow.js +486 -386
  165. package/dist/src/commands/workflow.js.map +1 -1
  166. package/dist/src/config-adapter.js +40 -39
  167. package/dist/src/config-adapter.js.map +1 -1
  168. package/dist/src/index.js +416 -312
  169. package/dist/src/index.js.map +1 -1
  170. package/dist/src/infrastructure/in-memory-repositories.js +507 -246
  171. package/dist/src/infrastructure/in-memory-repositories.js.map +1 -1
  172. package/dist/src/init/claudemd-generator.js +78 -368
  173. package/dist/src/init/claudemd-generator.js.map +1 -1
  174. package/dist/src/init/executor.js +1019 -1345
  175. package/dist/src/init/executor.js.map +1 -1
  176. package/dist/src/init/helpers-generator.js +60 -635
  177. package/dist/src/init/helpers-generator.js.map +1 -1
  178. package/dist/src/init/index.d.ts +1 -1
  179. package/dist/src/init/index.d.ts.map +1 -1
  180. package/dist/src/init/index.js +1 -1
  181. package/dist/src/init/index.js.map +1 -1
  182. package/dist/src/init/mcp-generator.d.ts +0 -1
  183. package/dist/src/init/mcp-generator.d.ts.map +1 -1
  184. package/dist/src/init/mcp-generator.js +62 -42
  185. package/dist/src/init/mcp-generator.js.map +1 -1
  186. package/dist/src/init/settings-generator.d.ts.map +1 -1
  187. package/dist/src/init/settings-generator.js +167 -100
  188. package/dist/src/init/settings-generator.js.map +1 -1
  189. package/dist/src/init/statusline-generator.d.ts +16 -8
  190. package/dist/src/init/statusline-generator.d.ts.map +1 -1
  191. package/dist/src/init/statusline-generator.js +20 -1300
  192. package/dist/src/init/statusline-generator.js.map +1 -1
  193. package/dist/src/init/types.d.ts +15 -5
  194. package/dist/src/init/types.d.ts.map +1 -1
  195. package/dist/src/init/types.js +66 -76
  196. package/dist/src/init/types.js.map +1 -1
  197. package/dist/src/mcp-client.js +130 -76
  198. package/dist/src/mcp-client.js.map +1 -1
  199. package/dist/src/mcp-server.js +758 -445
  200. package/dist/src/mcp-server.js.map +1 -1
  201. package/dist/src/mcp-tools/agent-tools.js +492 -391
  202. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  203. package/dist/src/mcp-tools/agentdb-tools.d.ts +30 -0
  204. package/dist/src/mcp-tools/agentdb-tools.d.ts.map +1 -0
  205. package/dist/src/mcp-tools/agentdb-tools.js +758 -0
  206. package/dist/src/mcp-tools/agentdb-tools.js.map +1 -0
  207. package/dist/src/mcp-tools/analyze-tools.js +236 -172
  208. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  209. package/dist/src/mcp-tools/auto-install.js +142 -80
  210. package/dist/src/mcp-tools/auto-install.js.map +1 -1
  211. package/dist/src/mcp-tools/browser-tools.js +375 -252
  212. package/dist/src/mcp-tools/browser-tools.js.map +1 -1
  213. package/dist/src/mcp-tools/claims-tools.js +565 -473
  214. package/dist/src/mcp-tools/claims-tools.js.map +1 -1
  215. package/dist/src/mcp-tools/config-tools.d.ts.map +1 -1
  216. package/dist/src/mcp-tools/config-tools.js +284 -190
  217. package/dist/src/mcp-tools/config-tools.js.map +1 -1
  218. package/dist/src/mcp-tools/coordination-tools.d.ts.map +1 -1
  219. package/dist/src/mcp-tools/coordination-tools.js +600 -349
  220. package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
  221. package/dist/src/mcp-tools/daa-tools.js +367 -289
  222. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  223. package/dist/src/mcp-tools/embeddings-tools.js +693 -582
  224. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  225. package/dist/src/mcp-tools/github-tools.js +312 -261
  226. package/dist/src/mcp-tools/github-tools.js.map +1 -1
  227. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -1
  228. package/dist/src/mcp-tools/hive-mind-tools.js +718 -423
  229. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  230. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  231. package/dist/src/mcp-tools/hooks-tools.js +2726 -1978
  232. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  233. package/dist/src/mcp-tools/index.d.ts +2 -0
  234. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  235. package/dist/src/mcp-tools/index.js +2 -0
  236. package/dist/src/mcp-tools/index.js.map +1 -1
  237. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  238. package/dist/src/mcp-tools/memory-tools.js +514 -329
  239. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  240. package/dist/src/mcp-tools/neural-tools.d.ts.map +1 -1
  241. package/dist/src/mcp-tools/neural-tools.js +428 -326
  242. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  243. package/dist/src/mcp-tools/performance-tools.js +480 -420
  244. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  245. package/dist/src/mcp-tools/progress-tools.js +278 -204
  246. package/dist/src/mcp-tools/progress-tools.js.map +1 -1
  247. package/dist/src/mcp-tools/ruvllm-tools.d.ts +9 -0
  248. package/dist/src/mcp-tools/ruvllm-tools.d.ts.map +1 -0
  249. package/dist/src/mcp-tools/ruvllm-tools.js +399 -0
  250. package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -0
  251. package/dist/src/mcp-tools/security-tools.js +429 -297
  252. package/dist/src/mcp-tools/security-tools.js.map +1 -1
  253. package/dist/src/mcp-tools/session-tools.js +234 -185
  254. package/dist/src/mcp-tools/session-tools.js.map +1 -1
  255. package/dist/src/mcp-tools/swarm-tools.d.ts +2 -1
  256. package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -1
  257. package/dist/src/mcp-tools/swarm-tools.js +303 -64
  258. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  259. package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
  260. package/dist/src/mcp-tools/system-tools.js +352 -200
  261. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  262. package/dist/src/mcp-tools/task-tools.d.ts.map +1 -1
  263. package/dist/src/mcp-tools/task-tools.js +357 -189
  264. package/dist/src/mcp-tools/task-tools.js.map +1 -1
  265. package/dist/src/mcp-tools/terminal-tools.js +196 -148
  266. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  267. package/dist/src/mcp-tools/transfer-tools.js +333 -186
  268. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  269. package/dist/src/mcp-tools/wasm-agent-tools.d.ts +9 -0
  270. package/dist/src/mcp-tools/wasm-agent-tools.d.ts.map +1 -0
  271. package/dist/src/mcp-tools/wasm-agent-tools.js +377 -0
  272. package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -0
  273. package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -1
  274. package/dist/src/mcp-tools/workflow-tools.js +471 -335
  275. package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
  276. package/dist/src/memory/ewc-consolidation.js +345 -173
  277. package/dist/src/memory/ewc-consolidation.js.map +1 -1
  278. package/dist/src/memory/intelligence.js +841 -359
  279. package/dist/src/memory/intelligence.js.map +1 -1
  280. package/dist/src/memory/memory-bridge.js +1964 -0
  281. package/dist/src/memory/memory-bridge.js.map +1 -0
  282. package/dist/src/memory/memory-initializer.js +1895 -1602
  283. package/dist/src/memory/memory-initializer.js.map +1 -1
  284. package/dist/src/memory/sona-optimizer.js +329 -199
  285. package/dist/src/memory/sona-optimizer.js.map +1 -1
  286. package/dist/src/output.d.ts +2 -2
  287. package/dist/src/output.d.ts.map +1 -1
  288. package/dist/src/output.js +273 -242
  289. package/dist/src/output.js.map +1 -1
  290. package/dist/src/parser.js +217 -124
  291. package/dist/src/parser.js.map +1 -1
  292. package/dist/src/plugins/manager.js +531 -278
  293. package/dist/src/plugins/manager.js.map +1 -1
  294. package/dist/src/plugins/store/discovery.js +362 -275
  295. package/dist/src/plugins/store/discovery.js.map +1 -1
  296. package/dist/src/plugins/store/index.js +105 -48
  297. package/dist/src/plugins/store/index.js.map +1 -1
  298. package/dist/src/plugins/store/search.js +107 -69
  299. package/dist/src/plugins/store/search.js.map +1 -1
  300. package/dist/src/plugins/tests/demo-plugin-store.js +160 -113
  301. package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -1
  302. package/dist/src/plugins/tests/standalone-test.js +223 -172
  303. package/dist/src/plugins/tests/standalone-test.js.map +1 -1
  304. package/dist/src/plugins/tests/test-plugin-store.js +228 -190
  305. package/dist/src/plugins/tests/test-plugin-store.js.map +1 -1
  306. package/dist/src/production/circuit-breaker.js +126 -62
  307. package/dist/src/production/circuit-breaker.js.map +1 -1
  308. package/dist/src/production/error-handler.js +156 -86
  309. package/dist/src/production/error-handler.js.map +1 -1
  310. package/dist/src/production/monitoring.js +220 -139
  311. package/dist/src/production/monitoring.js.map +1 -1
  312. package/dist/src/production/rate-limiter.js +93 -74
  313. package/dist/src/production/rate-limiter.js.map +1 -1
  314. package/dist/src/production/retry.js +167 -75
  315. package/dist/src/production/retry.js.map +1 -1
  316. package/dist/src/prompt.js +560 -436
  317. package/dist/src/prompt.js.map +1 -1
  318. package/dist/src/runtime/headless.js +289 -200
  319. package/dist/src/runtime/headless.js.map +1 -1
  320. package/dist/src/ruvector/agent-wasm.js +511 -0
  321. package/dist/src/ruvector/agent-wasm.js.map +1 -0
  322. package/dist/src/ruvector/ast-analyzer.js +232 -145
  323. package/dist/src/ruvector/ast-analyzer.js.map +1 -1
  324. package/dist/src/ruvector/coverage-router.js +419 -287
  325. package/dist/src/ruvector/coverage-router.js.map +1 -1
  326. package/dist/src/ruvector/coverage-tools.js +101 -56
  327. package/dist/src/ruvector/coverage-tools.js.map +1 -1
  328. package/dist/src/ruvector/diff-classifier.js +451 -324
  329. package/dist/src/ruvector/diff-classifier.js.map +1 -1
  330. package/dist/src/ruvector/enhanced-model-router.js +337 -251
  331. package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
  332. package/dist/src/ruvector/flash-attention.js +254 -223
  333. package/dist/src/ruvector/flash-attention.js.map +1 -1
  334. package/dist/src/ruvector/graph-analyzer.js +680 -486
  335. package/dist/src/ruvector/graph-analyzer.js.map +1 -1
  336. package/dist/src/ruvector/index.js +113 -27
  337. package/dist/src/ruvector/index.js.map +1 -1
  338. package/dist/src/ruvector/lora-adapter.js +248 -155
  339. package/dist/src/ruvector/lora-adapter.js.map +1 -1
  340. package/dist/src/ruvector/model-router.js +248 -175
  341. package/dist/src/ruvector/model-router.js.map +1 -1
  342. package/dist/src/ruvector/moe-router.js +286 -228
  343. package/dist/src/ruvector/moe-router.js.map +1 -1
  344. package/dist/src/ruvector/q-learning-router.js +338 -257
  345. package/dist/src/ruvector/q-learning-router.js.map +1 -1
  346. package/dist/src/ruvector/ruvllm-wasm.js +527 -0
  347. package/dist/src/ruvector/ruvllm-wasm.js.map +1 -0
  348. package/dist/src/ruvector/semantic-router.js +67 -60
  349. package/dist/src/ruvector/semantic-router.js.map +1 -1
  350. package/dist/src/ruvector/vector-db.js +205 -119
  351. package/dist/src/ruvector/vector-db.js.map +1 -1
  352. package/dist/src/services/agentic-flow-bridge.js +168 -0
  353. package/dist/src/services/agentic-flow-bridge.js.map +1 -0
  354. package/dist/src/services/claim-service.js +940 -615
  355. package/dist/src/services/claim-service.js.map +1 -1
  356. package/dist/src/services/container-worker-pool.js +669 -399
  357. package/dist/src/services/container-worker-pool.js.map +1 -1
  358. package/dist/src/services/headless-worker-executor.js +467 -441
  359. package/dist/src/services/headless-worker-executor.js.map +1 -1
  360. package/dist/src/services/index.d.ts +5 -5
  361. package/dist/src/services/index.d.ts.map +1 -1
  362. package/dist/src/services/index.js +4 -4
  363. package/dist/src/services/index.js.map +1 -1
  364. package/dist/src/services/registry-api.js +201 -93
  365. package/dist/src/services/registry-api.js.map +1 -1
  366. package/dist/src/services/ruvector-training.js +414 -144
  367. package/dist/src/services/ruvector-training.js.map +1 -1
  368. package/dist/src/services/worker-daemon.js +928 -531
  369. package/dist/src/services/worker-daemon.js.map +1 -1
  370. package/dist/src/services/worker-queue.js +550 -331
  371. package/dist/src/services/worker-queue.js.map +1 -1
  372. package/dist/src/suggest.js +55 -45
  373. package/dist/src/suggest.js.map +1 -1
  374. package/dist/src/transfer/anonymization/index.js +37 -29
  375. package/dist/src/transfer/anonymization/index.js.map +1 -1
  376. package/dist/src/transfer/deploy-seraphine.d.ts +1 -1
  377. package/dist/src/transfer/deploy-seraphine.js +156 -129
  378. package/dist/src/transfer/deploy-seraphine.js.map +1 -1
  379. package/dist/src/transfer/export.js +142 -84
  380. package/dist/src/transfer/export.js.map +1 -1
  381. package/dist/src/transfer/index.d.ts +1 -1
  382. package/dist/src/transfer/index.d.ts.map +1 -1
  383. package/dist/src/transfer/index.js +2 -0
  384. package/dist/src/transfer/index.js.map +1 -1
  385. package/dist/src/transfer/ipfs/client.js +337 -179
  386. package/dist/src/transfer/ipfs/client.js.map +1 -1
  387. package/dist/src/transfer/ipfs/upload.js +434 -290
  388. package/dist/src/transfer/ipfs/upload.js.map +1 -1
  389. package/dist/src/transfer/models/seraphine.js +58 -58
  390. package/dist/src/transfer/models/seraphine.js.map +1 -1
  391. package/dist/src/transfer/serialization/cfp.js +37 -33
  392. package/dist/src/transfer/serialization/cfp.js.map +1 -1
  393. package/dist/src/transfer/storage/gcs.js +248 -139
  394. package/dist/src/transfer/storage/gcs.js.map +1 -1
  395. package/dist/src/transfer/store/discovery.js +353 -243
  396. package/dist/src/transfer/store/discovery.js.map +1 -1
  397. package/dist/src/transfer/store/download.js +365 -243
  398. package/dist/src/transfer/store/download.js.map +1 -1
  399. package/dist/src/transfer/store/index.js +130 -63
  400. package/dist/src/transfer/store/index.js.map +1 -1
  401. package/dist/src/transfer/store/publish.js +258 -184
  402. package/dist/src/transfer/store/publish.js.map +1 -1
  403. package/dist/src/transfer/store/registry.js +73 -51
  404. package/dist/src/transfer/store/registry.js.map +1 -1
  405. package/dist/src/transfer/store/search.js +96 -64
  406. package/dist/src/transfer/store/search.js.map +1 -1
  407. package/dist/src/transfer/store/tests/standalone-test.js +231 -174
  408. package/dist/src/transfer/store/tests/standalone-test.js.map +1 -1
  409. package/dist/src/transfer/test-seraphine.js +130 -95
  410. package/dist/src/transfer/test-seraphine.js.map +1 -1
  411. package/dist/src/transfer/tests/test-store.js +239 -194
  412. package/dist/src/transfer/tests/test-store.js.map +1 -1
  413. package/dist/src/types.js +56 -27
  414. package/dist/src/types.js.map +1 -1
  415. package/dist/src/update/checker.js +183 -106
  416. package/dist/src/update/checker.js.map +1 -1
  417. package/dist/src/update/executor.js +198 -135
  418. package/dist/src/update/executor.js.map +1 -1
  419. package/dist/src/update/index.js +85 -38
  420. package/dist/src/update/index.js.map +1 -1
  421. package/dist/src/update/rate-limiter.js +31 -19
  422. package/dist/src/update/rate-limiter.js.map +1 -1
  423. package/dist/src/update/validator.js +64 -38
  424. package/dist/src/update/validator.js.map +1 -1
  425. package/dist/tsconfig.tsbuildinfo +1 -1
  426. package/package.json +13 -10
  427. package/.claude/agents/custom/accessibility-auditor.yaml +0 -56
  428. package/.claude/agents/custom/design-architect.yaml +0 -48
  429. package/.claude/agents/custom/ui-developer.yaml +0 -46
  430. package/.claude/agents/custom/ux-researcher.yaml +0 -60
  431. package/dist/src/benchmarks/pretrain/index.d.ts +0 -58
  432. package/dist/src/benchmarks/pretrain/index.d.ts.map +0 -1
  433. package/dist/src/commands/index.d.ts +0 -108
  434. package/dist/src/commands/index.d.ts.map +0 -1
  435. package/dist/src/config-adapter.d.ts +0 -15
  436. package/dist/src/config-adapter.d.ts.map +0 -1
  437. package/dist/src/index.d.ts +0 -76
  438. package/dist/src/index.d.ts.map +0 -1
  439. package/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
  440. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +0 -1
  441. package/dist/src/init/claudemd-generator.d.ts +0 -25
  442. package/dist/src/init/claudemd-generator.d.ts.map +0 -1
  443. package/dist/src/init/executor.d.ts +0 -41
  444. package/dist/src/init/executor.d.ts.map +0 -1
  445. package/dist/src/init/helpers-generator.d.ts +0 -60
  446. package/dist/src/init/helpers-generator.d.ts.map +0 -1
  447. package/dist/src/mcp-client.d.ts +0 -92
  448. package/dist/src/mcp-client.d.ts.map +0 -1
  449. package/dist/src/mcp-server.d.ts +0 -161
  450. package/dist/src/mcp-server.d.ts.map +0 -1
  451. package/dist/src/mcp-tools/auto-install.d.ts +0 -83
  452. package/dist/src/mcp-tools/auto-install.d.ts.map +0 -1
  453. package/dist/src/mcp-tools/types.d.ts +0 -31
  454. package/dist/src/mcp-tools/types.d.ts.map +0 -1
  455. package/dist/src/memory/ewc-consolidation.d.ts +0 -271
  456. package/dist/src/memory/ewc-consolidation.d.ts.map +0 -1
  457. package/dist/src/memory/intelligence.d.ts +0 -285
  458. package/dist/src/memory/intelligence.d.ts.map +0 -1
  459. package/dist/src/memory/memory-initializer.d.ts +0 -396
  460. package/dist/src/memory/memory-initializer.d.ts.map +0 -1
  461. package/dist/src/memory/sona-optimizer.d.ts +0 -227
  462. package/dist/src/memory/sona-optimizer.d.ts.map +0 -1
  463. package/dist/src/parser.d.ts +0 -41
  464. package/dist/src/parser.d.ts.map +0 -1
  465. package/dist/src/plugins/manager.d.ts +0 -133
  466. package/dist/src/plugins/manager.d.ts.map +0 -1
  467. package/dist/src/plugins/store/discovery.d.ts +0 -88
  468. package/dist/src/plugins/store/discovery.d.ts.map +0 -1
  469. package/dist/src/plugins/store/index.d.ts +0 -76
  470. package/dist/src/plugins/store/index.d.ts.map +0 -1
  471. package/dist/src/plugins/store/search.d.ts +0 -46
  472. package/dist/src/plugins/store/search.d.ts.map +0 -1
  473. package/dist/src/plugins/store/types.d.ts +0 -274
  474. package/dist/src/plugins/store/types.d.ts.map +0 -1
  475. package/dist/src/production/circuit-breaker.d.ts +0 -101
  476. package/dist/src/production/circuit-breaker.d.ts.map +0 -1
  477. package/dist/src/production/error-handler.d.ts +0 -92
  478. package/dist/src/production/error-handler.d.ts.map +0 -1
  479. package/dist/src/production/monitoring.d.ts +0 -161
  480. package/dist/src/production/monitoring.d.ts.map +0 -1
  481. package/dist/src/production/rate-limiter.d.ts +0 -80
  482. package/dist/src/production/rate-limiter.d.ts.map +0 -1
  483. package/dist/src/production/retry.d.ts +0 -48
  484. package/dist/src/production/retry.d.ts.map +0 -1
  485. package/dist/src/prompt.d.ts +0 -44
  486. package/dist/src/prompt.d.ts.map +0 -1
  487. package/dist/src/runtime/headless.d.ts +0 -60
  488. package/dist/src/runtime/headless.d.ts.map +0 -1
  489. package/dist/src/ruvector/ast-analyzer.d.ts +0 -67
  490. package/dist/src/ruvector/ast-analyzer.d.ts.map +0 -1
  491. package/dist/src/ruvector/coverage-router.d.ts +0 -160
  492. package/dist/src/ruvector/coverage-router.d.ts.map +0 -1
  493. package/dist/src/ruvector/diff-classifier.d.ts +0 -175
  494. package/dist/src/ruvector/diff-classifier.d.ts.map +0 -1
  495. package/dist/src/ruvector/enhanced-model-router.d.ts +0 -146
  496. package/dist/src/ruvector/enhanced-model-router.d.ts.map +0 -1
  497. package/dist/src/ruvector/flash-attention.d.ts +0 -195
  498. package/dist/src/ruvector/flash-attention.d.ts.map +0 -1
  499. package/dist/src/ruvector/graph-analyzer.d.ts +0 -187
  500. package/dist/src/ruvector/graph-analyzer.d.ts.map +0 -1
  501. package/dist/src/ruvector/index.d.ts +0 -34
  502. package/dist/src/ruvector/index.d.ts.map +0 -1
  503. package/dist/src/ruvector/lora-adapter.d.ts +0 -218
  504. package/dist/src/ruvector/lora-adapter.d.ts.map +0 -1
  505. package/dist/src/ruvector/model-router.d.ts +0 -220
  506. package/dist/src/ruvector/model-router.d.ts.map +0 -1
  507. package/dist/src/ruvector/moe-router.d.ts +0 -206
  508. package/dist/src/ruvector/moe-router.d.ts.map +0 -1
  509. package/dist/src/ruvector/q-learning-router.d.ts +0 -211
  510. package/dist/src/ruvector/q-learning-router.d.ts.map +0 -1
  511. package/dist/src/ruvector/semantic-router.d.ts +0 -77
  512. package/dist/src/ruvector/semantic-router.d.ts.map +0 -1
  513. package/dist/src/ruvector/vector-db.d.ts +0 -69
  514. package/dist/src/ruvector/vector-db.d.ts.map +0 -1
  515. package/dist/src/services/claim-service.d.ts +0 -204
  516. package/dist/src/services/claim-service.d.ts.map +0 -1
  517. package/dist/src/services/container-worker-pool.d.ts +0 -197
  518. package/dist/src/services/container-worker-pool.d.ts.map +0 -1
  519. package/dist/src/services/headless-worker-executor.d.ts +0 -304
  520. package/dist/src/services/headless-worker-executor.d.ts.map +0 -1
  521. package/dist/src/services/registry-api.d.ts +0 -58
  522. package/dist/src/services/registry-api.d.ts.map +0 -1
  523. package/dist/src/services/ruvector-training.d.ts +0 -213
  524. package/dist/src/services/ruvector-training.d.ts.map +0 -1
  525. package/dist/src/services/worker-daemon.d.ts +0 -203
  526. package/dist/src/services/worker-daemon.d.ts.map +0 -1
  527. package/dist/src/services/worker-queue.d.ts +0 -194
  528. package/dist/src/services/worker-queue.d.ts.map +0 -1
  529. package/dist/src/suggest.d.ts +0 -53
  530. package/dist/src/suggest.d.ts.map +0 -1
  531. package/dist/src/transfer/export.d.ts +0 -25
  532. package/dist/src/transfer/export.d.ts.map +0 -1
  533. package/dist/src/transfer/ipfs/client.d.ts +0 -109
  534. package/dist/src/transfer/ipfs/client.d.ts.map +0 -1
  535. package/dist/src/transfer/ipfs/upload.d.ts +0 -95
  536. package/dist/src/transfer/ipfs/upload.d.ts.map +0 -1
  537. package/dist/src/transfer/models/seraphine.d.ts +0 -72
  538. package/dist/src/transfer/models/seraphine.d.ts.map +0 -1
  539. package/dist/src/transfer/serialization/cfp.d.ts +0 -49
  540. package/dist/src/transfer/serialization/cfp.d.ts.map +0 -1
  541. package/dist/src/transfer/storage/gcs.d.ts +0 -82
  542. package/dist/src/transfer/storage/gcs.d.ts.map +0 -1
  543. package/dist/src/transfer/store/discovery.d.ts +0 -84
  544. package/dist/src/transfer/store/discovery.d.ts.map +0 -1
  545. package/dist/src/transfer/store/download.d.ts +0 -70
  546. package/dist/src/transfer/store/download.d.ts.map +0 -1
  547. package/dist/src/transfer/store/index.d.ts +0 -84
  548. package/dist/src/transfer/store/index.d.ts.map +0 -1
  549. package/dist/src/transfer/store/publish.d.ts +0 -76
  550. package/dist/src/transfer/store/publish.d.ts.map +0 -1
  551. package/dist/src/transfer/store/search.d.ts +0 -54
  552. package/dist/src/transfer/store/search.d.ts.map +0 -1
  553. package/dist/src/transfer/types.d.ts +0 -245
  554. package/dist/src/transfer/types.d.ts.map +0 -1
  555. package/dist/src/types.d.ts +0 -198
  556. package/dist/src/types.d.ts.map +0 -1
  557. package/dist/src/update/checker.d.ts +0 -34
  558. package/dist/src/update/checker.d.ts.map +0 -1
  559. package/dist/src/update/executor.d.ts +0 -32
  560. package/dist/src/update/executor.d.ts.map +0 -1
  561. package/dist/src/update/index.d.ts +0 -33
  562. package/dist/src/update/index.d.ts.map +0 -1
  563. package/dist/src/update/rate-limiter.d.ts +0 -20
  564. package/dist/src/update/rate-limiter.d.ts.map +0 -1
  565. package/dist/src/update/validator.d.ts +0 -17
  566. package/dist/src/update/validator.d.ts.map +0 -1
@@ -0,0 +1,469 @@
1
+ /**
2
+ * RVFA Ed25519 Code Signing -- Digital signatures for RVFA appliance files.
3
+ *
4
+ * Provides tamper detection and publisher identity verification using
5
+ * Ed25519 (RFC 8032) via Node.js native crypto. Zero external dependencies.
6
+ *
7
+ * @module @claude-flow/cli/appliance/rvfa-signing
8
+ */
9
+ var __assign = (this && this.__assign) || function () {
10
+ __assign = Object.assign || function(t) {
11
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
12
+ s = arguments[i];
13
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
14
+ t[p] = s[p];
15
+ }
16
+ return t;
17
+ };
18
+ return __assign.apply(this, arguments);
19
+ };
20
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
21
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
22
+ return new (P || (P = Promise))(function (resolve, reject) {
23
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
24
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
25
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
26
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
27
+ });
28
+ };
29
+ var __generator = (this && this.__generator) || function (thisArg, body) {
30
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
31
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
32
+ function verb(n) { return function (v) { return step([n, v]); }; }
33
+ function step(op) {
34
+ if (f) throw new TypeError("Generator is already executing.");
35
+ while (_) try {
36
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
37
+ if (y = 0, t) op = [op[0] & 2, t.value];
38
+ switch (op[0]) {
39
+ case 0: case 1: t = op; break;
40
+ case 4: _.label++; return { value: op[1], done: false };
41
+ case 5: _.label++; y = op[1]; op = [0]; continue;
42
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
43
+ default:
44
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
45
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
46
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
47
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
48
+ if (t[2]) _.ops.pop();
49
+ _.trys.pop(); continue;
50
+ }
51
+ op = body.call(thisArg, _);
52
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
53
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
54
+ }
55
+ };
56
+ import { generateKeyPairSync, createHash, sign, verify, createPublicKey, createPrivateKey, } from 'node:crypto';
57
+ import { readFile, writeFile, stat, chmod, mkdir } from 'node:fs/promises';
58
+ // ── Constants ────────────────────────────────────────────────
59
+ var PREAMBLE_SIZE = 12; // 4B magic + 4B version + 4B header_len
60
+ var SHA256_SIZE = 32;
61
+ var KEY_FILE_MODE = 384;
62
+ // ── Key Management ───────────────────────────────────────────
63
+ /** Compute the fingerprint of a public key: first 16 hex chars of its SHA256. */
64
+ function computeFingerprint(publicKeyPem) {
65
+ return createHash('sha256')
66
+ .update(publicKeyPem, 'utf-8')
67
+ .digest('hex')
68
+ .slice(0, 16);
69
+ }
70
+ /**
71
+ * Generate a new Ed25519 key pair for RVFA signing.
72
+ */
73
+ export function generateKeyPair() {
74
+ return __awaiter(this, void 0, Promise, function () {
75
+ var _a, publicKey, privateKey, pubBuf, privBuf, fingerprint;
76
+ return __generator(this, function (_b) {
77
+ _a = generateKeyPairSync('ed25519', {
78
+ publicKeyEncoding: { type: 'spki', format: 'pem' },
79
+ privateKeyEncoding: { type: 'pkcs8', format: 'pem' }
80
+ }), publicKey = _a.publicKey, privateKey = _a.privateKey;
81
+ pubBuf = Buffer.from(publicKey, 'utf-8');
82
+ privBuf = Buffer.from(privateKey, 'utf-8');
83
+ fingerprint = computeFingerprint(publicKey);
84
+ return [2 /*return*/, { publicKey: pubBuf, privateKey: privBuf, fingerprint: fingerprint }];
85
+ });
86
+ });
87
+ }
88
+ /**
89
+ * Save a key pair to disk as PEM files.
90
+ *
91
+ * @param keyPair The key pair to persist.
92
+ * @param dir Directory to write files into.
93
+ * @param name Base name for the key files (default: 'rvfa-signing').
94
+ * @returns Paths to the written public and private key files.
95
+ */
96
+ export function saveKeyPair(keyPair, dir, name) {
97
+ if (name === void 0) { name = 'rvfa-signing'; }
98
+ return __awaiter(this, void 0, Promise, function () {
99
+ var pubPath, privPath;
100
+ return __generator(this, function (_a) {
101
+ switch (_a.label) {
102
+ case 0: return [4 /*yield*/, mkdir(dir, { recursive: true })];
103
+ case 1:
104
+ _a.sent();
105
+ pubPath = dir + "/" + name + ".pub";
106
+ privPath = dir + "/" + name + ".key";
107
+ return [4 /*yield*/, writeFile(pubPath, keyPair.publicKey)];
108
+ case 2:
109
+ _a.sent();
110
+ return [4 /*yield*/, writeFile(privPath, keyPair.privateKey, { mode: KEY_FILE_MODE })];
111
+ case 3:
112
+ _a.sent();
113
+ // Ensure private key has restrictive permissions even on existing files
114
+ return [4 /*yield*/, chmod(privPath, KEY_FILE_MODE)];
115
+ case 4:
116
+ // Ensure private key has restrictive permissions even on existing files
117
+ _a.sent();
118
+ return [2 /*return*/, { publicKeyPath: pubPath, privateKeyPath: privPath }];
119
+ }
120
+ });
121
+ });
122
+ }
123
+ /**
124
+ * Load a key pair from PEM files on disk.
125
+ *
126
+ * @param dir Directory containing the key files.
127
+ * @param name Base name for the key files (default: 'rvfa-signing').
128
+ */
129
+ export function loadKeyPair(dir, name) {
130
+ if (name === void 0) { name = 'rvfa-signing'; }
131
+ return __awaiter(this, void 0, Promise, function () {
132
+ var pubPath, privPath, publicKey, privateKey, privStat, mode, fingerprint;
133
+ return __generator(this, function (_a) {
134
+ switch (_a.label) {
135
+ case 0:
136
+ pubPath = dir + "/" + name + ".pub";
137
+ privPath = dir + "/" + name + ".key";
138
+ return [4 /*yield*/, readFile(pubPath)];
139
+ case 1:
140
+ publicKey = _a.sent();
141
+ return [4 /*yield*/, readFile(privPath)];
142
+ case 2:
143
+ privateKey = _a.sent();
144
+ return [4 /*yield*/, stat(privPath)];
145
+ case 3:
146
+ privStat = _a.sent();
147
+ mode = privStat.mode & 511;
148
+ if (mode & 63) {
149
+ console.warn("[rvfa-signing] WARNING: Private key " + privPath + " has open permissions " +
150
+ ("(" + mode.toString(8) + "). Consider running: chmod 600 " + privPath));
151
+ }
152
+ fingerprint = computeFingerprint(publicKey.toString('utf-8'));
153
+ return [2 /*return*/, { publicKey: publicKey, privateKey: privateKey, fingerprint: fingerprint }];
154
+ }
155
+ });
156
+ });
157
+ }
158
+ /**
159
+ * Load a public key from a single PEM file.
160
+ */
161
+ export function loadPublicKey(path) {
162
+ return __awaiter(this, void 0, Promise, function () {
163
+ return __generator(this, function (_a) {
164
+ return [2 /*return*/, readFile(path)];
165
+ });
166
+ });
167
+ }
168
+ // ── Internal Helpers ─────────────────────────────────────────
169
+ /**
170
+ * Recursively sort object keys for canonical JSON serialization.
171
+ * Produces deterministic output regardless of insertion order.
172
+ */
173
+ function canonicalJson(value) {
174
+ return JSON.stringify(value, function (_key, val) {
175
+ if (val !== null && typeof val === 'object' && !Array.isArray(val) && !Buffer.isBuffer(val)) {
176
+ var sorted = {};
177
+ for (var _i = 0, _a = Object.keys(val).sort(); _i < _a.length; _i++) {
178
+ var k = _a[_i];
179
+ sorted[k] = val[k];
180
+ }
181
+ return sorted;
182
+ }
183
+ return val;
184
+ });
185
+ }
186
+ /**
187
+ * Parse an RVFA binary into its components without full validation.
188
+ * Returns the header object, header JSON bytes, section data region, and footer.
189
+ */
190
+ function parseRvfaBinary(buf) {
191
+ if (buf.length < PREAMBLE_SIZE + SHA256_SIZE) {
192
+ throw new Error('Buffer too small to be a valid RVFA file');
193
+ }
194
+ var magic = buf.subarray(0, 4).toString('ascii');
195
+ if (magic !== 'RVFA') {
196
+ throw new Error("Invalid RVFA magic: expected \"RVFA\", got \"" + magic + "\"");
197
+ }
198
+ var headerLen = buf.readUInt32LE(8);
199
+ var headerStart = PREAMBLE_SIZE;
200
+ var headerEnd = headerStart + headerLen;
201
+ if (headerEnd > buf.length - SHA256_SIZE) {
202
+ throw new Error('Header length extends beyond buffer');
203
+ }
204
+ var headerJson = buf.subarray(headerStart, headerEnd).toString('utf-8');
205
+ var header;
206
+ try {
207
+ header = JSON.parse(headerJson);
208
+ }
209
+ catch (_a) {
210
+ throw new Error('Failed to parse RVFA header JSON');
211
+ }
212
+ var footer = buf.subarray(buf.length - SHA256_SIZE);
213
+ var sectionData = buf.subarray(headerEnd, buf.length - SHA256_SIZE);
214
+ return { header: header, headerStart: headerStart, headerEnd: headerEnd, sectionData: sectionData, footer: footer };
215
+ }
216
+ /**
217
+ * Compute the signing digest for an RVFA file.
218
+ *
219
+ * The digest is SHA256 of: canonical_header_json (without signature field)
220
+ * + section_data_bytes
221
+ * + footer_32_bytes
222
+ */
223
+ function computeSigningDigest(header, sectionData, footer) {
224
+ // Strip signature field from header for digest computation
225
+ var stripped = __assign({}, header);
226
+ delete stripped.signature;
227
+ var canonical = Buffer.from(canonicalJson(stripped), 'utf-8');
228
+ return createHash('sha256')
229
+ .update(canonical)
230
+ .update(sectionData)
231
+ .update(footer)
232
+ .digest();
233
+ }
234
+ /** Convert a Buffer or PEM string into a KeyObject. */
235
+ function toPrivateKeyObject(key) {
236
+ var pem = Buffer.isBuffer(key) ? key.toString('utf-8') : key;
237
+ return createPrivateKey(pem);
238
+ }
239
+ /** Convert a Buffer or PEM string into a KeyObject. */
240
+ function toPublicKeyObject(key) {
241
+ var pem = Buffer.isBuffer(key) ? key.toString('utf-8') : key;
242
+ return createPublicKey(pem);
243
+ }
244
+ /**
245
+ * Rebuild the RVFA binary with an updated header.
246
+ *
247
+ * Preserves the original preamble version, recalculates header length,
248
+ * and keeps section data and footer intact.
249
+ */
250
+ function rebuildRvfa(originalBuf, newHeader, sectionData, footer) {
251
+ var headerJson = Buffer.from(JSON.stringify(newHeader), 'utf-8');
252
+ // Preamble: magic + version + new header length
253
+ var preamble = Buffer.alloc(PREAMBLE_SIZE);
254
+ originalBuf.copy(preamble, 0, 0, 8); // magic + version unchanged
255
+ preamble.writeUInt32LE(headerJson.length, 8);
256
+ return Buffer.concat([preamble, headerJson, sectionData, footer]);
257
+ }
258
+ // ── RvfaSigner ───────────────────────────────────────────────
259
+ /**
260
+ * Signs RVFA appliance files and data with Ed25519.
261
+ */
262
+ var RvfaSigner = /** @class */ (function () {
263
+ function RvfaSigner(privateKey) {
264
+ this.keyObj = toPrivateKeyObject(privateKey);
265
+ // Derive public key to compute fingerprint
266
+ var pubPem = createPublicKey(this.keyObj)["export"]({ type: 'spki', format: 'pem' });
267
+ this.fingerprint = computeFingerprint(pubPem);
268
+ }
269
+ /**
270
+ * Sign an RVFA appliance file in-place.
271
+ *
272
+ * Algorithm:
273
+ * 1. Read and parse the RVFA binary
274
+ * 2. Strip any existing signature from the header
275
+ * 3. Compute SHA256 of [canonical_header + section_data + footer]
276
+ * 4. Sign the digest with Ed25519
277
+ * 5. Embed signature metadata into the header
278
+ * 6. Write the updated binary back to the file
279
+ *
280
+ * @param rvfaPath Path to the .rvf appliance file.
281
+ * @param signedBy Optional publisher name.
282
+ * @returns The signature metadata that was embedded.
283
+ */
284
+ RvfaSigner.prototype.signAppliance = function (rvfaPath, signedBy) {
285
+ return __awaiter(this, void 0, Promise, function () {
286
+ var buf, _a, header, sectionData, footer, digest, sig, metadata, rebuilt;
287
+ return __generator(this, function (_b) {
288
+ switch (_b.label) {
289
+ case 0: return [4 /*yield*/, readFile(rvfaPath)];
290
+ case 1:
291
+ buf = _b.sent();
292
+ _a = parseRvfaBinary(buf), header = _a.header, sectionData = _a.sectionData, footer = _a.footer;
293
+ digest = computeSigningDigest(header, sectionData, footer);
294
+ sig = sign(null, digest, this.keyObj);
295
+ metadata = {
296
+ algorithm: 'ed25519',
297
+ publicKeyFingerprint: this.fingerprint,
298
+ signature: sig.toString('hex'),
299
+ signedAt: new Date().toISOString(),
300
+ signedBy: signedBy,
301
+ scope: 'full'
302
+ };
303
+ // Embed signature in header and rebuild
304
+ header.signature = metadata;
305
+ rebuilt = rebuildRvfa(buf, header, sectionData, footer);
306
+ return [4 /*yield*/, writeFile(rvfaPath, rebuilt)];
307
+ case 2:
308
+ _b.sent();
309
+ return [2 /*return*/, metadata];
310
+ }
311
+ });
312
+ });
313
+ };
314
+ /**
315
+ * Sign a section footer hash (detached signature).
316
+ *
317
+ * @param footerHash The 32-byte SHA256 footer hash from an RVFA file.
318
+ * @returns Hex-encoded Ed25519 signature.
319
+ */
320
+ RvfaSigner.prototype.signSections = function (footerHash) {
321
+ return __awaiter(this, void 0, Promise, function () {
322
+ var sig;
323
+ return __generator(this, function (_a) {
324
+ if (footerHash.length !== SHA256_SIZE) {
325
+ throw new Error("Footer hash must be " + SHA256_SIZE + " bytes, got " + footerHash.length);
326
+ }
327
+ sig = sign(null, footerHash, this.keyObj);
328
+ return [2 /*return*/, sig.toString('hex')];
329
+ });
330
+ });
331
+ };
332
+ /**
333
+ * Sign an RVFP patch file (detached signature).
334
+ *
335
+ * @param patchData The raw patch binary data.
336
+ * @returns Hex-encoded Ed25519 signature.
337
+ */
338
+ RvfaSigner.prototype.signPatch = function (patchData) {
339
+ return __awaiter(this, void 0, Promise, function () {
340
+ var digest, sig;
341
+ return __generator(this, function (_a) {
342
+ digest = createHash('sha256').update(patchData).digest();
343
+ sig = sign(null, digest, this.keyObj);
344
+ return [2 /*return*/, sig.toString('hex')];
345
+ });
346
+ });
347
+ };
348
+ return RvfaSigner;
349
+ }());
350
+ export { RvfaSigner };
351
+ // ── RvfaVerifier ─────────────────────────────────────────────
352
+ /**
353
+ * Verifies Ed25519 signatures on RVFA appliance files and data.
354
+ */
355
+ var RvfaVerifier = /** @class */ (function () {
356
+ function RvfaVerifier(publicKey) {
357
+ this.keyObj = toPublicKeyObject(publicKey);
358
+ var pem = Buffer.isBuffer(publicKey) ? publicKey.toString('utf-8') : publicKey;
359
+ this.fingerprint = computeFingerprint(pem);
360
+ }
361
+ /**
362
+ * Verify the Ed25519 signature embedded in an RVFA appliance file.
363
+ *
364
+ * @param rvfaPath Path to the .rvf appliance file.
365
+ * @returns Verification result with details and any errors.
366
+ */
367
+ RvfaVerifier.prototype.verifyAppliance = function (rvfaPath) {
368
+ return __awaiter(this, void 0, Promise, function () {
369
+ var errors, buf, err_1, parsed, header, sectionData, footer, sigRaw, sigMeta, digest, sigBuf, valid;
370
+ return __generator(this, function (_a) {
371
+ switch (_a.label) {
372
+ case 0:
373
+ errors = [];
374
+ _a.label = 1;
375
+ case 1:
376
+ _a.trys.push([1, 3, , 4]);
377
+ return [4 /*yield*/, readFile(rvfaPath)];
378
+ case 2:
379
+ buf = _a.sent();
380
+ return [3 /*break*/, 4];
381
+ case 3:
382
+ err_1 = _a.sent();
383
+ return [2 /*return*/, { valid: false, errors: ["Failed to read file: " + err_1.message] }];
384
+ case 4:
385
+ try {
386
+ parsed = parseRvfaBinary(buf);
387
+ }
388
+ catch (err) {
389
+ return [2 /*return*/, { valid: false, errors: ["Invalid RVFA file: " + err.message] }];
390
+ }
391
+ header = parsed.header, sectionData = parsed.sectionData, footer = parsed.footer;
392
+ sigRaw = header.signature;
393
+ if (!sigRaw || typeof sigRaw !== 'object') {
394
+ return [2 /*return*/, { valid: false, errors: ['No signature found in RVFA header'] }];
395
+ }
396
+ sigMeta = sigRaw;
397
+ if (sigMeta.algorithm !== 'ed25519') {
398
+ errors.push("Unsupported algorithm: " + String(sigMeta.algorithm));
399
+ return [2 /*return*/, { valid: false, errors: errors }];
400
+ }
401
+ if (typeof sigMeta.signature !== 'string' || !sigMeta.signature) {
402
+ errors.push('Signature field is missing or empty');
403
+ return [2 /*return*/, { valid: false, errors: errors }];
404
+ }
405
+ digest = computeSigningDigest(header, sectionData, footer);
406
+ try {
407
+ sigBuf = Buffer.from(sigMeta.signature, 'hex');
408
+ }
409
+ catch (_b) {
410
+ errors.push('Signature is not valid hex');
411
+ return [2 /*return*/, { valid: false, errors: errors }];
412
+ }
413
+ try {
414
+ valid = verify(null, digest, this.keyObj, sigBuf);
415
+ }
416
+ catch (err) {
417
+ errors.push("Verification error: " + err.message);
418
+ return [2 /*return*/, { valid: false, errors: errors }];
419
+ }
420
+ if (!valid) {
421
+ errors.push('Ed25519 signature verification failed: data may be tampered');
422
+ }
423
+ return [2 /*return*/, {
424
+ valid: valid,
425
+ signerFingerprint: sigMeta.publicKeyFingerprint,
426
+ signedAt: sigMeta.signedAt,
427
+ signedBy: sigMeta.signedBy,
428
+ errors: errors
429
+ }];
430
+ }
431
+ });
432
+ });
433
+ };
434
+ /**
435
+ * Verify a detached Ed25519 signature over arbitrary data.
436
+ *
437
+ * @param data The data that was signed.
438
+ * @param signature Hex-encoded Ed25519 signature.
439
+ */
440
+ RvfaVerifier.prototype.verifyDetached = function (data, signature) {
441
+ return __awaiter(this, void 0, Promise, function () {
442
+ var digest, sigBuf;
443
+ return __generator(this, function (_a) {
444
+ digest = createHash('sha256').update(data).digest();
445
+ sigBuf = Buffer.from(signature, 'hex');
446
+ return [2 /*return*/, verify(null, digest, this.keyObj, sigBuf)];
447
+ });
448
+ });
449
+ };
450
+ /**
451
+ * Verify an RVFP patch file signature.
452
+ *
453
+ * @param patchData The raw patch binary data.
454
+ * @param signature Hex-encoded Ed25519 signature.
455
+ */
456
+ RvfaVerifier.prototype.verifyPatch = function (patchData, signature) {
457
+ return __awaiter(this, void 0, Promise, function () {
458
+ var digest, sigBuf;
459
+ return __generator(this, function (_a) {
460
+ digest = createHash('sha256').update(patchData).digest();
461
+ sigBuf = Buffer.from(signature, 'hex');
462
+ return [2 /*return*/, verify(null, digest, this.keyObj, sigBuf)];
463
+ });
464
+ });
465
+ };
466
+ return RvfaVerifier;
467
+ }());
468
+ export { RvfaVerifier };
469
+ //# sourceMappingURL=rvfa-signing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rvfa-signing.js","sourceRoot":"","sources":["../../../src/appliance/rvfa-signing.ts"],"names":[],"mappings":"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"}