agentvault 1.0.1 → 1.0.5

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 (928) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README.md +66 -6
  3. package/dist/cli/commands/approve.d.ts.map +1 -0
  4. package/dist/cli/commands/approve.js +362 -6
  5. package/dist/cli/commands/approve.js.map +1 -0
  6. package/dist/cli/commands/archive.d.ts.map +1 -0
  7. package/dist/cli/commands/archive.js +5 -5
  8. package/dist/cli/commands/archive.js.map +1 -0
  9. package/dist/cli/commands/backup.d.ts.map +1 -0
  10. package/dist/cli/commands/backup.js +308 -25
  11. package/dist/cli/commands/backup.js.map +1 -0
  12. package/dist/cli/commands/cloud-backup.d.ts.map +1 -0
  13. package/dist/cli/commands/cloud-backup.js +29 -12
  14. package/dist/cli/commands/cloud-backup.js.map +1 -0
  15. package/dist/cli/commands/cron.d.ts +14 -0
  16. package/dist/cli/commands/cron.d.ts.map +1 -0
  17. package/dist/cli/commands/cron.js +144 -0
  18. package/dist/cli/commands/cron.js.map +1 -0
  19. package/dist/cli/commands/cycles.d.ts.map +1 -0
  20. package/dist/cli/commands/cycles.js.map +1 -0
  21. package/dist/cli/commands/decrypt.d.ts.map +1 -0
  22. package/dist/cli/commands/decrypt.js +2 -2
  23. package/dist/cli/commands/decrypt.js.map +1 -0
  24. package/dist/cli/commands/deploy.d.ts.map +1 -0
  25. package/dist/cli/commands/deploy.js +1 -1
  26. package/dist/cli/commands/deploy.js.map +1 -0
  27. package/dist/cli/commands/exec.d.ts.map +1 -0
  28. package/dist/cli/commands/exec.js +2 -2
  29. package/dist/cli/commands/exec.js.map +1 -0
  30. package/dist/cli/commands/fetch.d.ts +3 -0
  31. package/dist/cli/commands/fetch.d.ts.map +1 -0
  32. package/dist/cli/commands/fetch.js +72 -8
  33. package/dist/cli/commands/fetch.js.map +1 -0
  34. package/dist/cli/commands/health.d.ts.map +1 -0
  35. package/dist/cli/commands/health.js +57 -2
  36. package/dist/cli/commands/health.js.map +1 -0
  37. package/dist/cli/commands/identity.d.ts.map +1 -0
  38. package/dist/cli/commands/identity.js.map +1 -0
  39. package/dist/cli/commands/inference.d.ts.map +1 -0
  40. package/dist/cli/commands/inference.js +5 -5
  41. package/dist/cli/commands/inference.js.map +1 -0
  42. package/dist/cli/commands/info.d.ts.map +1 -0
  43. package/dist/cli/commands/info.js.map +1 -0
  44. package/dist/cli/commands/init.d.ts +19 -2
  45. package/dist/cli/commands/init.d.ts.map +1 -0
  46. package/dist/cli/commands/init.js +162 -37
  47. package/dist/cli/commands/init.js.map +1 -0
  48. package/dist/cli/commands/instrument.d.ts.map +1 -0
  49. package/dist/cli/commands/instrument.js.map +1 -0
  50. package/dist/cli/commands/list.d.ts.map +1 -0
  51. package/dist/cli/commands/list.js +4 -4
  52. package/dist/cli/commands/list.js.map +1 -0
  53. package/dist/cli/commands/logs.d.ts.map +1 -0
  54. package/dist/cli/commands/logs.js.map +1 -0
  55. package/dist/cli/commands/mcp.d.ts +4 -0
  56. package/dist/cli/commands/mcp.d.ts.map +1 -0
  57. package/dist/cli/commands/mcp.js +228 -0
  58. package/dist/cli/commands/mcp.js.map +1 -0
  59. package/dist/cli/commands/memory.d.ts +26 -0
  60. package/dist/cli/commands/memory.d.ts.map +1 -0
  61. package/dist/cli/commands/memory.js +509 -0
  62. package/dist/cli/commands/memory.js.map +1 -0
  63. package/dist/cli/commands/mint.d.ts +25 -0
  64. package/dist/cli/commands/mint.d.ts.map +1 -0
  65. package/dist/cli/commands/mint.js +276 -0
  66. package/dist/cli/commands/mint.js.map +1 -0
  67. package/dist/cli/commands/mirror.d.ts +19 -0
  68. package/dist/cli/commands/mirror.d.ts.map +1 -0
  69. package/dist/cli/commands/mirror.js +216 -0
  70. package/dist/cli/commands/mirror.js.map +1 -0
  71. package/dist/cli/commands/monitor.d.ts.map +1 -0
  72. package/dist/cli/commands/monitor.js.map +1 -0
  73. package/dist/cli/commands/network.d.ts.map +1 -0
  74. package/dist/cli/commands/network.js.map +1 -0
  75. package/dist/cli/commands/orchestrate.d.ts +35 -0
  76. package/dist/cli/commands/orchestrate.d.ts.map +1 -0
  77. package/dist/cli/commands/orchestrate.js +190 -0
  78. package/dist/cli/commands/orchestrate.js.map +1 -0
  79. package/dist/cli/commands/package.d.ts.map +1 -0
  80. package/dist/cli/commands/package.js +2 -2
  81. package/dist/cli/commands/package.js.map +1 -0
  82. package/dist/cli/commands/pilot.d.ts +17 -0
  83. package/dist/cli/commands/pilot.d.ts.map +1 -0
  84. package/dist/cli/commands/pilot.js +490 -0
  85. package/dist/cli/commands/pilot.js.map +1 -0
  86. package/dist/cli/commands/polytician.d.ts +4 -0
  87. package/dist/cli/commands/polytician.d.ts.map +1 -0
  88. package/dist/cli/commands/polytician.js +229 -0
  89. package/dist/cli/commands/polytician.js.map +1 -0
  90. package/dist/cli/commands/profile.d.ts.map +1 -0
  91. package/dist/cli/commands/profile.js +2 -2
  92. package/dist/cli/commands/profile.js.map +1 -0
  93. package/dist/cli/commands/promote.d.ts.map +1 -0
  94. package/dist/cli/commands/promote.js.map +1 -0
  95. package/dist/cli/commands/rebase.d.ts +85 -0
  96. package/dist/cli/commands/rebase.d.ts.map +1 -0
  97. package/dist/cli/commands/rebase.js +175 -0
  98. package/dist/cli/commands/rebase.js.map +1 -0
  99. package/dist/cli/commands/rebuild.d.ts.map +1 -0
  100. package/dist/cli/commands/rebuild.js +2 -2
  101. package/dist/cli/commands/rebuild.js.map +1 -0
  102. package/dist/cli/commands/repo.d.ts +19 -0
  103. package/dist/cli/commands/repo.d.ts.map +1 -0
  104. package/dist/cli/commands/repo.js +187 -0
  105. package/dist/cli/commands/repo.js.map +1 -0
  106. package/dist/cli/commands/rollback.d.ts.map +1 -0
  107. package/dist/cli/commands/rollback.js.map +1 -0
  108. package/dist/cli/commands/safehouse.d.ts +11 -0
  109. package/dist/cli/commands/safehouse.d.ts.map +1 -0
  110. package/dist/cli/commands/safehouse.js +323 -0
  111. package/dist/cli/commands/safehouse.js.map +1 -0
  112. package/dist/cli/commands/show.d.ts.map +1 -0
  113. package/dist/cli/commands/show.js +1 -1
  114. package/dist/cli/commands/show.js.map +1 -0
  115. package/dist/cli/commands/skills.d.ts +12 -0
  116. package/dist/cli/commands/skills.d.ts.map +1 -0
  117. package/dist/cli/commands/skills.js +248 -0
  118. package/dist/cli/commands/skills.js.map +1 -0
  119. package/dist/cli/commands/stats.d.ts.map +1 -0
  120. package/dist/cli/commands/stats.js +2 -2
  121. package/dist/cli/commands/stats.js.map +1 -0
  122. package/dist/cli/commands/status.d.ts +3 -1
  123. package/dist/cli/commands/status.d.ts.map +1 -0
  124. package/dist/cli/commands/status.js +33 -8
  125. package/dist/cli/commands/status.js.map +1 -0
  126. package/dist/cli/commands/test.d.ts.map +1 -0
  127. package/dist/cli/commands/test.js.map +1 -0
  128. package/dist/cli/commands/tokens.d.ts.map +1 -0
  129. package/dist/cli/commands/tokens.js.map +1 -0
  130. package/dist/cli/commands/trace.d.ts.map +1 -0
  131. package/dist/cli/commands/trace.js +4 -4
  132. package/dist/cli/commands/trace.js.map +1 -0
  133. package/dist/cli/commands/vault.d.ts +7 -0
  134. package/dist/cli/commands/vault.d.ts.map +1 -0
  135. package/dist/cli/commands/vault.js +551 -0
  136. package/dist/cli/commands/vault.js.map +1 -0
  137. package/dist/cli/commands/wallet-export.d.ts.map +1 -0
  138. package/dist/cli/commands/wallet-export.js +1 -1
  139. package/dist/cli/commands/wallet-export.js.map +1 -0
  140. package/dist/cli/commands/wallet-history.d.ts.map +1 -0
  141. package/dist/cli/commands/wallet-history.js +2 -26
  142. package/dist/cli/commands/wallet-history.js.map +1 -0
  143. package/dist/cli/commands/wallet-import.d.ts.map +1 -0
  144. package/dist/cli/commands/wallet-import.js.map +1 -0
  145. package/dist/cli/commands/wallet-multi-send.d.ts.map +1 -0
  146. package/dist/cli/commands/wallet-multi-send.js.map +1 -0
  147. package/dist/cli/commands/wallet-process-queue.d.ts.map +1 -0
  148. package/dist/cli/commands/wallet-process-queue.js +2 -23
  149. package/dist/cli/commands/wallet-process-queue.js.map +1 -0
  150. package/dist/cli/commands/wallet-sign.d.ts.map +1 -0
  151. package/dist/cli/commands/wallet-sign.js +3 -27
  152. package/dist/cli/commands/wallet-sign.js.map +1 -0
  153. package/dist/cli/commands/wallet.d.ts +62 -1
  154. package/dist/cli/commands/wallet.d.ts.map +1 -0
  155. package/dist/cli/commands/wallet.js +313 -43
  156. package/dist/cli/commands/wallet.js.map +1 -0
  157. package/dist/cli/commands/wiki.d.ts +29 -0
  158. package/dist/cli/commands/wiki.d.ts.map +1 -0
  159. package/dist/cli/commands/wiki.js +528 -0
  160. package/dist/cli/commands/wiki.js.map +1 -0
  161. package/dist/cli/index.d.ts +2 -2
  162. package/dist/cli/index.d.ts.map +1 -0
  163. package/dist/cli/index.js +77 -5
  164. package/dist/cli/index.js.map +1 -0
  165. package/dist/cli/merge.d.ts +70 -0
  166. package/dist/cli/merge.d.ts.map +1 -0
  167. package/dist/cli/merge.js +232 -0
  168. package/dist/cli/merge.js.map +1 -0
  169. package/dist/src/archival/archive-manager.d.ts +89 -0
  170. package/dist/src/archival/archive-manager.d.ts.map +1 -0
  171. package/dist/src/archival/archive-manager.js +300 -0
  172. package/dist/src/archival/archive-manager.js.map +1 -0
  173. package/dist/src/archival/arweave-archiver.d.ts +173 -0
  174. package/dist/src/archival/arweave-archiver.d.ts.map +1 -0
  175. package/dist/src/archival/arweave-archiver.js +279 -0
  176. package/dist/src/archival/arweave-archiver.js.map +1 -0
  177. package/dist/src/archival/arweave-client.d.ts +89 -0
  178. package/dist/src/archival/arweave-client.d.ts.map +1 -0
  179. package/dist/src/archival/arweave-client.js +226 -0
  180. package/dist/src/archival/arweave-client.js.map +1 -0
  181. package/dist/src/archival/index.d.ts +11 -0
  182. package/dist/src/archival/index.d.ts.map +1 -0
  183. package/dist/src/archival/index.js +9 -0
  184. package/dist/src/archival/index.js.map +1 -0
  185. package/dist/src/backbone/constants.d.ts +30 -0
  186. package/dist/src/backbone/constants.d.ts.map +1 -0
  187. package/dist/src/backbone/constants.js +62 -0
  188. package/dist/src/backbone/constants.js.map +1 -0
  189. package/dist/src/backbone/index.d.ts +15 -0
  190. package/dist/src/backbone/index.d.ts.map +1 -0
  191. package/dist/src/backbone/index.js +18 -0
  192. package/dist/src/backbone/index.js.map +1 -0
  193. package/dist/src/backbone/services/communication.d.ts +42 -0
  194. package/dist/src/backbone/services/communication.d.ts.map +1 -0
  195. package/dist/src/backbone/services/communication.js +107 -0
  196. package/dist/src/backbone/services/communication.js.map +1 -0
  197. package/dist/src/backbone/services/consensus.d.ts +61 -0
  198. package/dist/src/backbone/services/consensus.d.ts.map +1 -0
  199. package/dist/src/backbone/services/consensus.js +210 -0
  200. package/dist/src/backbone/services/consensus.js.map +1 -0
  201. package/dist/src/backbone/services/index.d.ts +10 -0
  202. package/dist/src/backbone/services/index.d.ts.map +1 -0
  203. package/dist/src/backbone/services/index.js +6 -0
  204. package/dist/src/backbone/services/index.js.map +1 -0
  205. package/dist/src/backbone/services/knowledge.d.ts +44 -0
  206. package/dist/src/backbone/services/knowledge.d.ts.map +1 -0
  207. package/dist/src/backbone/services/knowledge.js +99 -0
  208. package/dist/src/backbone/services/knowledge.js.map +1 -0
  209. package/dist/src/backbone/services/memory.d.ts +36 -0
  210. package/dist/src/backbone/services/memory.d.ts.map +1 -0
  211. package/dist/src/backbone/services/memory.js +94 -0
  212. package/dist/src/backbone/services/memory.js.map +1 -0
  213. package/dist/src/backbone/services/vault-health.d.ts +18 -0
  214. package/dist/src/backbone/services/vault-health.d.ts.map +1 -0
  215. package/dist/src/backbone/services/vault-health.js +74 -0
  216. package/dist/src/backbone/services/vault-health.js.map +1 -0
  217. package/dist/src/backbone/types.d.ts +211 -0
  218. package/dist/src/backbone/types.d.ts.map +1 -0
  219. package/dist/src/backbone/types.js +8 -0
  220. package/dist/src/backbone/types.js.map +1 -0
  221. package/dist/src/backbone/validators.d.ts +211 -0
  222. package/dist/src/backbone/validators.d.ts.map +1 -0
  223. package/dist/src/backbone/validators.js +122 -0
  224. package/dist/src/backbone/validators.js.map +1 -0
  225. package/dist/src/backup/backup.d.ts +173 -0
  226. package/dist/src/backup/backup.d.ts.map +1 -0
  227. package/dist/src/backup/backup.js +640 -0
  228. package/dist/src/backup/backup.js.map +1 -0
  229. package/dist/src/backup/index.d.ts +9 -0
  230. package/dist/src/backup/index.d.ts.map +1 -0
  231. package/dist/src/backup/index.js +9 -0
  232. package/dist/src/backup/index.js.map +1 -0
  233. package/dist/src/backup/merkle.d.ts +44 -0
  234. package/dist/src/backup/merkle.d.ts.map +1 -0
  235. package/dist/src/backup/merkle.js +85 -0
  236. package/dist/src/backup/merkle.js.map +1 -0
  237. package/dist/src/backup/thoughtform-bundle.d.ts +42 -0
  238. package/dist/src/backup/thoughtform-bundle.d.ts.map +1 -0
  239. package/dist/src/backup/thoughtform-bundle.js +200 -0
  240. package/dist/src/backup/thoughtform-bundle.js.map +1 -0
  241. package/dist/src/canister/actor.d.ts +310 -0
  242. package/dist/src/canister/actor.d.ts.map +1 -0
  243. package/dist/src/canister/actor.idl.d.ts +8 -0
  244. package/dist/src/canister/actor.idl.d.ts.map +1 -0
  245. package/dist/src/canister/actor.idl.js +518 -0
  246. package/dist/src/canister/actor.idl.js.map +1 -0
  247. package/dist/src/canister/actor.js +51 -0
  248. package/dist/src/canister/actor.js.map +1 -0
  249. package/dist/src/canister/encryption.d.ts +158 -0
  250. package/dist/src/canister/encryption.d.ts.map +1 -0
  251. package/dist/src/canister/encryption.js +296 -0
  252. package/dist/src/canister/encryption.js.map +1 -0
  253. package/dist/src/canister/memory-repo-actor.d.ts +162 -0
  254. package/dist/src/canister/memory-repo-actor.d.ts.map +1 -0
  255. package/dist/src/canister/memory-repo-actor.idl.d.ts +8 -0
  256. package/dist/src/canister/memory-repo-actor.idl.d.ts.map +1 -0
  257. package/dist/src/canister/memory-repo-actor.idl.js +90 -0
  258. package/dist/src/canister/memory-repo-actor.idl.js.map +1 -0
  259. package/dist/src/canister/memory-repo-actor.js +69 -0
  260. package/dist/src/canister/memory-repo-actor.js.map +1 -0
  261. package/dist/src/canister/types.d.ts +54 -0
  262. package/dist/src/canister/types.d.ts.map +1 -0
  263. package/dist/src/canister/types.js +7 -0
  264. package/dist/src/canister/types.js.map +1 -0
  265. package/dist/src/cloud-storage/cloud-sync.d.ts +49 -0
  266. package/dist/src/cloud-storage/cloud-sync.d.ts.map +1 -0
  267. package/dist/src/cloud-storage/cloud-sync.js +377 -0
  268. package/dist/src/cloud-storage/cloud-sync.js.map +1 -0
  269. package/dist/src/cloud-storage/index.d.ts +11 -0
  270. package/dist/src/cloud-storage/index.d.ts.map +1 -0
  271. package/{src/cloud-storage/index.ts → dist/src/cloud-storage/index.js} +1 -1
  272. package/dist/src/cloud-storage/index.js.map +1 -0
  273. package/dist/src/cloud-storage/provider-detector.d.ts +34 -0
  274. package/dist/src/cloud-storage/provider-detector.d.ts.map +1 -0
  275. package/dist/src/cloud-storage/provider-detector.js +158 -0
  276. package/dist/src/cloud-storage/provider-detector.js.map +1 -0
  277. package/dist/src/cloud-storage/types.d.ts +96 -0
  278. package/dist/src/cloud-storage/types.d.ts.map +1 -0
  279. package/dist/src/cloud-storage/types.js +10 -0
  280. package/dist/src/cloud-storage/types.js.map +1 -0
  281. package/dist/src/debugging/debug-logger.d.ts +8 -0
  282. package/dist/src/debugging/debug-logger.d.ts.map +1 -0
  283. package/dist/src/debugging/debug-logger.js +11 -0
  284. package/dist/src/debugging/debug-logger.js.map +1 -0
  285. package/dist/src/debugging/index.d.ts +7 -0
  286. package/dist/src/debugging/index.d.ts.map +1 -0
  287. package/{src/debugging/index.ts → dist/src/debugging/index.js} +2 -1
  288. package/dist/src/debugging/index.js.map +1 -0
  289. package/dist/src/debugging/logs.d.ts +32 -0
  290. package/dist/src/debugging/logs.d.ts.map +1 -0
  291. package/dist/src/debugging/logs.js +158 -0
  292. package/dist/src/debugging/logs.js.map +1 -0
  293. package/dist/src/debugging/types.d.ts +91 -0
  294. package/dist/src/debugging/types.d.ts.map +1 -0
  295. package/dist/src/debugging/types.js +5 -0
  296. package/dist/src/debugging/types.js.map +1 -0
  297. package/dist/src/deployment/deployer.d.ts +52 -0
  298. package/dist/src/deployment/deployer.d.ts.map +1 -0
  299. package/dist/src/deployment/deployer.js +343 -0
  300. package/dist/src/deployment/deployer.js.map +1 -0
  301. package/dist/src/deployment/icpClient.d.ts +144 -0
  302. package/dist/src/deployment/icpClient.d.ts.map +1 -0
  303. package/dist/src/deployment/icpClient.js +549 -0
  304. package/dist/src/deployment/icpClient.js.map +1 -0
  305. package/dist/src/deployment/index.d.ts +11 -0
  306. package/dist/src/deployment/index.d.ts.map +1 -0
  307. package/dist/src/deployment/index.js +14 -0
  308. package/dist/src/deployment/index.js.map +1 -0
  309. package/dist/src/deployment/promotion.d.ts +32 -0
  310. package/dist/src/deployment/promotion.d.ts.map +1 -0
  311. package/dist/src/deployment/promotion.js +114 -0
  312. package/dist/src/deployment/promotion.js.map +1 -0
  313. package/dist/src/deployment/types.d.ts +102 -0
  314. package/dist/src/deployment/types.d.ts.map +1 -0
  315. package/dist/src/deployment/types.js +5 -0
  316. package/dist/src/deployment/types.js.map +1 -0
  317. package/dist/src/fault-tolerance/backup-status.d.ts +31 -0
  318. package/dist/src/fault-tolerance/backup-status.d.ts.map +1 -0
  319. package/dist/src/fault-tolerance/backup-status.js +76 -0
  320. package/dist/src/fault-tolerance/backup-status.js.map +1 -0
  321. package/dist/src/fault-tolerance/cron-check.d.ts +66 -0
  322. package/dist/src/fault-tolerance/cron-check.d.ts.map +1 -0
  323. package/dist/src/fault-tolerance/cron-check.js +177 -0
  324. package/dist/src/fault-tolerance/cron-check.js.map +1 -0
  325. package/dist/src/fault-tolerance/index.d.ts +12 -0
  326. package/dist/src/fault-tolerance/index.d.ts.map +1 -0
  327. package/dist/src/fault-tolerance/index.js +12 -0
  328. package/dist/src/fault-tolerance/index.js.map +1 -0
  329. package/dist/src/fault-tolerance/mirror-sync.d.ts +61 -0
  330. package/dist/src/fault-tolerance/mirror-sync.d.ts.map +1 -0
  331. package/dist/src/fault-tolerance/mirror-sync.js +203 -0
  332. package/dist/src/fault-tolerance/mirror-sync.js.map +1 -0
  333. package/dist/src/icp/batch.d.ts +112 -0
  334. package/dist/src/icp/batch.d.ts.map +1 -0
  335. package/dist/src/icp/batch.js +279 -0
  336. package/dist/src/icp/batch.js.map +1 -0
  337. package/dist/src/icp/cycles.d.ts +29 -0
  338. package/dist/src/icp/cycles.d.ts.map +1 -0
  339. package/{src/icp/cycles.ts → dist/src/icp/cycles.js} +8 -22
  340. package/dist/src/icp/cycles.js.map +1 -0
  341. package/dist/src/icp/environment.d.ts +60 -0
  342. package/dist/src/icp/environment.d.ts.map +1 -0
  343. package/dist/src/icp/environment.js +183 -0
  344. package/dist/src/icp/environment.js.map +1 -0
  345. package/dist/src/icp/icpcli.d.ts +204 -0
  346. package/dist/src/icp/icpcli.d.ts.map +1 -0
  347. package/dist/src/icp/icpcli.js +374 -0
  348. package/dist/src/icp/icpcli.js.map +1 -0
  349. package/dist/src/icp/icwasm.d.ts +94 -0
  350. package/dist/src/icp/icwasm.d.ts.map +1 -0
  351. package/dist/src/icp/icwasm.js +197 -0
  352. package/dist/src/icp/icwasm.js.map +1 -0
  353. package/dist/src/icp/identity.d.ts +50 -0
  354. package/dist/src/icp/identity.d.ts.map +1 -0
  355. package/{src/icp/identity.ts → dist/src/icp/identity.js} +15 -28
  356. package/dist/src/icp/identity.js.map +1 -0
  357. package/dist/src/icp/index.d.ts +16 -0
  358. package/dist/src/icp/index.d.ts.map +1 -0
  359. package/dist/src/icp/index.js +20 -0
  360. package/dist/src/icp/index.js.map +1 -0
  361. package/dist/src/icp/optimization.d.ts +16 -0
  362. package/dist/src/icp/optimization.d.ts.map +1 -0
  363. package/dist/src/icp/optimization.js +225 -0
  364. package/dist/src/icp/optimization.js.map +1 -0
  365. package/dist/src/icp/tokens.d.ts +24 -0
  366. package/dist/src/icp/tokens.d.ts.map +1 -0
  367. package/{src/icp/tokens.ts → dist/src/icp/tokens.js} +5 -12
  368. package/dist/src/icp/tokens.js.map +1 -0
  369. package/dist/src/icp/tool-detector.d.ts +31 -0
  370. package/dist/src/icp/tool-detector.d.ts.map +1 -0
  371. package/dist/src/icp/tool-detector.js +118 -0
  372. package/dist/src/icp/tool-detector.js.map +1 -0
  373. package/dist/src/icp/types.d.ts +493 -0
  374. package/dist/src/icp/types.d.ts.map +1 -0
  375. package/dist/src/icp/types.js +7 -0
  376. package/dist/src/icp/types.js.map +1 -0
  377. package/dist/src/index.d.ts +12 -0
  378. package/dist/src/index.d.ts.map +1 -0
  379. package/dist/src/index.js +39 -0
  380. package/dist/src/index.js.map +1 -0
  381. package/dist/src/inference/bittensor-client.d.ts +161 -0
  382. package/dist/src/inference/bittensor-client.d.ts.map +1 -0
  383. package/dist/src/inference/bittensor-client.js +317 -0
  384. package/dist/src/inference/bittensor-client.js.map +1 -0
  385. package/dist/src/inference/fallback-chain.d.ts +90 -0
  386. package/dist/src/inference/fallback-chain.d.ts.map +1 -0
  387. package/dist/src/inference/fallback-chain.js +219 -0
  388. package/dist/src/inference/fallback-chain.js.map +1 -0
  389. package/dist/src/inference/index.d.ts +13 -0
  390. package/dist/src/inference/index.d.ts.map +1 -0
  391. package/dist/src/inference/index.js +13 -0
  392. package/dist/src/inference/index.js.map +1 -0
  393. package/dist/src/inference/inference-manager.d.ts +76 -0
  394. package/dist/src/inference/inference-manager.d.ts.map +1 -0
  395. package/dist/src/inference/inference-manager.js +228 -0
  396. package/dist/src/inference/inference-manager.js.map +1 -0
  397. package/dist/src/inference/local-model-client.d.ts +46 -0
  398. package/dist/src/inference/local-model-client.d.ts.map +1 -0
  399. package/dist/src/inference/local-model-client.js +92 -0
  400. package/dist/src/inference/local-model-client.js.map +1 -0
  401. package/dist/src/inference/secure-inference.d.ts +105 -0
  402. package/dist/src/inference/secure-inference.d.ts.map +1 -0
  403. package/dist/src/inference/secure-inference.js +237 -0
  404. package/dist/src/inference/secure-inference.js.map +1 -0
  405. package/dist/src/inference/venice-client.d.ts +149 -0
  406. package/dist/src/inference/venice-client.d.ts.map +1 -0
  407. package/dist/src/inference/venice-client.js +333 -0
  408. package/dist/src/inference/venice-client.js.map +1 -0
  409. package/dist/src/metrics/index.d.ts +7 -0
  410. package/dist/src/metrics/index.d.ts.map +1 -0
  411. package/{src/metrics/index.ts → dist/src/metrics/index.js} +1 -1
  412. package/dist/src/metrics/index.js.map +1 -0
  413. package/dist/src/metrics/metrics.d.ts +39 -0
  414. package/dist/src/metrics/metrics.d.ts.map +1 -0
  415. package/dist/src/metrics/metrics.js +129 -0
  416. package/dist/src/metrics/metrics.js.map +1 -0
  417. package/dist/src/mint/google-adk.d.ts +19 -0
  418. package/dist/src/mint/google-adk.d.ts.map +1 -0
  419. package/dist/src/mint/google-adk.js +180 -0
  420. package/dist/src/mint/google-adk.js.map +1 -0
  421. package/dist/src/monitoring/alerting.d.ts +51 -0
  422. package/dist/src/monitoring/alerting.d.ts.map +1 -0
  423. package/dist/src/monitoring/alerting.js +169 -0
  424. package/dist/src/monitoring/alerting.js.map +1 -0
  425. package/dist/src/monitoring/health.d.ts +48 -0
  426. package/dist/src/monitoring/health.d.ts.map +1 -0
  427. package/dist/src/monitoring/health.js +227 -0
  428. package/dist/src/monitoring/health.js.map +1 -0
  429. package/dist/src/monitoring/index.d.ts +10 -0
  430. package/dist/src/monitoring/index.d.ts.map +1 -0
  431. package/dist/src/monitoring/index.js +12 -0
  432. package/dist/src/monitoring/index.js.map +1 -0
  433. package/dist/src/monitoring/info.d.ts +15 -0
  434. package/dist/src/monitoring/info.d.ts.map +1 -0
  435. package/dist/src/monitoring/info.js +109 -0
  436. package/dist/src/monitoring/info.js.map +1 -0
  437. package/dist/src/monitoring/types.d.ts +119 -0
  438. package/dist/src/monitoring/types.d.ts.map +1 -0
  439. package/dist/src/monitoring/types.js +7 -0
  440. package/dist/src/monitoring/types.js.map +1 -0
  441. package/dist/src/network/index.d.ts +5 -0
  442. package/dist/src/network/index.d.ts.map +1 -0
  443. package/{src/network/index.ts → dist/src/network/index.js} +1 -1
  444. package/dist/src/network/index.js.map +1 -0
  445. package/dist/src/network/network-config.d.ts +31 -0
  446. package/dist/src/network/network-config.d.ts.map +1 -0
  447. package/dist/src/network/network-config.js +109 -0
  448. package/dist/src/network/network-config.js.map +1 -0
  449. package/dist/src/orchestration/claude.d.ts +125 -0
  450. package/dist/src/orchestration/claude.d.ts.map +1 -0
  451. package/dist/src/orchestration/claude.js +639 -0
  452. package/dist/src/orchestration/claude.js.map +1 -0
  453. package/dist/src/orchestration/google-adk.d.ts +77 -0
  454. package/dist/src/orchestration/google-adk.d.ts.map +1 -0
  455. package/dist/src/orchestration/google-adk.js +659 -0
  456. package/dist/src/orchestration/google-adk.js.map +1 -0
  457. package/dist/src/orchestration/mcp-client.d.ts +47 -0
  458. package/dist/src/orchestration/mcp-client.d.ts.map +1 -0
  459. package/dist/src/orchestration/mcp-client.js +179 -0
  460. package/dist/src/orchestration/mcp-client.js.map +1 -0
  461. package/dist/src/orchestration/polytician-enricher.d.ts +21 -0
  462. package/dist/src/orchestration/polytician-enricher.d.ts.map +1 -0
  463. package/dist/src/orchestration/polytician-enricher.js +131 -0
  464. package/dist/src/orchestration/polytician-enricher.js.map +1 -0
  465. package/dist/src/orchestration/smallchat-bridge.d.ts +121 -0
  466. package/dist/src/orchestration/smallchat-bridge.d.ts.map +1 -0
  467. package/dist/src/orchestration/smallchat-bridge.js +331 -0
  468. package/dist/src/orchestration/smallchat-bridge.js.map +1 -0
  469. package/dist/src/orchestration/smallchat-compression.d.ts +100 -0
  470. package/dist/src/orchestration/smallchat-compression.d.ts.map +1 -0
  471. package/dist/src/orchestration/smallchat-compression.js +203 -0
  472. package/dist/src/orchestration/smallchat-compression.js.map +1 -0
  473. package/dist/src/orchestration/smallchat-policy.d.ts +158 -0
  474. package/dist/src/orchestration/smallchat-policy.d.ts.map +1 -0
  475. package/dist/src/orchestration/smallchat-policy.js +314 -0
  476. package/dist/src/orchestration/smallchat-policy.js.map +1 -0
  477. package/dist/src/orchestration/smallchat-tools.d.ts +69 -0
  478. package/dist/src/orchestration/smallchat-tools.d.ts.map +1 -0
  479. package/dist/src/orchestration/smallchat-tools.js +501 -0
  480. package/dist/src/orchestration/smallchat-tools.js.map +1 -0
  481. package/dist/src/packaging/compiler.d.ts +61 -0
  482. package/dist/src/packaging/compiler.d.ts.map +1 -0
  483. package/dist/src/packaging/compiler.js +562 -0
  484. package/dist/src/packaging/compiler.js.map +1 -0
  485. package/dist/src/packaging/config-persistence.d.ts +46 -0
  486. package/dist/src/packaging/config-persistence.d.ts.map +1 -0
  487. package/dist/src/packaging/config-persistence.js +108 -0
  488. package/dist/src/packaging/config-persistence.js.map +1 -0
  489. package/dist/src/packaging/config-schemas.d.ts +157 -0
  490. package/dist/src/packaging/config-schemas.d.ts.map +1 -0
  491. package/dist/src/packaging/config-schemas.js +62 -0
  492. package/dist/src/packaging/config-schemas.js.map +1 -0
  493. package/dist/src/packaging/detector.d.ts +26 -0
  494. package/dist/src/packaging/detector.d.ts.map +1 -0
  495. package/dist/src/packaging/detector.js +207 -0
  496. package/dist/src/packaging/detector.js.map +1 -0
  497. package/dist/src/packaging/index.d.ts +22 -0
  498. package/dist/src/packaging/index.d.ts.map +1 -0
  499. package/dist/src/packaging/index.js +28 -0
  500. package/dist/src/packaging/index.js.map +1 -0
  501. package/dist/src/packaging/packager.d.ts +31 -0
  502. package/dist/src/packaging/packager.d.ts.map +1 -0
  503. package/dist/src/packaging/packager.js +90 -0
  504. package/dist/src/packaging/packager.js.map +1 -0
  505. package/dist/src/packaging/parsers/clawdbot.d.ts +19 -0
  506. package/dist/src/packaging/parsers/clawdbot.d.ts.map +1 -0
  507. package/dist/src/packaging/parsers/clawdbot.js +229 -0
  508. package/dist/src/packaging/parsers/clawdbot.js.map +1 -0
  509. package/dist/src/packaging/parsers/cline.d.ts +26 -0
  510. package/dist/src/packaging/parsers/cline.d.ts.map +1 -0
  511. package/dist/src/packaging/parsers/cline.js +185 -0
  512. package/dist/src/packaging/parsers/cline.js.map +1 -0
  513. package/dist/src/packaging/parsers/generic.d.ts +27 -0
  514. package/dist/src/packaging/parsers/generic.d.ts.map +1 -0
  515. package/dist/src/packaging/parsers/generic.js +221 -0
  516. package/dist/src/packaging/parsers/generic.js.map +1 -0
  517. package/dist/src/packaging/parsers/goose.d.ts +26 -0
  518. package/dist/src/packaging/parsers/goose.d.ts.map +1 -0
  519. package/dist/src/packaging/parsers/goose.js +175 -0
  520. package/dist/src/packaging/parsers/goose.js.map +1 -0
  521. package/dist/src/packaging/parsers/index.d.ts +13 -0
  522. package/dist/src/packaging/parsers/index.d.ts.map +1 -0
  523. package/{src/packaging/parsers/index.ts → dist/src/packaging/parsers/index.js} +3 -1
  524. package/dist/src/packaging/parsers/index.js.map +1 -0
  525. package/dist/src/packaging/parsers/nemoclaw.d.ts +4 -0
  526. package/dist/src/packaging/parsers/nemoclaw.d.ts.map +1 -0
  527. package/dist/src/packaging/parsers/nemoclaw.js +145 -0
  528. package/dist/src/packaging/parsers/nemoclaw.js.map +1 -0
  529. package/dist/src/packaging/parsers/polytician.d.ts +4 -0
  530. package/dist/src/packaging/parsers/polytician.d.ts.map +1 -0
  531. package/dist/src/packaging/parsers/polytician.js +121 -0
  532. package/dist/src/packaging/parsers/polytician.js.map +1 -0
  533. package/dist/src/packaging/serializer.d.ts +114 -0
  534. package/dist/src/packaging/serializer.d.ts.map +1 -0
  535. package/dist/src/packaging/serializer.js +164 -0
  536. package/dist/src/packaging/serializer.js.map +1 -0
  537. package/dist/src/packaging/serializers/index.d.ts +3 -0
  538. package/dist/src/packaging/serializers/index.d.ts.map +1 -0
  539. package/dist/src/packaging/serializers/index.js +2 -0
  540. package/dist/src/packaging/serializers/index.js.map +1 -0
  541. package/dist/src/packaging/serializers/thoughtform.d.ts +89 -0
  542. package/dist/src/packaging/serializers/thoughtform.d.ts.map +1 -0
  543. package/dist/src/packaging/serializers/thoughtform.js +84 -0
  544. package/dist/src/packaging/serializers/thoughtform.js.map +1 -0
  545. package/dist/src/packaging/state-format.d.ts +332 -0
  546. package/dist/src/packaging/state-format.d.ts.map +1 -0
  547. package/dist/src/packaging/state-format.js +602 -0
  548. package/dist/src/packaging/state-format.js.map +1 -0
  549. package/dist/src/packaging/types.d.ts +131 -0
  550. package/dist/src/packaging/types.d.ts.map +1 -0
  551. package/dist/src/packaging/types.js +5 -0
  552. package/dist/src/packaging/types.js.map +1 -0
  553. package/dist/src/packaging/wasm-compiler.d.ts +160 -0
  554. package/dist/src/packaging/wasm-compiler.d.ts.map +1 -0
  555. package/dist/src/packaging/wasm-compiler.js +662 -0
  556. package/dist/src/packaging/wasm-compiler.js.map +1 -0
  557. package/dist/src/packaging/wasmedge-compiler.d.ts +76 -0
  558. package/dist/src/packaging/wasmedge-compiler.d.ts.map +1 -0
  559. package/dist/src/packaging/wasmedge-compiler.js +351 -0
  560. package/dist/src/packaging/wasmedge-compiler.js.map +1 -0
  561. package/dist/src/pilot/air-gap.d.ts +51 -0
  562. package/dist/src/pilot/air-gap.d.ts.map +1 -0
  563. package/dist/src/pilot/air-gap.js +118 -0
  564. package/dist/src/pilot/air-gap.js.map +1 -0
  565. package/dist/src/pilot/index.d.ts +14 -0
  566. package/dist/src/pilot/index.d.ts.map +1 -0
  567. package/dist/src/pilot/index.js +16 -0
  568. package/dist/src/pilot/index.js.map +1 -0
  569. package/dist/src/pilot/private-replica.d.ts +67 -0
  570. package/dist/src/pilot/private-replica.d.ts.map +1 -0
  571. package/dist/src/pilot/private-replica.js +429 -0
  572. package/dist/src/pilot/private-replica.js.map +1 -0
  573. package/dist/src/pilot/proxy-config.d.ts +36 -0
  574. package/dist/src/pilot/proxy-config.d.ts.map +1 -0
  575. package/dist/src/pilot/proxy-config.js +96 -0
  576. package/dist/src/pilot/proxy-config.js.map +1 -0
  577. package/dist/src/pilot/types.d.ts +181 -0
  578. package/dist/src/pilot/types.d.ts.map +1 -0
  579. package/dist/src/pilot/types.js +7 -0
  580. package/dist/src/pilot/types.js.map +1 -0
  581. package/dist/src/security/icp-audit.d.ts +63 -0
  582. package/dist/src/security/icp-audit.d.ts.map +1 -0
  583. package/dist/src/security/icp-audit.js +234 -0
  584. package/dist/src/security/icp-audit.js.map +1 -0
  585. package/dist/src/security/index.d.ts +17 -0
  586. package/dist/src/security/index.d.ts.map +1 -0
  587. package/dist/src/security/index.js +24 -0
  588. package/dist/src/security/index.js.map +1 -0
  589. package/dist/src/security/mfa-approval.d.ts +219 -0
  590. package/dist/src/security/mfa-approval.d.ts.map +1 -0
  591. package/dist/src/security/mfa-approval.js +668 -0
  592. package/dist/src/security/mfa-approval.js.map +1 -0
  593. package/dist/src/security/multisig.d.ts +102 -0
  594. package/dist/src/security/multisig.d.ts.map +1 -0
  595. package/dist/src/security/multisig.js +283 -0
  596. package/dist/src/security/multisig.js.map +1 -0
  597. package/dist/src/security/totp.d.ts +67 -0
  598. package/dist/src/security/totp.d.ts.map +1 -0
  599. package/dist/src/security/totp.js +148 -0
  600. package/dist/src/security/totp.js.map +1 -0
  601. package/dist/src/security/types.d.ts +212 -0
  602. package/dist/src/security/types.d.ts.map +1 -0
  603. package/dist/src/security/types.js +217 -0
  604. package/dist/src/security/types.js.map +1 -0
  605. package/dist/src/security/vetkeys.d.ts +222 -0
  606. package/dist/src/security/vetkeys.d.ts.map +1 -0
  607. package/dist/src/security/vetkeys.js +628 -0
  608. package/dist/src/security/vetkeys.js.map +1 -0
  609. package/dist/src/security/webauthn.d.ts +127 -0
  610. package/dist/src/security/webauthn.d.ts.map +1 -0
  611. package/dist/src/security/webauthn.js +246 -0
  612. package/dist/src/security/webauthn.js.map +1 -0
  613. package/dist/src/testing/index.d.ts +6 -0
  614. package/dist/src/testing/index.d.ts.map +1 -0
  615. package/{src/testing/index.ts → dist/src/testing/index.js} +1 -1
  616. package/dist/src/testing/index.js.map +1 -0
  617. package/dist/src/testing/local-runner.d.ts +23 -0
  618. package/dist/src/testing/local-runner.d.ts.map +1 -0
  619. package/dist/src/testing/local-runner.js +226 -0
  620. package/dist/src/testing/local-runner.js.map +1 -0
  621. package/dist/src/testing/types.d.ts +98 -0
  622. package/dist/src/testing/types.d.ts.map +1 -0
  623. package/dist/src/testing/types.js +5 -0
  624. package/dist/src/testing/types.js.map +1 -0
  625. package/dist/src/trading/api-key-manager.d.ts +96 -0
  626. package/dist/src/trading/api-key-manager.d.ts.map +1 -0
  627. package/dist/src/trading/api-key-manager.js +201 -0
  628. package/dist/src/trading/api-key-manager.js.map +1 -0
  629. package/dist/src/trading/consensus.d.ts +171 -0
  630. package/dist/src/trading/consensus.d.ts.map +1 -0
  631. package/dist/src/trading/consensus.js +291 -0
  632. package/dist/src/trading/consensus.js.map +1 -0
  633. package/dist/src/trading/index.d.ts +19 -0
  634. package/dist/src/trading/index.d.ts.map +1 -0
  635. package/dist/src/trading/index.js +15 -0
  636. package/dist/src/trading/index.js.map +1 -0
  637. package/dist/src/trading/ip-whitelist.d.ts +70 -0
  638. package/dist/src/trading/ip-whitelist.d.ts.map +1 -0
  639. package/dist/src/trading/ip-whitelist.js +239 -0
  640. package/dist/src/trading/ip-whitelist.js.map +1 -0
  641. package/dist/src/trading/skill-sandbox.d.ts +88 -0
  642. package/dist/src/trading/skill-sandbox.d.ts.map +1 -0
  643. package/dist/src/trading/skill-sandbox.js +175 -0
  644. package/dist/src/trading/skill-sandbox.js.map +1 -0
  645. package/dist/src/utils/path-validation.d.ts +34 -0
  646. package/dist/src/utils/path-validation.d.ts.map +1 -0
  647. package/dist/src/utils/path-validation.js +88 -0
  648. package/dist/src/utils/path-validation.js.map +1 -0
  649. package/dist/src/vault/bitwarden.d.ts +51 -0
  650. package/dist/src/vault/bitwarden.d.ts.map +1 -0
  651. package/dist/src/vault/bitwarden.js +172 -0
  652. package/dist/src/vault/bitwarden.js.map +1 -0
  653. package/dist/src/vault/client.d.ts +44 -0
  654. package/dist/src/vault/client.d.ts.map +1 -0
  655. package/dist/src/vault/client.js +523 -0
  656. package/dist/src/vault/client.js.map +1 -0
  657. package/dist/src/vault/config.d.ts +68 -0
  658. package/dist/src/vault/config.d.ts.map +1 -0
  659. package/dist/src/vault/config.js +265 -0
  660. package/dist/src/vault/config.js.map +1 -0
  661. package/dist/src/vault/encrypted-memory-store.d.ts +80 -0
  662. package/dist/src/vault/encrypted-memory-store.d.ts.map +1 -0
  663. package/dist/src/vault/encrypted-memory-store.js +175 -0
  664. package/dist/src/vault/encrypted-memory-store.js.map +1 -0
  665. package/dist/src/vault/hashicorp-provider.d.ts +22 -0
  666. package/dist/src/vault/hashicorp-provider.d.ts.map +1 -0
  667. package/dist/src/vault/hashicorp-provider.js +63 -0
  668. package/dist/src/vault/hashicorp-provider.js.map +1 -0
  669. package/dist/src/vault/index.d.ts +40 -0
  670. package/dist/src/vault/index.d.ts.map +1 -0
  671. package/dist/src/vault/index.js +38 -0
  672. package/dist/src/vault/index.js.map +1 -0
  673. package/dist/src/vault/memory-provider.d.ts +26 -0
  674. package/dist/src/vault/memory-provider.d.ts.map +1 -0
  675. package/dist/src/vault/memory-provider.js +42 -0
  676. package/dist/src/vault/memory-provider.js.map +1 -0
  677. package/dist/src/vault/provider.d.ts +68 -0
  678. package/dist/src/vault/provider.d.ts.map +1 -0
  679. package/dist/src/vault/provider.js +50 -0
  680. package/dist/src/vault/provider.js.map +1 -0
  681. package/dist/src/vault/safehouse-types.d.ts +204 -0
  682. package/dist/src/vault/safehouse-types.d.ts.map +1 -0
  683. package/dist/src/vault/safehouse-types.js +9 -0
  684. package/dist/src/vault/safehouse-types.js.map +1 -0
  685. package/dist/src/vault/secret-audit.d.ts +91 -0
  686. package/dist/src/vault/secret-audit.d.ts.map +1 -0
  687. package/dist/src/vault/secret-audit.js +224 -0
  688. package/dist/src/vault/secret-audit.js.map +1 -0
  689. package/dist/src/vault/secret-injector.d.ts +62 -0
  690. package/dist/src/vault/secret-injector.d.ts.map +1 -0
  691. package/dist/src/vault/secret-injector.js +237 -0
  692. package/dist/src/vault/secret-injector.js.map +1 -0
  693. package/dist/src/vault/secret-leak-detector.d.ts +94 -0
  694. package/dist/src/vault/secret-leak-detector.d.ts.map +1 -0
  695. package/dist/src/vault/secret-leak-detector.js +218 -0
  696. package/dist/src/vault/secret-leak-detector.js.map +1 -0
  697. package/dist/src/vault/secret-management-layer.d.ts +139 -0
  698. package/dist/src/vault/secret-management-layer.d.ts.map +1 -0
  699. package/dist/src/vault/secret-management-layer.js +366 -0
  700. package/dist/src/vault/secret-management-layer.js.map +1 -0
  701. package/dist/src/vault/secret-rotation.d.ts +54 -0
  702. package/dist/src/vault/secret-rotation.d.ts.map +1 -0
  703. package/dist/src/vault/secret-rotation.js +156 -0
  704. package/dist/src/vault/secret-rotation.js.map +1 -0
  705. package/dist/src/vault/secret-sandbox.d.ts +94 -0
  706. package/dist/src/vault/secret-sandbox.d.ts.map +1 -0
  707. package/dist/src/vault/secret-sandbox.js +232 -0
  708. package/dist/src/vault/secret-sandbox.js.map +1 -0
  709. package/dist/src/vault/types.d.ts +148 -0
  710. package/dist/src/vault/types.d.ts.map +1 -0
  711. package/dist/src/vault/types.js +7 -0
  712. package/dist/src/vault/types.js.map +1 -0
  713. package/dist/src/wallet/cbor-serializer.d.ts +82 -0
  714. package/dist/src/wallet/cbor-serializer.d.ts.map +1 -0
  715. package/dist/src/wallet/cbor-serializer.js +287 -0
  716. package/dist/src/wallet/cbor-serializer.js.map +1 -0
  717. package/dist/src/wallet/chain-dispatcher.d.ts +112 -0
  718. package/dist/src/wallet/chain-dispatcher.d.ts.map +1 -0
  719. package/dist/src/wallet/chain-dispatcher.js +230 -0
  720. package/dist/src/wallet/chain-dispatcher.js.map +1 -0
  721. package/dist/src/wallet/cross-chain-aggregator.d.ts +119 -0
  722. package/dist/src/wallet/cross-chain-aggregator.d.ts.map +1 -0
  723. package/dist/src/wallet/cross-chain-aggregator.js +235 -0
  724. package/dist/src/wallet/cross-chain-aggregator.js.map +1 -0
  725. package/dist/src/wallet/hsm/index.d.ts +39 -0
  726. package/dist/src/wallet/hsm/index.d.ts.map +1 -0
  727. package/dist/src/wallet/hsm/index.js +60 -0
  728. package/dist/src/wallet/hsm/index.js.map +1 -0
  729. package/dist/src/wallet/hsm/ledger-provider.d.ts +75 -0
  730. package/dist/src/wallet/hsm/ledger-provider.d.ts.map +1 -0
  731. package/dist/src/wallet/hsm/ledger-provider.js +272 -0
  732. package/dist/src/wallet/hsm/ledger-provider.js.map +1 -0
  733. package/dist/src/wallet/hsm/sgx-provider.d.ts +83 -0
  734. package/dist/src/wallet/hsm/sgx-provider.d.ts.map +1 -0
  735. package/dist/src/wallet/hsm/sgx-provider.js +281 -0
  736. package/dist/src/wallet/hsm/sgx-provider.js.map +1 -0
  737. package/dist/src/wallet/hsm/types.d.ts +134 -0
  738. package/dist/src/wallet/hsm/types.d.ts.map +1 -0
  739. package/dist/src/wallet/hsm/types.js +46 -0
  740. package/dist/src/wallet/hsm/types.js.map +1 -0
  741. package/dist/src/wallet/index.d.ts +22 -0
  742. package/dist/src/wallet/index.d.ts.map +1 -0
  743. package/dist/src/wallet/index.js +29 -0
  744. package/dist/src/wallet/index.js.map +1 -0
  745. package/dist/src/wallet/key-derivation.d.ts +145 -0
  746. package/dist/src/wallet/key-derivation.d.ts.map +1 -0
  747. package/dist/src/wallet/key-derivation.js +408 -0
  748. package/dist/src/wallet/key-derivation.js.map +1 -0
  749. package/dist/src/wallet/providers/arweave-provider.d.ts +34 -0
  750. package/dist/src/wallet/providers/arweave-provider.d.ts.map +1 -0
  751. package/dist/src/wallet/providers/arweave-provider.js +126 -0
  752. package/dist/src/wallet/providers/arweave-provider.js.map +1 -0
  753. package/dist/src/wallet/providers/base-provider.d.ts +111 -0
  754. package/dist/src/wallet/providers/base-provider.d.ts.map +1 -0
  755. package/dist/src/wallet/providers/base-provider.js +58 -0
  756. package/dist/src/wallet/providers/base-provider.js.map +1 -0
  757. package/dist/src/wallet/providers/cketh-provider.d.ts +104 -0
  758. package/dist/src/wallet/providers/cketh-provider.d.ts.map +1 -0
  759. package/dist/src/wallet/providers/cketh-provider.js +343 -0
  760. package/dist/src/wallet/providers/cketh-provider.js.map +1 -0
  761. package/dist/src/wallet/providers/icp-provider.d.ts +34 -0
  762. package/dist/src/wallet/providers/icp-provider.d.ts.map +1 -0
  763. package/dist/src/wallet/providers/icp-provider.js +114 -0
  764. package/dist/src/wallet/providers/icp-provider.js.map +1 -0
  765. package/dist/src/wallet/providers/polkadot-provider.d.ts +115 -0
  766. package/dist/src/wallet/providers/polkadot-provider.d.ts.map +1 -0
  767. package/dist/src/wallet/providers/polkadot-provider.js +406 -0
  768. package/dist/src/wallet/providers/polkadot-provider.js.map +1 -0
  769. package/dist/src/wallet/providers/provider-factory.d.ts +23 -0
  770. package/dist/src/wallet/providers/provider-factory.d.ts.map +1 -0
  771. package/dist/src/wallet/providers/provider-factory.js +74 -0
  772. package/dist/src/wallet/providers/provider-factory.js.map +1 -0
  773. package/dist/src/wallet/providers/solana-provider.d.ts +102 -0
  774. package/dist/src/wallet/providers/solana-provider.d.ts.map +1 -0
  775. package/dist/src/wallet/providers/solana-provider.js +392 -0
  776. package/dist/src/wallet/providers/solana-provider.js.map +1 -0
  777. package/dist/src/wallet/secure-wallet.d.ts +132 -0
  778. package/dist/src/wallet/secure-wallet.d.ts.map +1 -0
  779. package/dist/src/wallet/secure-wallet.js +298 -0
  780. package/dist/src/wallet/secure-wallet.js.map +1 -0
  781. package/dist/src/wallet/transaction-queue.d.ts +133 -0
  782. package/dist/src/wallet/transaction-queue.d.ts.map +1 -0
  783. package/dist/src/wallet/transaction-queue.js +195 -0
  784. package/dist/src/wallet/transaction-queue.js.map +1 -0
  785. package/dist/src/wallet/types.d.ts +222 -0
  786. package/dist/src/wallet/types.d.ts.map +1 -0
  787. package/dist/src/wallet/types.js +5 -0
  788. package/dist/src/wallet/types.js.map +1 -0
  789. package/dist/src/wallet/vetkeys-adapter.d.ts +134 -0
  790. package/dist/src/wallet/vetkeys-adapter.d.ts.map +1 -0
  791. package/dist/src/wallet/vetkeys-adapter.js +304 -0
  792. package/dist/src/wallet/vetkeys-adapter.js.map +1 -0
  793. package/dist/src/wallet/wallet-crypto.d.ts +101 -0
  794. package/dist/src/wallet/wallet-crypto.d.ts.map +1 -0
  795. package/dist/src/wallet/wallet-crypto.js +185 -0
  796. package/dist/src/wallet/wallet-crypto.js.map +1 -0
  797. package/dist/src/wallet/wallet-manager.d.ts +222 -0
  798. package/dist/src/wallet/wallet-manager.d.ts.map +1 -0
  799. package/dist/src/wallet/wallet-manager.js +518 -0
  800. package/dist/src/wallet/wallet-manager.js.map +1 -0
  801. package/dist/src/wallet/wallet-storage.d.ts +139 -0
  802. package/dist/src/wallet/wallet-storage.d.ts.map +1 -0
  803. package/dist/src/wallet/wallet-storage.js +290 -0
  804. package/dist/src/wallet/wallet-storage.js.map +1 -0
  805. package/dist/src/wiki/index.d.ts +30 -0
  806. package/dist/src/wiki/index.d.ts.map +1 -0
  807. package/dist/src/wiki/index.js +30 -0
  808. package/dist/src/wiki/index.js.map +1 -0
  809. package/dist/src/wiki/ingest.d.ts +51 -0
  810. package/dist/src/wiki/ingest.d.ts.map +1 -0
  811. package/dist/src/wiki/ingest.js +197 -0
  812. package/dist/src/wiki/ingest.js.map +1 -0
  813. package/dist/src/wiki/lint.d.ts +43 -0
  814. package/dist/src/wiki/lint.d.ts.map +1 -0
  815. package/dist/src/wiki/lint.js +187 -0
  816. package/dist/src/wiki/lint.js.map +1 -0
  817. package/dist/src/wiki/mcp-tools.d.ts +35 -0
  818. package/dist/src/wiki/mcp-tools.d.ts.map +1 -0
  819. package/dist/src/wiki/mcp-tools.js +353 -0
  820. package/dist/src/wiki/mcp-tools.js.map +1 -0
  821. package/dist/src/wiki/query.d.ts +38 -0
  822. package/dist/src/wiki/query.d.ts.map +1 -0
  823. package/dist/src/wiki/query.js +117 -0
  824. package/dist/src/wiki/query.js.map +1 -0
  825. package/dist/src/wiki/wiki-store.d.ts +53 -0
  826. package/dist/src/wiki/wiki-store.d.ts.map +1 -0
  827. package/dist/src/wiki/wiki-store.js +132 -0
  828. package/dist/src/wiki/wiki-store.js.map +1 -0
  829. package/package.json +44 -12
  830. package/.dfx/local/network-id +0 -4
  831. package/.next/trace +0 -2
  832. package/.vercel/README.txt +0 -11
  833. package/.vercel/project.json +0 -1
  834. package/AGENTS.md +0 -43
  835. package/PLAN_VAULT_INTEGRATION.md +0 -318
  836. package/backups/agentvault-backup-test-agent-2026-02-12T17-54-28-967Z.json +0 -28
  837. package/backups/agentvault-backup-test-agent-2026-02-12T17-54-29-032Z.backup +0 -1
  838. package/backups/agentvault-backup-test-agent-2026-02-12T17-57-42-373Z.json +0 -28
  839. package/backups/agentvault-backup-test-agent-2026-02-12T17-57-42-428Z.backup +0 -1
  840. package/backups/agentvault-backup-test-agent-2026-02-12T18-52-25-132Z.json +0 -28
  841. package/backups/agentvault-backup-test-agent-2026-02-12T18-52-25-247Z.backup +0 -1
  842. package/backups/agentvault-backup-test-agent-2026-02-12T18-54-09-216Z.json +0 -28
  843. package/backups/agentvault-backup-test-agent-2026-02-12T18-54-09-283Z.backup +0 -1
  844. package/backups/agentvault-backup-test-agent-2026-02-12T22-18-22-772Z.backup +0 -1
  845. package/backups/agentvault-backup-test-agent-2026-02-12T22-18-22-793Z.json +0 -28
  846. package/backups/test-backup.json +0 -28
  847. package/dist/vitest.config.d.ts +0 -3
  848. package/dist/vitest.config.js +0 -14
  849. package/fixup_1_0_OSS_release.md +0 -136
  850. package/fixup_REALEASE_PRD.md +0 -136
  851. package/pnpm-workspace.yaml +0 -5
  852. package/scripts/dev-dashboard.mjs +0 -84
  853. package/site/README.md +0 -63
  854. package/site/docusaurus.config.ts +0 -148
  855. package/site/package-lock.json +0 -18383
  856. package/site/package.json +0 -47
  857. package/site/sidebars.ts +0 -86
  858. package/site/static/.gitkeep +0 -0
  859. package/site/static/img/logo.svg +0 -28
  860. package/site/static/img/og-image.svg +0 -35
  861. package/src/archival/archive-manager.ts +0 -372
  862. package/src/archival/arweave-client.ts +0 -289
  863. package/src/archival/index.ts +0 -8
  864. package/src/backup/backup.ts +0 -315
  865. package/src/backup/index.ts +0 -7
  866. package/src/cloud-storage/cloud-sync.ts +0 -461
  867. package/src/cloud-storage/provider-detector.ts +0 -198
  868. package/src/cloud-storage/types.ts +0 -104
  869. package/src/debugging/logs.ts +0 -193
  870. package/src/debugging/types.ts +0 -100
  871. package/src/deployment/deployer.ts +0 -274
  872. package/src/deployment/icpClient.ts +0 -620
  873. package/src/deployment/index.ts +0 -46
  874. package/src/deployment/promotion.ts +0 -161
  875. package/src/deployment/types.ts +0 -111
  876. package/src/icp/batch.ts +0 -374
  877. package/src/icp/environment.ts +0 -215
  878. package/src/icp/icpcli.ts +0 -438
  879. package/src/icp/icwasm.ts +0 -222
  880. package/src/icp/index.ts +0 -94
  881. package/src/icp/optimization.ts +0 -242
  882. package/src/icp/tool-detector.ts +0 -110
  883. package/src/icp/types.ts +0 -574
  884. package/src/index.ts +0 -25
  885. package/src/inference/bittensor-client.ts +0 -304
  886. package/src/inference/index.ts +0 -8
  887. package/src/inference/inference-manager.ts +0 -327
  888. package/src/metrics/metrics.ts +0 -186
  889. package/src/monitoring/alerting.ts +0 -190
  890. package/src/monitoring/health.ts +0 -197
  891. package/src/monitoring/index.ts +0 -38
  892. package/src/monitoring/info.ts +0 -114
  893. package/src/monitoring/types.ts +0 -99
  894. package/src/network/network-config.ts +0 -129
  895. package/src/packaging/compiler.ts +0 -647
  896. package/src/packaging/config-persistence.ts +0 -135
  897. package/src/packaging/config-schemas.ts +0 -156
  898. package/src/packaging/detector.ts +0 -220
  899. package/src/packaging/index.ts +0 -90
  900. package/src/packaging/packager.ts +0 -118
  901. package/src/packaging/parsers/clawdbot.ts +0 -278
  902. package/src/packaging/parsers/cline.ts +0 -223
  903. package/src/packaging/parsers/generic.ts +0 -266
  904. package/src/packaging/parsers/goose.ts +0 -214
  905. package/src/packaging/serializer.ts +0 -260
  906. package/src/packaging/types.ts +0 -144
  907. package/src/packaging/wasmedge-compiler.ts +0 -406
  908. package/src/security/index.ts +0 -17
  909. package/src/security/multisig.ts +0 -415
  910. package/src/security/types.ts +0 -416
  911. package/src/security/vetkeys.ts +0 -655
  912. package/src/testing/local-runner.ts +0 -264
  913. package/src/testing/types.ts +0 -104
  914. package/src/wallet/cbor-serializer.ts +0 -323
  915. package/src/wallet/chain-dispatcher.ts +0 -313
  916. package/src/wallet/cross-chain-aggregator.ts +0 -346
  917. package/src/wallet/index.ts +0 -76
  918. package/src/wallet/key-derivation.ts +0 -425
  919. package/src/wallet/providers/base-provider.ts +0 -154
  920. package/src/wallet/providers/cketh-provider.ts +0 -434
  921. package/src/wallet/providers/polkadot-provider.ts +0 -503
  922. package/src/wallet/providers/solana-provider.ts +0 -490
  923. package/src/wallet/transaction-queue.ts +0 -284
  924. package/src/wallet/types.ts +0 -178
  925. package/src/wallet/vetkeys-adapter.ts +0 -431
  926. package/src/wallet/wallet-manager.ts +0 -597
  927. package/src/wallet/wallet-storage.ts +0 -380
  928. package/vercel.json +0 -8
