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,668 @@
1
+ /**
2
+ * Multi-Factor Agent Approval (human-approve protocol)
3
+ *
4
+ * Five-layer defence for every agent approval request:
5
+ *
6
+ * 1. TOTP + nonce chain
7
+ * The agent generates its own TOTP seed once per branch (never transmitted).
8
+ * Each challenge carries:
9
+ * • currentNonce — monotonically incrementing counter (single-use)
10
+ * • challengeHash — SHA-256(nonce ‖ branchId ‖ timestamp)
11
+ * The approver replies: "APPROVE <TOTP-code> <nonce>"
12
+ * The agent verifies the code against the stored seed and checks the nonce.
13
+ * Replay protection: nonce is written to a used-set immediately after success.
14
+ *
15
+ * 2. Biometric fallback (WebAuthn / Secure Enclave)
16
+ * When TOTP is unavailable, the approver signs the challengeHash with a
17
+ * device-bound P-256 key (simulating iOS Face ID / Android fingerprint).
18
+ * The private key never leaves the local Secure Enclave equivalent; only
19
+ * the ECDSA signature is transmitted. Verified against the enrolled public key.
20
+ *
21
+ * 3. One-time link (60 s)
22
+ * Each challenge also generates a short-lived URL:
23
+ * https://agentvault.approve/<requestId>?token=<hex>
24
+ * Token = HMAC-SHA256(requestId ‖ nonce ‖ expiresAt, linkSigningKey)
25
+ * The link dies on first use or after 60 seconds — whichever comes first.
26
+ *
27
+ * 4. Rate limiting
28
+ * Max 3 successful approvals per signer per rolling hour.
29
+ * Excess attempts are rejected and logged.
30
+ *
31
+ * 5. Anomaly detection
32
+ * Each approver device has a fingerprint = SHA-256(hostname ‖ platform ‖ arch)[:16].
33
+ * First approval from a new fingerprint for a known signer triggers:
34
+ * • branch auto-lock
35
+ * • anomaly-detected audit entry
36
+ * • "Was this you?" ping flag stored in the audit entry (detail field)
37
+ * The operator must call unlockBranch() with a fresh TOTP code to resume.
38
+ * Replying YES via TOTP to the anomaly ping registers the device as trusted.
39
+ *
40
+ * 6. Audit log (local + ICP)
41
+ * Every event (setup, challenge, approve, reject, anomaly, lock) is appended to
42
+ * ~/.agentvault/mfa/audit-<branchId>.yaml for local forensics AND submitted
43
+ * asynchronously to the ICP canister for tamper-evident on-chain storage.
44
+ * The verifyMfaApproval() return value includes an auditToken
45
+ * (HMAC over the approval payload) suitable for on-chain verification.
46
+ */
47
+ import fs from 'node:fs';
48
+ import path from 'node:path';
49
+ import os from 'node:os';
50
+ import crypto from 'node:crypto';
51
+ import { parse, stringify } from 'yaml';
52
+ import { generateTotpSecret, base32Encode, base32Decode, verifyTotp, otpAuthUri, } from './totp.js';
53
+ import { verifyWebAuthnAssertion, getDevicePublicKey, getSignCounter, } from './webauthn.js';
54
+ import { submitIcpAuditEntry } from './icp-audit.js';
55
+ // ─── Directory paths ─────────────────────────────────────────────────────────
56
+ const MFA_DIR = path.join(os.homedir(), '.agentvault', 'mfa');
57
+ function ensureMfaDir() {
58
+ fs.mkdirSync(MFA_DIR, { recursive: true });
59
+ }
60
+ // ─── File helpers ─────────────────────────────────────────────────────────────
61
+ function stateFile(branchId) {
62
+ return path.join(MFA_DIR, `state-${branchId}.yaml`);
63
+ }
64
+ function auditFile(branchId) {
65
+ return path.join(MFA_DIR, `audit-${branchId}.yaml`);
66
+ }
67
+ function rateLimitFile() {
68
+ return path.join(MFA_DIR, 'rate-limit.yaml');
69
+ }
70
+ function otpLinksFile() {
71
+ return path.join(MFA_DIR, 'otp-links.yaml');
72
+ }
73
+ function deviceRegistryFile() {
74
+ return path.join(MFA_DIR, 'device-registry.yaml');
75
+ }
76
+ function loadState(branchId) {
77
+ const fp = stateFile(branchId);
78
+ if (!fs.existsSync(fp))
79
+ return null;
80
+ return parse(fs.readFileSync(fp, 'utf8'));
81
+ }
82
+ function saveState(state) {
83
+ ensureMfaDir();
84
+ fs.writeFileSync(stateFile(state.branchId), stringify(state), 'utf8');
85
+ }
86
+ function loadRateLimit() {
87
+ const fp = rateLimitFile();
88
+ if (!fs.existsSync(fp))
89
+ return { windows: {} };
90
+ return parse(fs.readFileSync(fp, 'utf8'));
91
+ }
92
+ function saveRateLimit(rl) {
93
+ ensureMfaDir();
94
+ fs.writeFileSync(rateLimitFile(), stringify(rl), 'utf8');
95
+ }
96
+ function loadOtpLinks() {
97
+ const fp = otpLinksFile();
98
+ if (!fs.existsSync(fp))
99
+ return {};
100
+ return parse(fs.readFileSync(fp, 'utf8'));
101
+ }
102
+ function saveOtpLinks(links) {
103
+ ensureMfaDir();
104
+ fs.writeFileSync(otpLinksFile(), stringify(links), 'utf8');
105
+ }
106
+ function loadDeviceRegistry() {
107
+ const fp = deviceRegistryFile();
108
+ if (!fs.existsSync(fp))
109
+ return { known: {} };
110
+ return parse(fs.readFileSync(fp, 'utf8'));
111
+ }
112
+ function saveDeviceRegistry(reg) {
113
+ ensureMfaDir();
114
+ fs.writeFileSync(deviceRegistryFile(), stringify(reg), 'utf8');
115
+ }
116
+ // ─── Audit log ────────────────────────────────────────────────────────────────
117
+ function makeAuditId() {
118
+ return `aud-${Date.now()}-${crypto.randomBytes(3).toString('hex')}`;
119
+ }
120
+ function appendAuditEntry(entry) {
121
+ ensureMfaDir();
122
+ const fp = auditFile(entry.branchId);
123
+ let log = [];
124
+ if (fs.existsSync(fp)) {
125
+ log = parse(fs.readFileSync(fp, 'utf8'));
126
+ }
127
+ log.push(entry);
128
+ fs.writeFileSync(fp, stringify(log), 'utf8');
129
+ // Async fire-and-forget to ICP — never blocks the local flow.
130
+ // Failures are queued locally and retried on the next flush.
131
+ submitIcpAuditEntry(entry).catch(() => {
132
+ // Silently queued — getIcpQueueDepth() shows pending count.
133
+ });
134
+ }
135
+ // ─── Challenge hash ───────────────────────────────────────────────────────────
136
+ function computeChallengeHash(nonce, branchId, timestamp) {
137
+ return crypto
138
+ .createHash('sha256')
139
+ .update(`${nonce}:${branchId}:${timestamp}`)
140
+ .digest('hex');
141
+ }
142
+ // ─── One-time links ───────────────────────────────────────────────────────────
143
+ const LINK_TTL_MS = 60_000; // 60 seconds
144
+ /**
145
+ * Derive a per-branch link-signing key from the TOTP secret.
146
+ * This key is never stored on disk — it is re-derived on every call.
147
+ */
148
+ function linkSigningKey(branchId) {
149
+ const state = loadState(branchId);
150
+ if (!state)
151
+ throw new Error(`MFA not configured for branch: ${branchId}`);
152
+ const totpBuf = base32Decode(state.totpSecretB32);
153
+ return crypto.createHmac('sha256', totpBuf).update('agentvault:link-signing:v1').digest();
154
+ }
155
+ function generateOtpToken(requestId, branchId, nonce) {
156
+ const key = linkSigningKey(branchId);
157
+ const expiresAt = new Date(Date.now() + LINK_TTL_MS).toISOString();
158
+ const payload = `${requestId}:${nonce}:${expiresAt}`;
159
+ const token = crypto.createHmac('sha256', key).update(payload).digest('hex');
160
+ // Persist the link so we can validate it later
161
+ const links = loadOtpLinks();
162
+ links[token] = { requestId, expiresAt, used: false };
163
+ saveOtpLinks(links);
164
+ return token;
165
+ }
166
+ /**
167
+ * Validate a one-time approval link token.
168
+ * Returns the associated requestId on success, or an error reason.
169
+ */
170
+ export function validateOtpToken(token) {
171
+ const links = loadOtpLinks();
172
+ const link = links[token];
173
+ if (!link)
174
+ return { ok: false, reason: 'token-not-found' };
175
+ if (link.used)
176
+ return { ok: false, reason: 'token-already-used' };
177
+ if (new Date() > new Date(link.expiresAt))
178
+ return { ok: false, reason: 'token-expired' };
179
+ // Mark consumed
180
+ link.used = true;
181
+ saveOtpLinks(links);
182
+ return { ok: true, requestId: link.requestId };
183
+ }
184
+ // ─── Rate limiting ────────────────────────────────────────────────────────────
185
+ const RATE_WINDOW_MS = 60 * 60 * 1000; // 1 hour
186
+ const RATE_MAX = 3; // approvals per window
187
+ /**
188
+ * Record an approval attempt and return false if the signer is rate-limited.
189
+ * The timestamp is recorded only when true is returned (i.e. the attempt counts).
190
+ */
191
+ function checkAndRecordRateLimit(signer) {
192
+ const rl = loadRateLimit();
193
+ const now = Date.now();
194
+ const windowStart = now - RATE_WINDOW_MS;
195
+ // Prune events outside the rolling window
196
+ const events = (rl.windows[signer] ?? []).filter((ts) => new Date(ts).getTime() > windowStart);
197
+ if (events.length >= RATE_MAX) {
198
+ saveRateLimit(rl); // persist pruned list even on rejection
199
+ return false;
200
+ }
201
+ events.push(new Date().toISOString());
202
+ rl.windows[signer] = events;
203
+ saveRateLimit(rl);
204
+ return true;
205
+ }
206
+ // ─── Anomaly detection ────────────────────────────────────────────────────────
207
+ /**
208
+ * Compute the device fingerprint for the current machine.
209
+ * Uses hostname + OS platform + CPU architecture, hashed to a short hex token.
210
+ */
211
+ export function getDeviceFingerprint() {
212
+ return crypto
213
+ .createHash('sha256')
214
+ .update(`${os.hostname()}:${os.platform()}:${os.arch()}`)
215
+ .digest('hex')
216
+ .slice(0, 16);
217
+ }
218
+ function checkDevice(signer, fingerprint) {
219
+ const reg = loadDeviceRegistry();
220
+ const known = reg.known[signer] ?? [];
221
+ if (known.length === 0) {
222
+ // First approval ever from this signer — enrol the device automatically
223
+ reg.known[signer] = [fingerprint];
224
+ saveDeviceRegistry(reg);
225
+ return 'first-time';
226
+ }
227
+ return known.includes(fingerprint) ? 'known' : 'new-device';
228
+ }
229
+ /**
230
+ * Explicitly register a device fingerprint for a signer.
231
+ * Call this after the operator has confirmed a new-device alert via secondary TOTP.
232
+ */
233
+ export function registerDevice(signer, fingerprint) {
234
+ const reg = loadDeviceRegistry();
235
+ const known = reg.known[signer] ?? [];
236
+ if (!known.includes(fingerprint)) {
237
+ reg.known[signer] = [...known, fingerprint];
238
+ saveDeviceRegistry(reg);
239
+ }
240
+ }
241
+ // ─── Public API ───────────────────────────────────────────────────────────────
242
+ /**
243
+ * Initialise MFA for a branch.
244
+ *
245
+ * Generates a fresh 20-byte TOTP secret, stores it encrypted on disk,
246
+ * and returns the otpauth:// URI to be scanned once by the approver.
247
+ *
248
+ * @param branchId - Unique branch / workflow identifier (e.g. "pending-001")
249
+ */
250
+ export function setupMfa(branchId) {
251
+ ensureMfaDir();
252
+ const secret = generateTotpSecret();
253
+ const secretB32 = base32Encode(secret);
254
+ const uri = otpAuthUri(secret, `AgentVault:${branchId}`);
255
+ const now = new Date().toISOString();
256
+ const state = {
257
+ branchId,
258
+ totpSecretB32: secretB32,
259
+ currentNonce: 0,
260
+ usedNonces: [],
261
+ locked: false,
262
+ createdAt: now,
263
+ updatedAt: now,
264
+ };
265
+ saveState(state);
266
+ appendAuditEntry({
267
+ id: makeAuditId(),
268
+ requestId: 'setup',
269
+ branchId,
270
+ event: 'setup',
271
+ timestamp: now,
272
+ detail: 'TOTP seed generated — enrol in authenticator app using the otpauth URI',
273
+ });
274
+ return { branchId, totpSecretB32: secretB32, otpAuthUri: uri, createdAt: now };
275
+ }
276
+ /**
277
+ * Issue a challenge for a pending approval request.
278
+ *
279
+ * Increments the branch nonce, computes the challenge hash, and generates
280
+ * a 60-second one-time approval link. The approver must reply with:
281
+ * APPROVE <TOTP-code> <nonce>
282
+ *
283
+ * @param requestId - Approval request identifier (e.g. "pending-001")
284
+ * @param branchId - Branch that owns the TOTP seed
285
+ */
286
+ export function issueChallenge(requestId, branchId) {
287
+ const state = loadState(branchId);
288
+ if (!state) {
289
+ throw new Error(`MFA not configured for branch '${branchId}'. Run: agentvault approve mfa setup --branch ${branchId}`);
290
+ }
291
+ if (state.locked) {
292
+ throw new Error(`Branch '${branchId}' is locked due to a security anomaly. ` +
293
+ `Investigate, then run: agentvault approve mfa unlock --branch ${branchId}`);
294
+ }
295
+ // Monotonically increment nonce
296
+ state.currentNonce += 1;
297
+ state.updatedAt = new Date().toISOString();
298
+ saveState(state);
299
+ const nonce = state.currentNonce;
300
+ const timestamp = new Date().toISOString();
301
+ const challengeHash = computeChallengeHash(nonce, branchId, timestamp);
302
+ const token = generateOtpToken(requestId, branchId, nonce);
303
+ const expiresAt = new Date(Date.now() + LINK_TTL_MS).toISOString();
304
+ appendAuditEntry({
305
+ id: makeAuditId(),
306
+ requestId,
307
+ branchId,
308
+ event: 'challenge-issued',
309
+ nonce,
310
+ challengeHash,
311
+ timestamp,
312
+ detail: `One-time link expires at ${expiresAt}`,
313
+ });
314
+ return {
315
+ requestId,
316
+ branchId,
317
+ nonce,
318
+ timestamp,
319
+ challengeHash,
320
+ approvalLink: `https://agentvault.approve/${requestId}?token=${token}`,
321
+ expiresAt,
322
+ };
323
+ }
324
+ /**
325
+ * Verify a TOTP code + nonce submitted by the approver.
326
+ *
327
+ * Runs all five security layers in order:
328
+ * 1. MFA setup / branch-lock check
329
+ * 2. Nonce match + replay detection
330
+ * 3. TOTP verification (±1 window for clock drift)
331
+ * 4. Rate-limit check (3 / hour)
332
+ * 5. Device-fingerprint anomaly detection
333
+ *
334
+ * On success, marks the nonce as consumed, appends an audit entry,
335
+ * and returns a cryptographic auditToken suitable for on-chain logging.
336
+ */
337
+ export function verifyMfaApproval(input) {
338
+ const { requestId, branchId, totpCode, nonce } = input;
339
+ const fingerprint = input.deviceFingerprint ?? getDeviceFingerprint();
340
+ const now = new Date().toISOString();
341
+ // ── Layer 1: setup / lock check ──────────────────────────────────────────
342
+ const state = loadState(branchId);
343
+ if (!state) {
344
+ return { ok: false, reason: 'not-setup' };
345
+ }
346
+ if (state.locked) {
347
+ appendAuditEntry({
348
+ id: makeAuditId(),
349
+ requestId,
350
+ branchId,
351
+ event: 'rejected',
352
+ nonce,
353
+ timestamp: now,
354
+ detail: 'Branch is locked — approval blocked',
355
+ deviceFingerprint: fingerprint,
356
+ });
357
+ return { ok: false, reason: 'branch-locked' };
358
+ }
359
+ // ── Layer 2: nonce match ──────────────────────────────────────────────────
360
+ if (nonce !== state.currentNonce) {
361
+ appendAuditEntry({
362
+ id: makeAuditId(),
363
+ requestId,
364
+ branchId,
365
+ event: 'rejected',
366
+ nonce,
367
+ timestamp: now,
368
+ detail: `Nonce mismatch — expected ${state.currentNonce}, got ${nonce}`,
369
+ deviceFingerprint: fingerprint,
370
+ });
371
+ return { ok: false, reason: 'nonce-mismatch' };
372
+ }
373
+ // ── Layer 2b: replay detection ────────────────────────────────────────────
374
+ if (state.usedNonces.includes(nonce)) {
375
+ appendAuditEntry({
376
+ id: makeAuditId(),
377
+ requestId,
378
+ branchId,
379
+ event: 'rejected',
380
+ nonce,
381
+ timestamp: now,
382
+ detail: 'Nonce already consumed — replay attempt blocked',
383
+ deviceFingerprint: fingerprint,
384
+ });
385
+ return { ok: false, reason: 'nonce-replayed' };
386
+ }
387
+ // ── Layer 3: TOTP verification ────────────────────────────────────────────
388
+ const secret = base32Decode(state.totpSecretB32);
389
+ if (!verifyTotp(secret, totpCode)) {
390
+ appendAuditEntry({
391
+ id: makeAuditId(),
392
+ requestId,
393
+ branchId,
394
+ event: 'rejected',
395
+ nonce,
396
+ timestamp: now,
397
+ detail: 'TOTP code invalid',
398
+ deviceFingerprint: fingerprint,
399
+ });
400
+ return { ok: false, reason: 'invalid-totp' };
401
+ }
402
+ // ── Layer 4: rate limiting ────────────────────────────────────────────────
403
+ if (!checkAndRecordRateLimit(fingerprint)) {
404
+ appendAuditEntry({
405
+ id: makeAuditId(),
406
+ requestId,
407
+ branchId,
408
+ event: 'rate-limit-exceeded',
409
+ nonce,
410
+ timestamp: now,
411
+ detail: `Device ${fingerprint} exceeded ${RATE_MAX} approvals / hour`,
412
+ deviceFingerprint: fingerprint,
413
+ });
414
+ return { ok: false, reason: 'rate-limited' };
415
+ }
416
+ // ── Layer 5: anomaly detection ────────────────────────────────────────────
417
+ // Use branchId as the stable identity key: tracks which devices have ever
418
+ // successfully approved requests for this branch.
419
+ const deviceCheck = checkDevice(branchId, fingerprint);
420
+ if (deviceCheck === 'new-device') {
421
+ // Auto-lock the branch and demand secondary confirmation
422
+ state.locked = true;
423
+ state.pendingAnomalyFingerprint = fingerprint;
424
+ state.updatedAt = new Date().toISOString();
425
+ saveState(state);
426
+ appendAuditEntry({
427
+ id: makeAuditId(),
428
+ requestId,
429
+ branchId,
430
+ event: 'anomaly-detected',
431
+ nonce,
432
+ timestamp: now,
433
+ detail: `Unknown device fingerprint ${fingerprint} — was this you? Reply YES via TOTP to agentvault approve mfa unlock --branch ${branchId} --register-device ${fingerprint}`,
434
+ deviceFingerprint: fingerprint,
435
+ });
436
+ appendAuditEntry({
437
+ id: makeAuditId(),
438
+ requestId,
439
+ branchId,
440
+ event: 'anomaly-ping-sent',
441
+ timestamp: now,
442
+ detail: `Branch auto-locked. Operator notified: run 'agentvault approve mfa unlock --branch ${branchId} --totp <code> --register-device ${fingerprint}' to confirm and re-register, or leave unregistered to deny.`,
443
+ deviceFingerprint: fingerprint,
444
+ });
445
+ appendAuditEntry({
446
+ id: makeAuditId(),
447
+ requestId,
448
+ branchId,
449
+ event: 'branch-locked',
450
+ timestamp: now,
451
+ detail: 'Auto-locked after anomaly. Confirm via secondary TOTP then call unlockBranch().',
452
+ deviceFingerprint: fingerprint,
453
+ });
454
+ return { ok: false, reason: 'anomaly' };
455
+ }
456
+ // ── All layers passed — commit the approval ───────────────────────────────
457
+ // Consume the nonce (replay guard)
458
+ state.usedNonces.push(nonce);
459
+ state.updatedAt = now;
460
+ saveState(state);
461
+ // Compute an HMAC-based audit token over the approval payload
462
+ const challengeHash = computeChallengeHash(nonce, branchId, now);
463
+ const auditToken = crypto
464
+ .createHmac('sha256', base32Decode(state.totpSecretB32))
465
+ .update(`${nonce}:${requestId}:${branchId}:${now}`)
466
+ .digest('hex');
467
+ appendAuditEntry({
468
+ id: makeAuditId(),
469
+ requestId,
470
+ branchId,
471
+ event: 'approved',
472
+ nonce,
473
+ challengeHash,
474
+ auditToken,
475
+ timestamp: now,
476
+ detail: `Approved by device ${fingerprint}`,
477
+ deviceFingerprint: fingerprint,
478
+ });
479
+ return { ok: true, auditToken };
480
+ }
481
+ /**
482
+ * Verify a biometric (WebAuthn) assertion instead of a TOTP code.
483
+ *
484
+ * This is the Layer 2 fallback path: used when TOTP is unavailable or the
485
+ * approver's device natively supports WebAuthn (iOS Face ID, Android fingerprint,
486
+ * YubiKey, etc.).
487
+ *
488
+ * The flow:
489
+ * 1. Caller obtains a challengeHash from issueChallenge().
490
+ * 2. Device signs it via signChallenge() (or browser WebAuthn API).
491
+ * 3. This function verifies the ECDSA signature, nonce, rate-limit, and anomaly.
492
+ * 4. On success an auditToken is returned identical to the TOTP path.
493
+ *
494
+ * @param input - { requestId, branchId, challengeHash, assertion, nonce, deviceFingerprint? }
495
+ */
496
+ export function verifyBiometricApproval(input) {
497
+ const { requestId, branchId, challengeHash, assertion, nonce } = input;
498
+ const fingerprint = input.deviceFingerprint ?? getDeviceFingerprint();
499
+ const now = new Date().toISOString();
500
+ // ── Layer 1: setup / lock check ──────────────────────────────────────────
501
+ const state = loadState(branchId);
502
+ if (!state)
503
+ return { ok: false, reason: 'not-setup' };
504
+ if (state.locked) {
505
+ appendAuditEntry({
506
+ id: makeAuditId(), requestId, branchId, event: 'rejected',
507
+ nonce, timestamp: now,
508
+ detail: 'Branch is locked — biometric approval blocked',
509
+ deviceFingerprint: fingerprint,
510
+ });
511
+ return { ok: false, reason: 'branch-locked' };
512
+ }
513
+ // ── Layer 2: nonce match + replay ─────────────────────────────────────────
514
+ if (nonce !== state.currentNonce) {
515
+ appendAuditEntry({
516
+ id: makeAuditId(), requestId, branchId, event: 'rejected',
517
+ nonce, timestamp: now,
518
+ detail: `Nonce mismatch — expected ${state.currentNonce}, got ${nonce}`,
519
+ deviceFingerprint: fingerprint,
520
+ });
521
+ return { ok: false, reason: 'nonce-mismatch' };
522
+ }
523
+ if (state.usedNonces.includes(nonce)) {
524
+ appendAuditEntry({
525
+ id: makeAuditId(), requestId, branchId, event: 'rejected',
526
+ nonce, timestamp: now,
527
+ detail: 'Nonce already consumed — replay attempt blocked',
528
+ deviceFingerprint: fingerprint,
529
+ });
530
+ return { ok: false, reason: 'nonce-replayed' };
531
+ }
532
+ // ── Layer 3: biometric signature verification ─────────────────────────────
533
+ const publicKeyB64 = getDevicePublicKey(fingerprint);
534
+ if (!publicKeyB64) {
535
+ appendAuditEntry({
536
+ id: makeAuditId(), requestId, branchId, event: 'rejected',
537
+ nonce, timestamp: now,
538
+ detail: `No biometric credential enrolled for device ${fingerprint}`,
539
+ deviceFingerprint: fingerprint,
540
+ });
541
+ return { ok: false, reason: 'biometric-not-enrolled' };
542
+ }
543
+ const lastCounter = getSignCounter(fingerprint) - 1; // current stored is already incremented
544
+ const verifyResult = verifyWebAuthnAssertion(assertion, challengeHash, publicKeyB64, lastCounter);
545
+ if (!verifyResult.ok) {
546
+ const reason = verifyResult.reason === 'counter-replay'
547
+ ? 'biometric-counter-replay'
548
+ : 'biometric-signature-invalid';
549
+ appendAuditEntry({
550
+ id: makeAuditId(), requestId, branchId, event: 'rejected',
551
+ nonce, timestamp: now,
552
+ detail: `Biometric verification failed: ${verifyResult.reason}`,
553
+ deviceFingerprint: fingerprint,
554
+ });
555
+ return { ok: false, reason };
556
+ }
557
+ // ── Layer 4: rate limiting ────────────────────────────────────────────────
558
+ if (!checkAndRecordRateLimit(fingerprint)) {
559
+ appendAuditEntry({
560
+ id: makeAuditId(), requestId, branchId,
561
+ event: 'rate-limit-exceeded', nonce, timestamp: now,
562
+ detail: `Device ${fingerprint} exceeded ${RATE_MAX} approvals / hour`,
563
+ deviceFingerprint: fingerprint,
564
+ });
565
+ return { ok: false, reason: 'rate-limited' };
566
+ }
567
+ // ── Layer 5: anomaly detection ────────────────────────────────────────────
568
+ const deviceCheck = checkDevice(branchId, fingerprint);
569
+ if (deviceCheck === 'new-device') {
570
+ state.locked = true;
571
+ state.pendingAnomalyFingerprint = fingerprint;
572
+ state.updatedAt = new Date().toISOString();
573
+ saveState(state);
574
+ appendAuditEntry({
575
+ id: makeAuditId(), requestId, branchId, event: 'anomaly-detected',
576
+ nonce, timestamp: now,
577
+ detail: `Unknown biometric device ${fingerprint} — was this you? Reply YES via TOTP to unlock.`,
578
+ deviceFingerprint: fingerprint,
579
+ });
580
+ appendAuditEntry({
581
+ id: makeAuditId(), requestId, branchId, event: 'branch-locked',
582
+ timestamp: now,
583
+ detail: 'Auto-locked after biometric anomaly.',
584
+ deviceFingerprint: fingerprint,
585
+ });
586
+ return { ok: false, reason: 'anomaly' };
587
+ }
588
+ // ── All layers passed ─────────────────────────────────────────────────────
589
+ state.usedNonces.push(nonce);
590
+ state.updatedAt = now;
591
+ saveState(state);
592
+ const auditToken = crypto
593
+ .createHmac('sha256', base32Decode(state.totpSecretB32))
594
+ .update(`biometric:${nonce}:${requestId}:${branchId}:${now}`)
595
+ .digest('hex');
596
+ appendAuditEntry({
597
+ id: makeAuditId(), requestId, branchId,
598
+ event: 'approved-biometric', nonce, challengeHash,
599
+ auditToken, timestamp: now,
600
+ detail: `Approved via biometric by device ${fingerprint} (signCounter=${assertion.signCounter})`,
601
+ deviceFingerprint: fingerprint,
602
+ });
603
+ return { ok: true, auditToken };
604
+ }
605
+ /**
606
+ * Unlock a branch after an anomaly has been investigated.
607
+ *
608
+ * Requires a valid TOTP code to prevent unauthorised unlocking.
609
+ * Optionally registers the new device fingerprint so future approvals succeed.
610
+ *
611
+ * @param branchId - Branch to unlock
612
+ * @param totpCode - Fresh 6-digit TOTP code from the authenticator app
613
+ * @param newFingerprint - If provided, add this fingerprint to the known-device list
614
+ */
615
+ export function unlockBranch(branchId, totpCode, newFingerprint) {
616
+ const state = loadState(branchId);
617
+ if (!state)
618
+ return false;
619
+ const secret = base32Decode(state.totpSecretB32);
620
+ if (!verifyTotp(secret, totpCode))
621
+ return false;
622
+ state.locked = false;
623
+ state.pendingAnomalyFingerprint = undefined;
624
+ state.updatedAt = new Date().toISOString();
625
+ saveState(state);
626
+ if (newFingerprint) {
627
+ registerDevice(branchId, newFingerprint);
628
+ }
629
+ appendAuditEntry({
630
+ id: makeAuditId(),
631
+ requestId: 'unlock',
632
+ branchId,
633
+ event: 'branch-unlocked',
634
+ timestamp: new Date().toISOString(),
635
+ detail: newFingerprint
636
+ ? `Branch unlocked; device ${newFingerprint} registered as trusted (anomaly confirmed as operator)`
637
+ : 'Branch unlocked after anomaly investigation (new device NOT registered)',
638
+ deviceFingerprint: newFingerprint,
639
+ });
640
+ return true;
641
+ }
642
+ /**
643
+ * Return the complete audit log for a branch.
644
+ * Suitable for piping to the ICP canister or displaying with `approve mfa audit`.
645
+ */
646
+ export function getMfaAuditLog(branchId) {
647
+ const fp = auditFile(branchId);
648
+ if (!fs.existsSync(fp))
649
+ return [];
650
+ return parse(fs.readFileSync(fp, 'utf8'));
651
+ }
652
+ /**
653
+ * Return the current MFA posture for a branch (no secrets exposed).
654
+ */
655
+ export function getMfaStatus(branchId) {
656
+ const state = loadState(branchId);
657
+ if (!state) {
658
+ return { configured: false, locked: false, currentNonce: 0, usedNonceCount: 0 };
659
+ }
660
+ return {
661
+ configured: true,
662
+ locked: state.locked,
663
+ currentNonce: state.currentNonce,
664
+ usedNonceCount: state.usedNonces.length,
665
+ createdAt: state.createdAt,
666
+ };
667
+ }
668
+ //# sourceMappingURL=mfa-approval.js.map