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,127 @@
1
+ /**
2
+ * WebAuthn / Biometric Fallback — AgentVault MFA Layer 2
3
+ *
4
+ * Provides a biometric-backed device key for approvals when TOTP is unavailable.
5
+ *
6
+ * Architecture
7
+ * ─────────────
8
+ * • A P-256 (prime256v1) ECDSA keypair is generated once per device and stored in
9
+ * ~/.agentvault/mfa/device-key-<fingerprint>.json.
10
+ * • The private key is AES-256-GCM encrypted using a key derived from the device
11
+ * fingerprint + a locally generated salt (HKDF-SHA256). This simulates the
12
+ * Secure Enclave model: the key never leaves the local machine and is bound to
13
+ * the device's hardware identity (hostname + platform + arch).
14
+ * • signChallenge() signs a challenge hash with the private key and returns a DER
15
+ * signature — equivalent to what a Secure Enclave produces.
16
+ * • verifySignature() validates the signature using the public key, suitable for
17
+ * both the local CLI and a remote verifier (ICP canister, webapp).
18
+ * • generateWebAuthnAssertion() wraps sign+metadata into a WebAuthn-compatible
19
+ * AuthenticatorAssertionResponse structure for browser/webapp interop.
20
+ *
21
+ * Browser / Node.js portability
22
+ * ──────────────────────────────
23
+ * In a browser the same flow runs via crypto.subtle (WebCrypto API):
24
+ * navigator.credentials.get({ publicKey: { challenge, ... } })
25
+ * The server (ICP canister) holds the public key and verifies the assertion.
26
+ * This module mirrors that contract using Node's built-in crypto so the CLI
27
+ * can participate in the same protocol without browser dependencies.
28
+ *
29
+ * Replay protection
30
+ * ──────────────────
31
+ * Every assertion includes a counter that increments on each signing operation.
32
+ * The verifier checks that counter > lastSeenCounter, matching the WebAuthn spec.
33
+ */
34
+ /** Stored device credential (no unencrypted private key on disk). */
35
+ export interface DeviceCredential {
36
+ /** Credential identifier (hex of public key hash). */
37
+ credentialId: string;
38
+ /** Device fingerprint this credential is bound to. */
39
+ deviceFingerprint: string;
40
+ /** SPKI-encoded public key, base64url. */
41
+ publicKeyB64: string;
42
+ /** Signing counter — monotonically increments on every signing operation. */
43
+ signCounter: number;
44
+ /** AES-256-GCM encrypted PKCS#8 private key, base64url. */
45
+ encryptedPrivateKeyB64: string;
46
+ /** Random salt used for key derivation, hex. */
47
+ kdfSaltHex: string;
48
+ /** AES-GCM IV, hex. */
49
+ ivHex: string;
50
+ /** AES-GCM auth tag, hex. */
51
+ authTagHex: string;
52
+ createdAt: string;
53
+ }
54
+ /** Result of a biometric signing operation. */
55
+ export interface WebAuthnAssertion {
56
+ /** The credential that produced this assertion. */
57
+ credentialId: string;
58
+ /** The data that was signed: SHA-256(clientDataJSON). */
59
+ clientDataHash: string;
60
+ /** DER-encoded ECDSA signature, base64url. */
61
+ signatureB64: string;
62
+ /** Current signing counter (replay protection). */
63
+ signCounter: number;
64
+ /** ISO timestamp of the signing operation. */
65
+ timestamp: string;
66
+ }
67
+ /** Result of a biometric setup call. */
68
+ export interface BiometricSetup {
69
+ credentialId: string;
70
+ deviceFingerprint: string;
71
+ /** SPKI public key — send this to the ICP canister for storage. */
72
+ publicKeyB64: string;
73
+ createdAt: string;
74
+ }
75
+ /**
76
+ * Generate a new P-256 device keypair and store it (private key AES-GCM encrypted).
77
+ *
78
+ * This is the one-time "biometric enrollment" step. In a browser this would
79
+ * involve navigator.credentials.create() with the Secure Enclave; here we use
80
+ * Node's crypto to produce an equivalent credential.
81
+ *
82
+ * @param deviceFingerprint - SHA-256(hostname ‖ platform ‖ arch)[:16] identifying this device
83
+ * @returns BiometricSetup containing the public key to register with the verifier
84
+ */
85
+ export declare function setupBiometricCredential(deviceFingerprint: string): BiometricSetup;
86
+ /**
87
+ * Sign a challenge hash with the device's private key (biometric assertion).
88
+ *
89
+ * Mirrors the WebAuthn AuthenticatorAssertionResponse:
90
+ * - clientDataHash = SHA-256(JSON.stringify({ type, challenge, timestamp }))
91
+ * - signature = ECDSA-SHA256(clientDataHash, privateKey) in DER format
92
+ * - signCounter increments (replay protection)
93
+ *
94
+ * @param challengeHash - SHA-256 hex from MFA challenge (binds this to the request)
95
+ * @param deviceFingerprint - Must match the enrolled device
96
+ * @returns WebAuthnAssertion — forward to the ICP canister for verification
97
+ */
98
+ export declare function signChallenge(challengeHash: string, deviceFingerprint: string): WebAuthnAssertion;
99
+ /**
100
+ * Verify a WebAuthn assertion from any device.
101
+ *
102
+ * @param assertion - The assertion produced by signChallenge()
103
+ * @param challengeHash - The original challenge hash (must be embedded in clientDataHash)
104
+ * @param publicKeyB64 - SPKI public key registered for this credential (base64url)
105
+ * @param lastSignCounter - The last seen signCounter for this credential (replay check)
106
+ * @returns { ok: true } or { ok: false, reason: string }
107
+ */
108
+ export declare function verifyWebAuthnAssertion(assertion: WebAuthnAssertion, challengeHash: string, publicKeyB64: string, lastSignCounter: number): {
109
+ ok: true;
110
+ } | {
111
+ ok: false;
112
+ reason: string;
113
+ };
114
+ /**
115
+ * Return the registered public key for a device, or null if not enrolled.
116
+ */
117
+ export declare function getDevicePublicKey(deviceFingerprint: string): string | null;
118
+ /**
119
+ * Return the current sign counter for a device credential.
120
+ * Used by the verifier to detect counter replay.
121
+ */
122
+ export declare function getSignCounter(deviceFingerprint: string): number;
123
+ /**
124
+ * Check whether a biometric credential exists for the given device.
125
+ */
126
+ export declare function hasBiometricCredential(deviceFingerprint: string): boolean;
127
+ //# sourceMappingURL=webauthn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webauthn.d.ts","sourceRoot":"","sources":["../../../src/security/webauthn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAsBH,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,sBAAsB,EAAE,MAAM,CAAC;IAC/B,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAqDD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,iBAAiB,EAAE,MAAM,GAAG,cAAc,CAuClF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,iBAAiB,EAAE,MAAM,GACxB,iBAAiB,CA+CnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,iBAAiB,EAC5B,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAoD9C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG3E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAEzE"}
@@ -0,0 +1,246 @@
1
+ /**
2
+ * WebAuthn / Biometric Fallback — AgentVault MFA Layer 2
3
+ *
4
+ * Provides a biometric-backed device key for approvals when TOTP is unavailable.
5
+ *
6
+ * Architecture
7
+ * ─────────────
8
+ * • A P-256 (prime256v1) ECDSA keypair is generated once per device and stored in
9
+ * ~/.agentvault/mfa/device-key-<fingerprint>.json.
10
+ * • The private key is AES-256-GCM encrypted using a key derived from the device
11
+ * fingerprint + a locally generated salt (HKDF-SHA256). This simulates the
12
+ * Secure Enclave model: the key never leaves the local machine and is bound to
13
+ * the device's hardware identity (hostname + platform + arch).
14
+ * • signChallenge() signs a challenge hash with the private key and returns a DER
15
+ * signature — equivalent to what a Secure Enclave produces.
16
+ * • verifySignature() validates the signature using the public key, suitable for
17
+ * both the local CLI and a remote verifier (ICP canister, webapp).
18
+ * • generateWebAuthnAssertion() wraps sign+metadata into a WebAuthn-compatible
19
+ * AuthenticatorAssertionResponse structure for browser/webapp interop.
20
+ *
21
+ * Browser / Node.js portability
22
+ * ──────────────────────────────
23
+ * In a browser the same flow runs via crypto.subtle (WebCrypto API):
24
+ * navigator.credentials.get({ publicKey: { challenge, ... } })
25
+ * The server (ICP canister) holds the public key and verifies the assertion.
26
+ * This module mirrors that contract using Node's built-in crypto so the CLI
27
+ * can participate in the same protocol without browser dependencies.
28
+ *
29
+ * Replay protection
30
+ * ──────────────────
31
+ * Every assertion includes a counter that increments on each signing operation.
32
+ * The verifier checks that counter > lastSeenCounter, matching the WebAuthn spec.
33
+ */
34
+ import fs from 'node:fs';
35
+ import path from 'node:path';
36
+ import os from 'node:os';
37
+ import crypto from 'node:crypto';
38
+ import { parse, stringify } from 'yaml';
39
+ // ─── Directory helpers ────────────────────────────────────────────────────────
40
+ const MFA_DIR = path.join(os.homedir(), '.agentvault', 'mfa');
41
+ function ensureMfaDir() {
42
+ fs.mkdirSync(MFA_DIR, { recursive: true });
43
+ }
44
+ function deviceKeyFile(fingerprint) {
45
+ return path.join(MFA_DIR, `device-key-${fingerprint}.yaml`);
46
+ }
47
+ // ─── Internal crypto helpers ──────────────────────────────────────────────────
48
+ /**
49
+ * Derive a 32-byte AES key from the device fingerprint using HKDF-SHA256.
50
+ * This binds the stored private key to the device's hardware identity.
51
+ */
52
+ function deriveEncryptionKey(fingerprint, saltHex) {
53
+ const salt = Buffer.from(saltHex, 'hex');
54
+ const ikm = crypto.createHash('sha256').update(`agentvault:device-key:${fingerprint}`).digest();
55
+ return Buffer.from(crypto.hkdfSync('sha256', ikm, salt, 'agentvault:biometric-key:v1', 32));
56
+ }
57
+ /** AES-256-GCM encrypt. Returns { ciphertext, iv, authTag } — all Buffer. */
58
+ function aesGcmEncrypt(plaintext, key) {
59
+ const iv = crypto.randomBytes(12); // 96-bit IV recommended for GCM
60
+ const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
61
+ const ciphertext = Buffer.concat([cipher.update(plaintext), cipher.final()]);
62
+ const authTag = cipher.getAuthTag();
63
+ return { ciphertext, iv, authTag };
64
+ }
65
+ /** AES-256-GCM decrypt. Throws on authentication failure. */
66
+ function aesGcmDecrypt(ciphertext, key, iv, authTag) {
67
+ const decipher = crypto.createDecipheriv('aes-256-gcm', key, iv);
68
+ decipher.setAuthTag(authTag);
69
+ return Buffer.concat([decipher.update(ciphertext), decipher.final()]);
70
+ }
71
+ // ─── Device credential management ────────────────────────────────────────────
72
+ function loadCredential(fingerprint) {
73
+ const fp = deviceKeyFile(fingerprint);
74
+ if (!fs.existsSync(fp))
75
+ return null;
76
+ return parse(fs.readFileSync(fp, 'utf8'));
77
+ }
78
+ function saveCredential(cred) {
79
+ ensureMfaDir();
80
+ fs.writeFileSync(deviceKeyFile(cred.deviceFingerprint), stringify(cred), { mode: 0o600 });
81
+ }
82
+ // ─── Public API ───────────────────────────────────────────────────────────────
83
+ /**
84
+ * Generate a new P-256 device keypair and store it (private key AES-GCM encrypted).
85
+ *
86
+ * This is the one-time "biometric enrollment" step. In a browser this would
87
+ * involve navigator.credentials.create() with the Secure Enclave; here we use
88
+ * Node's crypto to produce an equivalent credential.
89
+ *
90
+ * @param deviceFingerprint - SHA-256(hostname ‖ platform ‖ arch)[:16] identifying this device
91
+ * @returns BiometricSetup containing the public key to register with the verifier
92
+ */
93
+ export function setupBiometricCredential(deviceFingerprint) {
94
+ // Generate P-256 (prime256v1) keypair — matches WebAuthn ES256 (-7)
95
+ const { privateKey, publicKey } = crypto.generateKeyPairSync('ec', {
96
+ namedCurve: 'prime256v1',
97
+ });
98
+ // Export keys
99
+ const pkcs8 = privateKey.export({ type: 'pkcs8', format: 'der' });
100
+ const spki = publicKey.export({ type: 'spki', format: 'der' });
101
+ const publicKeyB64 = spki.toString('base64url');
102
+ // Credential ID = SHA-256(public key DER)[:16], hex
103
+ const credentialId = crypto.createHash('sha256').update(spki).digest('hex').slice(0, 32);
104
+ // Derive encryption key and encrypt private key
105
+ const kdfSaltHex = crypto.randomBytes(32).toString('hex');
106
+ const encKey = deriveEncryptionKey(deviceFingerprint, kdfSaltHex);
107
+ const { ciphertext, iv, authTag } = aesGcmEncrypt(pkcs8, encKey);
108
+ const cred = {
109
+ credentialId,
110
+ deviceFingerprint,
111
+ publicKeyB64,
112
+ signCounter: 0,
113
+ encryptedPrivateKeyB64: ciphertext.toString('base64url'),
114
+ kdfSaltHex,
115
+ ivHex: iv.toString('hex'),
116
+ authTagHex: authTag.toString('hex'),
117
+ createdAt: new Date().toISOString(),
118
+ };
119
+ saveCredential(cred);
120
+ return {
121
+ credentialId,
122
+ deviceFingerprint,
123
+ publicKeyB64,
124
+ createdAt: cred.createdAt,
125
+ };
126
+ }
127
+ /**
128
+ * Sign a challenge hash with the device's private key (biometric assertion).
129
+ *
130
+ * Mirrors the WebAuthn AuthenticatorAssertionResponse:
131
+ * - clientDataHash = SHA-256(JSON.stringify({ type, challenge, timestamp }))
132
+ * - signature = ECDSA-SHA256(clientDataHash, privateKey) in DER format
133
+ * - signCounter increments (replay protection)
134
+ *
135
+ * @param challengeHash - SHA-256 hex from MFA challenge (binds this to the request)
136
+ * @param deviceFingerprint - Must match the enrolled device
137
+ * @returns WebAuthnAssertion — forward to the ICP canister for verification
138
+ */
139
+ export function signChallenge(challengeHash, deviceFingerprint) {
140
+ const cred = loadCredential(deviceFingerprint);
141
+ if (!cred) {
142
+ throw new Error(`No biometric credential for device ${deviceFingerprint}. ` +
143
+ `Run: agentvault approve mfa biometric-setup`);
144
+ }
145
+ // Re-derive encryption key and decrypt private key
146
+ const encKey = deriveEncryptionKey(deviceFingerprint, cred.kdfSaltHex);
147
+ const pkcs8 = aesGcmDecrypt(Buffer.from(cred.encryptedPrivateKeyB64, 'base64url'), encKey, Buffer.from(cred.ivHex, 'hex'), Buffer.from(cred.authTagHex, 'hex'));
148
+ const privateKey = crypto.createPrivateKey({ key: pkcs8, format: 'der', type: 'pkcs8' });
149
+ // Build clientData (WebAuthn-compatible structure)
150
+ const timestamp = new Date().toISOString();
151
+ const clientDataJSON = JSON.stringify({
152
+ type: 'webauthn.get',
153
+ challenge: challengeHash,
154
+ origin: 'https://agentvault.approve',
155
+ timestamp,
156
+ });
157
+ const clientDataHash = crypto
158
+ .createHash('sha256')
159
+ .update(clientDataJSON)
160
+ .digest('hex');
161
+ // Sign with ECDSA-SHA256
162
+ const sigDer = crypto.sign('sha256', Buffer.from(clientDataHash, 'hex'), privateKey);
163
+ // Increment sign counter (replay protection)
164
+ cred.signCounter += 1;
165
+ saveCredential(cred);
166
+ return {
167
+ credentialId: cred.credentialId,
168
+ clientDataHash,
169
+ signatureB64: sigDer.toString('base64url'),
170
+ signCounter: cred.signCounter,
171
+ timestamp,
172
+ };
173
+ }
174
+ /**
175
+ * Verify a WebAuthn assertion from any device.
176
+ *
177
+ * @param assertion - The assertion produced by signChallenge()
178
+ * @param challengeHash - The original challenge hash (must be embedded in clientDataHash)
179
+ * @param publicKeyB64 - SPKI public key registered for this credential (base64url)
180
+ * @param lastSignCounter - The last seen signCounter for this credential (replay check)
181
+ * @returns { ok: true } or { ok: false, reason: string }
182
+ */
183
+ export function verifyWebAuthnAssertion(assertion, challengeHash, publicKeyB64, lastSignCounter) {
184
+ // ── Counter check (replay protection) ────────────────────────────────────
185
+ if (assertion.signCounter <= lastSignCounter) {
186
+ return { ok: false, reason: 'counter-replay' };
187
+ }
188
+ // ── Reconstruct clientDataHash to verify it embeds the right challenge ───
189
+ // The clientDataHash is SHA-256(clientDataJSON) where clientDataJSON contains
190
+ // the challengeHash. We verify the signature covers clientDataHash and that
191
+ // clientDataHash encodes the expected challenge.
192
+ // For the CLI flow the verifier re-derives clientDataHash from assertion.clientDataHash
193
+ // and checks the challenge is present (full JSON is not transmitted here, only hash).
194
+ // A production ICP canister would receive the full clientDataJSON.
195
+ // ── Signature verification ────────────────────────────────────────────────
196
+ const spki = Buffer.from(publicKeyB64, 'base64url');
197
+ let publicKey;
198
+ try {
199
+ publicKey = crypto.createPublicKey({ key: spki, format: 'der', type: 'spki' });
200
+ }
201
+ catch {
202
+ return { ok: false, reason: 'invalid-public-key' };
203
+ }
204
+ let sigBuf;
205
+ try {
206
+ sigBuf = Buffer.from(assertion.signatureB64, 'base64url');
207
+ }
208
+ catch {
209
+ return { ok: false, reason: 'invalid-signature-encoding' };
210
+ }
211
+ const verified = crypto.verify('sha256', Buffer.from(assertion.clientDataHash, 'hex'), publicKey, sigBuf);
212
+ if (!verified) {
213
+ return { ok: false, reason: 'signature-invalid' };
214
+ }
215
+ // ── Challenge binding ─────────────────────────────────────────────────────
216
+ // The clientDataHash must encode the expected challenge. We verify by checking
217
+ // that the assertion's stored clientDataHash was derived from a JSON blob containing
218
+ // our challengeHash. Since we only receive the hash (not the full JSON), we perform
219
+ // a best-effort check: the assertion must have been produced after the challenge was
220
+ // issued, which is ensured by the nonce/timestamp in the calling mfa-approval layer.
221
+ // If the full clientDataJSON is available (webapp flow), verify:
222
+ // JSON.parse(clientDataJSON).challenge === challengeHash
223
+ void challengeHash;
224
+ return { ok: true };
225
+ }
226
+ /**
227
+ * Return the registered public key for a device, or null if not enrolled.
228
+ */
229
+ export function getDevicePublicKey(deviceFingerprint) {
230
+ const cred = loadCredential(deviceFingerprint);
231
+ return cred?.publicKeyB64 ?? null;
232
+ }
233
+ /**
234
+ * Return the current sign counter for a device credential.
235
+ * Used by the verifier to detect counter replay.
236
+ */
237
+ export function getSignCounter(deviceFingerprint) {
238
+ return loadCredential(deviceFingerprint)?.signCounter ?? 0;
239
+ }
240
+ /**
241
+ * Check whether a biometric credential exists for the given device.
242
+ */
243
+ export function hasBiometricCredential(deviceFingerprint) {
244
+ return fs.existsSync(deviceKeyFile(deviceFingerprint));
245
+ }
246
+ //# sourceMappingURL=webauthn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webauthn.js","sourceRoot":"","sources":["../../../src/security/webauthn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Testing module
3
+ */
4
+ export * from './types.js';
5
+ export * from './local-runner.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Testing module
3
3
  */
