kynjal-cli 4.0.0 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/dist/src/appliance/gguf-engine.d.ts +91 -0
  2. package/dist/src/appliance/gguf-engine.d.ts.map +1 -0
  3. package/dist/src/appliance/gguf-engine.js +286 -525
  4. package/dist/src/appliance/gguf-engine.js.map +1 -1
  5. package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  6. package/dist/src/appliance/ruvllm-bridge.d.ts.map +1 -0
  7. package/dist/src/appliance/ruvllm-bridge.js +203 -403
  8. package/dist/src/appliance/ruvllm-bridge.js.map +1 -1
  9. package/dist/src/appliance/rvfa-builder.d.ts +44 -0
  10. package/dist/src/appliance/rvfa-builder.d.ts.map +1 -0
  11. package/dist/src/appliance/rvfa-builder.js +154 -208
  12. package/dist/src/appliance/rvfa-builder.js.map +1 -1
  13. package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  14. package/dist/src/appliance/rvfa-distribution.d.ts.map +1 -0
  15. package/dist/src/appliance/rvfa-distribution.js +260 -423
  16. package/dist/src/appliance/rvfa-distribution.js.map +1 -1
  17. package/dist/src/appliance/rvfa-format.d.ts +111 -0
  18. package/dist/src/appliance/rvfa-format.d.ts.map +1 -0
  19. package/dist/src/appliance/rvfa-format.js +128 -200
  20. package/dist/src/appliance/rvfa-format.js.map +1 -1
  21. package/dist/src/appliance/rvfa-runner.d.ts +69 -0
  22. package/dist/src/appliance/rvfa-runner.d.ts.map +1 -0
  23. package/dist/src/appliance/rvfa-runner.js +168 -304
  24. package/dist/src/appliance/rvfa-runner.js.map +1 -1
  25. package/dist/src/appliance/rvfa-signing.d.ts +123 -0
  26. package/dist/src/appliance/rvfa-signing.d.ts.map +1 -0
  27. package/dist/src/appliance/rvfa-signing.js +173 -295
  28. package/dist/src/appliance/rvfa-signing.js.map +1 -1
  29. package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  30. package/dist/src/benchmarks/pretrain/index.d.ts.map +1 -0
  31. package/dist/src/benchmarks/pretrain/index.js +331 -542
  32. package/dist/src/benchmarks/pretrain/index.js.map +1 -1
  33. package/dist/src/commands/agent.js +574 -697
  34. package/dist/src/commands/agent.js.map +1 -1
  35. package/dist/src/commands/analyze.js +1218 -1548
  36. package/dist/src/commands/analyze.js.map +1 -1
  37. package/dist/src/commands/appliance-advanced.js +158 -267
  38. package/dist/src/commands/appliance-advanced.js.map +1 -1
  39. package/dist/src/commands/appliance.js +318 -493
  40. package/dist/src/commands/appliance.js.map +1 -1
  41. package/dist/src/commands/benchmark.js +372 -523
  42. package/dist/src/commands/benchmark.js.map +1 -1
  43. package/dist/src/commands/claims.js +274 -364
  44. package/dist/src/commands/claims.js.map +1 -1
  45. package/dist/src/commands/cleanup.js +113 -157
  46. package/dist/src/commands/cleanup.js.map +1 -1
  47. package/dist/src/commands/completions.js +477 -118
  48. package/dist/src/commands/completions.js.map +1 -1
  49. package/dist/src/commands/config.js +237 -303
  50. package/dist/src/commands/config.js.map +1 -1
  51. package/dist/src/commands/daemon.js +487 -596
  52. package/dist/src/commands/daemon.js.map +1 -1
  53. package/dist/src/commands/deployment.js +194 -275
  54. package/dist/src/commands/deployment.js.map +1 -1
  55. package/dist/src/commands/doctor.js +504 -686
  56. package/dist/src/commands/doctor.js.map +1 -1
  57. package/dist/src/commands/embeddings.js +1293 -1543
  58. package/dist/src/commands/embeddings.js.map +1 -1
  59. package/dist/src/commands/guidance.js +449 -596
  60. package/dist/src/commands/guidance.js.map +1 -1
  61. package/dist/src/commands/hive-mind.js +854 -938
  62. package/dist/src/commands/hive-mind.js.map +1 -1
  63. package/dist/src/commands/hooks.js +3112 -3519
  64. package/dist/src/commands/hooks.js.map +1 -1
  65. package/dist/src/commands/index.d.ts +115 -0
  66. package/dist/src/commands/index.d.ts.map +1 -0
  67. package/dist/src/commands/index.js +126 -308
  68. package/dist/src/commands/index.js.map +1 -1
  69. package/dist/src/commands/init.js +788 -940
  70. package/dist/src/commands/init.js.map +1 -1
  71. package/dist/src/commands/issues.js +383 -558
  72. package/dist/src/commands/issues.js.map +1 -1
  73. package/dist/src/commands/mcp.js +493 -605
  74. package/dist/src/commands/mcp.js.map +1 -1
  75. package/dist/src/commands/memory.js +833 -1026
  76. package/dist/src/commands/memory.js.map +1 -1
  77. package/dist/src/commands/migrate.js +282 -347
  78. package/dist/src/commands/migrate.js.map +1 -1
  79. package/dist/src/commands/neural.js +1289 -1563
  80. package/dist/src/commands/neural.js.map +1 -1
  81. package/dist/src/commands/performance.js +497 -643
  82. package/dist/src/commands/performance.js.map +1 -1
  83. package/dist/src/commands/plugins.js +668 -841
  84. package/dist/src/commands/plugins.js.map +1 -1
  85. package/dist/src/commands/process.js +392 -447
  86. package/dist/src/commands/process.js.map +1 -1
  87. package/dist/src/commands/progress.js +162 -256
  88. package/dist/src/commands/progress.js.map +1 -1
  89. package/dist/src/commands/providers.js +150 -220
  90. package/dist/src/commands/providers.js.map +1 -1
  91. package/dist/src/commands/route.js +520 -665
  92. package/dist/src/commands/route.js.map +1 -1
  93. package/dist/src/commands/ruvector/backup.js +505 -651
  94. package/dist/src/commands/ruvector/backup.js.map +1 -1
  95. package/dist/src/commands/ruvector/benchmark.js +349 -401
  96. package/dist/src/commands/ruvector/benchmark.js.map +1 -1
  97. package/dist/src/commands/ruvector/import.js +224 -266
  98. package/dist/src/commands/ruvector/import.js.map +1 -1
  99. package/dist/src/commands/ruvector/index.js +37 -75
  100. package/dist/src/commands/ruvector/index.js.map +1 -1
  101. package/dist/src/commands/ruvector/init.js +336 -359
  102. package/dist/src/commands/ruvector/init.js.map +1 -1
  103. package/dist/src/commands/ruvector/migrate.js +335 -322
  104. package/dist/src/commands/ruvector/migrate.js.map +1 -1
  105. package/dist/src/commands/ruvector/optimize.js +375 -431
  106. package/dist/src/commands/ruvector/optimize.js.map +1 -1
  107. package/dist/src/commands/ruvector/setup.js +703 -117
  108. package/dist/src/commands/ruvector/setup.js.map +1 -1
  109. package/dist/src/commands/ruvector/status.js +364 -419
  110. package/dist/src/commands/ruvector/status.js.map +1 -1
  111. package/dist/src/commands/security.js +485 -608
  112. package/dist/src/commands/security.js.map +1 -1
  113. package/dist/src/commands/session.js +504 -626
  114. package/dist/src/commands/session.js.map +1 -1
  115. package/dist/src/commands/start.js +267 -364
  116. package/dist/src/commands/start.js.map +1 -1
  117. package/dist/src/commands/status.js +380 -486
  118. package/dist/src/commands/status.js.map +1 -1
  119. package/dist/src/commands/swarm.js +408 -488
  120. package/dist/src/commands/swarm.js.map +1 -1
  121. package/dist/src/commands/task.js +423 -538
  122. package/dist/src/commands/task.js.map +1 -1
  123. package/dist/src/commands/transfer-store.js +322 -412
  124. package/dist/src/commands/transfer-store.js.map +1 -1
  125. package/dist/src/commands/update.js +196 -291
  126. package/dist/src/commands/update.js.map +1 -1
  127. package/dist/src/commands/workflow.js +386 -486
  128. package/dist/src/commands/workflow.js.map +1 -1
  129. package/dist/src/config-adapter.d.ts +15 -0
  130. package/dist/src/config-adapter.d.ts.map +1 -0
  131. package/dist/src/config-adapter.js +38 -39
  132. package/dist/src/config-adapter.js.map +1 -1
  133. package/dist/src/index.d.ts +77 -0
  134. package/dist/src/index.d.ts.map +1 -0
  135. package/dist/src/index.js +309 -411
  136. package/dist/src/index.js.map +1 -1
  137. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  138. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
  139. package/dist/src/infrastructure/in-memory-repositories.js +246 -507
  140. package/dist/src/infrastructure/in-memory-repositories.js.map +1 -1
  141. package/dist/src/init/claudemd-generator.d.ts +25 -0
  142. package/dist/src/init/claudemd-generator.d.ts.map +1 -0
  143. package/dist/src/init/claudemd-generator.js +368 -78
  144. package/dist/src/init/claudemd-generator.js.map +1 -1
  145. package/dist/src/init/executor.d.ts +41 -0
  146. package/dist/src/init/executor.d.ts.map +1 -0
  147. package/dist/src/init/executor.js +1307 -996
  148. package/dist/src/init/executor.js.map +1 -1
  149. package/dist/src/init/helpers-generator.d.ts +60 -0
  150. package/dist/src/init/helpers-generator.d.ts.map +1 -0
  151. package/dist/src/init/helpers-generator.js +657 -12
  152. package/dist/src/init/helpers-generator.js.map +1 -1
  153. package/dist/src/init/index.d.ts +1 -1
  154. package/dist/src/init/index.d.ts.map +1 -1
  155. package/dist/src/init/index.js +1 -1
  156. package/dist/src/init/index.js.map +1 -1
  157. package/dist/src/init/mcp-generator.js +33 -37
  158. package/dist/src/init/mcp-generator.js.map +1 -1
  159. package/dist/src/init/settings-generator.js +76 -77
  160. package/dist/src/init/settings-generator.js.map +1 -1
  161. package/dist/src/init/statusline-generator.js +801 -3
  162. package/dist/src/init/statusline-generator.js.map +1 -1
  163. package/dist/src/init/types.d.ts +1 -1
  164. package/dist/src/init/types.d.ts.map +1 -1
  165. package/dist/src/init/types.js +76 -59
  166. package/dist/src/init/types.js.map +1 -1
  167. package/dist/src/mcp-client.d.ts +92 -0
  168. package/dist/src/mcp-client.d.ts.map +1 -0
  169. package/dist/src/mcp-client.js +81 -125
  170. package/dist/src/mcp-client.js.map +1 -1
  171. package/dist/src/mcp-server.d.ts +161 -0
  172. package/dist/src/mcp-server.d.ts.map +1 -0
  173. package/dist/src/mcp-server.js +470 -757
  174. package/dist/src/mcp-server.js.map +1 -1
  175. package/dist/src/mcp-tools/agent-tools.js +391 -492
  176. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  177. package/dist/src/mcp-tools/agentdb-tools.js +332 -533
  178. package/dist/src/mcp-tools/agentdb-tools.js.map +1 -1
  179. package/dist/src/mcp-tools/analyze-tools.js +172 -236
  180. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  181. package/dist/src/mcp-tools/auto-install.d.ts +83 -0
  182. package/dist/src/mcp-tools/auto-install.d.ts.map +1 -0
  183. package/dist/src/mcp-tools/auto-install.js +80 -142
  184. package/dist/src/mcp-tools/auto-install.js.map +1 -1
  185. package/dist/src/mcp-tools/browser-tools.js +252 -375
  186. package/dist/src/mcp-tools/browser-tools.js.map +1 -1
  187. package/dist/src/mcp-tools/claims-tools.js +473 -565
  188. package/dist/src/mcp-tools/claims-tools.js.map +1 -1
  189. package/dist/src/mcp-tools/config-tools.js +197 -272
  190. package/dist/src/mcp-tools/config-tools.js.map +1 -1
  191. package/dist/src/mcp-tools/coordination-tools.js +500 -572
  192. package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
  193. package/dist/src/mcp-tools/daa-tools.js +286 -364
  194. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  195. package/dist/src/mcp-tools/embeddings-tools.js +582 -693
  196. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  197. package/dist/src/mcp-tools/github-tools.js +260 -311
  198. package/dist/src/mcp-tools/github-tools.js.map +1 -1
  199. package/dist/src/mcp-tools/hive-mind-tools.js +573 -640
  200. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  201. package/dist/src/mcp-tools/hooks-tools.js +2215 -2648
  202. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  203. package/dist/src/mcp-tools/memory-tools.js +350 -505
  204. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  205. package/dist/src/mcp-tools/neural-tools.js +315 -412
  206. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  207. package/dist/src/mcp-tools/performance-tools.js +420 -480
  208. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  209. package/dist/src/mcp-tools/progress-tools.js +204 -278
  210. package/dist/src/mcp-tools/progress-tools.js.map +1 -1
  211. package/dist/src/mcp-tools/ruvllm-tools.js +163 -279
  212. package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -1
  213. package/dist/src/mcp-tools/security-tools.js +297 -429
  214. package/dist/src/mcp-tools/security-tools.js.map +1 -1
  215. package/dist/src/mcp-tools/session-tools.js +185 -234
  216. package/dist/src/mcp-tools/session-tools.js.map +1 -1
  217. package/dist/src/mcp-tools/swarm-tools.js +207 -260
  218. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  219. package/dist/src/mcp-tools/system-tools.js +276 -325
  220. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  221. package/dist/src/mcp-tools/task-tools.js +270 -336
  222. package/dist/src/mcp-tools/task-tools.js.map +1 -1
  223. package/dist/src/mcp-tools/terminal-tools.js +148 -196
  224. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  225. package/dist/src/mcp-tools/transfer-tools.js +186 -333
  226. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  227. package/dist/src/mcp-tools/types.d.ts +31 -0
  228. package/dist/src/mcp-tools/types.d.ts.map +1 -0
  229. package/dist/src/mcp-tools/wasm-agent-tools.js +133 -280
  230. package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -1
  231. package/dist/src/mcp-tools/workflow-tools.js +405 -450
  232. package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
  233. package/dist/src/memory/ewc-consolidation.d.ts +295 -0
  234. package/dist/src/memory/ewc-consolidation.d.ts.map +1 -0
  235. package/dist/src/memory/ewc-consolidation.js +190 -303
  236. package/dist/src/memory/ewc-consolidation.js.map +1 -1
  237. package/dist/src/memory/intelligence.d.ts +338 -0
  238. package/dist/src/memory/intelligence.d.ts.map +1 -0
  239. package/dist/src/memory/intelligence.js +569 -794
  240. package/dist/src/memory/intelligence.js.map +1 -1
  241. package/dist/src/memory/memory-bridge.d.ts +407 -0
  242. package/dist/src/memory/memory-bridge.d.ts.map +1 -0
  243. package/dist/src/memory/memory-bridge.js +1170 -1640
  244. package/dist/src/memory/memory-bridge.js.map +1 -1
  245. package/dist/src/memory/memory-initializer.d.ts +412 -0
  246. package/dist/src/memory/memory-initializer.d.ts.map +1 -0
  247. package/dist/src/memory/memory-initializer.js +1836 -1851
  248. package/dist/src/memory/memory-initializer.js.map +1 -1
  249. package/dist/src/memory/sona-optimizer.d.ts +227 -0
  250. package/dist/src/memory/sona-optimizer.d.ts.map +1 -0
  251. package/dist/src/memory/sona-optimizer.js +199 -329
  252. package/dist/src/memory/sona-optimizer.js.map +1 -1
  253. package/dist/src/output.d.ts +2 -2
  254. package/dist/src/output.d.ts.map +1 -1
  255. package/dist/src/output.js +242 -272
  256. package/dist/src/output.js.map +1 -1
  257. package/dist/src/parser.d.ts +51 -0
  258. package/dist/src/parser.d.ts.map +1 -0
  259. package/dist/src/parser.js +140 -187
  260. package/dist/src/parser.js.map +1 -1
  261. package/dist/src/plugins/manager.d.ts +133 -0
  262. package/dist/src/plugins/manager.d.ts.map +1 -0
  263. package/dist/src/plugins/manager.js +285 -521
  264. package/dist/src/plugins/manager.js.map +1 -1
  265. package/dist/src/plugins/store/discovery.d.ts +88 -0
  266. package/dist/src/plugins/store/discovery.d.ts.map +1 -0
  267. package/dist/src/plugins/store/discovery.js +271 -358
  268. package/dist/src/plugins/store/discovery.js.map +1 -1
  269. package/dist/src/plugins/store/index.d.ts +76 -0
  270. package/dist/src/plugins/store/index.d.ts.map +1 -0
  271. package/dist/src/plugins/store/index.js +48 -105
  272. package/dist/src/plugins/store/index.js.map +1 -1
  273. package/dist/src/plugins/store/search.d.ts +46 -0
  274. package/dist/src/plugins/store/search.d.ts.map +1 -0
  275. package/dist/src/plugins/store/search.js +69 -107
  276. package/dist/src/plugins/store/search.js.map +1 -1
  277. package/dist/src/plugins/store/types.d.ts +274 -0
  278. package/dist/src/plugins/store/types.d.ts.map +1 -0
  279. package/dist/src/plugins/tests/demo-plugin-store.js +113 -160
  280. package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -1
  281. package/dist/src/plugins/tests/standalone-test.js +172 -223
  282. package/dist/src/plugins/tests/standalone-test.js.map +1 -1
  283. package/dist/src/plugins/tests/test-plugin-store.js +190 -228
  284. package/dist/src/plugins/tests/test-plugin-store.js.map +1 -1
  285. package/dist/src/production/circuit-breaker.d.ts +101 -0
  286. package/dist/src/production/circuit-breaker.d.ts.map +1 -0
  287. package/dist/src/production/circuit-breaker.js +62 -126
  288. package/dist/src/production/circuit-breaker.js.map +1 -1
  289. package/dist/src/production/error-handler.d.ts +92 -0
  290. package/dist/src/production/error-handler.d.ts.map +1 -0
  291. package/dist/src/production/error-handler.js +86 -156
  292. package/dist/src/production/error-handler.js.map +1 -1
  293. package/dist/src/production/monitoring.d.ts +161 -0
  294. package/dist/src/production/monitoring.d.ts.map +1 -0
  295. package/dist/src/production/monitoring.js +139 -220
  296. package/dist/src/production/monitoring.js.map +1 -1
  297. package/dist/src/production/rate-limiter.d.ts +80 -0
  298. package/dist/src/production/rate-limiter.d.ts.map +1 -0
  299. package/dist/src/production/rate-limiter.js +74 -93
  300. package/dist/src/production/rate-limiter.js.map +1 -1
  301. package/dist/src/production/retry.d.ts +48 -0
  302. package/dist/src/production/retry.d.ts.map +1 -0
  303. package/dist/src/production/retry.js +75 -167
  304. package/dist/src/production/retry.js.map +1 -1
  305. package/dist/src/prompt.d.ts +44 -0
  306. package/dist/src/prompt.d.ts.map +1 -0
  307. package/dist/src/prompt.js +436 -560
  308. package/dist/src/prompt.js.map +1 -1
  309. package/dist/src/runtime/headless.d.ts +60 -0
  310. package/dist/src/runtime/headless.d.ts.map +1 -0
  311. package/dist/src/runtime/headless.js +197 -286
  312. package/dist/src/runtime/headless.js.map +1 -1
  313. package/dist/src/ruvector/agent-wasm.d.ts +182 -0
  314. package/dist/src/ruvector/agent-wasm.d.ts.map +1 -0
  315. package/dist/src/ruvector/agent-wasm.js +156 -351
  316. package/dist/src/ruvector/agent-wasm.js.map +1 -1
  317. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  318. package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
  319. package/dist/src/ruvector/ast-analyzer.js +145 -232
  320. package/dist/src/ruvector/ast-analyzer.js.map +1 -1
  321. package/dist/src/ruvector/coverage-router.d.ts +160 -0
  322. package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
  323. package/dist/src/ruvector/coverage-router.js +287 -419
  324. package/dist/src/ruvector/coverage-router.js.map +1 -1
  325. package/dist/src/ruvector/coverage-tools.js +56 -101
  326. package/dist/src/ruvector/coverage-tools.js.map +1 -1
  327. package/dist/src/ruvector/diff-classifier.d.ts +175 -0
  328. package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
  329. package/dist/src/ruvector/diff-classifier.js +324 -451
  330. package/dist/src/ruvector/diff-classifier.js.map +1 -1
  331. package/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
  332. package/dist/src/ruvector/enhanced-model-router.d.ts.map +1 -0
  333. package/dist/src/ruvector/enhanced-model-router.js +260 -336
  334. package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
  335. package/dist/src/ruvector/flash-attention.d.ts +195 -0
  336. package/dist/src/ruvector/flash-attention.d.ts.map +1 -0
  337. package/dist/src/ruvector/flash-attention.js +223 -254
  338. package/dist/src/ruvector/flash-attention.js.map +1 -1
  339. package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  340. package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
  341. package/dist/src/ruvector/graph-analyzer.js +486 -680
  342. package/dist/src/ruvector/graph-analyzer.js.map +1 -1
  343. package/dist/src/ruvector/index.d.ts +40 -0
  344. package/dist/src/ruvector/index.d.ts.map +1 -0
  345. package/dist/src/ruvector/index.js +36 -106
  346. package/dist/src/ruvector/index.js.map +1 -1
  347. package/dist/src/ruvector/lora-adapter.d.ts +218 -0
  348. package/dist/src/ruvector/lora-adapter.d.ts.map +1 -0
  349. package/dist/src/ruvector/lora-adapter.js +155 -248
  350. package/dist/src/ruvector/lora-adapter.js.map +1 -1
  351. package/dist/src/ruvector/model-router.d.ts +220 -0
  352. package/dist/src/ruvector/model-router.d.ts.map +1 -0
  353. package/dist/src/ruvector/model-router.js +175 -248
  354. package/dist/src/ruvector/model-router.js.map +1 -1
  355. package/dist/src/ruvector/moe-router.d.ts +206 -0
  356. package/dist/src/ruvector/moe-router.d.ts.map +1 -0
  357. package/dist/src/ruvector/moe-router.js +228 -286
  358. package/dist/src/ruvector/moe-router.js.map +1 -1
  359. package/dist/src/ruvector/q-learning-router.d.ts +211 -0
  360. package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
  361. package/dist/src/ruvector/q-learning-router.js +257 -338
  362. package/dist/src/ruvector/q-learning-router.js.map +1 -1
  363. package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  364. package/dist/src/ruvector/ruvllm-wasm.d.ts.map +1 -0
  365. package/dist/src/ruvector/ruvllm-wasm.js +270 -434
  366. package/dist/src/ruvector/ruvllm-wasm.js.map +1 -1
  367. package/dist/src/ruvector/semantic-router.d.ts +77 -0
  368. package/dist/src/ruvector/semantic-router.d.ts.map +1 -0
  369. package/dist/src/ruvector/semantic-router.js +60 -67
  370. package/dist/src/ruvector/semantic-router.js.map +1 -1
  371. package/dist/src/ruvector/vector-db.d.ts +69 -0
  372. package/dist/src/ruvector/vector-db.d.ts.map +1 -0
  373. package/dist/src/ruvector/vector-db.js +119 -205
  374. package/dist/src/ruvector/vector-db.js.map +1 -1
  375. package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  376. package/dist/src/services/agentic-flow-bridge.d.ts.map +1 -0
  377. package/dist/src/services/agentic-flow-bridge.js +32 -105
  378. package/dist/src/services/agentic-flow-bridge.js.map +1 -1
  379. package/dist/src/services/claim-service.d.ts +204 -0
  380. package/dist/src/services/claim-service.d.ts.map +1 -0
  381. package/dist/src/services/claim-service.js +615 -940
  382. package/dist/src/services/claim-service.js.map +1 -1
  383. package/dist/src/services/container-worker-pool.d.ts +197 -0
  384. package/dist/src/services/container-worker-pool.d.ts.map +1 -0
  385. package/dist/src/services/container-worker-pool.js +398 -666
  386. package/dist/src/services/container-worker-pool.js.map +1 -1
  387. package/dist/src/services/headless-worker-executor.d.ts +304 -0
  388. package/dist/src/services/headless-worker-executor.d.ts.map +1 -0
  389. package/dist/src/services/headless-worker-executor.js +441 -467
  390. package/dist/src/services/headless-worker-executor.js.map +1 -1
  391. package/dist/src/services/index.d.ts +4 -4
  392. package/dist/src/services/index.d.ts.map +1 -1
  393. package/dist/src/services/index.js +4 -4
  394. package/dist/src/services/index.js.map +1 -1
  395. package/dist/src/services/registry-api.d.ts +58 -0
  396. package/dist/src/services/registry-api.d.ts.map +1 -0
  397. package/dist/src/services/registry-api.js +92 -200
  398. package/dist/src/services/registry-api.js.map +1 -1
  399. package/dist/src/services/ruvector-training.d.ts +222 -0
  400. package/dist/src/services/ruvector-training.d.ts.map +1 -0
  401. package/dist/src/services/ruvector-training.js +257 -337
  402. package/dist/src/services/ruvector-training.js.map +1 -1
  403. package/dist/src/services/worker-daemon.d.ts +228 -0
  404. package/dist/src/services/worker-daemon.d.ts.map +1 -0
  405. package/dist/src/services/worker-daemon.js +591 -849
  406. package/dist/src/services/worker-daemon.js.map +1 -1
  407. package/dist/src/services/worker-queue.d.ts +194 -0
  408. package/dist/src/services/worker-queue.d.ts.map +1 -0
  409. package/dist/src/services/worker-queue.js +331 -548
  410. package/dist/src/services/worker-queue.js.map +1 -1
  411. package/dist/src/suggest.d.ts +53 -0
  412. package/dist/src/suggest.d.ts.map +1 -0
  413. package/dist/src/suggest.js +45 -55
  414. package/dist/src/suggest.js.map +1 -1
  415. package/dist/src/transfer/anonymization/index.js +29 -37
  416. package/dist/src/transfer/anonymization/index.js.map +1 -1
  417. package/dist/src/transfer/deploy-seraphine.js +128 -155
  418. package/dist/src/transfer/deploy-seraphine.js.map +1 -1
  419. package/dist/src/transfer/export.d.ts +25 -0
  420. package/dist/src/transfer/export.d.ts.map +1 -0
  421. package/dist/src/transfer/export.js +84 -142
  422. package/dist/src/transfer/export.js.map +1 -1
  423. package/dist/src/transfer/index.d.ts +1 -1
  424. package/dist/src/transfer/index.d.ts.map +1 -1
  425. package/dist/src/transfer/index.js +0 -2
  426. package/dist/src/transfer/index.js.map +1 -1
  427. package/dist/src/transfer/ipfs/client.d.ts +109 -0
  428. package/dist/src/transfer/ipfs/client.d.ts.map +1 -0
  429. package/dist/src/transfer/ipfs/client.js +187 -337
  430. package/dist/src/transfer/ipfs/client.js.map +1 -1
  431. package/dist/src/transfer/ipfs/upload.d.ts +95 -0
  432. package/dist/src/transfer/ipfs/upload.d.ts.map +1 -0
  433. package/dist/src/transfer/ipfs/upload.js +288 -434
  434. package/dist/src/transfer/ipfs/upload.js.map +1 -1
  435. package/dist/src/transfer/models/seraphine.d.ts +72 -0
  436. package/dist/src/transfer/models/seraphine.d.ts.map +1 -0
  437. package/dist/src/transfer/models/seraphine.js +55 -55
  438. package/dist/src/transfer/models/seraphine.js.map +1 -1
  439. package/dist/src/transfer/serialization/cfp.d.ts +49 -0
  440. package/dist/src/transfer/serialization/cfp.d.ts.map +1 -0
  441. package/dist/src/transfer/serialization/cfp.js +30 -31
  442. package/dist/src/transfer/serialization/cfp.js.map +1 -1
  443. package/dist/src/transfer/storage/gcs.d.ts +82 -0
  444. package/dist/src/transfer/storage/gcs.d.ts.map +1 -0
  445. package/dist/src/transfer/storage/gcs.js +165 -232
  446. package/dist/src/transfer/storage/gcs.js.map +1 -1
  447. package/dist/src/transfer/store/discovery.d.ts +84 -0
  448. package/dist/src/transfer/store/discovery.d.ts.map +1 -0
  449. package/dist/src/transfer/store/discovery.js +239 -349
  450. package/dist/src/transfer/store/discovery.js.map +1 -1
  451. package/dist/src/transfer/store/download.d.ts +70 -0
  452. package/dist/src/transfer/store/download.d.ts.map +1 -0
  453. package/dist/src/transfer/store/download.js +243 -365
  454. package/dist/src/transfer/store/download.js.map +1 -1
  455. package/dist/src/transfer/store/index.d.ts +84 -0
  456. package/dist/src/transfer/store/index.d.ts.map +1 -0
  457. package/dist/src/transfer/store/index.js +63 -130
  458. package/dist/src/transfer/store/index.js.map +1 -1
  459. package/dist/src/transfer/store/publish.d.ts +76 -0
  460. package/dist/src/transfer/store/publish.d.ts.map +1 -0
  461. package/dist/src/transfer/store/publish.js +184 -258
  462. package/dist/src/transfer/store/publish.js.map +1 -1
  463. package/dist/src/transfer/store/registry.js +50 -72
  464. package/dist/src/transfer/store/registry.js.map +1 -1
  465. package/dist/src/transfer/store/search.d.ts +54 -0
  466. package/dist/src/transfer/store/search.d.ts.map +1 -0
  467. package/dist/src/transfer/store/search.js +64 -96
  468. package/dist/src/transfer/store/search.js.map +1 -1
  469. package/dist/src/transfer/store/tests/standalone-test.js +174 -231
  470. package/dist/src/transfer/store/tests/standalone-test.js.map +1 -1
  471. package/dist/src/transfer/test-seraphine.js +95 -130
  472. package/dist/src/transfer/test-seraphine.js.map +1 -1
  473. package/dist/src/transfer/tests/test-store.js +194 -239
  474. package/dist/src/transfer/tests/test-store.js.map +1 -1
  475. package/dist/src/transfer/types.d.ts +245 -0
  476. package/dist/src/transfer/types.d.ts.map +1 -0
  477. package/dist/src/types.d.ts +198 -0
  478. package/dist/src/types.d.ts.map +1 -0
  479. package/dist/src/types.js +26 -55
  480. package/dist/src/types.js.map +1 -1
  481. package/dist/src/update/checker.d.ts +34 -0
  482. package/dist/src/update/checker.d.ts.map +1 -0
  483. package/dist/src/update/checker.js +106 -183
  484. package/dist/src/update/checker.js.map +1 -1
  485. package/dist/src/update/executor.d.ts +32 -0
  486. package/dist/src/update/executor.d.ts.map +1 -0
  487. package/dist/src/update/executor.js +135 -198
  488. package/dist/src/update/executor.js.map +1 -1
  489. package/dist/src/update/index.d.ts +33 -0
  490. package/dist/src/update/index.d.ts.map +1 -0
  491. package/dist/src/update/index.js +38 -85
  492. package/dist/src/update/index.js.map +1 -1
  493. package/dist/src/update/rate-limiter.d.ts +20 -0
  494. package/dist/src/update/rate-limiter.d.ts.map +1 -0
  495. package/dist/src/update/rate-limiter.js +19 -31
  496. package/dist/src/update/rate-limiter.js.map +1 -1
  497. package/dist/src/update/validator.d.ts +17 -0
  498. package/dist/src/update/validator.d.ts.map +1 -0
  499. package/dist/src/update/validator.js +38 -64
  500. package/dist/src/update/validator.js.map +1 -1
  501. package/dist/tsconfig.tsbuildinfo +1 -1
  502. package/package.json +1 -1