@@ -0,0 +1,272 @@
1
+ /**
2
+ * Ledger Hardware Wallet HSM Provider
3
+ *
4
+ * Offloads key generation and signing to a Ledger hardware wallet over USB HID.
5
+ * The device generates keys internally from its BIP39 seed phrase, which is
6
+ * entered on the physical keypad and NEVER transmitted to the host machine.
7
+ *
8
+ * Security properties:
9
+ * - Private key is generated inside the Secure Element and never leaves it.
10
+ * - BIP39 mnemonic is air-gapped on the device (entered via physical buttons).
11
+ * - The host receives ONLY the derived public key and chain address.
12
+ * - Transaction signing: the host sends an unsigned digest; the device returns
13
+ * only the signature bytes.
14
+ * - RAM dumps of the host process contain zero key material.
15
+ *
16
+ * Supported chains / apps (Ledger app must be open on device):
17
+ * secp256k1: Ethereum app → ckETH, Polkadot (ECDSA mode)
18
+ * ed25519: Solana app → Solana, ICP, Arweave
19
+ *
20
+ * Dependencies (optional peer deps, dynamically imported):
21
+ * @ledgerhq/hw-transport-node-hid – USB HID transport
22
+ * @ledgerhq/hw-app-eth – Ethereum APDU client
23
+ * @ledgerhq/hw-app-solana – Solana APDU client
24
+ *
25
+ * Install with:
26
+ * npm install @ledgerhq/hw-transport-node-hid @ledgerhq/hw-app-eth @ledgerhq/hw-app-solana
27
+ */
28
+ import { createHash } from 'node:crypto';
29
+ import { HsmNotAvailableError, HsmCurveUnsupportedError, HsmOperationError, } from './types.js';
30
+ // ---------------------------------------------------------------------------
31
+ // Address derivation helpers (pure, no private key needed)
32
+ // ---------------------------------------------------------------------------
33
+ // LedgerHsmProvider
34
+ // ---------------------------------------------------------------------------
35
+ /**
36
+ * HSM provider that delegates all key operations to a connected Ledger device.
37
+ *
38
+ * Usage:
39
+ * ```ts
40
+ * const ledger = new LedgerHsmProvider();
41
+ * await ledger.open(); // connects over USB HID
42
+ * const { address } = await ledger.getPublicKey("m/44'/60'/0'/0/0", 'secp256k1');
43
+ * await ledger.close();
44
+ * ```
45
+ */
46
+ export class LedgerHsmProvider {
47
+ name = 'Ledger Hardware Wallet';
48
+ backend = 'ledger';
49
+ supportedCurves = ['secp256k1', 'ed25519'];
50
+ _transport = null;
51
+ _deviceProduct = null;
52
+ _deviceSerial = null;
53
+ // -------------------------------------------------------------------------
54
+ // Lifecycle
55
+ // -------------------------------------------------------------------------
56
+ async open() {
57
+ if (this._transport)
58
+ return; // already open
59
+ // Dynamically import – avoids hard dependency if Ledger is not installed.
60
+ let TransportNodeHid;
61
+ try {
62
+ const mod = await import('@ledgerhq/hw-transport-node-hid');
63
+ TransportNodeHid = mod.default ?? mod;
64
+ }
65
+ catch {
66
+ throw new HsmNotAvailableError('ledger', 'Package @ledgerhq/hw-transport-node-hid is not installed. ' +
67
+ 'Run: npm install @ledgerhq/hw-transport-node-hid @ledgerhq/hw-app-eth @ledgerhq/hw-app-solana');
68
+ }
69
+ // Check that at least one device is reachable before trying to open.
70
+ let devices;
71
+ try {
72
+ devices = await TransportNodeHid.list();
73
+ }
74
+ catch (err) {
75
+ throw new HsmNotAvailableError('ledger', 'Failed to list HID devices: ' + String(err));
76
+ }
77
+ if (devices.length === 0) {
78
+ throw new HsmNotAvailableError('ledger', 'No Ledger device found. Connect the device, unlock it, and open the correct app.');
79
+ }
80
+ try {
81
+ this._transport = await TransportNodeHid.create();
82
+ }
83
+ catch (err) {
84
+ throw new HsmNotAvailableError('ledger', 'Could not open HID transport: ' + String(err));
85
+ }
86
+ // Capture device identity for later.
87
+ this._deviceProduct = this._transport.deviceModel?.productName ?? 'Ledger';
88
+ // Use a hash of the product name + current open time as a stable-enough ID.
89
+ this._deviceSerial =
90
+ this._transport.deviceModel?.id ??
91
+ createHash('sha256')
92
+ .update(this._deviceProduct + '-' + Date.now())
93
+ .digest('hex')
94
+ .slice(0, 16);
95
+ }
96
+ async close() {
97
+ if (this._transport) {
98
+ await this._transport.close().catch(() => { });
99
+ this._transport = null;
100
+ }
101
+ }
102
+ // -------------------------------------------------------------------------
103
+ // Public key retrieval
104
+ // -------------------------------------------------------------------------
105
+ async getPublicKey(derivationPath, curve) {
106
+ this._assertOpen();
107
+ if (!this.supportedCurves.includes(curve)) {
108
+ throw new HsmCurveUnsupportedError('ledger', curve);
109
+ }
110
+ try {
111
+ if (curve === 'secp256k1') {
112
+ return await this._getEthPublicKey(derivationPath);
113
+ }
114
+ else {
115
+ return await this._getSolanaPublicKey(derivationPath);
116
+ }
117
+ }
118
+ catch (err) {
119
+ if (err instanceof HsmNotAvailableError || err instanceof HsmCurveUnsupportedError) {
120
+ throw err;
121
+ }
122
+ throw new HsmOperationError('ledger', 'getPublicKey', err);
123
+ }
124
+ }
125
+ /**
126
+ * Retrieve secp256k1 public key from the Ledger Ethereum app.
127
+ * The device derives the key at `path` from its internal seed and returns
128
+ * only the public key + EIP-55 address. No private key is transmitted.
129
+ */
130
+ async _getEthPublicKey(path) {
131
+ let EthApp;
132
+ try {
133
+ const mod = await import('@ledgerhq/hw-app-eth');
134
+ EthApp = mod.default ?? mod;
135
+ }
136
+ catch {
137
+ throw new HsmNotAvailableError('ledger', 'Package @ledgerhq/hw-app-eth is not installed.');
138
+ }
139
+ const eth = new EthApp(this._transport);
140
+ // display=false → no on-device confirmation required (just address derivation)
141
+ const result = await eth.getAddress(path, false);
142
+ return {
143
+ publicKeyHex: result.publicKey.startsWith('04')
144
+ ? result.publicKey
145
+ : '04' + result.publicKey,
146
+ address: result.address,
147
+ derivationPath: path,
148
+ curve: 'secp256k1',
149
+ };
150
+ }
151
+ /**
152
+ * Retrieve Ed25519 public key from the Ledger Solana app.
153
+ * Works for Solana, ICP, and Arweave (all use Ed25519).
154
+ * The host receives only the 32-byte public key; the private key stays sealed.
155
+ */
156
+ async _getSolanaPublicKey(path) {
157
+ let SolanaApp;
158
+ try {
159
+ const mod = await import('@ledgerhq/hw-app-solana');
160
+ SolanaApp = mod.default ?? mod;
161
+ }
162
+ catch {
163
+ throw new HsmNotAvailableError('ledger', 'Package @ledgerhq/hw-app-solana is not installed.');
164
+ }
165
+ const sol = new SolanaApp(this._transport);
166
+ const result = await sol.getAddress(path);
167
+ const pubkeyHex = Buffer.from(result.address).toString('hex');
168
+ // For Solana the address is the base58-encoded public key.
169
+ // We derive it here so callers get a usable address without needing bs58.
170
+ const { PublicKey } = await import('@solana/web3.js');
171
+ const address = new PublicKey(result.address).toBase58();
172
+ return {
173
+ publicKeyHex: pubkeyHex,
174
+ address,
175
+ derivationPath: path,
176
+ curve: 'ed25519',
177
+ };
178
+ }
179
+ // -------------------------------------------------------------------------
180
+ // Signing
181
+ // -------------------------------------------------------------------------
182
+ async signDigest(derivationPath, digestHex, curve) {
183
+ this._assertOpen();
184
+ if (!this.supportedCurves.includes(curve)) {
185
+ throw new HsmCurveUnsupportedError('ledger', curve);
186
+ }
187
+ try {
188
+ if (curve === 'secp256k1') {
189
+ return await this._signEth(derivationPath, digestHex);
190
+ }
191
+ else {
192
+ return await this._signSolana(derivationPath, digestHex);
193
+ }
194
+ }
195
+ catch (err) {
196
+ if (err instanceof HsmNotAvailableError || err instanceof HsmCurveUnsupportedError) {
197
+ throw err;
198
+ }
199
+ throw new HsmOperationError('ledger', 'signDigest', err);
200
+ }
201
+ }
202
+ async _signEth(path, digestHex) {
203
+ let EthApp;
204
+ try {
205
+ const mod = await import('@ledgerhq/hw-app-eth');
206
+ EthApp = mod.default ?? mod;
207
+ }
208
+ catch {
209
+ throw new HsmNotAvailableError('ledger', 'Package @ledgerhq/hw-app-eth is not installed.');
210
+ }
211
+ const eth = new EthApp(this._transport);
212
+ // The Ledger Ethereum app signs raw transactions; we pass the digest as a
213
+ // minimal "raw tx" hex. For EIP-191 personal signs callers should use
214
+ // signPersonalMessage instead; this method handles arbitrary 32-byte digests.
215
+ const sig = await eth.signTransaction(path, digestHex);
216
+ const r = sig.r.replace(/^0x/, '');
217
+ const s = sig.s.replace(/^0x/, '');
218
+ const vHex = sig.v.replace(/^0x/, '').padStart(2, '0');
219
+ const recovery = parseInt(vHex, 16) % 2; // 0 or 1
220
+ return { signatureHex: r + s + vHex, recovery };
221
+ }
222
+ async _signSolana(path, digestHex) {
223
+ let SolanaApp;
224
+ try {
225
+ const mod = await import('@ledgerhq/hw-app-solana');
226
+ SolanaApp = mod.default ?? mod;
227
+ }
228
+ catch {
229
+ throw new HsmNotAvailableError('ledger', 'Package @ledgerhq/hw-app-solana is not installed.');
230
+ }
231
+ const sol = new SolanaApp(this._transport);
232
+ const txBuffer = Buffer.from(digestHex, 'hex');
233
+ const result = await sol.signTransaction(path, txBuffer);
234
+ return { signatureHex: Buffer.from(result.signature).toString('hex') };
235
+ }
236
+ // -------------------------------------------------------------------------
237
+ // Device identity
238
+ // -------------------------------------------------------------------------
239
+ async deviceId() {
240
+ this._assertOpen();
241
+ return this._deviceSerial ?? 'ledger-unknown';
242
+ }
243
+ // -------------------------------------------------------------------------
244
+ // Internal helpers
245
+ // -------------------------------------------------------------------------
246
+ _assertOpen() {
247
+ if (!this._transport) {
248
+ throw new HsmNotAvailableError('ledger', 'Provider is not open. Call open() before any key operations.');
249
+ }
250
+ }
251
+ }
252
+ // ---------------------------------------------------------------------------
253
+ // Probe helper – call without opening a full provider
254
+ // ---------------------------------------------------------------------------
255
+ /**
256
+ * Quick check: is a Ledger device currently connected and unlocked?
257
+ *
258
+ * @returns `true` if at least one HID device is enumerable, `false` otherwise.
259
+ * Does NOT verify that any particular Ledger app is open.
260
+ */
261
+ export async function isLedgerAvailable() {
262
+ try {
263
+ const mod = await import('@ledgerhq/hw-transport-node-hid');
264
+ const Transport = mod.default ?? mod;
265
+ const devices = await Transport.list();
266
+ return Array.isArray(devices) && devices.length > 0;
267
+ }
268
+ catch {
269
+ return false;
270
+ }
271
+ }
272
+ //# sourceMappingURL=ledger-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-provider.js","sourceRoot":"","sources":["../../../../src/wallet/hsm/ledger-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQzC,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AA2BpB,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,OAAO,iBAAiB;IACnB,IAAI,GAAG,wBAAwB,CAAC;IAChC,OAAO,GAAe,QAAQ,CAAC;IAC/B,eAAe,GAA4B,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAErE,UAAU,GAA2B,IAAI,CAAC;IAC1C,cAAc,GAAkB,IAAI,CAAC;IACrC,aAAa,GAAkB,IAAI,CAAC;IAE5C,4EAA4E;IAC5E,YAAY;IACZ,4EAA4E;IAE5E,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,eAAe;QAE5C,0EAA0E;QAC1E,IAAI,gBAA4C,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iCAAwC,CAAC,CAAC;YACnE,gBAAgB,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,oBAAoB,CAC5B,QAAQ,EACR,4DAA4D;gBAC1D,+FAA+F,CAClG,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,IAAI,OAAkB,CAAC;QACvB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,oBAAoB,CAAC,QAAQ,EAAE,8BAA8B,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,oBAAoB,CAC5B,QAAQ,EACR,kFAAkF,CACnF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,oBAAoB,CAAC,QAAQ,EAAE,gCAAgC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3F,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,IAAI,QAAQ,CAAC;QAC3E,4EAA4E;QAC5E,IAAI,CAAC,aAAa;YAChB,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;gBAC/B,UAAU,CAAC,QAAQ,CAAC;qBACjB,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;qBAC9C,MAAM,CAAC,KAAK,CAAC;qBACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,uBAAuB;IACvB,4EAA4E;IAE5E,KAAK,CAAC,YAAY,CAAC,cAAsB,EAAE,KAAe;QACxD,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,wBAAwB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC;YACH,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC1B,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,oBAAoB,IAAI,GAAG,YAAY,wBAAwB,EAAE,CAAC;gBACnF,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACzC,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,sBAA6B,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,oBAAoB,CAC5B,QAAQ,EACR,gDAAgD,CACjD,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAW,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,+EAA+E;QAC/E,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEjD,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC7C,CAAC,CAAC,MAAM,CAAC,SAAS;gBAClB,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,cAAc,EAAE,IAAI;YACpB,KAAK,EAAE,WAAW;SACnB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,mBAAmB,CAAC,IAAY;QAC5C,IAAI,SAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,yBAAgC,CAAC,CAAC;YAC3D,SAAS,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,oBAAoB,CAC5B,QAAQ,EACR,mDAAmD,CACpD,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAc,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE9D,2DAA2D;QAC3D,0EAA0E;QAC1E,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEzD,OAAO;YACL,YAAY,EAAE,SAAS;YACvB,OAAO;YACP,cAAc,EAAE,IAAI;YACpB,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,UAAU;IACV,4EAA4E;IAE5E,KAAK,CAAC,UAAU,CACd,cAAsB,EACtB,SAAiB,EACjB,KAAe;QAEf,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,wBAAwB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC;YACH,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC1B,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,oBAAoB,IAAI,GAAG,YAAY,wBAAwB,EAAE,CAAC;gBACnF,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,SAAiB;QACpD,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,sBAA6B,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,oBAAoB,CAAC,QAAQ,EAAE,gDAAgD,CAAC,CAAC;QAC7F,CAAC;QAED,MAAM,GAAG,GAAW,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,0EAA0E;QAC1E,uEAAuE;QACvE,8EAA8E;QAC9E,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEvD,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;QAElD,OAAO,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,SAAiB;QACvD,IAAI,SAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,yBAAgC,CAAC,CAAC;YAC3D,SAAS,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,oBAAoB,CAC5B,QAAQ,EACR,mDAAmD,CACpD,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAc,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACzE,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAE5E,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,aAAa,IAAI,gBAAgB,CAAC;IAChD,CAAC;IAED,4EAA4E;IAC5E,mBAAmB;IACnB,4EAA4E;IAEpE,WAAW;QACjB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,oBAAoB,CAC5B,QAAQ,EACR,8DAA8D,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED,8EAA8E;AAC9E,sDAAsD;AACtD,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iCAAwC,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Intel SGX TEE HSM Provider
3
+ *
4
+ * Offloads key generation and signing to an Intel SGX trusted enclave.
5
+ * The enclave generates keys inside its protected memory, seals them with
6
+ * the processor's platform key, and only ever exposes public keys and
7
+ * signatures to the untrusted host.
8
+ *
9
+ * Security properties:
10
+ * - Private key material generated inside the SGX enclave (ring-0 isolation).
11
+ * - Keys are *sealed* to the enclave identity (MRENCLAVE / MRSIGNER):
12
+ * sealed blobs are opaque byte strings that cannot be read outside
13
+ * the matching enclave even with physical DRAM access.
14
+ * - Host process receives ONLY public keys and signatures.
15
+ * - RAM dumps of the host process contain zero key material.
16
+ *
17
+ * Architecture:
18
+ * Host (this file) ──UNIX-socket──▶ AESM daemon (aesmd)
19
+ * │
20
+ * SGX driver / enclave
21
+ *
22
+ * The AESM socket path is configurable; default: /var/run/aesmd/aesm.socket
23
+ * For development / CI without real SGX hardware, set env SGX_SIMULATION=1
24
+ * to use the libsgx_urts simulation mode.
25
+ *
26
+ * Real deployment:
27
+ * 1. Install Intel SGX driver + platform software stack.
28
+ * 2. Build / sign the enclave shared library (agentvault_keygen.signed.so).
29
+ * 3. Set AGENTVAULT_SGX_ENCLAVE_PATH to point at the .signed.so file.
30
+ * 4. Start aesmd.
31
+ * 5. Run `agentvault wallet create --hsm sgx`.
32
+ *
33
+ * This file implements the host-side stub that communicates with the enclave
34
+ * via a JSON-over-UNIX-socket protocol. The protocol is intentionally simple
35
+ * so that the enclave-side implementation can be small and auditable.
36
+ */
37
+ import type { HsmProvider, HsmBackend, HsmCurve, HsmPublicKeyResult, HsmSignatureResult } from './types.js';
38
+ /**
39
+ * HSM provider that delegates all key operations to an Intel SGX enclave.
40
+ *
41
+ * The enclave binary must implement the agentvault_keygen.edl interface and
42
+ * respond to the JSON-over-UNIX-socket protocol defined above.
43
+ *
44
+ * Usage:
45
+ * ```ts
46
+ * const sgx = new SgxHsmProvider();
47
+ * await sgx.open(); // connects to AESM daemon
48
+ * const { address } = await sgx.getPublicKey("m/44'/60'/0'/0/0", 'secp256k1');
49
+ * await sgx.close();
50
+ * ```
51
+ */
52
+ export declare class SgxHsmProvider implements HsmProvider {
53
+ readonly name = "Intel SGX TEE Enclave";
54
+ readonly backend: HsmBackend;
55
+ readonly supportedCurves: ReadonlyArray<HsmCurve>;
56
+ private readonly _socketPath;
57
+ private readonly _enclavePath;
58
+ private _socket;
59
+ constructor(options?: {
60
+ socketPath?: string;
61
+ enclavePath?: string;
62
+ });
63
+ open(): Promise<void>;
64
+ close(): Promise<void>;
65
+ getPublicKey(derivationPath: string, curve: HsmCurve): Promise<HsmPublicKeyResult>;
66
+ signDigest(derivationPath: string, digestHex: string, curve: HsmCurve): Promise<HsmSignatureResult>;
67
+ deviceId(): Promise<string>;
68
+ private _connectSocket;
69
+ /**
70
+ * Send a JSON request to the enclave daemon and await a JSON response.
71
+ * Each message is framed as a 4-byte big-endian length prefix followed by
72
+ * the UTF-8 JSON payload (same framing as Intel's AESM RPC protocol).
73
+ */
74
+ private _send;
75
+ private _assertOpen;
76
+ }
77
+ /**
78
+ * Quick check: is the SGX AESM daemon socket accessible?
79
+ *
80
+ * @returns `true` if the socket file exists and can be stat'd, `false` otherwise.
81
+ */
82
+ export declare function isSgxAvailable(socketPath?: string): Promise<boolean>;
83
+ //# sourceMappingURL=sgx-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sgx-provider.d.ts","sourceRoot":"","sources":["../../../../src/wallet/hsm/sgx-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAIH,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAyCpB;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAS;IACrC,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,QAAQ,CAAC,CAA4B;IAE7E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,OAAO,CAA2B;gBAE9B,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;IAYjE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgClF,UAAU,CACd,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,kBAAkB,CAAC;IA8BxB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;YAgBnB,cAAc;IAmC5B;;;;OAIG;YACW,KAAK;IA8DnB,OAAO,CAAC,WAAW;CAQpB;AAcD;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,UAAU,GAAE,MAA4B,GACvC,OAAO,CAAC,OAAO,CAAC,CAQlB"}
@@ -0,0 +1,281 @@
1
+ /**
2
+ * Intel SGX TEE HSM Provider
3
+ *
4
+ * Offloads key generation and signing to an Intel SGX trusted enclave.
5
+ * The enclave generates keys inside its protected memory, seals them with
6
+ * the processor's platform key, and only ever exposes public keys and
7
+ * signatures to the untrusted host.
8
+ *
9
+ * Security properties:
10
+ * - Private key material generated inside the SGX enclave (ring-0 isolation).
11
+ * - Keys are *sealed* to the enclave identity (MRENCLAVE / MRSIGNER):
12
+ * sealed blobs are opaque byte strings that cannot be read outside
13
+ * the matching enclave even with physical DRAM access.
14
+ * - Host process receives ONLY public keys and signatures.
15
+ * - RAM dumps of the host process contain zero key material.
16
+ *
17
+ * Architecture:
18
+ * Host (this file) ──UNIX-socket──▶ AESM daemon (aesmd)
19
+ * │
20
+ * SGX driver / enclave
21
+ *
22
+ * The AESM socket path is configurable; default: /var/run/aesmd/aesm.socket
23
+ * For development / CI without real SGX hardware, set env SGX_SIMULATION=1
24
+ * to use the libsgx_urts simulation mode.
25
+ *
26
+ * Real deployment:
27
+ * 1. Install Intel SGX driver + platform software stack.
28
+ * 2. Build / sign the enclave shared library (agentvault_keygen.signed.so).
29
+ * 3. Set AGENTVAULT_SGX_ENCLAVE_PATH to point at the .signed.so file.
30
+ * 4. Start aesmd.
31
+ * 5. Run `agentvault wallet create --hsm sgx`.
32
+ *
33
+ * This file implements the host-side stub that communicates with the enclave
34
+ * via a JSON-over-UNIX-socket protocol. The protocol is intentionally simple
35
+ * so that the enclave-side implementation can be small and auditable.
36
+ */
37
+ import * as net from 'node:net';
38
+ import * as crypto from 'node:crypto';
39
+ import { HsmNotAvailableError, HsmCurveUnsupportedError, HsmOperationError, } from './types.js';
40
+ // ---------------------------------------------------------------------------
41
+ // Configuration constants
42
+ // ---------------------------------------------------------------------------
43
+ /** Default UNIX socket path used by Intel's AESM daemon. */
44
+ const DEFAULT_AESM_SOCKET = '/var/run/aesmd/aesm.socket';
45
+ /**
46
+ * Environment variable pointing to the signed enclave shared object.
47
+ * When unset the provider falls back to simulation mode (SGX_SIMULATION=1).
48
+ */
49
+ const ENCLAVE_PATH_ENV = 'AGENTVAULT_SGX_ENCLAVE_PATH';
50
+ /** Socket I/O timeout in milliseconds. */
51
+ const SOCKET_TIMEOUT_MS = 10_000;
52
+ // ---------------------------------------------------------------------------
53
+ // SgxHsmProvider
54
+ // ---------------------------------------------------------------------------
55
+ /**
56
+ * HSM provider that delegates all key operations to an Intel SGX enclave.
57
+ *
58
+ * The enclave binary must implement the agentvault_keygen.edl interface and
59
+ * respond to the JSON-over-UNIX-socket protocol defined above.
60
+ *
61
+ * Usage:
62
+ * ```ts
63
+ * const sgx = new SgxHsmProvider();
64
+ * await sgx.open(); // connects to AESM daemon
65
+ * const { address } = await sgx.getPublicKey("m/44'/60'/0'/0/0", 'secp256k1');
66
+ * await sgx.close();
67
+ * ```
68
+ */
69
+ export class SgxHsmProvider {
70
+ name = 'Intel SGX TEE Enclave';
71
+ backend = 'sgx';
72
+ supportedCurves = ['secp256k1', 'ed25519'];
73
+ _socketPath;
74
+ _enclavePath;
75
+ _socket = null;
76
+ constructor(options = {}) {
77
+ this._socketPath = options.socketPath ?? DEFAULT_AESM_SOCKET;
78
+ this._enclavePath =
79
+ options.enclavePath ??
80
+ process.env[ENCLAVE_PATH_ENV] ??
81
+ '/usr/lib/agentvault/agentvault_keygen.signed.so';
82
+ }
83
+ // -------------------------------------------------------------------------
84
+ // Lifecycle
85
+ // -------------------------------------------------------------------------
86
+ async open() {
87
+ if (this._socket)
88
+ return; // already open
89
+ await this._connectSocket();
90
+ try {
91
+ await this._send({ op: 'ping' });
92
+ }
93
+ catch (err) {
94
+ await this.close();
95
+ throw new HsmNotAvailableError('sgx', `SGX daemon at ${this._socketPath} did not respond to ping: ${String(err)}`);
96
+ }
97
+ }
98
+ async close() {
99
+ if (this._socket) {
100
+ this._socket.destroy();
101
+ this._socket = null;
102
+ }
103
+ }
104
+ // -------------------------------------------------------------------------
105
+ // Public key retrieval
106
+ // -------------------------------------------------------------------------
107
+ async getPublicKey(derivationPath, curve) {
108
+ this._assertOpen();
109
+ if (!this.supportedCurves.includes(curve)) {
110
+ throw new HsmCurveUnsupportedError('sgx', curve);
111
+ }
112
+ let result;
113
+ try {
114
+ result = await this._send({ op: 'getPublicKey', path: derivationPath, curve });
115
+ }
116
+ catch (err) {
117
+ throw new HsmOperationError('sgx', 'getPublicKey', err);
118
+ }
119
+ // Validate response shape
120
+ const r = result;
121
+ if (typeof r.publicKeyHex !== 'string' || typeof r.address !== 'string') {
122
+ throw new HsmOperationError('sgx', 'getPublicKey', 'Malformed response from enclave');
123
+ }
124
+ return {
125
+ publicKeyHex: r.publicKeyHex,
126
+ address: r.address,
127
+ derivationPath,
128
+ curve,
129
+ };
130
+ }
131
+ // -------------------------------------------------------------------------
132
+ // Signing
133
+ // -------------------------------------------------------------------------
134
+ async signDigest(derivationPath, digestHex, curve) {
135
+ this._assertOpen();
136
+ if (!this.supportedCurves.includes(curve)) {
137
+ throw new HsmCurveUnsupportedError('sgx', curve);
138
+ }
139
+ if (!/^[0-9a-fA-F]{64}$/.test(digestHex)) {
140
+ throw new HsmOperationError('sgx', 'signDigest', 'digestHex must be exactly 32 bytes (64 hex chars)');
141
+ }
142
+ let result;
143
+ try {
144
+ result = await this._send({ op: 'signDigest', path: derivationPath, digestHex, curve });
145
+ }
146
+ catch (err) {
147
+ throw new HsmOperationError('sgx', 'signDigest', err);
148
+ }
149
+ const r = result;
150
+ if (typeof r.signatureHex !== 'string') {
151
+ throw new HsmOperationError('sgx', 'signDigest', 'Malformed signature from enclave');
152
+ }
153
+ return { signatureHex: r.signatureHex, recovery: r.recovery };
154
+ }
155
+ // -------------------------------------------------------------------------
156
+ // Device identity
157
+ // -------------------------------------------------------------------------
158
+ async deviceId() {
159
+ this._assertOpen();
160
+ try {
161
+ const result = await this._send({ op: 'deviceId' });
162
+ return typeof result?.id === 'string' ? result.id : 'sgx-unknown';
163
+ }
164
+ catch {
165
+ // Fall back to a stable hash derived from the enclave path
166
+ return createHash('sha256').update(this._enclavePath).digest('hex').slice(0, 16);
167
+ }
168
+ }
169
+ // -------------------------------------------------------------------------
170
+ // UNIX socket transport
171
+ // -------------------------------------------------------------------------
172
+ async _connectSocket() {
173
+ return new Promise((resolve, reject) => {
174
+ const socket = net.createConnection({ path: this._socketPath });
175
+ const onConnect = () => {
176
+ socket.removeListener('error', onError);
177
+ this._socket = socket;
178
+ resolve();
179
+ };
180
+ const onError = (err) => {
181
+ socket.destroy();
182
+ reject(new HsmNotAvailableError('sgx', `Cannot connect to SGX AESM socket at ${this._socketPath}: ${err.message}. ` +
183
+ 'Is Intel SGX installed and aesmd running? (systemctl status aesmd)'));
184
+ };
185
+ socket.once('connect', onConnect);
186
+ socket.once('error', onError);
187
+ socket.setTimeout(SOCKET_TIMEOUT_MS, () => {
188
+ socket.destroy();
189
+ reject(new HsmNotAvailableError('sgx', `Timeout connecting to SGX AESM socket at ${this._socketPath}`));
190
+ });
191
+ });
192
+ }
193
+ /**
194
+ * Send a JSON request to the enclave daemon and await a JSON response.
195
+ * Each message is framed as a 4-byte big-endian length prefix followed by
196
+ * the UTF-8 JSON payload (same framing as Intel's AESM RPC protocol).
197
+ */
198
+ async _send(request) {
199
+ const socket = this._socket;
200
+ if (!socket)
201
+ throw new Error('Socket not connected');
202
+ return new Promise((resolve, reject) => {
203
+ const payload = Buffer.from(JSON.stringify(request), 'utf8');
204
+ const frame = Buffer.allocUnsafe(4 + payload.length);
205
+ frame.writeUInt32BE(payload.length, 0);
206
+ payload.copy(frame, 4);
207
+ const chunks = [];
208
+ const onData = (chunk) => {
209
+ chunks.push(chunk);
210
+ const accumulated = Buffer.concat(chunks);
211
+ // Wait for at least 4 bytes (length prefix)
212
+ if (accumulated.length < 4)
213
+ return;
214
+ const bodyLen = accumulated.readUInt32BE(0);
215
+ if (accumulated.length < 4 + bodyLen)
216
+ return;
217
+ // Full response received
218
+ socket.removeListener('data', onData);
219
+ socket.removeListener('error', onError);
220
+ const bodyStr = accumulated.slice(4, 4 + bodyLen).toString('utf8');
221
+ let parsed;
222
+ try {
223
+ parsed = JSON.parse(bodyStr);
224
+ }
225
+ catch {
226
+ return reject(new Error(`Invalid JSON from enclave: ${bodyStr}`));
227
+ }
228
+ if (!parsed.ok) {
229
+ return reject(new Error(parsed.error ?? 'Unknown enclave error'));
230
+ }
231
+ resolve(parsed.data);
232
+ };
233
+ const onError = (err) => {
234
+ socket.removeListener('data', onData);
235
+ reject(err);
236
+ };
237
+ socket.on('data', onData);
238
+ socket.once('error', onError);
239
+ socket.write(frame, (err) => {
240
+ if (err) {
241
+ socket.removeListener('data', onData);
242
+ socket.removeListener('error', onError);
243
+ reject(err);
244
+ }
245
+ });
246
+ });
247
+ }
248
+ // -------------------------------------------------------------------------
249
+ // Internal helpers
250
+ // -------------------------------------------------------------------------
251
+ _assertOpen() {
252
+ if (!this._socket) {
253
+ throw new HsmNotAvailableError('sgx', 'Provider is not open. Call open() before any key operations.');
254
+ }
255
+ }
256
+ }
257
+ // ---------------------------------------------------------------------------
258
+ // Helper
259
+ // ---------------------------------------------------------------------------
260
+ function createHash(alg) {
261
+ return crypto.createHash(alg);
262
+ }
263
+ // ---------------------------------------------------------------------------
264
+ // Probe helper
265
+ // ---------------------------------------------------------------------------
266
+ /**
267
+ * Quick check: is the SGX AESM daemon socket accessible?
268
+ *
269
+ * @returns `true` if the socket file exists and can be stat'd, `false` otherwise.
270
+ */
271
+ export async function isSgxAvailable(socketPath = DEFAULT_AESM_SOCKET) {
272
+ try {
273
+ const { stat } = await import('node:fs/promises');
274
+ const info = await stat(socketPath);
275
+ return info.isSocket();
276
+ }
277
+ catch {
278
+ return false;
279
+ }
280
+ }
281
+ //# sourceMappingURL=sgx-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sgx-provider.js","sourceRoot":"","sources":["../../../../src/wallet/hsm/sgx-provider.ts"],"names":[],"mappings":"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"}