4
-
5
4
  export * from './types.js';
6
5
  export * from './local-runner.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Local test runner for canister testing
3
+ *
4
+ * Provides test execution for unit, integration, and load tests against local canisters
5
+ */
6
+ import type { TestRunnerOptions, TestSuite, LoadTestConfig, LoadTestResult } from './types.js';
7
+ /**
8
+ * Run unit tests
9
+ */
10
+ export declare function runUnitTests(options: TestRunnerOptions): Promise<TestSuite>;
11
+ /**
12
+ * Run integration tests
13
+ */
14
+ export declare function runIntegrationTests(options: TestRunnerOptions): Promise<TestSuite>;
15
+ /**
16
+ * Run load tests
17
+ */
18
+ export declare function runLoadTests(config: LoadTestConfig): Promise<LoadTestResult>;
19
+ /**
20
+ * Run tests based on options
21
+ */
22
+ export declare function runTests(options: TestRunnerOptions): Promise<TestSuite | LoadTestResult>;
23
+ //# sourceMappingURL=local-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-runner.d.ts","sourceRoot":"","sources":["../../../src/testing/local-runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,cAAc,EACf,MAAM,YAAY,CAAC;AAwEpB;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CA8BjF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CA8BxF;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAiFlF;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,CAiB9F"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Local test runner for canister testing
3
+ *
4
+ * Provides test execution for unit, integration, and load tests against local canisters
5
+ */
6
+ import { execa } from 'execa';
7
+ import path from 'node:path';
8
+ import os from 'node:os';
9
+ import fs from 'node:fs';
10
+ const AGENTVAULT_DIR = path.join(os.homedir(), '.agentvault');
11
+ const TEST_RESULTS_DIR = path.join(AGENTVAULT_DIR, 'test-results');
12
+ /**
13
+ * Ensure test results directory exists
14
+ */
15
+ function ensureTestResultsDir() {
16
+ if (!fs.existsSync(AGENTVAULT_DIR)) {
17
+ fs.mkdirSync(AGENTVAULT_DIR, { recursive: true });
18
+ }
19
+ if (!fs.existsSync(TEST_RESULTS_DIR)) {
20
+ fs.mkdirSync(TEST_RESULTS_DIR, { recursive: true });
21
+ }
22
+ }
23
+ /**
24
+ * Get test results file path
25
+ */
26
+ function getTestResultsPath(agentName, testType) {
27
+ ensureTestResultsDir();
28
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
29
+ return path.join(TEST_RESULTS_DIR, `${agentName}-${testType}-${timestamp}.json`);
30
+ }
31
+ /**
32
+ * Parse vitest output to extract test results
33
+ */
34
+ function parseVitestOutput(stdout) {
35
+ const lines = stdout.split('\n');
36
+ const tests = [];
37
+ let total = 0;
38
+ let passed = 0;
39
+ let failed = 0;
40
+ let skipped = 0;
41
+ let duration = 0;
42
+ for (const line of lines) {
43
+ const match = line.match(/^(PASS|FAIL|SKIP)\s+(.+) \((\d+)ms\)$/);
44
+ if (match) {
45
+ const [, status, nameRaw, timeRaw] = match;
46
+ const name = nameRaw?.trim() || 'unknown';
47
+ const time = timeRaw || '0';
48
+ tests.push({
49
+ name,
50
+ status: status === 'PASS' ? 'passed' : status === 'FAIL' ? 'failed' : 'skipped',
51
+ duration: parseInt(time, 10),
52
+ });
53
+ total++;
54
+ if (status === 'PASS')
55
+ passed++;
56
+ else if (status === 'FAIL')
57
+ failed++;
58
+ else
59
+ skipped++;
60
+ }
61
+ const durationMatch = line.match(/Test Files\s+(\d+)\s+passed\s+\((\d+)\)/);
62
+ if (durationMatch && durationMatch[2]) {
63
+ duration = parseInt(durationMatch[2], 10);
64
+ }
65
+ }
66
+ return {
67
+ name: 'canister-tests',
68
+ total,
69
+ passed,
70
+ failed,
71
+ skipped,
72
+ duration,
73
+ tests,
74
+ };
75
+ }
76
+ /**
77
+ * Run unit tests
78
+ */
79
+ export async function runUnitTests(options) {
80
+ const vitestArgs = [
81
+ 'run',
82
+ '--reporter=verbose',
83
+ ];
84
+ if (options.network) {
85
+ vitestArgs.push(`--env.network=${options.network}`);
86
+ }
87
+ if (options.outputFormat === 'json') {
88
+ vitestArgs.push('--reporter=json');
89
+ }
90
+ vitestArgs.push('tests/unit');
91
+ const result = await execa('npx', ['vitest', ...vitestArgs], {
92
+ reject: false,
93
+ timeout: 120_000,
94
+ });
95
+ const testSuite = parseVitestOutput(result.stdout);
96
+ if (options.outputFormat === 'json') {
97
+ const resultsPath = getTestResultsPath(options.agentName, 'unit');
98
+ fs.writeFileSync(resultsPath, JSON.stringify(testSuite, null, 2), 'utf8');
99
+ console.log(`Test results saved to ${resultsPath}`);
100
+ }
101
+ return testSuite;
102
+ }
103
+ /**
104
+ * Run integration tests
105
+ */
106
+ export async function runIntegrationTests(options) {
107
+ const vitestArgs = [
108
+ 'run',
109
+ '--reporter=verbose',
110
+ ];
111
+ if (options.network) {
112
+ vitestArgs.push(`--env.network=${options.network}`);
113
+ }
114
+ if (options.outputFormat === 'json') {
115
+ vitestArgs.push('--reporter=json');
116
+ }
117
+ vitestArgs.push('tests/integration');
118
+ const result = await execa('npx', ['vitest', ...vitestArgs], {
119
+ reject: false,
120
+ timeout: 300_000,
121
+ });
122
+ const testSuite = parseVitestOutput(result.stdout);
123
+ if (options.outputFormat === 'json') {
124
+ const resultsPath = getTestResultsPath(options.agentName, 'integration');
125
+ fs.writeFileSync(resultsPath, JSON.stringify(testSuite, null, 2), 'utf8');
126
+ console.log(`Test results saved to ${resultsPath}`);
127
+ }
128
+ return testSuite;
129
+ }
130
+ /**
131
+ * Run load tests
132
+ */
133
+ export async function runLoadTests(config) {
134
+ const errors = {};
135
+ let totalRequests = 0;
136
+ let successfulRequests = 0;
137
+ let failedRequests = 0;
138
+ const responseTimes = [];
139
+ const startTime = Date.now();
140
+ const endTime = startTime + (config.duration * 1000);
141
+ const interval = config.duration * 1000 / (config.concurrency * 10);
142
+ const requestPromises = [];
143
+ for (let i = 0; i < config.concurrency * 10; i++) {
144
+ if (Date.now() >= endTime)
145
+ break;
146
+ const startTimeMs = Date.now();
147
+ const request = execa('npx', ['icp', 'canister', 'call', config.canisterId, config.method, ...(config.args ? [config.args] : [])], {
148
+ reject: false,
149
+ timeout: 30_000,
150
+ });
151
+ const requestPromise = request.then((result) => {
152
+ const responseTime = Date.now() - startTimeMs;
153
+ if (result.exitCode === 0) {
154
+ return { success: true, responseTime };
155
+ }
156
+ else {
157
+ const error = result.stderr || 'Unknown error';
158
+ errors[error] = (errors[error] || 0) + 1;
159
+ return { success: false, responseTime, error };
160
+ }
161
+ });
162
+ requestPromises.push(requestPromise);
163
+ await new Promise((resolve) => setTimeout(resolve, interval));
164
+ }
165
+ const results = await Promise.all(requestPromises);
166
+ for (const result of results) {
167
+ totalRequests++;
168
+ if (result.success) {
169
+ successfulRequests++;
170
+ responseTimes.push(result.responseTime);
171
+ }
172
+ else {
173
+ failedRequests++;
174
+ if (result.error) {
175
+ errors[result.error] = (errors[result.error] || 0) + 1;
176
+ }
177
+ }
178
+ }
179
+ const actualDuration = (Date.now() - startTime) / 1000;
180
+ const requestsPerSecond = totalRequests / actualDuration;
181
+ const sortedTimes = responseTimes.sort((a, b) => a - b);
182
+ const minResponseTime = sortedTimes[0] || 0;
183
+ const maxResponseTime = sortedTimes[sortedTimes.length - 1] || 0;
184
+ const avgResponseTime = responseTimes.length > 0
185
+ ? responseTimes.reduce((a, b) => a + b, 0) / responseTimes.length
186
+ : 0;
187
+ const percentiles = {
188
+ p50: sortedTimes[Math.floor(sortedTimes.length * 0.5)] || 0,
189
+ p90: sortedTimes[Math.floor(sortedTimes.length * 0.9)] || 0,
190
+ p95: sortedTimes[Math.floor(sortedTimes.length * 0.95)] || 0,
191
+ p99: sortedTimes[Math.floor(sortedTimes.length * 0.99)] || 0,
192
+ };
193
+ return {
194
+ totalRequests,
195
+ successfulRequests,
196
+ failedRequests,
197
+ requestsPerSecond,
198
+ avgResponseTime,
199
+ minResponseTime,
200
+ maxResponseTime,
201
+ percentiles,
202
+ errors,
203
+ };
204
+ }
205
+ /**
206
+ * Run tests based on options
207
+ */
208
+ export async function runTests(options) {
209
+ switch (options.testType) {
210
+ case 'unit':
211
+ return runUnitTests(options);
212
+ case 'integration':
213
+ return runIntegrationTests(options);
214
+ case 'load-test':
215
+ if (!options.concurrency) {
216
+ throw new Error('Concurrency is required for load tests');
217
+ }
218
+ if (!options.loadDuration) {
219
+ throw new Error('Load duration is required for load tests');
220
+ }
221
+ throw new Error('Load test requires specific LoadTestConfig');
222
+ default:
223
+ throw new Error(`Unknown test type: ${options.testType}`);
224
+ }
225
+ }
226
+ //# sourceMappingURL=local-runner.js.map