@@ -6,59 +6,12 @@
6
6
  *
7
7
  * @module @claude-flow/cli/appliance/rvfa-signing
8
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
9
  import { generateKeyPairSync, createHash, sign, verify, createPublicKey, createPrivateKey, } from 'node:crypto';
57
10
  import { readFile, writeFile, stat, chmod, mkdir } from 'node:fs/promises';
58
11
  // ── Constants ────────────────────────────────────────────────
59
- var PREAMBLE_SIZE = 12; // 4B magic + 4B version + 4B header_len
60
- var SHA256_SIZE = 32;
61
- var KEY_FILE_MODE = 384;
12
+ const PREAMBLE_SIZE = 12; // 4B magic + 4B version + 4B header_len
13
+ const SHA256_SIZE = 32;
14
+ const KEY_FILE_MODE = 0o600;
62
15
  // ── Key Management ───────────────────────────────────────────
63
16
  /** Compute the fingerprint of a public key: first 16 hex chars of its SHA256. */
64
17
  function computeFingerprint(publicKeyPem) {
@@ -70,20 +23,15 @@ function computeFingerprint(publicKeyPem) {
70
23
  /**
71
24
  * Generate a new Ed25519 key pair for RVFA signing.
72
25
  */
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
- });
26
+ export async function generateKeyPair() {
27
+ const { publicKey, privateKey } = generateKeyPairSync('ed25519', {
28
+ publicKeyEncoding: { type: 'spki', format: 'pem' },
29
+ privateKeyEncoding: { type: 'pkcs8', format: 'pem' },
86
30
  });
31
+ const pubBuf = Buffer.from(publicKey, 'utf-8');
32
+ const privBuf = Buffer.from(privateKey, 'utf-8');
33
+ const fingerprint = computeFingerprint(publicKey);
34
+ return { publicKey: pubBuf, privateKey: privBuf, fingerprint };
87
35
  }
