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
@@ -5,42 +5,6 @@
5
5
  * @module @claude-flow/cli/transfer/ipfs/upload
6
6
  * @version 3.0.0
7
7
  */
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
- var __generator = (this && this.__generator) || function (thisArg, body) {
18
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
19
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
20
- function verb(n) { return function (v) { return step([n, v]); }; }
21
- function step(op) {
22
- if (f) throw new TypeError("Generator is already executing.");
23
- while (_) try {
24
- 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;
25
- if (y = 0, t) op = [op[0] & 2, t.value];
26
- switch (op[0]) {
27
- case 0: case 1: t = op; break;
28
- case 4: _.label++; return { value: op[1], done: false };
29
- case 5: _.label++; y = op[1]; op = [0]; continue;
30
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
31
- default:
32
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
33
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
34
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
35
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
36
- if (t[2]) _.ops.pop();
37
- _.trys.pop(); continue;
38
- }
39
- op = body.call(thisArg, _);
40
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
41
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
42
- }
43
- };
44
8
  import * as crypto from 'crypto';
45
9
  /**
46
10
  * Get web3.storage token from environment or config
@@ -55,15 +19,15 @@ function getWeb3StorageToken() {
55
19
  * Uses CIDv1 with dag-pb codec and sha2-256 multihash
56
20
  */
57
21
  function generateDemoCID(content) {
58
- var hash = crypto.createHash('sha256').update(content).digest();
22
+ const hash = crypto.createHash('sha256').update(content).digest();
59
23
  // CIDv1 with dag-pb codec and sha2-256 multihash
60
- var prefix = Buffer.from([0x01, 0x70, 0x12, 0x20]);
61
- var cidBytes = Buffer.concat([prefix, hash]);
24
+ const prefix = Buffer.from([0x01, 0x70, 0x12, 0x20]);
25
+ const cidBytes = Buffer.concat([prefix, hash]);
62
26
  // Base32 encode
63
- var base32Chars = 'abcdefghijklmnopqrstuvwxyz234567';
64
- var result = 'bafybei';
65
- for (var i = 0; i < 44; i++) {
66
- var byte = cidBytes[i % cidBytes.length] || 0;
27
+ const base32Chars = 'abcdefghijklmnopqrstuvwxyz234567';
28
+ let result = 'bafybei';
29
+ for (let i = 0; i < 44; i++) {
30
+ const byte = cidBytes[i % cidBytes.length] || 0;
67
31
  result += base32Chars[byte % 32];
68
32
  }
69
33
  return result;
@@ -71,123 +35,98 @@ function generateDemoCID(content) {
71
35
  /**
72
36
  * Upload to web3.storage (real IPFS)
73
37
  */
74
- function uploadToWeb3Storage(content, options) {
75
- return __awaiter(this, void 0, Promise, function () {
76
- var token, endpoint, name, boundary, body, response, error, result, cid, gateway;
77
- return __generator(this, function (_a) {
78
- switch (_a.label) {
79
- case 0:
80
- token = options.apiKey || getWeb3StorageToken();
81
- if (!token) {
82
- throw new Error('Web3.storage token not found. Set WEB3_STORAGE_TOKEN environment variable.\n' +
83
- 'Get a free token at: https://web3.storage');
84
- }
85
- endpoint = options.endpoint || 'https://api.web3.storage';
86
- name = options.name || 'pattern.cfp.json';
87
- console.log("[IPFS] Uploading " + content.length + " bytes to web3.storage...");
88
- boundary = '----WebKitFormBoundary' + crypto.randomBytes(16).toString('hex');
89
- body = Buffer.concat([
90
- Buffer.from("--" + boundary + "\r\n"),
91
- Buffer.from("Content-Disposition: form-data; name=\"file\"; filename=\"" + name + "\"\r\n"),
92
- Buffer.from("Content-Type: application/json\r\n\r\n"),
93
- content,
94
- Buffer.from("\r\n--" + boundary + "--\r\n"),
95
- ]);
96
- return [4 /*yield*/, fetch(endpoint + "/upload", {
97
- method: 'POST',
98
- headers: {
99
- 'Authorization': "Bearer " + token,
100
- 'Content-Type': "multipart/form-data; boundary=" + boundary
101
- },
102
- body: body
103
- })];
104
- case 1:
105
- response = _a.sent();
106
- if (!!response.ok) return [3 /*break*/, 3];
107
- return [4 /*yield*/, response.text()];
108
- case 2:
109
- error = _a.sent();
110
- throw new Error("Web3.storage upload failed: " + response.status + " " + error);
111
- case 3: return [4 /*yield*/, response.json()];
112
- case 4:
113
- result = _a.sent();
114
- cid = result.cid;
115
- gateway = options.gateway || 'https://w3s.link';
116
- console.log("[IPFS] Upload complete!");
117
- console.log("[IPFS] CID: " + cid);
118
- return [2 /*return*/, {
119
- cid: cid,
120
- size: content.length,
121
- gateway: gateway,
122
- pinnedAt: new Date().toISOString(),
123
- url: gateway + "/ipfs/" + cid
124
- }];
125
- }
126
- });
38
+ async function uploadToWeb3Storage(content, options) {
39
+ const token = options.apiKey || getWeb3StorageToken();
40
+ if (!token) {
41
+ throw new Error('Web3.storage token not found. Set WEB3_STORAGE_TOKEN environment variable.\n' +
42
+ 'Get a free token at: https://web3.storage');
43
+ }
44
+ const endpoint = options.endpoint || 'https://api.web3.storage';
45
+ const name = options.name || 'pattern.cfp.json';
46
+ console.log(`[IPFS] Uploading ${content.length} bytes to web3.storage...`);
47
+ // Create FormData-like body for upload
48
+ const boundary = '----WebKitFormBoundary' + crypto.randomBytes(16).toString('hex');
49
+ const body = Buffer.concat([
50
+ Buffer.from(`--${boundary}\r\n`),
51
+ Buffer.from(`Content-Disposition: form-data; name="file"; filename="${name}"\r\n`),
52
+ Buffer.from(`Content-Type: application/json\r\n\r\n`),
53
+ content,
54
+ Buffer.from(`\r\n--${boundary}--\r\n`),
55
+ ]);
56
+ const response = await fetch(`${endpoint}/upload`, {
57
+ method: 'POST',
58
+ headers: {
59
+ 'Authorization': `Bearer ${token}`,
60
+ 'Content-Type': `multipart/form-data; boundary=${boundary}`,
61
+ },
62
+ body,
127
63
  });
64
+ if (!response.ok) {
65
+ const error = await response.text();
66
+ throw new Error(`Web3.storage upload failed: ${response.status} ${error}`);
67
+ }
68
+ const result = await response.json();
69
+ const cid = result.cid;
70
+ const gateway = options.gateway || 'https://w3s.link';
71
+ console.log(`[IPFS] Upload complete!`);
72
+ console.log(`[IPFS] CID: ${cid}`);
73
+ return {
74
+ cid,
75
+ size: content.length,
76
+ gateway,
77
+ pinnedAt: new Date().toISOString(),
78
+ url: `${gateway}/ipfs/${cid}`,
79
+ };
128
80
  }
129
81
  /**
130
82
  * Upload to Pinata
131
83
  */
132
- function uploadToPinata(content, options) {
133
- return __awaiter(this, void 0, Promise, function () {
134
- var apiKey, apiSecret, name, boundary, metadata, body, response, error, result, cid, gateway;
135
- return __generator(this, function (_a) {
136
- switch (_a.label) {
137
- case 0:
138
- apiKey = options.apiKey || process.env.PINATA_API_KEY;
139
- apiSecret = options.apiSecret || process.env.PINATA_API_SECRET;
140
- if (!apiKey || !apiSecret) {
141
- throw new Error('Pinata API credentials not found. Set PINATA_API_KEY and PINATA_API_SECRET.\n' +
142
- 'Get credentials at: https://pinata.cloud');
143
- }
144
- name = options.name || 'pattern.cfp.json';
145
- console.log("[IPFS] Uploading " + content.length + " bytes to Pinata...");
146
- boundary = '----WebKitFormBoundary' + crypto.randomBytes(16).toString('hex');
147
- metadata = JSON.stringify({ name: name });
148
- body = Buffer.concat([
149
- Buffer.from("--" + boundary + "\r\n"),
150
- Buffer.from("Content-Disposition: form-data; name=\"pinataMetadata\"\r\n\r\n"),
151
- Buffer.from(metadata + "\r\n"),
152
- Buffer.from("--" + boundary + "\r\n"),
153
- Buffer.from("Content-Disposition: form-data; name=\"file\"; filename=\"" + name + "\"\r\n"),
154
- Buffer.from("Content-Type: application/json\r\n\r\n"),
155
- content,
156
- Buffer.from("\r\n--" + boundary + "--\r\n"),
157
- ]);
158
- return [4 /*yield*/, fetch('https://api.pinata.cloud/pinning/pinFileToIPFS', {
159
- method: 'POST',
160
- headers: {
161
- 'pinata_api_key': apiKey,
162
- 'pinata_secret_api_key': apiSecret,
163
- 'Content-Type': "multipart/form-data; boundary=" + boundary
164
- },
165
- body: body
166
- })];
167
- case 1:
168
- response = _a.sent();
169
- if (!!response.ok) return [3 /*break*/, 3];
170
- return [4 /*yield*/, response.text()];
171
- case 2:
172
- error = _a.sent();
173
- throw new Error("Pinata upload failed: " + response.status + " " + error);
174
- case 3: return [4 /*yield*/, response.json()];
175
- case 4:
176
- result = _a.sent();
177
- cid = result.IpfsHash;
178
- gateway = options.gateway || 'https://gateway.pinata.cloud';
179
- console.log("[IPFS] Upload complete!");
180
- console.log("[IPFS] CID: " + cid);
181
- return [2 /*return*/, {
182
- cid: cid,
183
- size: content.length,
184
- gateway: gateway,
185
- pinnedAt: new Date().toISOString(),
186
- url: gateway + "/ipfs/" + cid
187
- }];
188
- }
189
- });
84
+ async function uploadToPinata(content, options) {
85
+ const apiKey = options.apiKey || process.env.PINATA_API_KEY;
86
+ const apiSecret = options.apiSecret || process.env.PINATA_API_SECRET;
87
+ if (!apiKey || !apiSecret) {
88
+ throw new Error('Pinata API credentials not found. Set PINATA_API_KEY and PINATA_API_SECRET.\n' +
89
+ 'Get credentials at: https://pinata.cloud');
90
+ }
91
+ const name = options.name || 'pattern.cfp.json';
92
+ console.log(`[IPFS] Uploading ${content.length} bytes to Pinata...`);
93
+ const boundary = '----WebKitFormBoundary' + crypto.randomBytes(16).toString('hex');
94
+ const metadata = JSON.stringify({ name });
95
+ const body = Buffer.concat([
96
+ Buffer.from(`--${boundary}\r\n`),
97
+ Buffer.from(`Content-Disposition: form-data; name="pinataMetadata"\r\n\r\n`),
98
+ Buffer.from(`${metadata}\r\n`),
99
+ Buffer.from(`--${boundary}\r\n`),
100
+ Buffer.from(`Content-Disposition: form-data; name="file"; filename="${name}"\r\n`),
101
+ Buffer.from(`Content-Type: application/json\r\n\r\n`),
102
+ content,
103
+ Buffer.from(`\r\n--${boundary}--\r\n`),
104
+ ]);
105
+ const response = await fetch('https://api.pinata.cloud/pinning/pinFileToIPFS', {
106
+ method: 'POST',
107
+ headers: {
108
+ 'pinata_api_key': apiKey,
109
+ 'pinata_secret_api_key': apiSecret,
110
+ 'Content-Type': `multipart/form-data; boundary=${boundary}`,
111
+ },
112
+ body,
190
113
  });
114
+ if (!response.ok) {
115
+ const error = await response.text();
116
+ throw new Error(`Pinata upload failed: ${response.status} ${error}`);
117
+ }
118
+ const result = await response.json();
119
+ const cid = result.IpfsHash;
120
+ const gateway = options.gateway || 'https://gateway.pinata.cloud';
121
+ console.log(`[IPFS] Upload complete!`);
122
+ console.log(`[IPFS] CID: ${cid}`);
123
+ return {
124
+ cid,
125
+ size: content.length,
126
+ gateway,
127
+ pinnedAt: new Date().toISOString(),
128
+ url: `${gateway}/ipfs/${cid}`,
129
+ };
191
130
  }
192
131
  /**
193
132
  * Upload content to IPFS
@@ -198,313 +137,228 @@ function uploadToPinata(content, options) {
198
137
  * - Pinata (PINATA_API_KEY + PINATA_API_SECRET) - Free 1GB tier
199
138
  * - Demo mode (generates deterministic CIDs when no credentials)
200
139
  */
201
- export function uploadToIPFS(content, options) {
202
- if (options === void 0) { options = {}; }
203
- return __awaiter(this, void 0, Promise, function () {
204
- var _a, pin, pinningService, _b, gateway, _c, name, localIPFS, web3Token, pinataKey, isAvailable, error_1, error_2, error_3, cid, size, result;
205
- return __generator(this, function (_d) {
206
- switch (_d.label) {
207
- case 0:
208
- _a = options.pin, pin = _a === void 0 ? true : _a, pinningService = options.pinningService, _b = options.gateway, gateway = _b === void 0 ? 'https://w3s.link' : _b, _c = options.name, name = _c === void 0 ? 'pattern' : _c;
209
- localIPFS = process.env.IPFS_API_URL;
210
- web3Token = getWeb3StorageToken();
211
- pinataKey = process.env.PINATA_API_KEY;
212
- if (!(localIPFS || pinningService === 'local')) return [3 /*break*/, 7];
213
- _d.label = 1;
214
- case 1:
215
- _d.trys.push([1, 6, , 7]);
216
- return [4 /*yield*/, checkLocalIPFSNode()];
217
- case 2:
218
- isAvailable = _d.sent();
219
- if (!isAvailable) return [3 /*break*/, 4];
220
- return [4 /*yield*/, uploadToLocalIPFS(content, options)];
221
- case 3: return [2 /*return*/, _d.sent()];
222
- case 4:
223
- console.warn("[IPFS] Local node at " + (localIPFS || 'localhost:5001') + " not available");
224
- _d.label = 5;
225
- case 5: return [3 /*break*/, 7];
226
- case 6:
227
- error_1 = _d.sent();
228
- console.warn("[IPFS] Local IPFS upload failed: " + error_1);
229
- return [3 /*break*/, 7];
230
- case 7:
231
- if (!(pinningService === 'pinata' || (pinataKey && !web3Token))) return [3 /*break*/, 11];
232
- _d.label = 8;
233
- case 8:
234
- _d.trys.push([8, 10, , 11]);
235
- return [4 /*yield*/, uploadToPinata(content, options)];
236
- case 9: return [2 /*return*/, _d.sent()];
237
- case 10:
238
- error_2 = _d.sent();
239
- console.warn("[IPFS] Pinata upload failed: " + error_2);
240
- return [3 /*break*/, 11];
241
- case 11:
242
- if (!(web3Token || pinningService === 'web3storage')) return [3 /*break*/, 15];
243
- _d.label = 12;
244
- case 12:
245
- _d.trys.push([12, 14, , 15]);
246
- return [4 /*yield*/, uploadToWeb3Storage(content, options)];
247
- case 13: return [2 /*return*/, _d.sent()];
248
- case 14:
249
- error_3 = _d.sent();
250
- console.warn("[IPFS] Web3.storage upload failed: " + error_3);
251
- return [3 /*break*/, 15];
252
- case 15:
253
- // Fall back to demo mode - WARN user prominently
254
- console.warn("\u26A0 [IPFS] DEMO MODE - No IPFS credentials configured");
255
- console.warn("\u26A0 [IPFS] Content will NOT be uploaded to decentralized storage");
256
- console.warn("\u26A0 [IPFS] To enable real uploads, configure one of:");
257
- console.warn("\u26A0 [IPFS] - IPFS_API_URL=http://YOUR_NODE:5001 (FREE - your own node)");
258
- console.warn("\u26A0 [IPFS] - WEB3_STORAGE_TOKEN (free 5GB at web3.storage)");
259
- console.warn("\u26A0 [IPFS] - PINATA_API_KEY + PINATA_SECRET_KEY (free tier available)");
260
- cid = generateDemoCID(content);
261
- size = content.length;
262
- console.log("[IPFS] Demo upload: " + size + " bytes");
263
- console.log("[IPFS] Name: " + name);
264
- result = {
265
- cid: cid,
266
- size: size,
267
- gateway: gateway,
268
- url: gateway + "/ipfs/" + cid
269
- };
270
- if (pin) {
271
- result.pinnedAt = new Date().toISOString();
272
- console.log("[IPFS] Demo pinned at: " + result.pinnedAt);
273
- }
274
- console.log("[IPFS] Demo CID: " + cid);
275
- console.log("[IPFS] Demo URL: " + result.url);
276
- return [2 /*return*/, result];
140
+ export async function uploadToIPFS(content, options = {}) {
141
+ const { pin = true, pinningService, gateway = 'https://w3s.link', name = 'pattern', } = options;
142
+ // Check environment variables
143
+ const localIPFS = process.env.IPFS_API_URL;
144
+ const web3Token = getWeb3StorageToken();
145
+ const pinataKey = process.env.PINATA_API_KEY;
146
+ // 1. Try local/custom IPFS node first (FREE - your own node)
147
+ if (localIPFS || pinningService === 'local') {
148
+ try {
149
+ const isAvailable = await checkLocalIPFSNode();
150
+ if (isAvailable) {
151
+ return await uploadToLocalIPFS(content, options);
277
152
  }
278
- });
279
- });
153
+ else {
154
+ console.warn(`[IPFS] Local node at ${localIPFS || 'localhost:5001'} not available`);
155
+ }
156
+ }
157
+ catch (error) {
158
+ console.warn(`[IPFS] Local IPFS upload failed: ${error}`);
159
+ }
160
+ }
161
+ // 2. Try Pinata
162
+ if (pinningService === 'pinata' || (pinataKey && !web3Token)) {
163
+ try {
164
+ return await uploadToPinata(content, options);
165
+ }
166
+ catch (error) {
167
+ console.warn(`[IPFS] Pinata upload failed: ${error}`);
168
+ }
169
+ }
170
+ // 3. Try Web3.storage
171
+ if (web3Token || pinningService === 'web3storage') {
172
+ try {
173
+ return await uploadToWeb3Storage(content, options);
174
+ }
175
+ catch (error) {
176
+ console.warn(`[IPFS] Web3.storage upload failed: ${error}`);
177
+ }
178
+ }
179
+ // Fall back to demo mode - WARN user prominently
180
+ console.warn(`⚠ [IPFS] DEMO MODE - No IPFS credentials configured`);
181
+ console.warn(`⚠ [IPFS] Content will NOT be uploaded to decentralized storage`);
182
+ console.warn(`⚠ [IPFS] To enable real uploads, configure one of:`);
183
+ console.warn(`⚠ [IPFS] - IPFS_API_URL=http://YOUR_NODE:5001 (FREE - your own node)`);
184
+ console.warn(`⚠ [IPFS] - WEB3_STORAGE_TOKEN (free 5GB at web3.storage)`);
185
+ console.warn(`⚠ [IPFS] - PINATA_API_KEY + PINATA_SECRET_KEY (free tier available)`);
186
+ const cid = generateDemoCID(content);
187
+ const size = content.length;
188
+ console.log(`[IPFS] Demo upload: ${size} bytes`);
189
+ console.log(`[IPFS] Name: ${name}`);
190
+ const result = {
191
+ cid,
192
+ size,
193
+ gateway,
194
+ url: `${gateway}/ipfs/${cid}`,
195
+ };
196
+ if (pin) {
197
+ result.pinnedAt = new Date().toISOString();
198
+ console.log(`[IPFS] Demo pinned at: ${result.pinnedAt}`);
199
+ }
200
+ console.log(`[IPFS] Demo CID: ${cid}`);
201
+ console.log(`[IPFS] Demo URL: ${result.url}`);
202
+ return result;
280
203
  }
281
204
  /**
282
205
  * Pin content by CID
283
206
  */
284
- export function pinContent(cid, options) {
285
- if (options === void 0) { options = {}; }
286
- return __awaiter(this, void 0, Promise, function () {
287
- var web3Token, pinataKey, pinataSecret, response, pinnedAt_1, error_4, pinnedAt;
288
- return __generator(this, function (_a) {
289
- switch (_a.label) {
290
- case 0:
291
- web3Token = getWeb3StorageToken();
292
- pinataKey = process.env.PINATA_API_KEY;
293
- if (!(pinataKey && options.service !== 'web3storage')) return [3 /*break*/, 4];
294
- _a.label = 1;
295
- case 1:
296
- _a.trys.push([1, 3, , 4]);
297
- pinataSecret = process.env.PINATA_API_SECRET;
298
- return [4 /*yield*/, fetch('https://api.pinata.cloud/pinning/pinByHash', {
299
- method: 'POST',
300
- headers: {
301
- 'Content-Type': 'application/json',
302
- 'pinata_api_key': pinataKey,
303
- 'pinata_secret_api_key': pinataSecret || ''
304
- },
305
- body: JSON.stringify({
306
- hashToPin: cid,
307
- pinataMetadata: { name: options.name || cid }
308
- })
309
- })];
310
- case 2:
311
- response = _a.sent();
312
- if (response.ok) {
313
- pinnedAt_1 = new Date().toISOString();
314
- console.log("[IPFS] Pinned " + cid + " via Pinata at " + pinnedAt_1);
315
- return [2 /*return*/, { success: true, pinnedAt: pinnedAt_1 }];
316
- }
317
- return [3 /*break*/, 4];
318
- case 3:
319
- error_4 = _a.sent();
320
- console.warn("[IPFS] Pinata pin failed: " + error_4);
321
- return [3 /*break*/, 4];
322
- case 4:
323
- pinnedAt = new Date().toISOString();
324
- console.log("[IPFS] Demo pinning " + cid + "...");
325
- return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 300); })];
326
- case 5:
327
- _a.sent();
328
- console.log("[IPFS] Demo pinned at " + pinnedAt);
329
- return [2 /*return*/, { success: true, pinnedAt: pinnedAt }];
207
+ export async function pinContent(cid, options = {}) {
208
+ const web3Token = getWeb3StorageToken();
209
+ const pinataKey = process.env.PINATA_API_KEY;
210
+ // Real pinning with Pinata
211
+ if (pinataKey && options.service !== 'web3storage') {
212
+ try {
213
+ const pinataSecret = process.env.PINATA_API_SECRET;
214
+ const response = await fetch('https://api.pinata.cloud/pinning/pinByHash', {
215
+ method: 'POST',
216
+ headers: {
217
+ 'Content-Type': 'application/json',
218
+ 'pinata_api_key': pinataKey,
219
+ 'pinata_secret_api_key': pinataSecret || '',
220
+ },
221
+ body: JSON.stringify({
222
+ hashToPin: cid,
223
+ pinataMetadata: { name: options.name || cid },
224
+ }),
225
+ });
226
+ if (response.ok) {
227
+ const pinnedAt = new Date().toISOString();
228
+ console.log(`[IPFS] Pinned ${cid} via Pinata at ${pinnedAt}`);
229
+ return { success: true, pinnedAt };
330
230
  }
331
- });
332
- });
231
+ }
232
+ catch (error) {
233
+ console.warn(`[IPFS] Pinata pin failed: ${error}`);
234
+ }
235
+ }
236
+ // Demo mode
237
+ const pinnedAt = new Date().toISOString();
238
+ console.log(`[IPFS] Demo pinning ${cid}...`);
239
+ await new Promise(resolve => setTimeout(resolve, 300));
240
+ console.log(`[IPFS] Demo pinned at ${pinnedAt}`);
241
+ return { success: true, pinnedAt };
333
242
  }
334
243
  /**
335
244
  * Unpin content by CID
336
245
  */
337
- export function unpinContent(cid, options) {
338
- if (options === void 0) { options = {}; }
339
- return __awaiter(this, void 0, Promise, function () {
340
- var pinataKey, pinataSecret, response, error_5;
341
- return __generator(this, function (_a) {
342
- switch (_a.label) {
343
- case 0:
344
- pinataKey = process.env.PINATA_API_KEY;
345
- if (!pinataKey) return [3 /*break*/, 4];
346
- _a.label = 1;
347
- case 1:
348
- _a.trys.push([1, 3, , 4]);
349
- pinataSecret = process.env.PINATA_API_SECRET;
350
- return [4 /*yield*/, fetch("https://api.pinata.cloud/pinning/unpin/" + cid, {
351
- method: 'DELETE',
352
- headers: {
353
- 'pinata_api_key': pinataKey,
354
- 'pinata_secret_api_key': pinataSecret || ''
355
- }
356
- })];
357
- case 2:
358
- response = _a.sent();
359
- if (response.ok) {
360
- console.log("[IPFS] Unpinned " + cid + " from Pinata");
361
- return [2 /*return*/, { success: true }];
362
- }
363
- return [3 /*break*/, 4];
364
- case 3:
365
- error_5 = _a.sent();
366
- console.warn("[IPFS] Pinata unpin failed: " + error_5);
367
- return [3 /*break*/, 4];
368
- case 4:
369
- // Demo mode
370
- console.log("[IPFS] Demo unpinning " + cid + "...");
371
- return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 200); })];
372
- case 5:
373
- _a.sent();
374
- console.log("[IPFS] Demo unpinned");
375
- return [2 /*return*/, { success: true }];
246
+ export async function unpinContent(cid, options = {}) {
247
+ const pinataKey = process.env.PINATA_API_KEY;
248
+ // Real unpinning with Pinata
249
+ if (pinataKey) {
250
+ try {
251
+ const pinataSecret = process.env.PINATA_API_SECRET;
252
+ const response = await fetch(`https://api.pinata.cloud/pinning/unpin/${cid}`, {
253
+ method: 'DELETE',
254
+ headers: {
255
+ 'pinata_api_key': pinataKey,
256
+ 'pinata_secret_api_key': pinataSecret || '',
257
+ },
258
+ });
259
+ if (response.ok) {
260
+ console.log(`[IPFS] Unpinned ${cid} from Pinata`);
261
+ return { success: true };
376
262
  }
377
- });
378
- });
263
+ }
264
+ catch (error) {
265
+ console.warn(`[IPFS] Pinata unpin failed: ${error}`);
266
+ }
267
+ }
268
+ // Demo mode
269
+ console.log(`[IPFS] Demo unpinning ${cid}...`);
270
+ await new Promise(resolve => setTimeout(resolve, 200));
271
+ console.log(`[IPFS] Demo unpinned`);
272
+ return { success: true };
379
273
  }
380
274
  /**
381
275
  * Check if content exists on IPFS
382
276
  */
383
- export function checkContent(cid, gateway) {
384
- if (gateway === void 0) { gateway = 'https://w3s.link'; }
385
- return __awaiter(this, void 0, Promise, function () {
386
- var response, size, error_6;
387
- return __generator(this, function (_a) {
388
- switch (_a.label) {
389
- case 0:
390
- console.log("[IPFS] Checking " + cid + "...");
391
- _a.label = 1;
392
- case 1:
393
- _a.trys.push([1, 3, , 4]);
394
- return [4 /*yield*/, fetch(gateway + "/ipfs/" + cid, {
395
- method: 'HEAD'
396
- })];
397
- case 2:
398
- response = _a.sent();
399
- if (response.ok) {
400
- size = parseInt(response.headers.get('content-length') || '0', 10);
401
- console.log("[IPFS] Content exists, size: " + size);
402
- return [2 /*return*/, { exists: true, size: size }];
403
- }
404
- return [3 /*break*/, 4];
405
- case 3:
406
- error_6 = _a.sent();
407
- console.log("[IPFS] Content check failed: " + error_6);
408
- return [3 /*break*/, 4];
409
- case 4: return [2 /*return*/, { exists: false }];
410
- }
277
+ export async function checkContent(cid, gateway = 'https://w3s.link') {
278
+ console.log(`[IPFS] Checking ${cid}...`);
279
+ try {
280
+ const response = await fetch(`${gateway}/ipfs/${cid}`, {
281
+ method: 'HEAD',
411
282
  });
412
- });
283
+ if (response.ok) {
284
+ const size = parseInt(response.headers.get('content-length') || '0', 10);
285
+ console.log(`[IPFS] Content exists, size: ${size}`);
286
+ return { exists: true, size };
287
+ }
288
+ }
289
+ catch (error) {
290
+ console.log(`[IPFS] Content check failed: ${error}`);
291
+ }
292
+ return { exists: false };
413
293
  }
414
294
  /**
415
295
  * Get gateway URL for CID
416
296
  */
417
- export function getGatewayURL(cid, gateway) {
418
- if (gateway === void 0) { gateway = 'https://w3s.link'; }
419
- return gateway + "/ipfs/" + cid;
297
+ export function getGatewayURL(cid, gateway = 'https://w3s.link') {
298
+ return `${gateway}/ipfs/${cid}`;
420
299
  }
421
300
  /**
422
301
  * Get IPNS URL for name
423
302
  */
424
- export function getIPNSURL(name, gateway) {
425
- if (gateway === void 0) { gateway = 'https://w3s.link'; }
426
- return gateway + "/ipns/" + name;
303
+ export function getIPNSURL(name, gateway = 'https://w3s.link') {
304
+ return `${gateway}/ipns/${name}`;
427
305
  }
428
306
  /**
429
307
  * Upload to a local/custom IPFS node
430
308
  * Connect to your own IPFS daemon via HTTP API
431
309
  */
432
- function uploadToLocalIPFS(content, options) {
433
- return __awaiter(this, void 0, Promise, function () {
434
- var apiUrl, name, boundary, body, response, error, result, cid, gatewayUrl;
435
- return __generator(this, function (_a) {
436
- switch (_a.label) {
437
- case 0:
438
- apiUrl = process.env.IPFS_API_URL || 'http://localhost:5001';
439
- name = options.name || 'pattern.cfp.json';
440
- console.log("[IPFS] Uploading " + content.length + " bytes to " + apiUrl + "...");
441
- boundary = '----IPFSBoundary' + crypto.randomBytes(16).toString('hex');
442
- body = Buffer.concat([
443
- Buffer.from("--" + boundary + "\r\n"),
444
- Buffer.from("Content-Disposition: form-data; name=\"file\"; filename=\"" + name + "\"\r\n"),
445
- Buffer.from("Content-Type: application/json\r\n\r\n"),
446
- content,
447
- Buffer.from("\r\n--" + boundary + "--\r\n"),
448
- ]);
449
- return [4 /*yield*/, fetch(apiUrl + "/api/v0/add?pin=" + (options.pin !== false), {
450
- method: 'POST',
451
- headers: {
452
- 'Content-Type': "multipart/form-data; boundary=" + boundary
453
- },
454
- body: body
455
- })];
456
- case 1:
457
- response = _a.sent();
458
- if (!!response.ok) return [3 /*break*/, 3];
459
- return [4 /*yield*/, response.text()];
460
- case 2:
461
- error = _a.sent();
462
- throw new Error("Local IPFS upload failed: " + response.status + " " + error);
463
- case 3: return [4 /*yield*/, response.json()];
464
- case 4:
465
- result = _a.sent();
466
- cid = result.Hash;
467
- gatewayUrl = process.env.IPFS_GATEWAY_URL || options.gateway || 'https://ipfs.io';
468
- console.log("[IPFS] Upload complete!");
469
- console.log("[IPFS] CID: " + cid);
470
- return [2 /*return*/, {
471
- cid: cid,
472
- size: content.length,
473
- gateway: gatewayUrl,
474
- pinnedAt: options.pin !== false ? new Date().toISOString() : undefined,
475
- url: gatewayUrl + "/ipfs/" + cid
476
- }];
477
- }
478
- });
310
+ async function uploadToLocalIPFS(content, options) {
311
+ const apiUrl = process.env.IPFS_API_URL || 'http://localhost:5001';
312
+ const name = options.name || 'pattern.cfp.json';
313
+ console.log(`[IPFS] Uploading ${content.length} bytes to ${apiUrl}...`);
314
+ const boundary = '----IPFSBoundary' + crypto.randomBytes(16).toString('hex');
315
+ const body = Buffer.concat([
316
+ Buffer.from(`--${boundary}\r\n`),
317
+ Buffer.from(`Content-Disposition: form-data; name="file"; filename="${name}"\r\n`),
318
+ Buffer.from(`Content-Type: application/json\r\n\r\n`),
319
+ content,
320
+ Buffer.from(`\r\n--${boundary}--\r\n`),
321
+ ]);
322
+ const response = await fetch(`${apiUrl}/api/v0/add?pin=${options.pin !== false}`, {
323
+ method: 'POST',
324
+ headers: {
325
+ 'Content-Type': `multipart/form-data; boundary=${boundary}`,
326
+ },
327
+ body,
479
328
  });
329
+ if (!response.ok) {
330
+ const error = await response.text();
331
+ throw new Error(`Local IPFS upload failed: ${response.status} ${error}`);
332
+ }
333
+ const result = await response.json();
334
+ const cid = result.Hash;
335
+ // Try to get external gateway URL if configured
336
+ const gatewayUrl = process.env.IPFS_GATEWAY_URL || options.gateway || 'https://ipfs.io';
337
+ console.log(`[IPFS] Upload complete!`);
338
+ console.log(`[IPFS] CID: ${cid}`);
339
+ return {
340
+ cid,
341
+ size: content.length,
342
+ gateway: gatewayUrl,
343
+ pinnedAt: options.pin !== false ? new Date().toISOString() : undefined,
344
+ url: `${gatewayUrl}/ipfs/${cid}`,
345
+ };
480
346
  }
481
347
  /**
482
348
  * Check if local IPFS node is available
483
349
  */
484
- function checkLocalIPFSNode() {
485
- return __awaiter(this, void 0, Promise, function () {
486
- var apiUrl, response, _a;
487
- return __generator(this, function (_b) {
488
- switch (_b.label) {
489
- case 0:
490
- apiUrl = process.env.IPFS_API_URL || 'http://localhost:5001';
491
- _b.label = 1;
492
- case 1:
493
- _b.trys.push([1, 3, , 4]);
494
- return [4 /*yield*/, fetch(apiUrl + "/api/v0/id", {
495
- method: 'POST',
496
- signal: AbortSignal.timeout(2000)
497
- })];
498
- case 2:
499
- response = _b.sent();
500
- return [2 /*return*/, response.ok];
501
- case 3:
502
- _a = _b.sent();
503
- return [2 /*return*/, false];
504
- case 4: return [2 /*return*/];
505
- }
350
+ async function checkLocalIPFSNode() {
351
+ const apiUrl = process.env.IPFS_API_URL || 'http://localhost:5001';
352
+ try {
353
+ const response = await fetch(`${apiUrl}/api/v0/id`, {
354
+ method: 'POST',
355
+ signal: AbortSignal.timeout(2000),
506
356
  });
507
- });
357
+ return response.ok;
358
+ }
359
+ catch {
360
+ return false;
361
+ }
508
362
  }
509
363
  /**
510
364
  * Check if real IPFS credentials are available
@@ -516,29 +370,29 @@ export function hasIPFSCredentials() {
516
370
  * Get IPFS service status
517
371
  */
518
372
  export function getIPFSServiceStatus() {
519
- var localIPFS = process.env.IPFS_API_URL;
520
- var web3Token = getWeb3StorageToken();
521
- var pinataKey = process.env.PINATA_API_KEY;
373
+ const localIPFS = process.env.IPFS_API_URL;
374
+ const web3Token = getWeb3StorageToken();
375
+ const pinataKey = process.env.PINATA_API_KEY;
522
376
  if (localIPFS) {
523
377
  return {
524
378
  service: 'local',
525
379
  configured: true,
526
- message: "Local IPFS node configured at " + localIPFS + " - FREE uploads enabled",
527
- apiUrl: localIPFS
380
+ message: `Local IPFS node configured at ${localIPFS} - FREE uploads enabled`,
381
+ apiUrl: localIPFS,
528
382
  };
529
383
  }
530
384
  if (web3Token) {
531
385
  return {
532
386
  service: 'web3storage',
533
387
  configured: true,
534
- message: 'Web3.storage configured - real IPFS uploads enabled'
388
+ message: 'Web3.storage configured - real IPFS uploads enabled',
535
389
  };
536
390
  }
537
391
  if (pinataKey) {
538
392
  return {
539
393
  service: 'pinata',
540
394
  configured: true,
541
- message: 'Pinata configured - real IPFS uploads enabled'
395
+ message: 'Pinata configured - real IPFS uploads enabled',
542
396
  };
543
397
  }
544
398
  return {
@@ -547,7 +401,7 @@ export function getIPFSServiceStatus() {
547
401
  message: 'No IPFS credentials - using demo mode. Options:\n' +
548
402
  ' 1. IPFS_API_URL=http://YOUR_NODE:5001 (FREE - your own node)\n' +
549
403
  ' 2. WEB3_STORAGE_TOKEN (free 5GB at web3.storage)\n' +
550
- ' 3. PINATA_API_KEY (free 1GB at pinata.cloud)'
404
+ ' 3. PINATA_API_KEY (free 1GB at pinata.cloud)',
551
405
  };
552
406
  }
553
407
  /**