kynjal-cli 4.0.0 → 4.0.1

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
@@ -7,53 +7,6 @@
7
7
  * RVFP layout: [4B "RVFP"] [4B version u32LE] [4B header_len u32LE]
8
8
  * [header JSON] [new section data] [32B SHA256 footer]
9
9
  */
10
- var __assign = (this && this.__assign) || function () {
11
- __assign = Object.assign || function(t) {
12
- for (var s, i = 1, n = arguments.length; i < n; i++) {
13
- s = arguments[i];
14
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
15
- t[p] = s[p];
16
- }
17
- return t;
18
- };
19
- return __assign.apply(this, arguments);
20
- };
21
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
- return new (P || (P = Promise))(function (resolve, reject) {
24
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
- step((generator = generator.apply(thisArg, _arguments || [])).next());
28
- });
29
- };
30
- var __generator = (this && this.__generator) || function (thisArg, body) {
31
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
32
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
33
- function verb(n) { return function (v) { return step([n, v]); }; }
34
- function step(op) {
35
- if (f) throw new TypeError("Generator is already executing.");
36
- while (_) try {
37
- 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;
38
- if (y = 0, t) op = [op[0] & 2, t.value];
39
- switch (op[0]) {
40
- case 0: case 1: t = op; break;
41
- case 4: _.label++; return { value: op[1], done: false };
42
- case 5: _.label++; y = op[1]; op = [0]; continue;
43
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
44
- default:
45
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
46
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
47
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
48
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
49
- if (t[2]) _.ops.pop();
50
- _.trys.pop(); continue;
51
- }
52
- op = body.call(thisArg, _);
53
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
54
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
55
- }
56
- };
57
10
  import { createHash, sign, verify as edVerify } from 'node:crypto';
58
11
  import { readFile, writeFile, rename, unlink, copyFile, mkdir } from 'node:fs/promises';
59
12
  import { dirname } from 'node:path';
@@ -61,16 +14,16 @@ import { request as httpsRequest } from 'node:https';
61
14
  import { gzipSync, gunzipSync } from 'node:zlib';
62
15
  import { RvfaReader, RvfaWriter } from './rvfa-format.js';
63
16
  // ── Constants ────────────────────────────────────────────────
64
- var RVFP_VERSION = 1;
65
- var PRE = 12; // preamble: 4 magic + 4 version + 4 header_len
66
- var SHA_LEN = 32;
67
- var DEFAULT_GW = 'https://gateway.pinata.cloud';
68
- var DEFAULT_API = 'https://api.pinata.cloud';
17
+ const RVFP_VERSION = 1;
18
+ const PRE = 12; // preamble: 4 magic + 4 version + 4 header_len
19
+ const SHA_LEN = 32;
20
+ const DEFAULT_GW = 'https://gateway.pinata.cloud';
21
+ const DEFAULT_API = 'https://api.pinata.cloud';
69
22
  // ── Crypto helpers ───────────────────────────────────────────
70
23
  function sha256(d) { return createHash('sha256').update(d).digest('hex'); }
71
24
  function sha256B(d) { return createHash('sha256').update(d).digest(); }
72
25
  function detectKeyFormat(key) {
73
- var str = key.toString('utf-8');
26
+ const str = key.toString('utf-8');
74
27
  if (str.includes('BEGIN PRIVATE KEY'))
75
28
  return { format: 'pem', type: 'pkcs8' };
76
29
  if (str.includes('BEGIN PUBLIC KEY'))
@@ -79,96 +32,93 @@ function detectKeyFormat(key) {
79
32
  return { format: 'der', type: 'pkcs8' }; // caller must override type for public keys
80
33
  }
81
34
  function edSign(data, key) {
82
- var det = detectKeyFormat(key);
83
- return sign(null, data, { key: key, format: det.format, type: det.type }).toString('hex');
35
+ const det = detectKeyFormat(key);
36
+ return sign(null, data, { key, format: det.format, type: det.type }).toString('hex');
84
37
  }
85
38
  function edCheck(data, sig, key) {
86
39
  try {
87
- var det = detectKeyFormat(key);
88
- var type = det.format === 'pem' ? det.type : 'spki'; // public key for verify
89
- return edVerify(null, data, { key: key, format: det.format, type: type }, Buffer.from(sig, 'hex'));
40
+ const det = detectKeyFormat(key);
41
+ const type = det.format === 'pem' ? det.type : 'spki'; // public key for verify
42
+ return edVerify(null, data, { key, format: det.format, type }, Buffer.from(sig, 'hex'));
90
43
  }
91
- catch (_a) {
44
+ catch {
92
45
  return false;
93
46
  }
94
47
  }
95
48
  // ── HTTP helpers ─────────────────────────────────────────────
96
49
  function pinataReq(method, path, jwt, body, ct) {
97
- return new Promise(function (resolve, reject) {
98
- var u = new URL(path);
99
- var h = { Authorization: "Bearer " + jwt };
50
+ return new Promise((resolve, reject) => {
51
+ const u = new URL(path);
52
+ const h = { Authorization: `Bearer ${jwt}` };
100
53
  if (ct)
101
54
  h['Content-Type'] = ct;
102
55
  if (body)
103
56
  h['Content-Length'] = String(body.length);
104
- var req = httpsRequest({ hostname: u.hostname, path: u.pathname + u.search, method: method, headers: h }, function (res) {
105
- var ch = [];
106
- res.on('data', function (c) { return ch.push(c); });
107
- res.on('end', function () {
108
- var _a;
109
- var raw = Buffer.concat(ch);
110
- var data;
57
+ const req = httpsRequest({ hostname: u.hostname, path: u.pathname + u.search, method, headers: h }, (res) => {
58
+ const ch = [];
59
+ res.on('data', (c) => ch.push(c));
60
+ res.on('end', () => {
61
+ const raw = Buffer.concat(ch);
62
+ let data;
111
63
  try {
112
64
  data = JSON.parse(raw.toString('utf-8'));
113
65
  }
114
- catch (_b) {
66
+ catch {
115
67
  data = raw;
116
68
  }
117
- resolve({ status: (_a = res.statusCode) !== null && _a !== void 0 ? _a : 0, data: data });
69
+ resolve({ status: res.statusCode ?? 0, data });
118
70
  });
119
71
  });
120
- req.setTimeout(30000, function () { req.destroy(new Error('Request timed out after 30s')); });
72
+ req.setTimeout(30_000, () => { req.destroy(new Error('Request timed out after 30s')); });
121
73
  req.on('error', reject);
122
74
  if (body)
123
75
  req.write(body);
124
76
  req.end();
125
77
  });
126
78
  }
127
- function httpGet(url, maxRedirects) {
128
- if (maxRedirects === void 0) { maxRedirects = 5; }
129
- return new Promise(function (resolve, reject) {
79
+ function httpGet(url, maxRedirects = 5) {
80
+ return new Promise((resolve, reject) => {
130
81
  if (maxRedirects <= 0)
131
82
  return reject(new Error('Too many redirects'));
132
- var u = new URL(url);
133
- var req = httpsRequest({ hostname: u.hostname, path: u.pathname + u.search, method: 'GET' }, function (res) {
83
+ const u = new URL(url);
84
+ const req = httpsRequest({ hostname: u.hostname, path: u.pathname + u.search, method: 'GET' }, (res) => {
134
85
  if (res.statusCode && res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) {
135
86
  return void httpGet(res.headers.location, maxRedirects - 1).then(resolve, reject);
136
87
  }
137
- var ch = [];
138
- res.on('data', function (c) { return ch.push(c); });
139
- res.on('end', function () { return resolve(Buffer.concat(ch)); });
88
+ const ch = [];
89
+ res.on('data', (c) => ch.push(c));
90
+ res.on('end', () => resolve(Buffer.concat(ch)));
140
91
  });
141
- req.setTimeout(30000, function () { req.destroy(new Error('Request timed out after 30s')); });
92
+ req.setTimeout(30_000, () => { req.destroy(new Error('Request timed out after 30s')); });
142
93
  req.on('error', reject);
143
94
  req.end();
144
95
  });
145
96
  }
146
97
  function multipart(name, file, data, meta) {
147
- var b = "----Rvfa" + Date.now() + Math.random().toString(36).slice(2);
148
- var parts = [];
98
+ const b = `----Rvfa${Date.now()}${Math.random().toString(36).slice(2)}`;
99
+ const parts = [];
149
100
  if (meta) {
150
- parts.push(Buffer.from("--" + b + "\r\nContent-Disposition: form-data; name=\"pinataMetadata\"\r\n" +
151
- ("Content-Type: application/json\r\n\r\n" + meta + "\r\n")));
101
+ parts.push(Buffer.from(`--${b}\r\nContent-Disposition: form-data; name="pinataMetadata"\r\n` +
102
+ `Content-Type: application/json\r\n\r\n${meta}\r\n`));
152
103
  }
153
- parts.push(Buffer.from("--" + b + "\r\nContent-Disposition: form-data; name=\"" + name + "\"; filename=\"" + file + "\"\r\n" +
154
- "Content-Type: application/octet-stream\r\n\r\n"));
155
- parts.push(data, Buffer.from("\r\n--" + b + "--\r\n"));
156
- return { body: Buffer.concat(parts), ct: "multipart/form-data; boundary=" + b };
104
+ parts.push(Buffer.from(`--${b}\r\nContent-Disposition: form-data; name="${name}"; filename="${file}"\r\n` +
105
+ `Content-Type: application/octet-stream\r\n\r\n`));
106
+ parts.push(data, Buffer.from(`\r\n--${b}--\r\n`));
107
+ return { body: Buffer.concat(parts), ct: `multipart/form-data; boundary=${b}` };
157
108
  }
158
109
  /** Extract patch section data and bounds from a parsed patch buffer. */
159
110
  function patchData(buf) {
160
- var hLen = buf.readUInt32LE(8);
161
- var start = PRE + hLen;
162
- var end = buf.length - SHA_LEN;
163
- return { start: start, end: end, section: buf.subarray(start, end) };
111
+ const hLen = buf.readUInt32LE(8);
112
+ const start = PRE + hLen;
113
+ const end = buf.length - SHA_LEN;
114
+ return { start, end, section: buf.subarray(start, end) };
164
115
  }
165
116
  /** Canonical JSON: recursive key-sorting for deterministic serialization. */
166
117
  function canonicalJson(value) {
167
- return JSON.stringify(value, function (_key, val) {
118
+ return JSON.stringify(value, (_key, val) => {
168
119
  if (val !== null && typeof val === 'object' && !Array.isArray(val) && !Buffer.isBuffer(val)) {
169
- var sorted = {};
170
- for (var _i = 0, _a = Object.keys(val).sort(); _i < _a.length; _i++) {
171
- var k = _a[_i];
120
+ const sorted = {};
121
+ for (const k of Object.keys(val).sort()) {
172
122
  sorted[k] = val[k];
173
123
  }
174
124
  return sorted;
@@ -178,356 +128,243 @@ function canonicalJson(value) {
178
128
  }
179
129
  /** Build a failed ApplyResult. */
180
130
  function failResult(sec, errs, extra) {
181
- return __assign({ success: false, newSize: 0, patchedSection: sec, errors: errs }, extra);
131
+ return { success: false, newSize: 0, patchedSection: sec, errors: errs, ...extra };
182
132
  }
183
133
  // ── RvfaPatcher ──────────────────────────────────────────────
184
- var RvfaPatcher = /** @class */ (function () {
185
- function RvfaPatcher() {
134
+ export class RvfaPatcher {
135
+ static async createPatch(opts) {
136
+ const comp = opts.compression ?? 'none';
137
+ const payload = comp === 'gzip' ? gzipSync(opts.sectionData) : opts.sectionData;
138
+ const header = {
139
+ magic: 'RVFP', version: RVFP_VERSION,
140
+ targetApplianceName: opts.targetName, targetApplianceVersion: opts.targetVersion,
141
+ targetSection: opts.sectionId, patchVersion: opts.patchVersion,
142
+ created: new Date().toISOString(), newSectionSize: payload.length,
143
+ newSectionSha256: sha256(payload), compression: comp,
144
+ };
145
+ if (opts.privateKey && opts.signedBy) {
146
+ const signable = Buffer.concat([Buffer.from(canonicalJson(header), 'utf-8'), payload]);
147
+ header.signature = edSign(signable, opts.privateKey);
148
+ header.signedBy = opts.signedBy;
149
+ }
150
+ const hJson = Buffer.from(JSON.stringify(header), 'utf-8');
151
+ const magic = Buffer.from('RVFP');
152
+ const ver = Buffer.alloc(4);
153
+ ver.writeUInt32LE(RVFP_VERSION, 0);
154
+ const hLen = Buffer.alloc(4);
155
+ hLen.writeUInt32LE(hJson.length, 0);
156
+ return Buffer.concat([magic, ver, hLen, hJson, payload, sha256B(payload)]);
186
157
  }
187
- RvfaPatcher.createPatch = function (opts) {
188
- var _a;
189
- return __awaiter(this, void 0, Promise, function () {
190
- var comp, payload, header, signable, hJson, magic, ver, hLen;
191
- return __generator(this, function (_b) {
192
- comp = (_a = opts.compression) !== null && _a !== void 0 ? _a : 'none';
193
- payload = comp === 'gzip' ? gzipSync(opts.sectionData) : opts.sectionData;
194
- header = {
195
- magic: 'RVFP', version: RVFP_VERSION,
196
- targetApplianceName: opts.targetName, targetApplianceVersion: opts.targetVersion,
197
- targetSection: opts.sectionId, patchVersion: opts.patchVersion,
198
- created: new Date().toISOString(), newSectionSize: payload.length,
199
- newSectionSha256: sha256(payload), compression: comp
200
- };
201
- if (opts.privateKey && opts.signedBy) {
202
- signable = Buffer.concat([Buffer.from(canonicalJson(header), 'utf-8'), payload]);
203
- header.signature = edSign(signable, opts.privateKey);
204
- header.signedBy = opts.signedBy;
205
- }
206
- hJson = Buffer.from(JSON.stringify(header), 'utf-8');
207
- magic = Buffer.from('RVFP');
208
- ver = Buffer.alloc(4);
209
- ver.writeUInt32LE(RVFP_VERSION, 0);
210
- hLen = Buffer.alloc(4);
211
- hLen.writeUInt32LE(hJson.length, 0);
212
- return [2 /*return*/, Buffer.concat([magic, ver, hLen, hJson, payload, sha256B(payload)])];
213
- });
214
- });
215
- };
216
- RvfaPatcher.parsePatchHeader = function (buf) {
158
+ static parsePatchHeader(buf) {
217
159
  if (buf.length < PRE)
218
160
  throw new Error('Buffer too small for RVFP preamble');
219
- var magic = buf.subarray(0, 4).toString('ascii');
161
+ const magic = buf.subarray(0, 4).toString('ascii');
220
162
  if (magic !== 'RVFP')
221
- throw new Error("Invalid RVFP magic: \"" + magic + "\"");
222
- var ver = buf.readUInt32LE(4);
163
+ throw new Error(`Invalid RVFP magic: "${magic}"`);
164
+ const ver = buf.readUInt32LE(4);
223
165
  if (ver !== RVFP_VERSION)
224
- throw new Error("Unsupported RVFP version: " + ver);
225
- var hLen = buf.readUInt32LE(8);
166
+ throw new Error(`Unsupported RVFP version: ${ver}`);
167
+ const hLen = buf.readUInt32LE(8);
226
168
  if (PRE + hLen > buf.length)
227
169
  throw new Error('Buffer too small for declared header');
228
- var h = JSON.parse(buf.subarray(PRE, PRE + hLen).toString('utf-8'));
170
+ const h = JSON.parse(buf.subarray(PRE, PRE + hLen).toString('utf-8'));
229
171
  if (h.magic !== 'RVFP')
230
172
  throw new Error('RVFP header magic mismatch');
231
173
  return h;
232
- };
233
- RvfaPatcher.verifyPatch = function (buf) {
234
- return __awaiter(this, void 0, Promise, function () {
235
- var errors, header, empty, _a, start, end, section;
236
- return __generator(this, function (_b) {
237
- errors = [];
238
- try {
239
- header = RvfaPatcher.parsePatchHeader(buf);
240
- }
241
- catch (e) {
242
- empty = {
243
- magic: 'RVFP', version: 0, targetApplianceName: '', targetApplianceVersion: '',
244
- targetSection: '', patchVersion: '', created: '', newSectionSize: 0,
245
- newSectionSha256: '', compression: 'none'
246
- };
247
- return [2 /*return*/, { valid: false, header: empty, errors: [e.message] }];
248
- }
249
- _a = patchData(buf), start = _a.start, end = _a.end, section = _a.section;
250
- if (end < start) {
251
- errors.push('Patch too small: no room for section data and footer');
252
- return [2 /*return*/, { valid: false, header: header, errors: errors }];
253
- }
254
- if (section.length !== header.newSectionSize)
255
- errors.push("Size mismatch: header=" + header.newSectionSize + ", actual=" + section.length);
256
- if (sha256(section) !== header.newSectionSha256)
257
- errors.push('Section SHA256 mismatch');
258
- if (!sha256B(section).equals(buf.subarray(buf.length - SHA_LEN)))
259
- errors.push('Footer SHA256 mismatch');
260
- return [2 /*return*/, { valid: errors.length === 0, header: header, errors: errors }];
261
- });
262
- });
263
- };
264
- RvfaPatcher.applyPatch = function (rvfaPath, patchBuf, opts) {
265
- var _a, _b;
266
- return __awaiter(this, void 0, Promise, function () {
267
- var doBackup, doVerify, header, sec, section, unsigned, signable, check, reader, e_1, rh, errs, backupPath, newData, writer, _i, _c, s, comp, newRvfa, tmpPath, e_2, vr, vResult, e_3;
268
- return __generator(this, function (_d) {
269
- switch (_d.label) {
270
- case 0:
271
- doBackup = (_a = opts === null || opts === void 0 ? void 0 : opts.backup) !== null && _a !== void 0 ? _a : true;
272
- doVerify = (_b = opts === null || opts === void 0 ? void 0 : opts.verify) !== null && _b !== void 0 ? _b : true;
273
- try {
274
- header = RvfaPatcher.parsePatchHeader(patchBuf);
275
- }
276
- catch (e) {
277
- return [2 /*return*/, failResult('', [e.message])];
278
- }
279
- sec = header.targetSection;
280
- // Verify signature
281
- if ((opts === null || opts === void 0 ? void 0 : opts.publicKey) && header.signature) {
282
- section = patchData(patchBuf).section;
283
- unsigned = __assign({}, header);
284
- delete unsigned.signature;
285
- delete unsigned.signedBy;
286
- signable = Buffer.concat([Buffer.from(canonicalJson(unsigned), 'utf-8'), section]);
287
- if (!edCheck(signable, header.signature, opts.publicKey))
288
- return [2 /*return*/, failResult(sec, ['Patch signature verification failed'])];
289
- }
290
- return [4 /*yield*/, RvfaPatcher.verifyPatch(patchBuf)];
291
- case 1:
292
- check = _d.sent();
293
- if (!check.valid)
294
- return [2 /*return*/, failResult(sec, check.errors)];
295
- _d.label = 2;
296
- case 2:
297
- _d.trys.push([2, 4, , 5]);
298
- return [4 /*yield*/, RvfaReader.fromFile(rvfaPath)];
299
- case 3:
300
- reader = _d.sent();
301
- return [3 /*break*/, 5];
302
- case 4:
303
- e_1 = _d.sent();
304
- return [2 /*return*/, failResult(sec, ["Failed to read RVFA: " + e_1.message])];
305
- case 5:
306
- rh = reader.getHeader();
307
- errs = [];
308
- if (rh.name !== header.targetApplianceName)
309
- errs.push("Name mismatch: patch=\"" + header.targetApplianceName + "\", file=\"" + rh.name + "\"");
310
- if (rh.appVersion !== header.targetApplianceVersion)
311
- errs.push("Version mismatch: patch=\"" + header.targetApplianceVersion + "\", file=\"" + rh.appVersion + "\"");
312
- if (errs.length)
313
- return [2 /*return*/, failResult(sec, errs)];
314
- if (!rh.sections.find(function (s) { return s.id === sec; }))
315
- return [2 /*return*/, failResult(sec, ["Section \"" + sec + "\" not found in appliance"])];
316
- if (!doBackup) return [3 /*break*/, 7];
317
- backupPath = rvfaPath + '.bak';
318
- return [4 /*yield*/, copyFile(rvfaPath, backupPath)];
319
- case 6:
320
- _d.sent();
321
- _d.label = 7;
322
- case 7:
323
- newData = patchData(patchBuf).section;
324
- if (header.compression === 'gzip')
325
- newData = gunzipSync(newData);
326
- writer = new RvfaWriter(__assign(__assign({}, rh), { sections: [] }));
327
- for (_i = 0, _c = rh.sections; _i < _c.length; _i++) {
328
- s = _c[_i];
329
- comp = s.compression === 'zstd' ? 'gzip' : s.compression;
330
- if (s.id === sec) {
331
- writer.addSection(s.id, newData, { compression: comp, type: s.type });
332
- }
333
- else {
334
- writer.addSection(s.id, reader.extractSection(s.id), { compression: comp, type: s.type });
335
- }
336
- }
337
- newRvfa = writer.build();
338
- tmpPath = rvfaPath + (".tmp." + Date.now());
339
- _d.label = 8;
340
- case 8:
341
- _d.trys.push([8, 11, , 15]);
342
- return [4 /*yield*/, writeFile(tmpPath, newRvfa)];
343
- case 9:
344
- _d.sent();
345
- return [4 /*yield*/, rename(tmpPath, rvfaPath)];
346
- case 10:
347
- _d.sent();
348
- return [3 /*break*/, 15];
349
- case 11:
350
- e_2 = _d.sent();
351
- return [4 /*yield*/, unlink(tmpPath)["catch"](function () { })];
352
- case 12:
353
- _d.sent();
354
- if (!backupPath) return [3 /*break*/, 14];
355
- return [4 /*yield*/, copyFile(backupPath, rvfaPath)["catch"](function () { })];
356
- case 13:
357
- _d.sent();
358
- _d.label = 14;
359
- case 14: return [2 /*return*/, failResult(sec, ["Atomic write failed: " + e_2.message], { backupPath: backupPath })];
360
- case 15:
361
- if (!doVerify) return [3 /*break*/, 24];
362
- _d.label = 16;
363
- case 16:
364
- _d.trys.push([16, 21, , 24]);
365
- return [4 /*yield*/, RvfaReader.fromFile(rvfaPath)];
366
- case 17:
367
- vr = _d.sent();
368
- vResult = vr.verify();
369
- if (!!vResult.valid) return [3 /*break*/, 20];
370
- if (!backupPath) return [3 /*break*/, 19];
371
- return [4 /*yield*/, copyFile(backupPath, rvfaPath)["catch"](function () { })];
372
- case 18:
373
- _d.sent();
374
- _d.label = 19;
375
- case 19: return [2 /*return*/, failResult(sec, ["Post-patch verification failed: " + vResult.errors.join('; ')], { backupPath: backupPath, newSize: newRvfa.length })];
376
- case 20: return [3 /*break*/, 24];
377
- case 21:
378
- e_3 = _d.sent();
379
- if (!backupPath) return [3 /*break*/, 23];
380
- return [4 /*yield*/, copyFile(backupPath, rvfaPath)["catch"](function () { })];
381
- case 22:
382
- _d.sent();
383
- _d.label = 23;
384
- case 23: return [2 /*return*/, failResult(sec, ["Post-patch verify error: " + e_3.message], { backupPath: backupPath, newSize: newRvfa.length })];
385
- case 24: return [2 /*return*/, { success: true, backupPath: backupPath, newSize: newRvfa.length, patchedSection: sec, errors: [] }];
174
+ }
175
+ static async verifyPatch(buf) {
176
+ const errors = [];
177
+ let header;
178
+ try {
179
+ header = RvfaPatcher.parsePatchHeader(buf);
180
+ }
181
+ catch (e) {
182
+ const empty = {
183
+ magic: 'RVFP', version: 0, targetApplianceName: '', targetApplianceVersion: '',
184
+ targetSection: '', patchVersion: '', created: '', newSectionSize: 0,
185
+ newSectionSha256: '', compression: 'none',
186
+ };
187
+ return { valid: false, header: empty, errors: [e.message] };
188
+ }
189
+ const { start, end, section } = patchData(buf);
190
+ if (end < start) {
191
+ errors.push('Patch too small: no room for section data and footer');
192
+ return { valid: false, header, errors };
193
+ }
194
+ if (section.length !== header.newSectionSize)
195
+ errors.push(`Size mismatch: header=${header.newSectionSize}, actual=${section.length}`);
196
+ if (sha256(section) !== header.newSectionSha256)
197
+ errors.push('Section SHA256 mismatch');
198
+ if (!sha256B(section).equals(buf.subarray(buf.length - SHA_LEN)))
199
+ errors.push('Footer SHA256 mismatch');
200
+ return { valid: errors.length === 0, header, errors };
201
+ }
202
+ static async applyPatch(rvfaPath, patchBuf, opts) {
203
+ const doBackup = opts?.backup ?? true;
204
+ const doVerify = opts?.verify ?? true;
205
+ // Parse & verify patch
206
+ let header;
207
+ try {
208
+ header = RvfaPatcher.parsePatchHeader(patchBuf);
209
+ }
210
+ catch (e) {
211
+ return failResult('', [e.message]);
212
+ }
213
+ const sec = header.targetSection;
214
+ // Verify signature
215
+ if (opts?.publicKey && header.signature) {
216
+ const { section } = patchData(patchBuf);
217
+ const unsigned = { ...header };
218
+ delete unsigned.signature;
219
+ delete unsigned.signedBy;
220
+ const signable = Buffer.concat([Buffer.from(canonicalJson(unsigned), 'utf-8'), section]);
221
+ if (!edCheck(signable, header.signature, opts.publicKey))
222
+ return failResult(sec, ['Patch signature verification failed']);
223
+ }
224
+ // Verify patch integrity
225
+ const check = await RvfaPatcher.verifyPatch(patchBuf);
226
+ if (!check.valid)
227
+ return failResult(sec, check.errors);
228
+ // Read target RVFA
229
+ let reader;
230
+ try {
231
+ reader = await RvfaReader.fromFile(rvfaPath);
232
+ }
233
+ catch (e) {
234
+ return failResult(sec, [`Failed to read RVFA: ${e.message}`]);
235
+ }
236
+ const rh = reader.getHeader();
237
+ // Verify target matches
238
+ const errs = [];
239
+ if (rh.name !== header.targetApplianceName)
240
+ errs.push(`Name mismatch: patch="${header.targetApplianceName}", file="${rh.name}"`);
241
+ if (rh.appVersion !== header.targetApplianceVersion)
242
+ errs.push(`Version mismatch: patch="${header.targetApplianceVersion}", file="${rh.appVersion}"`);
243
+ if (errs.length)
244
+ return failResult(sec, errs);
245
+ if (!rh.sections.find((s) => s.id === sec))
246
+ return failResult(sec, [`Section "${sec}" not found in appliance`]);
247
+ // Backup
248
+ let backupPath;
249
+ if (doBackup) {
250
+ backupPath = rvfaPath + '.bak';
251
+ await copyFile(rvfaPath, backupPath);
252
+ }
253
+ // Extract new section data from patch (decompress if needed)
254
+ let newData = patchData(patchBuf).section;
255
+ if (header.compression === 'gzip')
256
+ newData = gunzipSync(newData);
257
+ // Rebuild RVFA with replaced section
258
+ const writer = new RvfaWriter({ ...rh, sections: [] });
259
+ for (const s of rh.sections) {
260
+ const comp = s.compression === 'zstd' ? 'gzip' : s.compression;
261
+ if (s.id === sec) {
262
+ writer.addSection(s.id, newData, { compression: comp, type: s.type });
263
+ }
264
+ else {
265
+ writer.addSection(s.id, reader.extractSection(s.id), { compression: comp, type: s.type });
266
+ }
267
+ }
268
+ const newRvfa = writer.build();
269
+ // Atomic write (tmp + rename)
270
+ const tmpPath = rvfaPath + `.tmp.${Date.now()}`;
271
+ try {
272
+ await writeFile(tmpPath, newRvfa);
273
+ await rename(tmpPath, rvfaPath);
274
+ }
275
+ catch (e) {
276
+ await unlink(tmpPath).catch(() => { });
277
+ if (backupPath)
278
+ await copyFile(backupPath, rvfaPath).catch(() => { });
279
+ return failResult(sec, [`Atomic write failed: ${e.message}`], { backupPath });
280
+ }
281
+ // Post-patch verification with rollback
282
+ if (doVerify) {
283
+ try {
284
+ const vr = await RvfaReader.fromFile(rvfaPath);
285
+ const vResult = vr.verify();
286
+ if (!vResult.valid) {
287
+ if (backupPath)
288
+ await copyFile(backupPath, rvfaPath).catch(() => { });
289
+ return failResult(sec, [`Post-patch verification failed: ${vResult.errors.join('; ')}`], { backupPath, newSize: newRvfa.length });
386
290
  }
387
- });
388
- });
389
- };
390
- return RvfaPatcher;
391
- }());
392
- export { RvfaPatcher };
291
+ }
292
+ catch (e) {
293
+ if (backupPath)
294
+ await copyFile(backupPath, rvfaPath).catch(() => { });
295
+ return failResult(sec, [`Post-patch verify error: ${e.message}`], { backupPath, newSize: newRvfa.length });
296
+ }
297
+ }
298
+ return { success: true, backupPath, newSize: newRvfa.length, patchedSection: sec, errors: [] };
299
+ }
300
+ }
393
301
  // ── RvfaPublisher ────────────────────────────────────────────
394
- var RvfaPublisher = /** @class */ (function () {
395
- function RvfaPublisher(config) {
302
+ export class RvfaPublisher {
303
+ jwt;
304
+ gw;
305
+ api;
306
+ constructor(config) {
396
307
  this.jwt = config.pinataJwt || process.env.PINATA_API_JWT || '';
397
308
  this.gw = (config.gatewayUrl || DEFAULT_GW).replace(/\/+$/, '');
398
309
  this.api = (config.apiUrl || DEFAULT_API).replace(/\/+$/, '');
399
310
  if (!this.jwt)
400
311
  throw new Error('Pinata JWT required (config.pinataJwt or PINATA_API_JWT)');
401
312
  }
402
- RvfaPublisher.prototype.upload = function (fileName, data, kv) {
403
- return __awaiter(this, void 0, Promise, function () {
404
- var meta, _a, body, ct, res, r;
405
- return __generator(this, function (_b) {
406
- switch (_b.label) {
407
- case 0:
408
- meta = JSON.stringify({ name: fileName, keyvalues: kv });
409
- _a = multipart('file', fileName, data, meta), body = _a.body, ct = _a.ct;
410
- return [4 /*yield*/, pinataReq('POST', this.api + "/pinning/pinFileToIPFS", this.jwt, body, ct)];
411
- case 1:
412
- res = _b.sent();
413
- if (res.status !== 200)
414
- throw new Error("Pinata upload failed (HTTP " + res.status + "): " + JSON.stringify(res.data));
415
- r = res.data;
416
- return [2 /*return*/, {
417
- cid: r.IpfsHash, size: r.PinSize,
418
- gatewayUrl: this.gw + "/ipfs/" + r.IpfsHash, pinataUrl: this.api + "/pinning/pins/" + r.IpfsHash
419
- }];
420
- }
421
- });
422
- });
423
- };
424
- RvfaPublisher.prototype.publish = function (rvfaPath, meta) {
425
- return __awaiter(this, void 0, Promise, function () {
426
- var data, name;
427
- return __generator(this, function (_a) {
428
- switch (_a.label) {
429
- case 0: return [4 /*yield*/, readFile(rvfaPath)];
430
- case 1:
431
- data = _a.sent();
432
- name = (meta === null || meta === void 0 ? void 0 : meta.name) || rvfaPath.split('/').pop() || 'appliance.rvf';
433
- return [2 /*return*/, this.upload(name, data, {
434
- type: 'rvfa-appliance', version: (meta === null || meta === void 0 ? void 0 : meta.version) || '',
435
- profile: (meta === null || meta === void 0 ? void 0 : meta.profile) || '', description: (meta === null || meta === void 0 ? void 0 : meta.description) || ''
436
- })];
437
- }
438
- });
439
- });
440
- };
441
- RvfaPublisher.prototype.publishPatch = function (patchBuf, meta) {
442
- return __awaiter(this, void 0, Promise, function () {
443
- var name;
444
- return __generator(this, function (_a) {
445
- name = (meta === null || meta === void 0 ? void 0 : meta.name) || "patch-" + Date.now() + ".rvfp";
446
- return [2 /*return*/, this.upload(name, patchBuf, {
447
- type: 'rvfp-patch', version: (meta === null || meta === void 0 ? void 0 : meta.version) || '', description: (meta === null || meta === void 0 ? void 0 : meta.description) || ''
448
- })];
449
- });
450
- });
451
- };
452
- RvfaPublisher.prototype.fetch = function (cid, outputPath) {
453
- return __awaiter(this, void 0, Promise, function () {
454
- var data;
455
- return __generator(this, function (_a) {
456
- switch (_a.label) {
457
- case 0: return [4 /*yield*/, httpGet(this.gw + "/ipfs/" + cid)];
458
- case 1:
459
- data = _a.sent();
460
- return [4 /*yield*/, mkdir(dirname(outputPath), { recursive: true })];
461
- case 2:
462
- _a.sent();
463
- return [4 /*yield*/, writeFile(outputPath, data)];
464
- case 3:
465
- _a.sent();
466
- return [2 /*return*/];
467
- }
468
- });
469
- });
470
- };
471
- RvfaPublisher.prototype.list = function () {
472
- return __awaiter(this, void 0, Promise, function () {
473
- var res, d;
474
- return __generator(this, function (_a) {
475
- switch (_a.label) {
476
- case 0: return [4 /*yield*/, pinataReq('GET', this.api + "/data/pinList?status=pinned&pageLimit=100", this.jwt)];
477
- case 1:
478
- res = _a.sent();
479
- if (res.status !== 200)
480
- throw new Error("Pinata list failed (HTTP " + res.status + "): " + JSON.stringify(res.data));
481
- d = res.data;
482
- return [2 /*return*/, (d.rows || []).map(function (r) {
483
- var _a;
484
- return ({
485
- cid: r.ipfs_pin_hash, name: ((_a = r.metadata) === null || _a === void 0 ? void 0 : _a.name) || r.ipfs_pin_hash,
486
- size: r.size, date: r.date_pinned
487
- });
488
- })];
489
- }
490
- });
313
+ async upload(fileName, data, kv) {
314
+ const meta = JSON.stringify({ name: fileName, keyvalues: kv });
315
+ const { body, ct } = multipart('file', fileName, data, meta);
316
+ const res = await pinataReq('POST', `${this.api}/pinning/pinFileToIPFS`, this.jwt, body, ct);
317
+ if (res.status !== 200)
318
+ throw new Error(`Pinata upload failed (HTTP ${res.status}): ${JSON.stringify(res.data)}`);
319
+ const r = res.data;
320
+ return {
321
+ cid: r.IpfsHash, size: r.PinSize,
322
+ gatewayUrl: `${this.gw}/ipfs/${r.IpfsHash}`, pinataUrl: `${this.api}/pinning/pins/${r.IpfsHash}`,
323
+ };
324
+ }
325
+ async publish(rvfaPath, meta) {
326
+ const data = await readFile(rvfaPath);
327
+ const name = meta?.name || rvfaPath.split('/').pop() || 'appliance.rvf';
328
+ return this.upload(name, data, {
329
+ type: 'rvfa-appliance', version: meta?.version || '',
330
+ profile: meta?.profile || '', description: meta?.description || '',
491
331
  });
492
- };
493
- RvfaPublisher.prototype.pin = function (cid, name) {
494
- return __awaiter(this, void 0, Promise, function () {
495
- var body, res;
496
- return __generator(this, function (_a) {
497
- switch (_a.label) {
498
- case 0:
499
- body = Buffer.from(JSON.stringify({ hashToPin: cid, pinataMetadata: { name: name || cid } }));
500
- return [4 /*yield*/, pinataReq('POST', this.api + "/pinning/pinByHash", this.jwt, body, 'application/json')];
501
- case 1:
502
- res = _a.sent();
503
- if (res.status !== 200)
504
- throw new Error("Pinata pin failed (HTTP " + res.status + "): " + JSON.stringify(res.data));
505
- return [2 /*return*/];
506
- }
507
- });
332
+ }
333
+ async publishPatch(patchBuf, meta) {
334
+ const name = meta?.name || `patch-${Date.now()}.rvfp`;
335
+ return this.upload(name, patchBuf, {
336
+ type: 'rvfp-patch', version: meta?.version || '', description: meta?.description || '',
508
337
  });
509
- };
510
- return RvfaPublisher;
511
- }());
512
- export { RvfaPublisher };
338
+ }
339
+ async fetch(cid, outputPath) {
340
+ const data = await httpGet(`${this.gw}/ipfs/${cid}`);
341
+ await mkdir(dirname(outputPath), { recursive: true });
342
+ await writeFile(outputPath, data);
343
+ }
344
+ async list() {
345
+ const res = await pinataReq('GET', `${this.api}/data/pinList?status=pinned&pageLimit=100`, this.jwt);
346
+ if (res.status !== 200)
347
+ throw new Error(`Pinata list failed (HTTP ${res.status}): ${JSON.stringify(res.data)}`);
348
+ const d = res.data;
349
+ return (d.rows || []).map((r) => ({
350
+ cid: r.ipfs_pin_hash, name: r.metadata?.name || r.ipfs_pin_hash,
351
+ size: r.size, date: r.date_pinned,
352
+ }));
353
+ }
354
+ async pin(cid, name) {
355
+ const body = Buffer.from(JSON.stringify({ hashToPin: cid, pinataMetadata: { name: name || cid } }));
356
+ const res = await pinataReq('POST', `${this.api}/pinning/pinByHash`, this.jwt, body, 'application/json');
357
+ if (res.status !== 200)
358
+ throw new Error(`Pinata pin failed (HTTP ${res.status}): ${JSON.stringify(res.data)}`);
359
+ }
360
+ }
513
361
  // ── Convenience exports ──────────────────────────────────────
514
362
  export function createPublisher(config) {
515
- return new RvfaPublisher({ pinataJwt: config === null || config === void 0 ? void 0 : config.pinataJwt, gatewayUrl: config === null || config === void 0 ? void 0 : config.gatewayUrl, apiUrl: config === null || config === void 0 ? void 0 : config.apiUrl });
363
+ return new RvfaPublisher({ pinataJwt: config?.pinataJwt, gatewayUrl: config?.gatewayUrl, apiUrl: config?.apiUrl });
516
364
  }
517
- export function createAndVerifyPatch(options) {
518
- return __awaiter(this, void 0, Promise, function () {
519
- var patch, verification;
520
- return __generator(this, function (_a) {
521
- switch (_a.label) {
522
- case 0: return [4 /*yield*/, RvfaPatcher.createPatch(options)];
523
- case 1:
524
- patch = _a.sent();
525
- return [4 /*yield*/, RvfaPatcher.verifyPatch(patch)];
526
- case 2:
527
- verification = _a.sent();
528
- return [2 /*return*/, { patch: patch, verification: verification }];
529
- }
530
- });
531
- });
365
+ export async function createAndVerifyPatch(options) {
366
+ const patch = await RvfaPatcher.createPatch(options);
367
+ const verification = await RvfaPatcher.verifyPatch(patch);
368
+ return { patch, verification };
532
369
  }
533
370
  //# sourceMappingURL=rvfa-distribution.js.map