88
36
  /**
89
37
  * Save a key pair to disk as PEM files.
@@ -93,32 +41,15 @@ export function generateKeyPair() {
93
41
  * @param name Base name for the key files (default: 'rvfa-signing').
94
42
  * @returns Paths to the written public and private key files.
95
43
  */
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
- });
44
+ export async function saveKeyPair(keyPair, dir, name = 'rvfa-signing') {
45
+ await mkdir(dir, { recursive: true });
46
+ const pubPath = `${dir}/${name}.pub`;
47
+ const privPath = `${dir}/${name}.key`;
48
+ await writeFile(pubPath, keyPair.publicKey);
49
+ await writeFile(privPath, keyPair.privateKey, { mode: KEY_FILE_MODE });
50
+ // Ensure private key has restrictive permissions even on existing files
51
+ await chmod(privPath, KEY_FILE_MODE);
52
+ return { publicKeyPath: pubPath, privateKeyPath: privPath };
122
53
  }
123
54
  /**
124
55
  * Load a key pair from PEM files on disk.
@@ -126,44 +57,26 @@ export function saveKeyPair(keyPair, dir, name) {
126
57
  * @param dir Directory containing the key files.
127
58
  * @param name Base name for the key files (default: 'rvfa-signing').
128
59
  */
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
- });
60
+ export async function loadKeyPair(dir, name = 'rvfa-signing') {
61
+ const pubPath = `${dir}/${name}.pub`;
62
+ const privPath = `${dir}/${name}.key`;
63
+ const publicKey = await readFile(pubPath);
64
+ const privateKey = await readFile(privPath);
65
+ // Warn if private key permissions are too open
66
+ const privStat = await stat(privPath);
67
+ const mode = privStat.mode & 0o777;
68
+ if (mode & 0o077) {
69
+ console.warn(`[rvfa-signing] WARNING: Private key ${privPath} has open permissions ` +
70
+ `(${mode.toString(8)}). Consider running: chmod 600 ${privPath}`);
71
+ }
72
+ const fingerprint = computeFingerprint(publicKey.toString('utf-8'));
73
+ return { publicKey, privateKey, fingerprint };
157
74
  }
