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,76 +6,20 @@
6
6
  * [4B magic "RVFA"] [4B version u32LE] [4B header_len u32LE]
7
7
  * [header_len B JSON header] [section data ...] [32B SHA256 footer]
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
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
57
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
58
- if (ar || !(i in from)) {
59
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
60
- ar[i] = from[i];
61
- }
62
- }
63
- return to.concat(ar || Array.prototype.slice.call(from));
64
- };
65
9
  import { createHash } from 'node:crypto';
66
10
  import { gzipSync, gunzipSync } from 'node:zlib';
67
11
  import { readFile } from 'node:fs/promises';
68
12
  // ---------------------------------------------------------------------------
69
13
  // Constants
70
14
  // ---------------------------------------------------------------------------
71
- export var RVFA_MAGIC = Buffer.from('RVFA');
72
- export var RVFA_VERSION = 1;
73
- var MAGIC_SIZE = 4;
74
- var VERSION_SIZE = 4;
75
- var HEADER_LEN_SIZE = 4;
76
- var PREAMBLE_SIZE = MAGIC_SIZE + VERSION_SIZE + HEADER_LEN_SIZE; // 12
77
- var SHA256_SIZE = 32;
78
- var MAX_HEADER_JSON_SIZE = 1024 * 1024; // 1 MB
15
+ export const RVFA_MAGIC = Buffer.from('RVFA');
16
+ export const RVFA_VERSION = 1;
17
+ const MAGIC_SIZE = 4;
18
+ const VERSION_SIZE = 4;
19
+ const HEADER_LEN_SIZE = 4;
20
+ const PREAMBLE_SIZE = MAGIC_SIZE + VERSION_SIZE + HEADER_LEN_SIZE; // 12
21
+ const SHA256_SIZE = 32;
22
+ const MAX_HEADER_JSON_SIZE = 1024 * 1024; // 1 MB
79
23
  // ---------------------------------------------------------------------------
80
24
  // Helpers
81
25
  // ---------------------------------------------------------------------------