158
75
  /**
159
76
  * Load a public key from a single PEM file.
160
77
  */
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
- });
78
+ export async function loadPublicKey(path) {
79
+ return readFile(path);
167
80
  }
168
81
  // ── Internal Helpers ─────────────────────────────────────────
169
82
  /**
@@ -171,11 +84,10 @@ export function loadPublicKey(path) {
171
84
  * Produces deterministic output regardless of insertion order.
172
85
  */
173
86
  function canonicalJson(value) {
174
- return JSON.stringify(value, function (_key, val) {
87
+ return JSON.stringify(value, (_key, val) => {
175
88
  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];
89
+ const sorted = {};
90
+ for (const k of Object.keys(val).sort()) {
179
91
  sorted[k] = val[k];
180
92
  }
181
93
  return sorted;
@@ -191,27 +103,27 @@ function parseRvfaBinary(buf) {
191
103
  if (buf.length < PREAMBLE_SIZE + SHA256_SIZE) {
192
104
  throw new Error('Buffer too small to be a valid RVFA file');
193
105
  }
194
- var magic = buf.subarray(0, 4).toString('ascii');
106
+ const magic = buf.subarray(0, 4).toString('ascii');
195
107
  if (magic !== 'RVFA') {
196
- throw new Error("Invalid RVFA magic: expected \"RVFA\", got \"" + magic + "\"");
108
+ throw new Error(`Invalid RVFA magic: expected "RVFA", got "${magic}"`);
197
109
  }
198
- var headerLen = buf.readUInt32LE(8);
199
- var headerStart = PREAMBLE_SIZE;
200
- var headerEnd = headerStart + headerLen;
110
+ const headerLen = buf.readUInt32LE(8);
111
+ const headerStart = PREAMBLE_SIZE;
112
+ const headerEnd = headerStart + headerLen;
201
113
  if (headerEnd > buf.length - SHA256_SIZE) {
202
114
  throw new Error('Header length extends beyond buffer');
203
115
  }
204
- var headerJson = buf.subarray(headerStart, headerEnd).toString('utf-8');
205
- var header;
116
+ const headerJson = buf.subarray(headerStart, headerEnd).toString('utf-8');
117
+ let header;
206
118
  try {
207
119
  header = JSON.parse(headerJson);
208
120
  }
209
- catch (_a) {
121
+ catch {
210
122
  throw new Error('Failed to parse RVFA header JSON');
211
123
  }
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 };
124
+ const footer = buf.subarray(buf.length - SHA256_SIZE);
125
+ const sectionData = buf.subarray(headerEnd, buf.length - SHA256_SIZE);
126
+ return { header, headerStart, headerEnd, sectionData, footer };
215
127
  }
216
128
  /**
217
129
  * Compute the signing digest for an RVFA file.
@@ -222,9 +134,9 @@ function parseRvfaBinary(buf) {
222
134
  */
223
135
  function computeSigningDigest(header, sectionData, footer) {
224
136
  // Strip signature field from header for digest computation
225
- var stripped = __assign({}, header);
137
+ const stripped = { ...header };
226
138
  delete stripped.signature;
227
- var canonical = Buffer.from(canonicalJson(stripped), 'utf-8');
139
+ const canonical = Buffer.from(canonicalJson(stripped), 'utf-8');
228
140
  return createHash('sha256')
229
141
  .update(canonical)
230
142
  .update(sectionData)
@@ -233,12 +145,12 @@ function computeSigningDigest(header, sectionData, footer) {
233
145
  }
234
146
  /** Convert a Buffer or PEM string into a KeyObject. */
235
147
  function toPrivateKeyObject(key) {
236
- var pem = Buffer.isBuffer(key) ? key.toString('utf-8') : key;
148
+ const pem = Buffer.isBuffer(key) ? key.toString('utf-8') : key;
237
149
  return createPrivateKey(pem);
238
150
  }
239
151
  /** Convert a Buffer or PEM string into a KeyObject. */
240
152
  function toPublicKeyObject(key) {
241
- var pem = Buffer.isBuffer(key) ? key.toString('utf-8') : key;
153
+ const pem = Buffer.isBuffer(key) ? key.toString('utf-8') : key;
242
154
  return createPublicKey(pem);
243
155
  }
244
156
  /**
@@ -248,9 +160,9 @@ function toPublicKeyObject(key) {
248
160
  * and keeps section data and footer intact.
249
161
  */
250
162
  function rebuildRvfa(originalBuf, newHeader, sectionData, footer) {
251
- var headerJson = Buffer.from(JSON.stringify(newHeader), 'utf-8');
163
+ const headerJson = Buffer.from(JSON.stringify(newHeader), 'utf-8');
252
164
  // Preamble: magic + version + new header length
253
- var preamble = Buffer.alloc(PREAMBLE_SIZE);
165
+ const preamble = Buffer.alloc(PREAMBLE_SIZE);
254
166
  originalBuf.copy(preamble, 0, 0, 8); // magic + version unchanged
255
167
  preamble.writeUInt32LE(headerJson.length, 8);
256
168
  return Buffer.concat([preamble, headerJson, sectionData, footer]);
@@ -259,11 +171,14 @@ function rebuildRvfa(originalBuf, newHeader, sectionData, footer) {
259
171
  /**
260
172
  * Signs RVFA appliance files and data with Ed25519.
261
173
  */
262
- var RvfaSigner = /** @class */ (function () {
263
- function RvfaSigner(privateKey) {
174
+ export class RvfaSigner {
175
+ keyObj;
176
+ fingerprint;
177
+ constructor(privateKey) {
264
178
  this.keyObj = toPrivateKeyObject(privateKey);
265
179
  // Derive public key to compute fingerprint
266
- var pubPem = createPublicKey(this.keyObj)["export"]({ type: 'spki', format: 'pem' });
180
+ const pubPem = createPublicKey(this.keyObj)
181
+ .export({ type: 'spki', format: 'pem' });
267
182
  this.fingerprint = computeFingerprint(pubPem);
268
183
  }
269
184
  /**
@@ -281,81 +196,62 @@ var RvfaSigner = /** @class */ (function () {
281
196
  * @param signedBy Optional publisher name.
282
197
  * @returns The signature metadata that was embedded.
283
198
  */
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
- };
199
+ async signAppliance(rvfaPath, signedBy) {
200
+ const buf = await readFile(rvfaPath);
201
+ const { header, sectionData, footer } = parseRvfaBinary(buf);
202
+ // Compute digest over header (without signature) + sections + footer
203
+ const digest = computeSigningDigest(header, sectionData, footer);
204
+ // Ed25519 sign
205
+ const sig = sign(null, digest, this.keyObj);
206
+ const metadata = {
207
+ algorithm: 'ed25519',
208
+ publicKeyFingerprint: this.fingerprint,
209
+ signature: sig.toString('hex'),
210
+ signedAt: new Date().toISOString(),
211
+ signedBy,
212
+ scope: 'full',
213
+ };
214
+ // Embed signature in header and rebuild
215
+ header.signature = metadata;
216
+ const rebuilt = rebuildRvfa(buf, header, sectionData, footer);
217
+ await writeFile(rvfaPath, rebuilt);
218
+ return metadata;
219
+ }
314
220
  /**
315
221
  * Sign a section footer hash (detached signature).
316
222
  *
317
223
  * @param footerHash The 32-byte SHA256 footer hash from an RVFA file.
318
224
  * @returns Hex-encoded Ed25519 signature.
319
225
  */
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
- };
226
+ async signSections(footerHash) {
227
+ if (footerHash.length !== SHA256_SIZE) {
228
+ throw new Error(`Footer hash must be ${SHA256_SIZE} bytes, got ${footerHash.length}`);
229
+ }
230
+ const sig = sign(null, footerHash, this.keyObj);
231
+ return sig.toString('hex');
232
+ }
332
233
  /**
333
234
  * Sign an RVFP patch file (detached signature).
334
235
  *
335
236
  * @param patchData The raw patch binary data.
336
237
  * @returns Hex-encoded Ed25519 signature.
337
238
  */
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 };
239
+ async signPatch(patchData) {
240
+ const digest = createHash('sha256').update(patchData).digest();
241
+ const sig = sign(null, digest, this.keyObj);
242
+ return sig.toString('hex');
243
+ }
244
+ }
351
245
  // ── RvfaVerifier ─────────────────────────────────────────────
352
246
  /**
353
247
  * Verifies Ed25519 signatures on RVFA appliance files and data.
354
248
  */
355
- var RvfaVerifier = /** @class */ (function () {
356
- function RvfaVerifier(publicKey) {
249
+ export class RvfaVerifier {
250
+ keyObj;
251
+ fingerprint;
252
+ constructor(publicKey) {
357
253
  this.keyObj = toPublicKeyObject(publicKey);
358
- var pem = Buffer.isBuffer(publicKey) ? publicKey.toString('utf-8') : publicKey;
254
+ const pem = Buffer.isBuffer(publicKey) ? publicKey.toString('utf-8') : publicKey;
359
255
  this.fingerprint = computeFingerprint(pem);
360
256
  }
361
257
  /**
@@ -364,106 +260,88 @@ var RvfaVerifier = /** @class */ (function () {
364
260
  * @param rvfaPath Path to the .rvf appliance file.
365
261
  * @returns Verification result with details and any errors.
366
262
  */
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
- };
263
+ async verifyAppliance(rvfaPath) {
264
+ const errors = [];
265
+ let buf;
266
+ try {
267
+ buf = await readFile(rvfaPath);
268
+ }
269
+ catch (err) {
270
+ return { valid: false, errors: [`Failed to read file: ${err.message}`] };
271
+ }
272
+ let parsed;
273
+ try {
274
+ parsed = parseRvfaBinary(buf);
275
+ }
276
+ catch (err) {
277
+ return { valid: false, errors: [`Invalid RVFA file: ${err.message}`] };
278
+ }
279
+ const { header, sectionData, footer } = parsed;
280
+ // Extract signature metadata from header
281
+ const sigRaw = header.signature;
282
+ if (!sigRaw || typeof sigRaw !== 'object') {
283
+ return { valid: false, errors: ['No signature found in RVFA header'] };
284
+ }
285
+ const sigMeta = sigRaw;
286
+ if (sigMeta.algorithm !== 'ed25519') {
287
+ errors.push(`Unsupported algorithm: ${String(sigMeta.algorithm)}`);
288
+ return { valid: false, errors };
289
+ }
290
+ if (typeof sigMeta.signature !== 'string' || !sigMeta.signature) {
291
+ errors.push('Signature field is missing or empty');
292
+ return { valid: false, errors };
293
+ }
294
+ // Recompute the digest the same way the signer did
295
+ const digest = computeSigningDigest(header, sectionData, footer);
296
+ // Verify
297
+ let sigBuf;
298
+ try {
299
+ sigBuf = Buffer.from(sigMeta.signature, 'hex');
300
+ }
301
+ catch {
302
+ errors.push('Signature is not valid hex');
303
+ return { valid: false, errors };
304
+ }
305
+ let valid;
306
+ try {
307
+ valid = verify(null, digest, this.keyObj, sigBuf);
308
+ }
309
+ catch (err) {
310
+ errors.push(`Verification error: ${err.message}`);
311
+ return { valid: false, errors };
312
+ }
313
+ if (!valid) {
314
+ errors.push('Ed25519 signature verification failed: data may be tampered');
315
+ }
316
+ return {
317
+ valid,
318
+ signerFingerprint: sigMeta.publicKeyFingerprint,
319
+ signedAt: sigMeta.signedAt,
320
+ signedBy: sigMeta.signedBy,
321
+ errors,
322
+ };
323
+ }
434
324
  /**
435
325
  * Verify a detached Ed25519 signature over arbitrary data.
436
326
  *
437
327
  * @param data The data that was signed.
438
328
  * @param signature Hex-encoded Ed25519 signature.
439
329
  */
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
- };
330
+ async verifyDetached(data, signature) {
331
+ const digest = createHash('sha256').update(data).digest();
332
+ const sigBuf = Buffer.from(signature, 'hex');
333
+ return verify(null, digest, this.keyObj, sigBuf);
334
+ }
450
335
  /**
451
336
  * Verify an RVFP patch file signature.
452
337
  *
453
338
  * @param patchData The raw patch binary data.
454
339
  * @param signature Hex-encoded Ed25519 signature.
455
340
  */
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 };
341
+ async verifyPatch(patchData, signature) {
342
+ const digest = createHash('sha256').update(patchData).digest();
343
+ const sigBuf = Buffer.from(signature, 'hex');
344
+ return verify(null, digest, this.keyObj, sigBuf);
345
+ }
346
+ }
469
347
  //# sourceMappingURL=rvfa-signing.js.map