@@ -89,35 +33,35 @@ function sha256Bytes(data) {
89
33
  export function formatSize(bytes) {
90
34
  if (bytes < 0)
91
35
  return '0 B';
92
- var units = ['B', 'KB', 'MB', 'GB', 'TB'];
93
- var idx = 0;
94
- var value = bytes;
36
+ const units = ['B', 'KB', 'MB', 'GB', 'TB'];
37
+ let idx = 0;
38
+ let value = bytes;
95
39
  while (value >= 1024 && idx < units.length - 1) {
96
40
  value /= 1024;
97
41
  idx++;
98
42
  }
99
- return idx === 0 ? value + " " + units[idx] : value.toFixed(1) + " " + units[idx];
43
+ return idx === 0 ? `${value} ${units[idx]}` : `${value.toFixed(1)} ${units[idx]}`;
100
44
  }
101
45
  /** Create a sensible default header for a given profile. */
102
46
  export function createDefaultHeader(profile) {
103
- var modelDefaults = {
47
+ const modelDefaults = {
104
48
  cloud: { provider: 'api-vault', vaultEncryption: 'aes-256-gcm' },
105
49
  hybrid: {
106
50
  provider: 'hybrid',
107
51
  engine: 'ruvllm-0.1.0',
108
52
  models: ['phi-3-mini-q4'],
109
- vaultEncryption: 'aes-256-gcm'
53
+ vaultEncryption: 'aes-256-gcm',
110
54
  },
111
55
  offline: {
112
56
  provider: 'ruvllm',
113
57
  engine: 'ruvllm-0.1.0',
114
- models: ['phi-3-mini-q4']
115
- }
58
+ models: ['phi-3-mini-q4'],
59
+ },
116
60
  };
117
- var capDefaults = {
61
+ const capDefaults = {
118
62
  cloud: ['mcp', 'swarm', 'memory', 'hooks', 'neural', 'api-vault'],
119
63
  hybrid: ['mcp', 'swarm', 'memory', 'hooks', 'neural', 'ruvllm', 'api-vault'],
120
- offline: ['mcp', 'swarm', 'memory', 'hooks', 'neural', 'ruvllm']
64
+ offline: ['mcp', 'swarm', 'memory', 'hooks', 'neural', 'ruvllm'],
121
65
  };
122
66
  return {
123
67
  magic: 'RVFA',
@@ -126,27 +70,27 @@ export function createDefaultHeader(profile) {
126
70
  appVersion: '3.5.0',
127
71
  arch: 'x86_64',
128
72
  platform: 'linux',
129
- profile: profile,
73
+ profile,
130
74
  created: new Date().toISOString(),
131
75
  sections: [],
132
76
  boot: {
133
77
  entrypoint: '/opt/ruflo/bin/ruflo',
134
78
  args: ['--appliance'],
135
79
  env: {},
136
- isolation: profile === 'cloud' ? 'container' : 'native'
80
+ isolation: profile === 'cloud' ? 'container' : 'native',
137
81
  },
138
82
  models: modelDefaults[profile],
139
- capabilities: capDefaults[profile]
83
+ capabilities: capDefaults[profile],
140
84
  };
141
85
  }
142
86
  /** Type-guard that validates an unknown value is a well-formed RvfaHeader. */
143
87
  export function validateHeader(header) {
144
88
  if (typeof header !== 'object' || header === null)
145
89
  return false;
146
- var h = header;
147
- var str = function (v) { return typeof v === 'string'; };
148
- var obj = function (v) { return typeof v === 'object' && v !== null; };
149
- var oneOf = function (v, vals) { return vals.includes(v); };
90
+ const h = header;
91
+ const str = (v) => typeof v === 'string';
92
+ const obj = (v) => typeof v === 'object' && v !== null;
93
+ const oneOf = (v, vals) => vals.includes(v);
150
94
  if (h.magic !== 'RVFA' || typeof h.version !== 'number' || h.version < 1)
151
95
  return false;
152
96
  if (!str(h.name) || !str(h.appVersion) || !str(h.arch) || !str(h.platform))
@@ -157,7 +101,7 @@ export function validateHeader(header) {
157
101
  return false;
158
102
  if (!obj(h.boot))
159
103
  return false;
160
- var boot = h.boot;
104
+ const boot = h.boot;
161
105
  if (!str(boot.entrypoint) || !Array.isArray(boot.args) || !obj(boot.env))
162
106
  return false;
163
107
  if (!oneOf(boot.isolation, ['container', 'microvm', 'native']))
@@ -166,11 +110,10 @@ export function validateHeader(header) {
166
110
  return false;
167
111
  if (!oneOf(h.models.provider, ['ruvllm', 'api-vault', 'hybrid']))
168
112
  return false;
169
- for (var _i = 0, _a = h.sections; _i < _a.length; _i++) {
170
- var sec = _a[_i];
113
+ for (const sec of h.sections) {
171
114
  if (!obj(sec))
172
115
  return false;
173
- var s = sec;
116
+ const s = sec;
174
117
  if (!str(s.id) || !str(s.type) || !str(s.sha256))
175
118
  return false;
176
119
  if (typeof s.offset !== 'number' || typeof s.size !== 'number')
@@ -182,13 +125,13 @@ export function validateHeader(header) {
182
125
  }
183
126
  return true;
184
127
  }
185
- var RvfaWriter = /** @class */ (function () {
186
- function RvfaWriter(partial) {
187
- var _a;
188
- this.staged = [];
189
- var profile = (_a = partial.profile) !== null && _a !== void 0 ? _a : 'cloud';
190
- var defaults = createDefaultHeader(profile);
191
- this.header = __assign(__assign(__assign({}, defaults), partial), { sections: [] });
128
+ export class RvfaWriter {
129
+ header;
130
+ staged = [];
131
+ constructor(partial) {
132
+ const profile = partial.profile ?? 'cloud';
133
+ const defaults = createDefaultHeader(profile);
134
+ this.header = { ...defaults, ...partial, sections: [] };
192
135
  }
193
136
  /**
194
137
  * Add a section to the appliance image.
@@ -197,12 +140,11 @@ var RvfaWriter = /** @class */ (function () {
197
140
  * @param data Raw (uncompressed) section payload.
198
141
  * @param options Optional compression and MIME type overrides.
199
142
  */
200
- RvfaWriter.prototype.addSection = function (id, data, options) {
201
- var _a, _b;
202
- var compression = (_a = options === null || options === void 0 ? void 0 : options.compression) !== null && _a !== void 0 ? _a : 'gzip';
203
- var mimeType = (_b = options === null || options === void 0 ? void 0 : options.type) !== null && _b !== void 0 ? _b : 'application/octet-stream';
204
- var compressed;
205
- var actualCompression = compression;
143
+ addSection(id, data, options) {
144
+ const compression = options?.compression ?? 'gzip';
145
+ const mimeType = options?.type ?? 'application/octet-stream';
146
+ let compressed;
147
+ let actualCompression = compression;
206
148
  if (compression === 'gzip') {
207
149
  compressed = gzipSync(data);
208
150
  }
@@ -214,16 +156,16 @@ var RvfaWriter = /** @class */ (function () {
214
156
  else {
215
157
  compressed = data;
216
158
  }
217
- var hash = sha256(compressed);
159
+ const hash = sha256(compressed);
218
160
  this.staged.push({
219
- id: id,
161
+ id,
220
162
  type: mimeType,
221
163
  data: compressed,
222
164
  originalSize: data.length,
223
165
  sha256: hash,
224
- compression: actualCompression
166
+ compression: actualCompression,
225
167
  });
226
- };
168
+ }
227
169
  /**
228
170
  * Assemble the final RVFA binary image.
229
171
  *
@@ -233,27 +175,27 @@ var RvfaWriter = /** @class */ (function () {
233
175
  * [section 0 bytes] [section 1 bytes] ...
234
176
  * [32B SHA256 of all section bytes combined]
235
177
  */
236
- RvfaWriter.prototype.build = function () {
178
+ build() {
237
179
  // Build section descriptors with placeholder offsets
238
- var sectionDescriptors = this.staged.map(function (s) { return ({
180
+ const sectionDescriptors = this.staged.map((s) => ({
239
181
  id: s.id,
240
182
  type: s.type,
241
183
  offset: 0,
242
184
  size: s.data.length,
243
185
  originalSize: s.originalSize,
244
186
  sha256: s.sha256,
245
- compression: s.compression
246
- }); });
187
+ compression: s.compression,
188
+ }));
247
189
  // Iteratively compute offsets: the header contains the offsets as JSON,
248
190
  // so changing offsets can change the header length. We converge quickly.
249
191
  this.header.sections = sectionDescriptors;
250
- var headerJson = Buffer.from(JSON.stringify(this.header), 'utf-8');
251
- var prevLen = -1;
252
- for (var attempt = 0; attempt < 5 && headerJson.length !== prevLen; attempt++) {
192
+ let headerJson = Buffer.from(JSON.stringify(this.header), 'utf-8');
193
+ let prevLen = -1;
194
+ for (let attempt = 0; attempt < 5 && headerJson.length !== prevLen; attempt++) {
253
195
  prevLen = headerJson.length;
254
- var dataAreaStart = PREAMBLE_SIZE + headerJson.length;
255
- var cursor = dataAreaStart;
256
- for (var i = 0; i < this.staged.length; i++) {
196
+ const dataAreaStart = PREAMBLE_SIZE + headerJson.length;
197
+ let cursor = dataAreaStart;
198
+ for (let i = 0; i < this.staged.length; i++) {
257
199
  sectionDescriptors[i].offset = cursor;
258
200
  cursor += this.staged[i].data.length;
259
201
  }
@@ -261,16 +203,16 @@ var RvfaWriter = /** @class */ (function () {
261
203
  headerJson = Buffer.from(JSON.stringify(this.header), 'utf-8');
262
204
  }
263
205
  // Build preamble buffers
264
- var magicBuf = Buffer.from('RVFA');
265
- var versionBuf = Buffer.alloc(VERSION_SIZE);
206
+ const magicBuf = Buffer.from('RVFA');
207
+ const versionBuf = Buffer.alloc(VERSION_SIZE);
266
208
  versionBuf.writeUInt32LE(RVFA_VERSION, 0);
267
- var headerLenBuf = Buffer.alloc(HEADER_LEN_SIZE);
209
+ const headerLenBuf = Buffer.alloc(HEADER_LEN_SIZE);
268
210
  headerLenBuf.writeUInt32LE(headerJson.length, 0);
269
211
  // Concatenate section data
270
- var sectionBuffers = this.staged.map(function (s) { return s.data; });
271
- var allSectionData = Buffer.concat(sectionBuffers);
212
+ const sectionBuffers = this.staged.map((s) => s.data);
213
+ const allSectionData = Buffer.concat(sectionBuffers);
272
214
  // Footer: SHA256 of all section data combined
273
- var footer = sha256Bytes(allSectionData);
215
+ const footer = sha256Bytes(allSectionData);
274
216
  return Buffer.concat([
275
217
  magicBuf,
276
218
  versionBuf,
@@ -279,119 +221,108 @@ var RvfaWriter = /** @class */ (function () {
279
221
  allSectionData,
280
222
  footer,
281
223
  ]);
282
- };
283
- return RvfaWriter;
284
- }());
285
- export { RvfaWriter };
224
+ }
225
+ }
286
226
  // ---------------------------------------------------------------------------
287
227
  // RvfaReader
288
228
  // ---------------------------------------------------------------------------
289
- var RvfaReader = /** @class */ (function () {
290
- function RvfaReader(buf, header) {
229
+ export class RvfaReader {
230
+ buf;
231
+ header;
232
+ constructor(buf, header) {
291
233
  this.buf = buf;
292
234
  this.header = header;
293
235
  }
294
236
  /** Parse an RVFA image from an in-memory Buffer. */
295
- RvfaReader.fromBuffer = function (buf) {
237
+ static fromBuffer(buf) {
296
238
  if (buf.length < PREAMBLE_SIZE) {
297
239
  throw new Error('Buffer too small to contain RVFA preamble');
298
240
  }
299
241
  // Magic
300
- var magic = buf.subarray(0, MAGIC_SIZE).toString('ascii');
242
+ const magic = buf.subarray(0, MAGIC_SIZE).toString('ascii');
301
243
  if (magic !== 'RVFA') {
302
- throw new Error("Invalid RVFA magic: expected \"RVFA\", got \"" + magic + "\"");
244
+ throw new Error(`Invalid RVFA magic: expected "RVFA", got "${magic}"`);
303
245
  }
304
246
  // Version
305
- var version = buf.readUInt32LE(MAGIC_SIZE);
247
+ const version = buf.readUInt32LE(MAGIC_SIZE);
306
248
  if (version !== RVFA_VERSION) {
307
- throw new Error("Unsupported RVFA version: " + version + " (expected " + RVFA_VERSION + ")");
249
+ throw new Error(`Unsupported RVFA version: ${version} (expected ${RVFA_VERSION})`);
308
250
  }
309
251
  // Header length
310
- var headerLen = buf.readUInt32LE(MAGIC_SIZE + VERSION_SIZE);
252
+ const headerLen = buf.readUInt32LE(MAGIC_SIZE + VERSION_SIZE);
311
253
  if (headerLen > MAX_HEADER_JSON_SIZE) {
312
- throw new Error("Header JSON exceeds maximum size (" + headerLen + " > " + MAX_HEADER_JSON_SIZE + ")");
254
+ throw new Error(`Header JSON exceeds maximum size (${headerLen} > ${MAX_HEADER_JSON_SIZE})`);
313
255
  }
314
256
  if (PREAMBLE_SIZE + headerLen > buf.length) {
315
257
  throw new Error('Buffer too small to contain declared header');
316
258
  }
317
259
  // Parse header JSON
318
- var headerSlice = buf.subarray(PREAMBLE_SIZE, PREAMBLE_SIZE + headerLen);
319
- var parsed;
260
+ const headerSlice = buf.subarray(PREAMBLE_SIZE, PREAMBLE_SIZE + headerLen);
261
+ let parsed;
320
262
  try {
321
263
  parsed = JSON.parse(headerSlice.toString('utf-8'));
322
264
  }
323
- catch (_a) {
265
+ catch {
324
266
  throw new Error('Failed to parse RVFA header JSON');
325
267
  }
326
268
  if (!validateHeader(parsed)) {
327
269
  throw new Error('RVFA header failed validation');
328
270
  }
329
- var header = parsed;
271
+ const header = parsed;
330
272
  // Bounds-check every section offset
331
- var totalSize = buf.length;
332
- for (var _i = 0, _b = header.sections; _i < _b.length; _i++) {
333
- var sec = _b[_i];
273
+ const totalSize = buf.length;
274
+ for (const sec of header.sections) {
334
275
  if (sec.offset < 0 || sec.size < 0) {
335
- throw new Error("Section \"" + sec.id + "\" has negative offset or size");
276
+ throw new Error(`Section "${sec.id}" has negative offset or size`);
336
277
  }
337
278
  if (sec.offset + sec.size > totalSize - SHA256_SIZE) {
338
- throw new Error("Section \"" + sec.id + "\" extends beyond buffer " +
339
- ("(offset=" + sec.offset + ", size=" + sec.size + ", bufLen=" + totalSize + ")"));
279
+ throw new Error(`Section "${sec.id}" extends beyond buffer ` +
280
+ `(offset=${sec.offset}, size=${sec.size}, bufLen=${totalSize})`);
340
281
  }
341
282
  }
342
283
  // Check for overlapping sections
343
- var sorted = __spreadArray([], header.sections, true).sort(function (a, b) { return a.offset - b.offset; });
344
- for (var i = 1; i < sorted.length; i++) {
345
- var prev = sorted[i - 1];
346
- var curr = sorted[i];
284
+ const sorted = [...header.sections].sort((a, b) => a.offset - b.offset);
285
+ for (let i = 1; i < sorted.length; i++) {
286
+ const prev = sorted[i - 1];
287
+ const curr = sorted[i];
347
288
  if (prev.offset + prev.size > curr.offset) {
348
- throw new Error("Sections \"" + prev.id + "\" and \"" + curr.id + "\" overlap " +
349
- ("(" + prev.offset + "+" + prev.size + " > " + curr.offset + ")"));
289
+ throw new Error(`Sections "${prev.id}" and "${curr.id}" overlap ` +
290
+ `(${prev.offset}+${prev.size} > ${curr.offset})`);
350
291
  }
351
292
  }
352
293
  return new RvfaReader(buf, header);
353
- };
294
+ }
354
295
  /** Read an RVFA image from a file path. */
355
- RvfaReader.fromFile = function (path) {
356
- return __awaiter(this, void 0, Promise, function () {
357
- var data;
358
- return __generator(this, function (_a) {
359
- switch (_a.label) {
360
- case 0:
361
- if (path.includes('\0')) {
362
- throw new Error('Path contains null bytes');
363
- }
364
- return [4 /*yield*/, readFile(path)];
365
- case 1:
366
- data = _a.sent();
367
- return [2 /*return*/, RvfaReader.fromBuffer(data)];
368
- }
369
- });
370
- });
371
- };
296
+ static async fromFile(path) {
297
+ if (path.includes('\0')) {
298
+ throw new Error('Path contains null bytes');
299
+ }
300
+ const data = await readFile(path);
301
+ return RvfaReader.fromBuffer(data);
302
+ }
372
303
  /** Return the parsed header. */
373
- RvfaReader.prototype.getHeader = function () {
304
+ getHeader() {
374
305
  return this.header;
375
- };
306
+ }
376
307
  /** List all sections declared in the header. */
377
- RvfaReader.prototype.getSections = function () {
308
+ getSections() {
378
309
  return this.header.sections;
379
- };
310
+ }
380
311
  /**
381
312
  * Extract and decompress a section by its id.
382
313
  *
383
314
  * @param id The section identifier (e.g. 'kernel', 'runtime').
384
315
  * @returns The decompressed section payload.
385
316
  */
386
- RvfaReader.prototype.extractSection = function (id) {
387
- var sec = this.header.sections.find(function (s) { return s.id === id; });
317
+ extractSection(id) {
318
+ const sec = this.header.sections.find((s) => s.id === id);
388
319
  if (!sec) {
389
- throw new Error("Section \"" + id + "\" not found");
320
+ throw new Error(`Section "${id}" not found`);
390
321
  }
391
322
  if (sec.offset + sec.size > this.buf.length - SHA256_SIZE) {
392
- throw new Error("Section \"" + id + "\" exceeds buffer bounds");
323
+ throw new Error(`Section "${id}" exceeds buffer bounds`);
393
324
  }
394
- var raw = this.buf.subarray(sec.offset, sec.offset + sec.size);
325
+ const raw = this.buf.subarray(sec.offset, sec.offset + sec.size);
395
326
  if (sec.compression === 'gzip') {
396
327
  return gunzipSync(raw);
397
328
  }
@@ -400,13 +331,13 @@ var RvfaReader = /** @class */ (function () {
400
331
  try {
401
332
  return gunzipSync(raw);
402
333
  }
403
- catch (_a) {
334
+ catch {
404
335
  throw new Error('zstd decompression is not supported in this environment');
405
336
  }
406
337
  }
407
338
  // compression === 'none'
408
339
  return Buffer.from(raw);
409
- };
340
+ }
410
341
  /**
411
342
  * Verify the integrity of the RVFA image.
412
343
  *
@@ -416,50 +347,47 @@ var RvfaReader = /** @class */ (function () {
416
347
  * 3. SHA256 of each section's compressed data
417
348
  * 4. SHA256 footer (all section data combined)
418
349
  */
419
- RvfaReader.prototype.verify = function () {
420
- var errors = [];
350
+ verify() {
351
+ const errors = [];
421
352
  // 1. Magic
422
- var magic = this.buf.subarray(0, MAGIC_SIZE).toString('ascii');
353
+ const magic = this.buf.subarray(0, MAGIC_SIZE).toString('ascii');
423
354
  if (magic !== 'RVFA') {
424
- errors.push("Invalid magic: \"" + magic + "\"");
355
+ errors.push(`Invalid magic: "${magic}"`);
425
356
  }
426
357
  // 2. Version
427
- var version = this.buf.readUInt32LE(MAGIC_SIZE);
358
+ const version = this.buf.readUInt32LE(MAGIC_SIZE);
428
359
  if (version !== RVFA_VERSION) {
429
- errors.push("Unsupported version: " + version);
360
+ errors.push(`Unsupported version: ${version}`);
430
361
  }
431
362
  // 3. Per-section SHA256
432
- var sectionDataParts = [];
433
- for (var _i = 0, _a = this.header.sections; _i < _a.length; _i++) {
434
- var sec = _a[_i];
363
+ const sectionDataParts = [];
364
+ for (const sec of this.header.sections) {
435
365
  if (sec.offset + sec.size > this.buf.length - SHA256_SIZE) {
436
- errors.push("Section \"" + sec.id + "\" extends beyond buffer");
366
+ errors.push(`Section "${sec.id}" extends beyond buffer`);
437
367
  continue;
438
368
  }
439
- var raw = this.buf.subarray(sec.offset, sec.offset + sec.size);
369
+ const raw = this.buf.subarray(sec.offset, sec.offset + sec.size);
440
370
  sectionDataParts.push(raw);
441
- var actual = sha256(raw);
371
+ const actual = sha256(raw);
442
372
  if (actual !== sec.sha256) {
443
- errors.push("Section \"" + sec.id + "\" SHA256 mismatch: " +
444
- ("expected " + sec.sha256 + ", got " + actual));
373
+ errors.push(`Section "${sec.id}" SHA256 mismatch: ` +
374
+ `expected ${sec.sha256}, got ${actual}`);
445
375
  }
446
376
  }
447
377
  // 4. Footer SHA256
448
378
  if (this.buf.length >= SHA256_SIZE) {
449
- var allSections = Buffer.concat(sectionDataParts);
450
- var expectedFooter = sha256Bytes(allSections);
451
- var actualFooter = this.buf.subarray(this.buf.length - SHA256_SIZE);
379
+ const allSections = Buffer.concat(sectionDataParts);
380
+ const expectedFooter = sha256Bytes(allSections);
381
+ const actualFooter = this.buf.subarray(this.buf.length - SHA256_SIZE);
452
382
  if (!expectedFooter.equals(actualFooter)) {
453
- errors.push("Footer SHA256 mismatch: expected " + expectedFooter.toString('hex') + ", " +
454
- ("got " + actualFooter.toString('hex')));
383
+ errors.push(`Footer SHA256 mismatch: expected ${expectedFooter.toString('hex')}, ` +
384
+ `got ${actualFooter.toString('hex')}`);
455
385
  }
456
386
  }
457
387
  else {
458
388
  errors.push('Buffer too small to contain SHA256 footer');
459
389
  }
460
- return { valid: errors.length === 0, errors: errors };
461
- };
462
- return RvfaReader;
463
- }());
464
- export { RvfaReader };
390
+ return { valid: errors.length === 0, errors };
391
+ }
392
+ }
465
393
  //# sourceMappingURL=rvfa-format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rvfa-format.js","sourceRoot":"","sources":["../../../src/appliance/rvfa-format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rvfa-format.js","sourceRoot":"","sources":["../../../src/appliance/rvfa-format.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAE9B,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,aAAa,GAAG,UAAU,GAAG,YAAY,GAAG,eAAe,CAAC,CAAC,KAAK;AACxE,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;AA6CjD,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,MAAM,CAAC,IAAY;IAC1B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACpD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5B,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,OAAO,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,KAAK,IAAI,IAAI,CAAC;QACd,GAAG,EAAE,CAAC;IACR,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,mBAAmB,CACjC,OAAuC;IAEvC,MAAM,aAAa,GAAoC;QACrD,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE;QAChE,MAAM,EAAE;YACN,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,CAAC,eAAe,CAAC;YACzB,eAAe,EAAE,aAAa;SAC/B;QACD,OAAO,EAAE;YACP,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,CAAC,eAAe,CAAC;SAC1B;KACF,CAAC;IAEF,MAAM,WAAW,GAA6B;QAC5C,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC;QACjE,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC;QAC5E,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;KACjE,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,OAAO;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,OAAO;QACjB,OAAO;QACP,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjC,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE;YACJ,UAAU,EAAE,sBAAsB;YAClC,IAAI,EAAE,CAAC,aAAa,CAAC;YACrB,GAAG,EAAE,EAAE;YACP,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;SACxD;QACD,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC;QAC9B,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAChE,MAAM,CAAC,GAAG,MAAiC,CAAC;IAC5C,MAAM,GAAG,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;IAClD,MAAM,GAAG,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC;IAChE,MAAM,KAAK,GAAG,CAAC,CAAU,EAAE,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAW,CAAC,CAAC;IAEzE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACvF,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACzF,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IAElG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,IAA+B,CAAC;IAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACvF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7E,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,CAAC,KAAK,CAAE,CAAC,CAAC,MAAkC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5G,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,QAAqB,EAAE,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,CAAC,GAAG,GAA8B,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/D,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC7E,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAWD,MAAM,OAAO,UAAU;IACb,MAAM,CAAa;IACnB,MAAM,GAAoB,EAAE,CAAC;IAErC,YAAY,OAA4B;QACtC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;QAC3C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC1D,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CACR,EAAU,EACV,IAAY,EACZ,OAAmE;QAEnE,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,MAAM,CAAC;QACnD,MAAM,QAAQ,GAAG,OAAO,EAAE,IAAI,IAAI,0BAA0B,CAAC;QAE7D,IAAI,UAAkB,CAAC;QACvB,IAAI,iBAAiB,GAA6B,WAAW,CAAC;QAE9D,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3B,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAClC,yDAAyD;YACzD,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5B,iBAAiB,GAAG,MAAM,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAEhC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,EAAE;YACF,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,UAAU;YAChB,YAAY,EAAE,IAAI,CAAC,MAAM;YACzB,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,iBAAiB;SAC/B,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK;QACH,qDAAqD;QACrD,MAAM,kBAAkB,GAAkB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChE,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC,CAAC;QAEJ,wEAAwE;QACxE,yEAAyE;QACzE,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,kBAAkB,CAAC;QAC1C,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QACnE,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QAEjB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;YAC9E,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;YAC5B,MAAM,aAAa,GAAG,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC;YACxD,IAAI,MAAM,GAAG,aAAa,CAAC;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;gBACtC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YACvC,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,kBAAkB,CAAC;YAC1C,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;QAED,yBAAyB;QACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC9C,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACnD,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEjD,2BAA2B;QAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAErD,8CAA8C;QAC9C,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;QAE3C,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,QAAQ;YACR,UAAU;YACV,YAAY;YACZ,UAAU;YACV,cAAc;YACd,MAAM;SACP,CAAC,CAAC;IACL,CAAC;CACF;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAC9E,MAAM,OAAO,UAAU;IACb,GAAG,CAAS;IACZ,MAAM,CAAa;IAE3B,YAAoB,GAAW,EAAE,MAAkB;QACjD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,oDAAoD;IACpD,MAAM,CAAC,UAAU,CAAC,GAAW;QAC3B,IAAI,GAAG,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,QAAQ;QACR,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,GAAG,CAAC,CAAC;QACzE,CAAC;QAED,UAAU;QACV,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,6BAA6B,OAAO,cAAc,YAAY,GAAG,CAClE,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,GAAG,YAAY,CAAC,CAAC;QAC9D,IAAI,SAAS,GAAG,oBAAoB,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,qCAAqC,SAAS,MAAM,oBAAoB,GAAG,CAC5E,CAAC;QACJ,CAAC;QACD,IAAI,aAAa,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QAED,oBAAoB;QACpB,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC,CAAC;QAC3E,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,MAAM,GAAG,MAAoB,CAAC;QAEpC,oCAAoC;QACpC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,+BAA+B,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,SAAS,GAAG,WAAW,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CACb,YAAY,GAAG,CAAC,EAAE,0BAA0B;oBAC1C,WAAW,GAAG,CAAC,MAAM,UAAU,GAAG,CAAC,IAAI,YAAY,SAAS,GAAG,CAClE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,EAAE,YAAY;oBAC/C,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,MAAM,GAAG,CACnD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,2CAA2C;IAC3C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAY;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,gCAAgC;IAChC,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,gDAAgD;IAChD,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,EAAU;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QAEjE,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YAC/B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YAC/B,uEAAuE;YACvE,IAAI,CAAC;gBACH,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM;QACJ,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,WAAW;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,mBAAmB,KAAK,GAAG,CAAC,CAAC;QAC3C,CAAC;QAED,aAAa;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,wBAAwB;QACxB,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,yBAAyB,CAAC,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;YACjE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CACT,YAAY,GAAG,CAAC,EAAE,qBAAqB;oBACrC,YAAY,GAAG,CAAC,MAAM,SAAS,MAAM,EAAE,CAC1C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACpD,MAAM,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;YAEtE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,IAAI,CACT,oCAAoC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;oBACpE,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CACxC,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAChD,CAAC;CACF"}