agentvault 1.0.2 → 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 (776) 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 +357 -1
  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.map +1 -0
  8. package/dist/cli/commands/backup.d.ts.map +1 -0
  9. package/dist/cli/commands/backup.js +303 -20
  10. package/dist/cli/commands/backup.js.map +1 -0
  11. package/dist/cli/commands/cloud-backup.d.ts.map +1 -0
  12. package/dist/cli/commands/cloud-backup.js +17 -0
  13. package/dist/cli/commands/cloud-backup.js.map +1 -0
  14. package/dist/cli/commands/cron.d.ts +14 -0
  15. package/dist/cli/commands/cron.d.ts.map +1 -0
  16. package/dist/cli/commands/cron.js +144 -0
  17. package/dist/cli/commands/cron.js.map +1 -0
  18. package/dist/cli/commands/cycles.d.ts.map +1 -0
  19. package/dist/cli/commands/cycles.js.map +1 -0
  20. package/dist/cli/commands/decrypt.d.ts.map +1 -0
  21. package/dist/cli/commands/decrypt.js.map +1 -0
  22. package/dist/cli/commands/deploy.d.ts.map +1 -0
  23. package/dist/cli/commands/deploy.js.map +1 -0
  24. package/dist/cli/commands/exec.d.ts.map +1 -0
  25. package/dist/cli/commands/exec.js.map +1 -0
  26. package/dist/cli/commands/fetch.d.ts +3 -0
  27. package/dist/cli/commands/fetch.d.ts.map +1 -0
  28. package/dist/cli/commands/fetch.js +68 -4
  29. package/dist/cli/commands/fetch.js.map +1 -0
  30. package/dist/cli/commands/health.d.ts.map +1 -0
  31. package/dist/cli/commands/health.js +57 -2
  32. package/dist/cli/commands/health.js.map +1 -0
  33. package/dist/cli/commands/identity.d.ts.map +1 -0
  34. package/dist/cli/commands/identity.js.map +1 -0
  35. package/dist/cli/commands/inference.d.ts.map +1 -0
  36. package/dist/cli/commands/inference.js.map +1 -0
  37. package/dist/cli/commands/info.d.ts.map +1 -0
  38. package/dist/cli/commands/info.js.map +1 -0
  39. package/dist/cli/commands/init.d.ts +18 -1
  40. package/dist/cli/commands/init.d.ts.map +1 -0
  41. package/dist/cli/commands/init.js +152 -27
  42. package/dist/cli/commands/init.js.map +1 -0
  43. package/dist/cli/commands/instrument.d.ts.map +1 -0
  44. package/dist/cli/commands/instrument.js.map +1 -0
  45. package/dist/cli/commands/list.d.ts.map +1 -0
  46. package/dist/cli/commands/list.js.map +1 -0
  47. package/dist/cli/commands/logs.d.ts.map +1 -0
  48. package/dist/cli/commands/logs.js.map +1 -0
  49. package/dist/cli/commands/mcp.d.ts +4 -0
  50. package/dist/cli/commands/mcp.d.ts.map +1 -0
  51. package/dist/cli/commands/mcp.js +228 -0
  52. package/dist/cli/commands/mcp.js.map +1 -0
  53. package/dist/cli/commands/memory.d.ts +26 -0
  54. package/dist/cli/commands/memory.d.ts.map +1 -0
  55. package/dist/cli/commands/memory.js +509 -0
  56. package/dist/cli/commands/memory.js.map +1 -0
  57. package/dist/cli/commands/mint.d.ts +25 -0
  58. package/dist/cli/commands/mint.d.ts.map +1 -0
  59. package/dist/cli/commands/mint.js +276 -0
  60. package/dist/cli/commands/mint.js.map +1 -0
  61. package/dist/cli/commands/mirror.d.ts +19 -0
  62. package/dist/cli/commands/mirror.d.ts.map +1 -0
  63. package/dist/cli/commands/mirror.js +216 -0
  64. package/dist/cli/commands/mirror.js.map +1 -0
  65. package/dist/cli/commands/monitor.d.ts.map +1 -0
  66. package/dist/cli/commands/monitor.js.map +1 -0
  67. package/dist/cli/commands/network.d.ts.map +1 -0
  68. package/dist/cli/commands/network.js.map +1 -0
  69. package/dist/cli/commands/orchestrate.d.ts +35 -0
  70. package/dist/cli/commands/orchestrate.d.ts.map +1 -0
  71. package/dist/cli/commands/orchestrate.js +190 -0
  72. package/dist/cli/commands/orchestrate.js.map +1 -0
  73. package/dist/cli/commands/package.d.ts.map +1 -0
  74. package/dist/cli/commands/package.js.map +1 -0
  75. package/dist/cli/commands/pilot.d.ts +17 -0
  76. package/dist/cli/commands/pilot.d.ts.map +1 -0
  77. package/dist/cli/commands/pilot.js +490 -0
  78. package/dist/cli/commands/pilot.js.map +1 -0
  79. package/dist/cli/commands/polytician.d.ts +4 -0
  80. package/dist/cli/commands/polytician.d.ts.map +1 -0
  81. package/dist/cli/commands/polytician.js +229 -0
  82. package/dist/cli/commands/polytician.js.map +1 -0
  83. package/dist/cli/commands/profile.d.ts.map +1 -0
  84. package/dist/cli/commands/profile.js +1 -1
  85. package/dist/cli/commands/profile.js.map +1 -0
  86. package/dist/cli/commands/promote.d.ts.map +1 -0
  87. package/dist/cli/commands/promote.js.map +1 -0
  88. package/dist/cli/commands/rebase.d.ts +85 -0
  89. package/dist/cli/commands/rebase.d.ts.map +1 -0
  90. package/dist/cli/commands/rebase.js +175 -0
  91. package/dist/cli/commands/rebase.js.map +1 -0
  92. package/dist/cli/commands/rebuild.d.ts.map +1 -0
  93. package/dist/cli/commands/rebuild.js.map +1 -0
  94. package/dist/cli/commands/repo.d.ts +19 -0
  95. package/dist/cli/commands/repo.d.ts.map +1 -0
  96. package/dist/cli/commands/repo.js +187 -0
  97. package/dist/cli/commands/repo.js.map +1 -0
  98. package/dist/cli/commands/rollback.d.ts.map +1 -0
  99. package/dist/cli/commands/rollback.js.map +1 -0
  100. package/dist/cli/commands/safehouse.d.ts +11 -0
  101. package/dist/cli/commands/safehouse.d.ts.map +1 -0
  102. package/dist/cli/commands/safehouse.js +323 -0
  103. package/dist/cli/commands/safehouse.js.map +1 -0
  104. package/dist/cli/commands/show.d.ts.map +1 -0
  105. package/dist/cli/commands/show.js.map +1 -0
  106. package/dist/cli/commands/skills.d.ts +12 -0
  107. package/dist/cli/commands/skills.d.ts.map +1 -0
  108. package/dist/cli/commands/skills.js +248 -0
  109. package/dist/cli/commands/skills.js.map +1 -0
  110. package/dist/cli/commands/stats.d.ts.map +1 -0
  111. package/dist/cli/commands/stats.js +2 -2
  112. package/dist/cli/commands/stats.js.map +1 -0
  113. package/dist/cli/commands/status.d.ts +2 -0
  114. package/dist/cli/commands/status.d.ts.map +1 -0
  115. package/dist/cli/commands/status.js +25 -0
  116. package/dist/cli/commands/status.js.map +1 -0
  117. package/dist/cli/commands/test.d.ts.map +1 -0
  118. package/dist/cli/commands/test.js.map +1 -0
  119. package/dist/cli/commands/tokens.d.ts.map +1 -0
  120. package/dist/cli/commands/tokens.js.map +1 -0
  121. package/dist/cli/commands/trace.d.ts.map +1 -0
  122. package/dist/cli/commands/trace.js +3 -3
  123. package/dist/cli/commands/trace.js.map +1 -0
  124. package/dist/cli/commands/vault.d.ts +7 -0
  125. package/dist/cli/commands/vault.d.ts.map +1 -0
  126. package/dist/cli/commands/vault.js +551 -0
  127. package/dist/cli/commands/vault.js.map +1 -0
  128. package/dist/cli/commands/wallet-export.d.ts.map +1 -0
  129. package/dist/cli/commands/wallet-export.js.map +1 -0
  130. package/dist/cli/commands/wallet-history.d.ts.map +1 -0
  131. package/dist/cli/commands/wallet-history.js +2 -26
  132. package/dist/cli/commands/wallet-history.js.map +1 -0
  133. package/dist/cli/commands/wallet-import.d.ts.map +1 -0
  134. package/dist/cli/commands/wallet-import.js.map +1 -0
  135. package/dist/cli/commands/wallet-multi-send.d.ts.map +1 -0
  136. package/dist/cli/commands/wallet-multi-send.js.map +1 -0
  137. package/dist/cli/commands/wallet-process-queue.d.ts.map +1 -0
  138. package/dist/cli/commands/wallet-process-queue.js +2 -23
  139. package/dist/cli/commands/wallet-process-queue.js.map +1 -0
  140. package/dist/cli/commands/wallet-sign.d.ts.map +1 -0
  141. package/dist/cli/commands/wallet-sign.js +2 -26
  142. package/dist/cli/commands/wallet-sign.js.map +1 -0
  143. package/dist/cli/commands/wallet.d.ts +61 -0
  144. package/dist/cli/commands/wallet.d.ts.map +1 -0
  145. package/dist/cli/commands/wallet.js +312 -42
  146. package/dist/cli/commands/wallet.js.map +1 -0
  147. package/dist/cli/commands/wiki.d.ts +29 -0
  148. package/dist/cli/commands/wiki.d.ts.map +1 -0
  149. package/dist/cli/commands/wiki.js +528 -0
  150. package/dist/cli/commands/wiki.js.map +1 -0
  151. package/dist/cli/index.d.ts.map +1 -0
  152. package/dist/cli/index.js +74 -2
  153. package/dist/cli/index.js.map +1 -0
  154. package/dist/cli/merge.d.ts +70 -0
  155. package/dist/cli/merge.d.ts.map +1 -0
  156. package/dist/cli/merge.js +232 -0
  157. package/dist/cli/merge.js.map +1 -0
  158. package/dist/src/archival/archive-manager.d.ts +4 -0
  159. package/dist/src/archival/archive-manager.d.ts.map +1 -0
  160. package/dist/src/archival/archive-manager.js +6 -0
  161. package/dist/src/archival/archive-manager.js.map +1 -0
  162. package/dist/src/archival/arweave-archiver.d.ts +173 -0
  163. package/dist/src/archival/arweave-archiver.d.ts.map +1 -0
  164. package/dist/src/archival/arweave-archiver.js +279 -0
  165. package/dist/src/archival/arweave-archiver.js.map +1 -0
  166. package/dist/src/archival/arweave-client.d.ts +1 -0
  167. package/dist/src/archival/arweave-client.d.ts.map +1 -0
  168. package/dist/src/archival/arweave-client.js +5 -2
  169. package/dist/src/archival/arweave-client.js.map +1 -0
  170. package/dist/src/archival/index.d.ts +4 -1
  171. package/dist/src/archival/index.d.ts.map +1 -0
  172. package/dist/src/archival/index.js +2 -1
  173. package/dist/src/archival/index.js.map +1 -0
  174. package/dist/src/backbone/constants.d.ts +30 -0
  175. package/dist/src/backbone/constants.d.ts.map +1 -0
  176. package/dist/src/backbone/constants.js +62 -0
  177. package/dist/src/backbone/constants.js.map +1 -0
  178. package/dist/src/backbone/index.d.ts +15 -0
  179. package/dist/src/backbone/index.d.ts.map +1 -0
  180. package/dist/src/backbone/index.js +18 -0
  181. package/dist/src/backbone/index.js.map +1 -0
  182. package/dist/src/backbone/services/communication.d.ts +42 -0
  183. package/dist/src/backbone/services/communication.d.ts.map +1 -0
  184. package/dist/src/backbone/services/communication.js +107 -0
  185. package/dist/src/backbone/services/communication.js.map +1 -0
  186. package/dist/src/backbone/services/consensus.d.ts +61 -0
  187. package/dist/src/backbone/services/consensus.d.ts.map +1 -0
  188. package/dist/src/backbone/services/consensus.js +210 -0
  189. package/dist/src/backbone/services/consensus.js.map +1 -0
  190. package/dist/src/backbone/services/index.d.ts +10 -0
  191. package/dist/src/backbone/services/index.d.ts.map +1 -0
  192. package/dist/src/backbone/services/index.js +6 -0
  193. package/dist/src/backbone/services/index.js.map +1 -0
  194. package/dist/src/backbone/services/knowledge.d.ts +44 -0
  195. package/dist/src/backbone/services/knowledge.d.ts.map +1 -0
  196. package/dist/src/backbone/services/knowledge.js +99 -0
  197. package/dist/src/backbone/services/knowledge.js.map +1 -0
  198. package/dist/src/backbone/services/memory.d.ts +36 -0
  199. package/dist/src/backbone/services/memory.d.ts.map +1 -0
  200. package/dist/src/backbone/services/memory.js +94 -0
  201. package/dist/src/backbone/services/memory.js.map +1 -0
  202. package/dist/src/backbone/services/vault-health.d.ts +18 -0
  203. package/dist/src/backbone/services/vault-health.d.ts.map +1 -0
  204. package/dist/src/backbone/services/vault-health.js +74 -0
  205. package/dist/src/backbone/services/vault-health.js.map +1 -0
  206. package/dist/src/backbone/types.d.ts +211 -0
  207. package/dist/src/backbone/types.d.ts.map +1 -0
  208. package/dist/src/backbone/types.js +8 -0
  209. package/dist/src/backbone/types.js.map +1 -0
  210. package/dist/src/backbone/validators.d.ts +211 -0
  211. package/dist/src/backbone/validators.d.ts.map +1 -0
  212. package/dist/src/backbone/validators.js +122 -0
  213. package/dist/src/backbone/validators.js.map +1 -0
  214. package/dist/src/backup/backup.d.ts +107 -1
  215. package/dist/src/backup/backup.d.ts.map +1 -0
  216. package/dist/src/backup/backup.js +413 -4
  217. package/dist/src/backup/backup.js.map +1 -0
  218. package/dist/src/backup/index.d.ts +3 -1
  219. package/dist/src/backup/index.d.ts.map +1 -0
  220. package/dist/src/backup/index.js +3 -1
  221. package/dist/src/backup/index.js.map +1 -0
  222. package/dist/src/backup/merkle.d.ts +44 -0
  223. package/dist/src/backup/merkle.d.ts.map +1 -0
  224. package/dist/src/backup/merkle.js +85 -0
  225. package/dist/src/backup/merkle.js.map +1 -0
  226. package/dist/src/backup/thoughtform-bundle.d.ts +42 -0
  227. package/dist/src/backup/thoughtform-bundle.d.ts.map +1 -0
  228. package/dist/src/backup/thoughtform-bundle.js +200 -0
  229. package/dist/src/backup/thoughtform-bundle.js.map +1 -0
  230. package/dist/src/canister/actor.d.ts +310 -0
  231. package/dist/src/canister/actor.d.ts.map +1 -0
  232. package/dist/src/canister/actor.idl.d.ts +8 -0
  233. package/dist/src/canister/actor.idl.d.ts.map +1 -0
  234. package/dist/src/canister/actor.idl.js +518 -0
  235. package/dist/src/canister/actor.idl.js.map +1 -0
  236. package/dist/src/canister/actor.js +51 -0
  237. package/dist/src/canister/actor.js.map +1 -0
  238. package/dist/src/canister/encryption.d.ts +158 -0
  239. package/dist/src/canister/encryption.d.ts.map +1 -0
  240. package/dist/src/canister/encryption.js +296 -0
  241. package/dist/src/canister/encryption.js.map +1 -0
  242. package/dist/src/canister/memory-repo-actor.d.ts +162 -0
  243. package/dist/src/canister/memory-repo-actor.d.ts.map +1 -0
  244. package/dist/src/canister/memory-repo-actor.idl.d.ts +8 -0
  245. package/dist/src/canister/memory-repo-actor.idl.d.ts.map +1 -0
  246. package/dist/src/canister/memory-repo-actor.idl.js +90 -0
  247. package/dist/src/canister/memory-repo-actor.idl.js.map +1 -0
  248. package/dist/src/canister/memory-repo-actor.js +69 -0
  249. package/dist/src/canister/memory-repo-actor.js.map +1 -0
  250. package/dist/src/canister/types.d.ts +54 -0
  251. package/dist/src/canister/types.d.ts.map +1 -0
  252. package/dist/src/canister/types.js +7 -0
  253. package/dist/src/canister/types.js.map +1 -0
  254. package/dist/src/cloud-storage/cloud-sync.d.ts.map +1 -0
  255. package/dist/src/cloud-storage/cloud-sync.js +10 -5
  256. package/dist/src/cloud-storage/cloud-sync.js.map +1 -0
  257. package/dist/src/cloud-storage/index.d.ts.map +1 -0
  258. package/dist/src/cloud-storage/index.js.map +1 -0
  259. package/dist/src/cloud-storage/provider-detector.d.ts.map +1 -0
  260. package/dist/src/cloud-storage/provider-detector.js.map +1 -0
  261. package/dist/src/cloud-storage/types.d.ts +5 -0
  262. package/dist/src/cloud-storage/types.d.ts.map +1 -0
  263. package/dist/src/cloud-storage/types.js.map +1 -0
  264. package/dist/src/debugging/debug-logger.d.ts +8 -0
  265. package/dist/src/debugging/debug-logger.d.ts.map +1 -0
  266. package/dist/src/debugging/debug-logger.js +11 -0
  267. package/dist/src/debugging/debug-logger.js.map +1 -0
  268. package/dist/src/debugging/index.d.ts +1 -0
  269. package/dist/src/debugging/index.d.ts.map +1 -0
  270. package/dist/src/debugging/index.js +1 -0
  271. package/dist/src/debugging/index.js.map +1 -0
  272. package/dist/src/debugging/logs.d.ts.map +1 -0
  273. package/dist/src/debugging/logs.js.map +1 -0
  274. package/dist/src/debugging/types.d.ts.map +1 -0
  275. package/dist/src/debugging/types.js.map +1 -0
  276. package/dist/src/deployment/deployer.d.ts.map +1 -0
  277. package/dist/src/deployment/deployer.js +133 -1
  278. package/dist/src/deployment/deployer.js.map +1 -0
  279. package/dist/src/deployment/icpClient.d.ts.map +1 -0
  280. package/dist/src/deployment/icpClient.js +4 -0
  281. package/dist/src/deployment/icpClient.js.map +1 -0
  282. package/dist/src/deployment/index.d.ts.map +1 -0
  283. package/dist/src/deployment/index.js.map +1 -0
  284. package/dist/src/deployment/promotion.d.ts.map +1 -0
  285. package/dist/src/deployment/promotion.js.map +1 -0
  286. package/dist/src/deployment/types.d.ts +2 -1
  287. package/dist/src/deployment/types.d.ts.map +1 -0
  288. package/dist/src/deployment/types.js.map +1 -0
  289. package/dist/src/fault-tolerance/backup-status.d.ts +31 -0
  290. package/dist/src/fault-tolerance/backup-status.d.ts.map +1 -0
  291. package/dist/src/fault-tolerance/backup-status.js +76 -0
  292. package/dist/src/fault-tolerance/backup-status.js.map +1 -0
  293. package/dist/src/fault-tolerance/cron-check.d.ts +66 -0
  294. package/dist/src/fault-tolerance/cron-check.d.ts.map +1 -0
  295. package/dist/src/fault-tolerance/cron-check.js +177 -0
  296. package/dist/src/fault-tolerance/cron-check.js.map +1 -0
  297. package/dist/src/fault-tolerance/index.d.ts +12 -0
  298. package/dist/src/fault-tolerance/index.d.ts.map +1 -0
  299. package/dist/src/fault-tolerance/index.js +12 -0
  300. package/dist/src/fault-tolerance/index.js.map +1 -0
  301. package/dist/src/fault-tolerance/mirror-sync.d.ts +61 -0
  302. package/dist/src/fault-tolerance/mirror-sync.d.ts.map +1 -0
  303. package/dist/src/fault-tolerance/mirror-sync.js +203 -0
  304. package/dist/src/fault-tolerance/mirror-sync.js.map +1 -0
  305. package/dist/src/icp/batch.d.ts.map +1 -0
  306. package/dist/src/icp/batch.js +10 -4
  307. package/dist/src/icp/batch.js.map +1 -0
  308. package/dist/src/icp/cycles.d.ts.map +1 -0
  309. package/dist/src/icp/cycles.js.map +1 -0
  310. package/dist/src/icp/environment.d.ts.map +1 -0
  311. package/dist/src/icp/environment.js.map +1 -0
  312. package/dist/src/icp/icpcli.d.ts.map +1 -0
  313. package/dist/src/icp/icpcli.js.map +1 -0
  314. package/dist/src/icp/icwasm.d.ts.map +1 -0
  315. package/dist/src/icp/icwasm.js.map +1 -0
  316. package/dist/src/icp/identity.d.ts.map +1 -0
  317. package/dist/src/icp/identity.js.map +1 -0
  318. package/dist/src/icp/index.d.ts.map +1 -0
  319. package/dist/src/icp/index.js.map +1 -0
  320. package/dist/src/icp/optimization.d.ts.map +1 -0
  321. package/dist/src/icp/optimization.js.map +1 -0
  322. package/dist/src/icp/tokens.d.ts.map +1 -0
  323. package/dist/src/icp/tokens.js.map +1 -0
  324. package/dist/src/icp/tool-detector.d.ts.map +1 -0
  325. package/dist/src/icp/tool-detector.js +19 -5
  326. package/dist/src/icp/tool-detector.js.map +1 -0
  327. package/dist/src/icp/types.d.ts.map +1 -0
  328. package/dist/src/icp/types.js.map +1 -0
  329. package/dist/src/index.d.ts +1 -1
  330. package/dist/src/index.d.ts.map +1 -0
  331. package/dist/src/index.js +22 -1
  332. package/dist/src/index.js.map +1 -0
  333. package/dist/src/inference/bittensor-client.d.ts +54 -1
  334. package/dist/src/inference/bittensor-client.d.ts.map +1 -0
  335. package/dist/src/inference/bittensor-client.js +96 -3
  336. package/dist/src/inference/bittensor-client.js.map +1 -0
  337. package/dist/src/inference/fallback-chain.d.ts +90 -0
  338. package/dist/src/inference/fallback-chain.d.ts.map +1 -0
  339. package/dist/src/inference/fallback-chain.js +219 -0
  340. package/dist/src/inference/fallback-chain.js.map +1 -0
  341. package/dist/src/inference/index.d.ts +6 -1
  342. package/dist/src/inference/index.d.ts.map +1 -0
  343. package/dist/src/inference/index.js +6 -1
  344. package/dist/src/inference/index.js.map +1 -0
  345. package/dist/src/inference/inference-manager.d.ts.map +1 -0
  346. package/dist/src/inference/inference-manager.js.map +1 -0
  347. package/dist/src/inference/local-model-client.d.ts +46 -0
  348. package/dist/src/inference/local-model-client.d.ts.map +1 -0
  349. package/dist/src/inference/local-model-client.js +92 -0
  350. package/dist/src/inference/local-model-client.js.map +1 -0
  351. package/dist/src/inference/secure-inference.d.ts +105 -0
  352. package/dist/src/inference/secure-inference.d.ts.map +1 -0
  353. package/dist/src/inference/secure-inference.js +237 -0
  354. package/dist/src/inference/secure-inference.js.map +1 -0
  355. package/dist/src/inference/venice-client.d.ts +149 -0
  356. package/dist/src/inference/venice-client.d.ts.map +1 -0
  357. package/dist/src/inference/venice-client.js +333 -0
  358. package/dist/src/inference/venice-client.js.map +1 -0
  359. package/dist/src/metrics/index.d.ts.map +1 -0
  360. package/dist/src/metrics/index.js.map +1 -0
  361. package/dist/src/metrics/metrics.d.ts.map +1 -0
  362. package/dist/src/metrics/metrics.js.map +1 -0
  363. package/dist/src/mint/google-adk.d.ts +19 -0
  364. package/dist/src/mint/google-adk.d.ts.map +1 -0
  365. package/dist/src/mint/google-adk.js +180 -0
  366. package/dist/src/mint/google-adk.js.map +1 -0
  367. package/dist/src/monitoring/alerting.d.ts.map +1 -0
  368. package/dist/src/monitoring/alerting.js.map +1 -0
  369. package/dist/src/monitoring/health.d.ts +9 -1
  370. package/dist/src/monitoring/health.d.ts.map +1 -0
  371. package/dist/src/monitoring/health.js +63 -0
  372. package/dist/src/monitoring/health.js.map +1 -0
  373. package/dist/src/monitoring/index.d.ts +2 -2
  374. package/dist/src/monitoring/index.d.ts.map +1 -0
  375. package/dist/src/monitoring/index.js +1 -1
  376. package/dist/src/monitoring/index.js.map +1 -0
  377. package/dist/src/monitoring/info.d.ts.map +1 -0
  378. package/dist/src/monitoring/info.js.map +1 -0
  379. package/dist/src/monitoring/types.d.ts +26 -0
  380. package/dist/src/monitoring/types.d.ts.map +1 -0
  381. package/dist/src/monitoring/types.js.map +1 -0
  382. package/dist/src/network/index.d.ts.map +1 -0
  383. package/dist/src/network/index.js.map +1 -0
  384. package/dist/src/network/network-config.d.ts.map +1 -0
  385. package/dist/src/network/network-config.js.map +1 -0
  386. package/dist/src/orchestration/claude.d.ts +125 -0
  387. package/dist/src/orchestration/claude.d.ts.map +1 -0
  388. package/dist/src/orchestration/claude.js +639 -0
  389. package/dist/src/orchestration/claude.js.map +1 -0
  390. package/dist/src/orchestration/google-adk.d.ts +77 -0
  391. package/dist/src/orchestration/google-adk.d.ts.map +1 -0
  392. package/dist/src/orchestration/google-adk.js +659 -0
  393. package/dist/src/orchestration/google-adk.js.map +1 -0
  394. package/dist/src/orchestration/mcp-client.d.ts +47 -0
  395. package/dist/src/orchestration/mcp-client.d.ts.map +1 -0
  396. package/dist/src/orchestration/mcp-client.js +179 -0
  397. package/dist/src/orchestration/mcp-client.js.map +1 -0
  398. package/dist/src/orchestration/polytician-enricher.d.ts +21 -0
  399. package/dist/src/orchestration/polytician-enricher.d.ts.map +1 -0
  400. package/dist/src/orchestration/polytician-enricher.js +131 -0
  401. package/dist/src/orchestration/polytician-enricher.js.map +1 -0
  402. package/dist/src/orchestration/smallchat-bridge.d.ts +121 -0
  403. package/dist/src/orchestration/smallchat-bridge.d.ts.map +1 -0
  404. package/dist/src/orchestration/smallchat-bridge.js +331 -0
  405. package/dist/src/orchestration/smallchat-bridge.js.map +1 -0
  406. package/dist/src/orchestration/smallchat-compression.d.ts +100 -0
  407. package/dist/src/orchestration/smallchat-compression.d.ts.map +1 -0
  408. package/dist/src/orchestration/smallchat-compression.js +203 -0
  409. package/dist/src/orchestration/smallchat-compression.js.map +1 -0
  410. package/dist/src/orchestration/smallchat-policy.d.ts +158 -0
  411. package/dist/src/orchestration/smallchat-policy.d.ts.map +1 -0
  412. package/dist/src/orchestration/smallchat-policy.js +314 -0
  413. package/dist/src/orchestration/smallchat-policy.js.map +1 -0
  414. package/dist/src/orchestration/smallchat-tools.d.ts +69 -0
  415. package/dist/src/orchestration/smallchat-tools.d.ts.map +1 -0
  416. package/dist/src/orchestration/smallchat-tools.js +501 -0
  417. package/dist/src/orchestration/smallchat-tools.js.map +1 -0
  418. package/dist/src/packaging/compiler.d.ts.map +1 -0
  419. package/dist/src/packaging/compiler.js.map +1 -0
  420. package/dist/src/packaging/config-persistence.d.ts.map +1 -0
  421. package/dist/src/packaging/config-persistence.js.map +1 -0
  422. package/dist/src/packaging/config-schemas.d.ts +44 -2
  423. package/dist/src/packaging/config-schemas.d.ts.map +1 -0
  424. package/dist/src/packaging/config-schemas.js +19 -0
  425. package/dist/src/packaging/config-schemas.js.map +1 -0
  426. package/dist/src/packaging/detector.d.ts.map +1 -0
  427. package/dist/src/packaging/detector.js +15 -1
  428. package/dist/src/packaging/detector.js.map +1 -0
  429. package/dist/src/packaging/index.d.ts +11 -5
  430. package/dist/src/packaging/index.d.ts.map +1 -0
  431. package/dist/src/packaging/index.js +10 -4
  432. package/dist/src/packaging/index.js.map +1 -0
  433. package/dist/src/packaging/packager.d.ts.map +1 -0
  434. package/dist/src/packaging/packager.js.map +1 -0
  435. package/dist/src/packaging/parsers/clawdbot.d.ts +1 -1
  436. package/dist/src/packaging/parsers/clawdbot.d.ts.map +1 -0
  437. package/dist/src/packaging/parsers/clawdbot.js +26 -28
  438. package/dist/src/packaging/parsers/clawdbot.js.map +1 -0
  439. package/dist/src/packaging/parsers/cline.d.ts.map +1 -0
  440. package/dist/src/packaging/parsers/cline.js.map +1 -0
  441. package/dist/src/packaging/parsers/generic.d.ts +1 -1
  442. package/dist/src/packaging/parsers/generic.d.ts.map +1 -0
  443. package/dist/src/packaging/parsers/generic.js +13 -20
  444. package/dist/src/packaging/parsers/generic.js.map +1 -0
  445. package/dist/src/packaging/parsers/goose.d.ts.map +1 -0
  446. package/dist/src/packaging/parsers/goose.js.map +1 -0
  447. package/dist/src/packaging/parsers/index.d.ts +2 -0
  448. package/dist/src/packaging/parsers/index.d.ts.map +1 -0
  449. package/dist/src/packaging/parsers/index.js +2 -0
  450. package/dist/src/packaging/parsers/index.js.map +1 -0
  451. package/dist/src/packaging/parsers/nemoclaw.d.ts +4 -0
  452. package/dist/src/packaging/parsers/nemoclaw.d.ts.map +1 -0
  453. package/dist/src/packaging/parsers/nemoclaw.js +145 -0
  454. package/dist/src/packaging/parsers/nemoclaw.js.map +1 -0
  455. package/dist/src/packaging/parsers/polytician.d.ts +4 -0
  456. package/dist/src/packaging/parsers/polytician.d.ts.map +1 -0
  457. package/dist/src/packaging/parsers/polytician.js +121 -0
  458. package/dist/src/packaging/parsers/polytician.js.map +1 -0
  459. package/dist/src/packaging/serializer.d.ts +7 -1
  460. package/dist/src/packaging/serializer.d.ts.map +1 -0
  461. package/dist/src/packaging/serializer.js +14 -3
  462. package/dist/src/packaging/serializer.js.map +1 -0
  463. package/dist/src/packaging/serializers/index.d.ts +3 -0
  464. package/dist/src/packaging/serializers/index.d.ts.map +1 -0
  465. package/dist/src/packaging/serializers/index.js +2 -0
  466. package/dist/src/packaging/serializers/index.js.map +1 -0
  467. package/dist/src/packaging/serializers/thoughtform.d.ts +89 -0
  468. package/dist/src/packaging/serializers/thoughtform.d.ts.map +1 -0
  469. package/dist/src/packaging/serializers/thoughtform.js +84 -0
  470. package/dist/src/packaging/serializers/thoughtform.js.map +1 -0
  471. package/dist/src/packaging/state-format.d.ts +332 -0
  472. package/dist/src/packaging/state-format.d.ts.map +1 -0
  473. package/dist/src/packaging/state-format.js +602 -0
  474. package/dist/src/packaging/state-format.js.map +1 -0
  475. package/dist/src/packaging/types.d.ts +2 -2
  476. package/dist/src/packaging/types.d.ts.map +1 -0
  477. package/dist/src/packaging/types.js.map +1 -0
  478. package/dist/src/packaging/wasm-compiler.d.ts +160 -0
  479. package/dist/src/packaging/wasm-compiler.d.ts.map +1 -0
  480. package/dist/src/packaging/wasm-compiler.js +662 -0
  481. package/dist/src/packaging/wasm-compiler.js.map +1 -0
  482. package/dist/src/packaging/wasmedge-compiler.d.ts.map +1 -0
  483. package/dist/src/packaging/wasmedge-compiler.js +6 -4
  484. package/dist/src/packaging/wasmedge-compiler.js.map +1 -0
  485. package/dist/src/pilot/air-gap.d.ts +51 -0
  486. package/dist/src/pilot/air-gap.d.ts.map +1 -0
  487. package/dist/src/pilot/air-gap.js +118 -0
  488. package/dist/src/pilot/air-gap.js.map +1 -0
  489. package/dist/src/pilot/index.d.ts +14 -0
  490. package/dist/src/pilot/index.d.ts.map +1 -0
  491. package/dist/src/pilot/index.js +16 -0
  492. package/dist/src/pilot/index.js.map +1 -0
  493. package/dist/src/pilot/private-replica.d.ts +67 -0
  494. package/dist/src/pilot/private-replica.d.ts.map +1 -0
  495. package/dist/src/pilot/private-replica.js +429 -0
  496. package/dist/src/pilot/private-replica.js.map +1 -0
  497. package/dist/src/pilot/proxy-config.d.ts +36 -0
  498. package/dist/src/pilot/proxy-config.d.ts.map +1 -0
  499. package/dist/src/pilot/proxy-config.js +96 -0
  500. package/dist/src/pilot/proxy-config.js.map +1 -0
  501. package/dist/src/pilot/types.d.ts +181 -0
  502. package/dist/src/pilot/types.d.ts.map +1 -0
  503. package/dist/src/pilot/types.js +7 -0
  504. package/dist/src/pilot/types.js.map +1 -0
  505. package/dist/src/security/icp-audit.d.ts +63 -0
  506. package/dist/src/security/icp-audit.d.ts.map +1 -0
  507. package/dist/src/security/icp-audit.js +234 -0
  508. package/dist/src/security/icp-audit.js.map +1 -0
  509. package/dist/src/security/index.d.ts +7 -1
  510. package/dist/src/security/index.d.ts.map +1 -0
  511. package/dist/src/security/index.js +12 -2
  512. package/dist/src/security/index.js.map +1 -0
  513. package/dist/src/security/mfa-approval.d.ts +219 -0
  514. package/dist/src/security/mfa-approval.d.ts.map +1 -0
  515. package/dist/src/security/mfa-approval.js +668 -0
  516. package/dist/src/security/mfa-approval.js.map +1 -0
  517. package/dist/src/security/multisig.d.ts.map +1 -0
  518. package/dist/src/security/multisig.js.map +1 -0
  519. package/dist/src/security/totp.d.ts +67 -0
  520. package/dist/src/security/totp.d.ts.map +1 -0
  521. package/dist/src/security/totp.js +148 -0
  522. package/dist/src/security/totp.js.map +1 -0
  523. package/dist/src/security/types.d.ts +7 -2
  524. package/dist/src/security/types.d.ts.map +1 -0
  525. package/dist/src/security/types.js +14 -14
  526. package/dist/src/security/types.js.map +1 -0
  527. package/dist/src/security/vetkeys.d.ts +43 -0
  528. package/dist/src/security/vetkeys.d.ts.map +1 -0
  529. package/dist/src/security/vetkeys.js +144 -15
  530. package/dist/src/security/vetkeys.js.map +1 -0
  531. package/dist/src/security/webauthn.d.ts +127 -0
  532. package/dist/src/security/webauthn.d.ts.map +1 -0
  533. package/dist/src/security/webauthn.js +246 -0
  534. package/dist/src/security/webauthn.js.map +1 -0
  535. package/dist/src/testing/index.d.ts.map +1 -0
  536. package/dist/src/testing/index.js.map +1 -0
  537. package/dist/src/testing/local-runner.d.ts.map +1 -0
  538. package/dist/src/testing/local-runner.js.map +1 -0
  539. package/dist/src/testing/types.d.ts.map +1 -0
  540. package/dist/src/testing/types.js.map +1 -0
  541. package/dist/src/trading/api-key-manager.d.ts +96 -0
  542. package/dist/src/trading/api-key-manager.d.ts.map +1 -0
  543. package/dist/src/trading/api-key-manager.js +201 -0
  544. package/dist/src/trading/api-key-manager.js.map +1 -0
  545. package/dist/src/trading/consensus.d.ts +171 -0
  546. package/dist/src/trading/consensus.d.ts.map +1 -0
  547. package/dist/src/trading/consensus.js +291 -0
  548. package/dist/src/trading/consensus.js.map +1 -0
  549. package/dist/src/trading/index.d.ts +19 -0
  550. package/dist/src/trading/index.d.ts.map +1 -0
  551. package/dist/src/trading/index.js +15 -0
  552. package/dist/src/trading/index.js.map +1 -0
  553. package/dist/src/trading/ip-whitelist.d.ts +70 -0
  554. package/dist/src/trading/ip-whitelist.d.ts.map +1 -0
  555. package/dist/src/trading/ip-whitelist.js +239 -0
  556. package/dist/src/trading/ip-whitelist.js.map +1 -0
  557. package/dist/src/trading/skill-sandbox.d.ts +88 -0
  558. package/dist/src/trading/skill-sandbox.d.ts.map +1 -0
  559. package/dist/src/trading/skill-sandbox.js +175 -0
  560. package/dist/src/trading/skill-sandbox.js.map +1 -0
  561. package/dist/src/utils/path-validation.d.ts +34 -0
  562. package/dist/src/utils/path-validation.d.ts.map +1 -0
  563. package/dist/src/utils/path-validation.js +88 -0
  564. package/dist/src/utils/path-validation.js.map +1 -0
  565. package/dist/src/vault/bitwarden.d.ts +51 -0
  566. package/dist/src/vault/bitwarden.d.ts.map +1 -0
  567. package/dist/src/vault/bitwarden.js +172 -0
  568. package/dist/src/vault/bitwarden.js.map +1 -0
  569. package/dist/src/vault/client.d.ts +44 -0
  570. package/dist/src/vault/client.d.ts.map +1 -0
  571. package/dist/src/vault/client.js +523 -0
  572. package/dist/src/vault/client.js.map +1 -0
  573. package/dist/src/vault/config.d.ts +68 -0
  574. package/dist/src/vault/config.d.ts.map +1 -0
  575. package/dist/src/vault/config.js +265 -0
  576. package/dist/src/vault/config.js.map +1 -0
  577. package/dist/src/vault/encrypted-memory-store.d.ts +80 -0
  578. package/dist/src/vault/encrypted-memory-store.d.ts.map +1 -0
  579. package/dist/src/vault/encrypted-memory-store.js +175 -0
  580. package/dist/src/vault/encrypted-memory-store.js.map +1 -0
  581. package/dist/src/vault/hashicorp-provider.d.ts +22 -0
  582. package/dist/src/vault/hashicorp-provider.d.ts.map +1 -0
  583. package/dist/src/vault/hashicorp-provider.js +63 -0
  584. package/dist/src/vault/hashicorp-provider.js.map +1 -0
  585. package/dist/src/vault/index.d.ts +40 -0
  586. package/dist/src/vault/index.d.ts.map +1 -0
  587. package/dist/src/vault/index.js +38 -0
  588. package/dist/src/vault/index.js.map +1 -0
  589. package/dist/src/vault/memory-provider.d.ts +26 -0
  590. package/dist/src/vault/memory-provider.d.ts.map +1 -0
  591. package/dist/src/vault/memory-provider.js +42 -0
  592. package/dist/src/vault/memory-provider.js.map +1 -0
  593. package/dist/src/vault/provider.d.ts +68 -0
  594. package/dist/src/vault/provider.d.ts.map +1 -0
  595. package/dist/src/vault/provider.js +50 -0
  596. package/dist/src/vault/provider.js.map +1 -0
  597. package/dist/src/vault/safehouse-types.d.ts +204 -0
  598. package/dist/src/vault/safehouse-types.d.ts.map +1 -0
  599. package/dist/src/vault/safehouse-types.js +9 -0
  600. package/dist/src/vault/safehouse-types.js.map +1 -0
  601. package/dist/src/vault/secret-audit.d.ts +91 -0
  602. package/dist/src/vault/secret-audit.d.ts.map +1 -0
  603. package/dist/src/vault/secret-audit.js +224 -0
  604. package/dist/src/vault/secret-audit.js.map +1 -0
  605. package/dist/src/vault/secret-injector.d.ts +62 -0
  606. package/dist/src/vault/secret-injector.d.ts.map +1 -0
  607. package/dist/src/vault/secret-injector.js +237 -0
  608. package/dist/src/vault/secret-injector.js.map +1 -0
  609. package/dist/src/vault/secret-leak-detector.d.ts +94 -0
  610. package/dist/src/vault/secret-leak-detector.d.ts.map +1 -0
  611. package/dist/src/vault/secret-leak-detector.js +218 -0
  612. package/dist/src/vault/secret-leak-detector.js.map +1 -0
  613. package/dist/src/vault/secret-management-layer.d.ts +139 -0
  614. package/dist/src/vault/secret-management-layer.d.ts.map +1 -0
  615. package/dist/src/vault/secret-management-layer.js +366 -0
  616. package/dist/src/vault/secret-management-layer.js.map +1 -0
  617. package/dist/src/vault/secret-rotation.d.ts +54 -0
  618. package/dist/src/vault/secret-rotation.d.ts.map +1 -0
  619. package/dist/src/vault/secret-rotation.js +156 -0
  620. package/dist/src/vault/secret-rotation.js.map +1 -0
  621. package/dist/src/vault/secret-sandbox.d.ts +94 -0
  622. package/dist/src/vault/secret-sandbox.d.ts.map +1 -0
  623. package/dist/src/vault/secret-sandbox.js +232 -0
  624. package/dist/src/vault/secret-sandbox.js.map +1 -0
  625. package/dist/src/vault/types.d.ts +148 -0
  626. package/dist/src/vault/types.d.ts.map +1 -0
  627. package/dist/src/vault/types.js +7 -0
  628. package/dist/src/vault/types.js.map +1 -0
  629. package/dist/src/wallet/cbor-serializer.d.ts.map +1 -0
  630. package/dist/src/wallet/cbor-serializer.js +7 -2
  631. package/dist/src/wallet/cbor-serializer.js.map +1 -0
  632. package/dist/src/wallet/chain-dispatcher.d.ts +1 -1
  633. package/dist/src/wallet/chain-dispatcher.d.ts.map +1 -0
  634. package/dist/src/wallet/chain-dispatcher.js +8 -19
  635. package/dist/src/wallet/chain-dispatcher.js.map +1 -0
  636. package/dist/src/wallet/cross-chain-aggregator.d.ts.map +1 -0
  637. package/dist/src/wallet/cross-chain-aggregator.js.map +1 -0
  638. package/dist/src/wallet/hsm/index.d.ts +39 -0
  639. package/dist/src/wallet/hsm/index.d.ts.map +1 -0
  640. package/dist/src/wallet/hsm/index.js +60 -0
  641. package/dist/src/wallet/hsm/index.js.map +1 -0
  642. package/dist/src/wallet/hsm/ledger-provider.d.ts +75 -0
  643. package/dist/src/wallet/hsm/ledger-provider.d.ts.map +1 -0
  644. package/dist/src/wallet/hsm/ledger-provider.js +272 -0
  645. package/dist/src/wallet/hsm/ledger-provider.js.map +1 -0
  646. package/dist/src/wallet/hsm/sgx-provider.d.ts +83 -0
  647. package/dist/src/wallet/hsm/sgx-provider.d.ts.map +1 -0
  648. package/dist/src/wallet/hsm/sgx-provider.js +281 -0
  649. package/dist/src/wallet/hsm/sgx-provider.js.map +1 -0
  650. package/dist/src/wallet/hsm/types.d.ts +134 -0
  651. package/dist/src/wallet/hsm/types.d.ts.map +1 -0
  652. package/dist/src/wallet/hsm/types.js +46 -0
  653. package/dist/src/wallet/hsm/types.js.map +1 -0
  654. package/dist/src/wallet/index.d.ts +8 -2
  655. package/dist/src/wallet/index.d.ts.map +1 -0
  656. package/dist/src/wallet/index.js +9 -2
  657. package/dist/src/wallet/index.js.map +1 -0
  658. package/dist/src/wallet/key-derivation.d.ts +29 -1
  659. package/dist/src/wallet/key-derivation.d.ts.map +1 -0
  660. package/dist/src/wallet/key-derivation.js +106 -23
  661. package/dist/src/wallet/key-derivation.js.map +1 -0
  662. package/dist/src/wallet/providers/arweave-provider.d.ts +34 -0
  663. package/dist/src/wallet/providers/arweave-provider.d.ts.map +1 -0
  664. package/dist/src/wallet/providers/arweave-provider.js +126 -0
  665. package/dist/src/wallet/providers/arweave-provider.js.map +1 -0
  666. package/dist/src/wallet/providers/base-provider.d.ts.map +1 -0
  667. package/dist/src/wallet/providers/base-provider.js.map +1 -0
  668. package/dist/src/wallet/providers/cketh-provider.d.ts.map +1 -0
  669. package/dist/src/wallet/providers/cketh-provider.js.map +1 -0
  670. package/dist/src/wallet/providers/icp-provider.d.ts +34 -0
  671. package/dist/src/wallet/providers/icp-provider.d.ts.map +1 -0
  672. package/dist/src/wallet/providers/icp-provider.js +114 -0
  673. package/dist/src/wallet/providers/icp-provider.js.map +1 -0
  674. package/dist/src/wallet/providers/polkadot-provider.d.ts.map +1 -0
  675. package/dist/src/wallet/providers/polkadot-provider.js +5 -6
  676. package/dist/src/wallet/providers/polkadot-provider.js.map +1 -0
  677. package/dist/src/wallet/providers/provider-factory.d.ts +23 -0
  678. package/dist/src/wallet/providers/provider-factory.d.ts.map +1 -0
  679. package/dist/src/wallet/providers/provider-factory.js +74 -0
  680. package/dist/src/wallet/providers/provider-factory.js.map +1 -0
  681. package/dist/src/wallet/providers/solana-provider.d.ts.map +1 -0
  682. package/dist/src/wallet/providers/solana-provider.js +6 -7
  683. package/dist/src/wallet/providers/solana-provider.js.map +1 -0
  684. package/dist/src/wallet/secure-wallet.d.ts +132 -0
  685. package/dist/src/wallet/secure-wallet.d.ts.map +1 -0
  686. package/dist/src/wallet/secure-wallet.js +298 -0
  687. package/dist/src/wallet/secure-wallet.js.map +1 -0
  688. package/dist/src/wallet/transaction-queue.d.ts.map +1 -0
  689. package/dist/src/wallet/transaction-queue.js.map +1 -0
  690. package/dist/src/wallet/types.d.ts +57 -2
  691. package/dist/src/wallet/types.d.ts.map +1 -0
  692. package/dist/src/wallet/types.js.map +1 -0
  693. package/dist/src/wallet/vetkeys-adapter.d.ts.map +1 -0
  694. package/dist/src/wallet/vetkeys-adapter.js +16 -25
  695. package/dist/src/wallet/vetkeys-adapter.js.map +1 -0
  696. package/dist/src/wallet/wallet-crypto.d.ts +101 -0
  697. package/dist/src/wallet/wallet-crypto.d.ts.map +1 -0
  698. package/dist/src/wallet/wallet-crypto.js +185 -0
  699. package/dist/src/wallet/wallet-crypto.js.map +1 -0
  700. package/dist/src/wallet/wallet-manager.d.ts +24 -4
  701. package/dist/src/wallet/wallet-manager.d.ts.map +1 -0
  702. package/dist/src/wallet/wallet-manager.js +70 -3
  703. package/dist/src/wallet/wallet-manager.js.map +1 -0
  704. package/dist/src/wallet/wallet-storage.d.ts +15 -7
  705. package/dist/src/wallet/wallet-storage.d.ts.map +1 -0
  706. package/dist/src/wallet/wallet-storage.js +34 -18
  707. package/dist/src/wallet/wallet-storage.js.map +1 -0
  708. package/dist/src/wiki/index.d.ts +30 -0
  709. package/dist/src/wiki/index.d.ts.map +1 -0
  710. package/dist/src/wiki/index.js +30 -0
  711. package/dist/src/wiki/index.js.map +1 -0
  712. package/dist/src/wiki/ingest.d.ts +51 -0
  713. package/dist/src/wiki/ingest.d.ts.map +1 -0
  714. package/dist/src/wiki/ingest.js +197 -0
  715. package/dist/src/wiki/ingest.js.map +1 -0
  716. package/dist/src/wiki/lint.d.ts +43 -0
  717. package/dist/src/wiki/lint.d.ts.map +1 -0
  718. package/dist/src/wiki/lint.js +187 -0
  719. package/dist/src/wiki/lint.js.map +1 -0
  720. package/dist/src/wiki/mcp-tools.d.ts +35 -0
  721. package/dist/src/wiki/mcp-tools.d.ts.map +1 -0
  722. package/dist/src/wiki/mcp-tools.js +353 -0
  723. package/dist/src/wiki/mcp-tools.js.map +1 -0
  724. package/dist/src/wiki/query.d.ts +38 -0
  725. package/dist/src/wiki/query.d.ts.map +1 -0
  726. package/dist/src/wiki/query.js +117 -0
  727. package/dist/src/wiki/query.js.map +1 -0
  728. package/dist/src/wiki/wiki-store.d.ts +53 -0
  729. package/dist/src/wiki/wiki-store.d.ts.map +1 -0
  730. package/dist/src/wiki/wiki-store.js +132 -0
  731. package/dist/src/wiki/wiki-store.js.map +1 -0
  732. package/package.json +35 -11
  733. package/.claude/settings.local.json +0 -9
  734. package/.dfx/local/network-id +0 -4
  735. package/.next/trace +0 -2
  736. package/.vercel/README.txt +0 -11
  737. package/.vercel/project.json +0 -1
  738. package/AGENTS.md +0 -43
  739. package/PLAN_VAULT_INTEGRATION.md +0 -318
  740. package/dist/vitest.config.d.ts +0 -3
  741. package/dist/vitest.config.js +0 -14
  742. package/fixup_1_0_OSS_release.md +0 -136
  743. package/fixup_REALEASE_PRD.md +0 -136
  744. package/macos-wallet-app/AgentVaultWallet/App/AgentVaultWalletApp.swift +0 -54
  745. package/macos-wallet-app/AgentVaultWallet/Models/AppState.swift +0 -102
  746. package/macos-wallet-app/AgentVaultWallet/Models/Chain.swift +0 -121
  747. package/macos-wallet-app/AgentVaultWallet/Models/Wallet.swift +0 -98
  748. package/macos-wallet-app/AgentVaultWallet/Resources/AgentVaultWallet.entitlements +0 -27
  749. package/macos-wallet-app/AgentVaultWallet/Resources/Info.plist +0 -69
  750. package/macos-wallet-app/AgentVaultWallet/Services/BackupService.swift +0 -270
  751. package/macos-wallet-app/AgentVaultWallet/Services/CLIBridge.swift +0 -367
  752. package/macos-wallet-app/AgentVaultWallet/Services/CryptoService.swift +0 -157
  753. package/macos-wallet-app/AgentVaultWallet/Services/FileService.swift +0 -120
  754. package/macos-wallet-app/AgentVaultWallet/Services/KeychainService.swift +0 -219
  755. package/macos-wallet-app/AgentVaultWallet/Utilities/Constants.swift +0 -44
  756. package/macos-wallet-app/AgentVaultWallet/Utilities/Extensions.swift +0 -115
  757. package/macos-wallet-app/AgentVaultWallet/ViewModels/BackupViewModel.swift +0 -237
  758. package/macos-wallet-app/AgentVaultWallet/ViewModels/CreateWalletViewModel.swift +0 -137
  759. package/macos-wallet-app/AgentVaultWallet/ViewModels/ImportWalletViewModel.swift +0 -179
  760. package/macos-wallet-app/AgentVaultWallet/ViewModels/WalletStore.swift +0 -286
  761. package/macos-wallet-app/AgentVaultWallet/Views/Backup/BackupView.swift +0 -235
  762. package/macos-wallet-app/AgentVaultWallet/Views/Backup/RestoreView.swift +0 -316
  763. package/macos-wallet-app/AgentVaultWallet/Views/Create/CreateWalletFlow.swift +0 -438
  764. package/macos-wallet-app/AgentVaultWallet/Views/Import/ImportWalletFlow.swift +0 -399
  765. package/macos-wallet-app/AgentVaultWallet/Views/MainView.swift +0 -134
  766. package/macos-wallet-app/AgentVaultWallet/Views/Settings/SettingsView.swift +0 -276
  767. package/macos-wallet-app/AgentVaultWallet/Views/Sidebar/SidebarView.swift +0 -133
  768. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/DashboardView.swift +0 -233
  769. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/WalletDetailView.swift +0 -281
  770. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/WalletListView.swift +0 -280
  771. package/macos-wallet-app/AgentVaultWallet/Views/Welcome/WelcomeView.swift +0 -176
  772. package/macos-wallet-app/Makefile +0 -47
  773. package/macos-wallet-app/project.yml +0 -40
  774. package/macos-wallet-app/setup.sh +0 -73
  775. package/pnpm-workspace.yaml +0 -5
  776. package/vercel.json +0 -8
@@ -0,0 +1,239 @@
1
+ /**
2
+ * IP Whitelist Manager
3
+ *
4
+ * Manages the set of IPs / CIDR blocks that are permitted to reach the
5
+ * trading VPS. Provides:
6
+ * - Validation of individual addresses and CIDR blocks.
7
+ * - Membership testing (does this source IP pass the whitelist?).
8
+ * - Firewall rule generation for iptables and ufw so the VPS can be
9
+ * bootstrapped from the same config that the application uses.
10
+ *
11
+ * Threat model: only traffic originating from known, controlled IPs should
12
+ * reach the Binance proxy endpoint. This module makes that policy explicit
13
+ * and machine-verifiable.
14
+ */
15
+ import * as net from 'node:net';
16
+ // ---------------------------------------------------------------------------
17
+ // Validation helpers
18
+ // ---------------------------------------------------------------------------
19
+ /** Return true if `s` is a plain IPv4 or IPv6 address (no prefix length). */
20
+ function isPlainIp(s) {
21
+ return net.isIP(s) !== 0;
22
+ }
23
+ /**
24
+ * Return true if `s` is a valid CIDR block.
25
+ * Accepts both IPv4 (e.g. "192.168.1.0/24") and IPv6 (e.g. "2001:db8::/32").
26
+ */
27
+ function isCidr(s) {
28
+ const slashIdx = s.lastIndexOf('/');
29
+ if (slashIdx === -1)
30
+ return false;
31
+ const ip = s.slice(0, slashIdx);
32
+ const prefixStr = s.slice(slashIdx + 1);
33
+ const prefix = parseInt(prefixStr, 10);
34
+ if (isNaN(prefix) || prefixStr.trim() === '')
35
+ return false;
36
+ const ipVersion = net.isIP(ip);
37
+ if (ipVersion === 4 && prefix >= 0 && prefix <= 32)
38
+ return true;
39
+ if (ipVersion === 6 && prefix >= 0 && prefix <= 128)
40
+ return true;
41
+ return false;
42
+ }
43
+ /** Validate a single CIDR / address string. */
44
+ export function validateCidr(value) {
45
+ const errors = [];
46
+ const trimmed = value.trim();
47
+ if (!trimmed) {
48
+ errors.push('Entry is empty');
49
+ return { valid: false, errors };
50
+ }
51
+ if (!isPlainIp(trimmed) && !isCidr(trimmed)) {
52
+ errors.push(`"${trimmed}" is not a valid IPv4/IPv6 address or CIDR block`);
53
+ }
54
+ return { valid: errors.length === 0, errors };
55
+ }
56
+ // ---------------------------------------------------------------------------
57
+ // Membership testing
58
+ // ---------------------------------------------------------------------------
59
+ /**
60
+ * Convert an IPv4 address string to a 32-bit unsigned integer.
61
+ */
62
+ function ipv4ToInt(ip) {
63
+ return ip
64
+ .split('.')
65
+ .reduce((acc, octet) => (acc << 8) | parseInt(octet, 10), 0) >>> 0;
66
+ }
67
+ /**
68
+ * Return true if `ip` falls within the given IPv4 CIDR block.
69
+ */
70
+ function ipv4InCidr(ip, cidr) {
71
+ const parts = cidr.split('/');
72
+ if (parts.length !== 2)
73
+ return false;
74
+ const [network, prefixStr] = parts;
75
+ const prefix = parseInt(prefixStr, 10);
76
+ if (isNaN(prefix) || prefix < 0 || prefix > 32)
77
+ return false;
78
+ const mask = prefix === 0 ? 0 : (~0 << (32 - prefix)) >>> 0;
79
+ return (ipv4ToInt(ip) & mask) === (ipv4ToInt(network) & mask);
80
+ }
81
+ /**
82
+ * Normalise an IPv6 address to its fully-expanded form using the Node.js
83
+ * URL API (cheapest reliable approach without external deps).
84
+ */
85
+ function normaliseIpv6(ip) {
86
+ try {
87
+ // Wrapping in brackets lets URL parse it as a host.
88
+ const url = new URL(`http://[${ip}]`);
89
+ // url.hostname strips brackets.
90
+ return url.hostname.slice(1, -1);
91
+ }
92
+ catch {
93
+ return ip;
94
+ }
95
+ }
96
+ /**
97
+ * Return true if `ip` falls within the given IPv6 CIDR block.
98
+ * Uses BigInt for correct 128-bit arithmetic.
99
+ */
100
+ function ipv6InCidr(ip, cidr) {
101
+ const parts = cidr.split('/');
102
+ if (parts.length !== 2)
103
+ return false;
104
+ const [network, prefixStr] = parts;
105
+ const prefixNum = parseInt(prefixStr, 10);
106
+ if (isNaN(prefixNum) || prefixNum < 0 || prefixNum > 128)
107
+ return false;
108
+ const prefix = BigInt(prefixNum);
109
+ const expand = (addr) => {
110
+ const norm = normaliseIpv6(addr).replace(/:/g, '');
111
+ return BigInt('0x' + norm.padStart(32, '0'));
112
+ };
113
+ const mask = prefix === 0n ? 0n : (~0n << (128n - prefix)) & ((1n << 128n) - 1n);
114
+ return (expand(ip) & mask) === (expand(network) & mask);
115
+ }
116
+ /**
117
+ * Test whether `sourceIp` is permitted by the given whitelist entries.
118
+ */
119
+ export function isIpAllowed(sourceIp, entries) {
120
+ const ipVersion = net.isIP(sourceIp.trim());
121
+ if (ipVersion === 0)
122
+ return false; // Not a valid IP at all.
123
+ for (const entry of entries) {
124
+ const cidr = entry.cidr.trim();
125
+ // Plain IP — exact match.
126
+ if (isPlainIp(cidr)) {
127
+ if (cidr === sourceIp.trim())
128
+ return true;
129
+ continue;
130
+ }
131
+ // CIDR block.
132
+ if (isCidr(cidr)) {
133
+ const networkIp = cidr.split('/')[0];
134
+ if (!networkIp)
135
+ continue;
136
+ const networkVersion = net.isIP(networkIp);
137
+ if (networkVersion !== ipVersion)
138
+ continue; // IPv4 vs IPv6 mismatch.
139
+ if (ipVersion === 4 && ipv4InCidr(sourceIp.trim(), cidr))
140
+ return true;
141
+ if (ipVersion === 6 && ipv6InCidr(sourceIp.trim(), cidr))
142
+ return true;
143
+ }
144
+ }
145
+ return false;
146
+ }
147
+ // ---------------------------------------------------------------------------
148
+ // Firewall rule generation
149
+ // ---------------------------------------------------------------------------
150
+ /**
151
+ * Generate iptables / ufw / ip6tables rules that allow only whitelisted IPs
152
+ * to reach `port` (TCP) and drop everything else.
153
+ *
154
+ * The generated commands are idempotent-safe: they use INSERT (iptables) and
155
+ * `ufw allow from ... to any port ...` forms that are safe to run repeatedly.
156
+ */
157
+ export function generateFirewallRules(entries, port, chain = 'INPUT') {
158
+ const iptables = [];
159
+ const ip6tables = [];
160
+ const ufw = [];
161
+ for (const entry of entries) {
162
+ const cidr = entry.cidr.trim();
163
+ const comment = entry.label.replace(/[^a-zA-Z0-9_-]/g, '-');
164
+ if (isPlainIp(cidr) || isCidr(cidr)) {
165
+ const networkIp = isPlainIp(cidr) ? cidr : cidr.split('/')[0];
166
+ if (!networkIp)
167
+ continue;
168
+ const version = net.isIP(networkIp);
169
+ if (version === 4) {
170
+ iptables.push(`iptables -I ${chain} -p tcp --dport ${port} -s ${cidr} -j ACCEPT -m comment --comment "av-whitelist-${comment}"`);
171
+ ufw.push(`ufw allow from ${cidr} to any port ${port} proto tcp comment "av-whitelist-${comment}"`);
172
+ }
173
+ else if (version === 6) {
174
+ ip6tables.push(`ip6tables -I ${chain} -p tcp --dport ${port} -s ${cidr} -j ACCEPT -m comment --comment "av-whitelist-${comment}"`);
175
+ ufw.push(`ufw allow from ${cidr} to any port ${port} proto tcp comment "av-whitelist-${comment}"`);
176
+ }
177
+ }
178
+ }
179
+ // Default-deny rules go last (lowest priority in iptables INSERT order).
180
+ iptables.push(`iptables -A ${chain} -p tcp --dport ${port} -j DROP -m comment --comment "av-whitelist-default-deny"`);
181
+ ip6tables.push(`ip6tables -A ${chain} -p tcp --dport ${port} -j DROP -m comment --comment "av-whitelist-default-deny"`);
182
+ ufw.push(`ufw deny ${port}/tcp comment "av-whitelist-default-deny"`);
183
+ return { iptables, ufw, ip6tables };
184
+ }
185
+ // ---------------------------------------------------------------------------
186
+ // IpWhitelistManager
187
+ // ---------------------------------------------------------------------------
188
+ export class IpWhitelistManager {
189
+ entries;
190
+ constructor(entries = []) {
191
+ this.entries = entries;
192
+ }
193
+ /** Add a new entry, validating first. Throws on invalid input. */
194
+ add(entry) {
195
+ const result = validateCidr(entry.cidr);
196
+ if (!result.valid) {
197
+ throw new Error(`Invalid whitelist entry "${entry.cidr}": ${result.errors.join('; ')}`);
198
+ }
199
+ this.entries.push(entry);
200
+ }
201
+ /** Remove all entries matching `label`. */
202
+ remove(label) {
203
+ this.entries = this.entries.filter(e => e.label !== label);
204
+ }
205
+ /** Return all entries. */
206
+ getEntries() {
207
+ return this.entries;
208
+ }
209
+ /** Test whether `sourceIp` is allowed by the current whitelist. */
210
+ isAllowed(sourceIp) {
211
+ return isIpAllowed(sourceIp, this.entries);
212
+ }
213
+ /**
214
+ * Assert that `sourceIp` is whitelisted. Throws if it is not.
215
+ * Use this as a guard at trade-execution entry points.
216
+ */
217
+ assertAllowed(sourceIp) {
218
+ if (!this.isAllowed(sourceIp)) {
219
+ throw new Error(`Blocked: source IP ${sourceIp} is not in the trading whitelist. ` +
220
+ 'Update the whitelist configuration and restart the service.');
221
+ }
222
+ }
223
+ /** Validate every entry and return aggregated errors. */
224
+ validate() {
225
+ const errors = [];
226
+ for (const entry of this.entries) {
227
+ const r = validateCidr(entry.cidr);
228
+ if (!r.valid) {
229
+ errors.push(`[${entry.label}] ${r.errors.join('; ')}`);
230
+ }
231
+ }
232
+ return { valid: errors.length === 0, errors };
233
+ }
234
+ /** Generate firewall rules for a given port. */
235
+ generateRules(port, chain) {
236
+ return generateFirewallRules(this.entries, port, chain);
237
+ }
238
+ }
239
+ //# sourceMappingURL=ip-whitelist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ip-whitelist.js","sourceRoot":"","sources":["../../../src/trading/ip-whitelist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Skill Sandbox
3
+ *
4
+ * Enforces isolation constraints when executing OpenClaw / Clawdbot skills:
5
+ *
6
+ * 1. **No root** — the process must NOT run as uid 0 (root).
7
+ * 2. **Write confinement** — file writes are only permitted under /tmp.
8
+ * Any attempt to write outside /tmp is blocked with an explicit error.
9
+ *
10
+ * Threat model: assume the skill code (an untrusted, domain-specific script
11
+ * loaded at runtime) could be compromised. The sandbox prevents privilege
12
+ * escalation and permanent host mutation beyond the ephemeral /tmp scratch
13
+ * space.
14
+ *
15
+ * Usage:
16
+ * const sandbox = new SkillSandbox();
17
+ * sandbox.assertSafe(); // throws if uid=0
18
+ * sandbox.assertWritePath('/tmp/output.txt'); // throws if outside /tmp
19
+ * const safeFn = sandbox.wrapWrite(fs.writeFileSync);
20
+ */
21
+ /** The only directory tree in which skill file-writes are permitted. */
22
+ export declare const SKILL_WRITE_ROOT = "/tmp";
23
+ export interface SandboxViolation {
24
+ type: 'root-process' | 'write-outside-tmp' | 'absolute-path-required';
25
+ message: string;
26
+ detail?: string;
27
+ }
28
+ export declare class SkillSandbox {
29
+ private readonly writeRoot;
30
+ /**
31
+ * @param writeRoot The only directory tree skills may write to.
32
+ * Defaults to `/tmp` (or `os.tmpdir()` on non-Linux).
33
+ */
34
+ constructor(writeRoot?: string);
35
+ /**
36
+ * Throw if the process is running as root (uid 0).
37
+ *
38
+ * Root execution is prohibited for skills because a compromised skill
39
+ * running as root can bypass every other OS-level control.
40
+ */
41
+ assertNotRoot(): void;
42
+ /**
43
+ * Throw if `filePath` resolves to a location outside the allowed write root.
44
+ *
45
+ * This is the central enforcement point. Wrap every `fs.writeFile`,
46
+ * `fs.writeFileSync`, `fs.open`, etc. call with this check.
47
+ */
48
+ assertWritePath(filePath: string): void;
49
+ /**
50
+ * Run all pre-execution safety checks. Call this once at skill load time
51
+ * before any skill code runs.
52
+ */
53
+ assertSafe(): void;
54
+ /**
55
+ * Wrap `fs.writeFileSync` (or any function whose first argument is a file
56
+ * path) so that the path check is applied automatically.
57
+ *
58
+ * Example:
59
+ * import * as fs from 'node:fs';
60
+ * const safeWrite = sandbox.wrapWrite(fs.writeFileSync.bind(fs));
61
+ * safeWrite('/tmp/output.txt', data); // OK
62
+ * safeWrite('/etc/cron.d/evil', payload); // throws
63
+ */
64
+ wrapWrite<Args extends unknown[], R>(fn: (filePath: string, ...rest: Args) => R): (filePath: string, ...rest: Args) => R;
65
+ /**
66
+ * Wrap an async write function (e.g. `fs.promises.writeFile`).
67
+ */
68
+ wrapWriteAsync<Args extends unknown[], R>(fn: (filePath: string, ...rest: Args) => Promise<R>): (filePath: string, ...rest: Args) => Promise<R>;
69
+ /** Return the current write-root this sandbox enforces. */
70
+ getWriteRoot(): string;
71
+ /** Return true if the process uid check would pass (not root). */
72
+ isRunningAsRoot(): boolean;
73
+ /**
74
+ * Return a summary of the sandbox configuration suitable for logging.
75
+ * Never includes sensitive information.
76
+ */
77
+ describe(): {
78
+ uid: number;
79
+ writeRoot: string;
80
+ isRoot: boolean;
81
+ };
82
+ }
83
+ /**
84
+ * A default SkillSandbox instance using the standard /tmp write root.
85
+ * Import this directly if you don't need custom configuration.
86
+ */
87
+ export declare const defaultSandbox: SkillSandbox;
88
+ //# sourceMappingURL=skill-sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-sandbox.d.ts","sourceRoot":"","sources":["../../../src/trading/skill-sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AASH,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAMvC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,GAAG,mBAAmB,GAAG,wBAAwB,CAAC;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmCD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;;OAGG;gBACS,SAAS,CAAC,EAAE,MAAM;IAO9B;;;;;OAKG;IACH,aAAa,IAAI,IAAI;IAerB;;;;;OAKG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAoCvC;;;OAGG;IACH,UAAU,IAAI,IAAI;IAMlB;;;;;;;;;OASG;IACH,SAAS,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,EACjC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GACzC,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC;IAOzC;;OAEG;IACH,cAAc,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,EACtC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAClD,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;IASlD,2DAA2D;IAC3D,YAAY,IAAI,MAAM;IAItB,kEAAkE;IAClE,eAAe,IAAI,OAAO;IAI1B;;;OAGG;IACH,QAAQ,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE;CAOhE;AAMD;;;GAGG;AACH,eAAO,MAAM,cAAc,cAAqB,CAAC"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Skill Sandbox
3
+ *
4
+ * Enforces isolation constraints when executing OpenClaw / Clawdbot skills:
5
+ *
6
+ * 1. **No root** — the process must NOT run as uid 0 (root).
7
+ * 2. **Write confinement** — file writes are only permitted under /tmp.
8
+ * Any attempt to write outside /tmp is blocked with an explicit error.
9
+ *
10
+ * Threat model: assume the skill code (an untrusted, domain-specific script
11
+ * loaded at runtime) could be compromised. The sandbox prevents privilege
12
+ * escalation and permanent host mutation beyond the ephemeral /tmp scratch
13
+ * space.
14
+ *
15
+ * Usage:
16
+ * const sandbox = new SkillSandbox();
17
+ * sandbox.assertSafe(); // throws if uid=0
18
+ * sandbox.assertWritePath('/tmp/output.txt'); // throws if outside /tmp
19
+ * const safeFn = sandbox.wrapWrite(fs.writeFileSync);
20
+ */
21
+ import * as path from 'node:path';
22
+ import * as os from 'node:os';
23
+ // ---------------------------------------------------------------------------
24
+ // Constants
25
+ // ---------------------------------------------------------------------------
26
+ /** The only directory tree in which skill file-writes are permitted. */
27
+ export const SKILL_WRITE_ROOT = '/tmp';
28
+ // ---------------------------------------------------------------------------
29
+ // Helpers
30
+ // ---------------------------------------------------------------------------
31
+ /**
32
+ * Return the effective uid of the current process.
33
+ * On Windows this is always -1 (Windows does not have POSIX uids;
34
+ * skills should still be allowed to run there without triggering this check).
35
+ */
36
+ function getEffectiveUid() {
37
+ if (typeof process.getuid === 'function') {
38
+ return process.getuid();
39
+ }
40
+ // Windows / non-POSIX — no uid concept.
41
+ return -1;
42
+ }
43
+ /**
44
+ * Resolve `filePath` to an absolute path and verify it is under `root`.
45
+ * Uses `path.resolve` so relative paths and `..` components are handled
46
+ * before the containment check.
47
+ */
48
+ function isUnderRoot(filePath, root) {
49
+ const resolved = path.resolve(filePath);
50
+ // Ensure we compare with a trailing separator to avoid "/tmpfoo" matching "/tmp".
51
+ const normalRoot = root.endsWith(path.sep) ? root : root + path.sep;
52
+ return resolved === root || resolved.startsWith(normalRoot);
53
+ }
54
+ // ---------------------------------------------------------------------------
55
+ // SkillSandbox
56
+ // ---------------------------------------------------------------------------
57
+ export class SkillSandbox {
58
+ writeRoot;
59
+ /**
60
+ * @param writeRoot The only directory tree skills may write to.
61
+ * Defaults to `/tmp` (or `os.tmpdir()` on non-Linux).
62
+ */
63
+ constructor(writeRoot) {
64
+ // On Linux, always use /tmp. On other platforms use the OS temp dir.
65
+ this.writeRoot = writeRoot ?? (os.platform() === 'linux' ? SKILL_WRITE_ROOT : os.tmpdir());
66
+ }
67
+ // ── Root check ────────────────────────────────────────────────────────────
68
+ /**
69
+ * Throw if the process is running as root (uid 0).
70
+ *
71
+ * Root execution is prohibited for skills because a compromised skill
72
+ * running as root can bypass every other OS-level control.
73
+ */
74
+ assertNotRoot() {
75
+ const uid = getEffectiveUid();
76
+ if (uid === 0) {
77
+ throw Object.assign(new Error('SkillSandbox: skill execution is forbidden under the root (uid 0) account. ' +
78
+ 'Re-run the agent as a non-privileged user.'), { sandboxViolation: { type: 'root-process', message: 'uid is 0' } });
79
+ }
80
+ }
81
+ // ── Write path check ──────────────────────────────────────────────────────
82
+ /**
83
+ * Throw if `filePath` resolves to a location outside the allowed write root.
84
+ *
85
+ * This is the central enforcement point. Wrap every `fs.writeFile`,
86
+ * `fs.writeFileSync`, `fs.open`, etc. call with this check.
87
+ */
88
+ assertWritePath(filePath) {
89
+ if (!path.isAbsolute(path.resolve(filePath))) {
90
+ // Should never happen — path.resolve always returns absolute — but be
91
+ // defensive.
92
+ throw Object.assign(new Error(`SkillSandbox: could not resolve path "${filePath}" to an absolute path.`), {
93
+ sandboxViolation: {
94
+ type: 'absolute-path-required',
95
+ message: `Path could not be resolved: ${filePath}`,
96
+ },
97
+ });
98
+ }
99
+ if (!isUnderRoot(filePath, this.writeRoot)) {
100
+ const resolved = path.resolve(filePath);
101
+ throw Object.assign(new Error(`SkillSandbox: write to "${resolved}" is blocked. ` +
102
+ `Skills may only write inside ${this.writeRoot}. ` +
103
+ 'Move the output path to a location under that directory.'), {
104
+ sandboxViolation: {
105
+ type: 'write-outside-tmp',
106
+ message: `Attempted write to ${resolved}`,
107
+ detail: `Allowed root: ${this.writeRoot}`,
108
+ },
109
+ });
110
+ }
111
+ }
112
+ // ── Combined safety assertion ─────────────────────────────────────────────
113
+ /**
114
+ * Run all pre-execution safety checks. Call this once at skill load time
115
+ * before any skill code runs.
116
+ */
117
+ assertSafe() {
118
+ this.assertNotRoot();
119
+ }
120
+ // ── Write wrappers ────────────────────────────────────────────────────────
121
+ /**
122
+ * Wrap `fs.writeFileSync` (or any function whose first argument is a file
123
+ * path) so that the path check is applied automatically.
124
+ *
125
+ * Example:
126
+ * import * as fs from 'node:fs';
127
+ * const safeWrite = sandbox.wrapWrite(fs.writeFileSync.bind(fs));
128
+ * safeWrite('/tmp/output.txt', data); // OK
129
+ * safeWrite('/etc/cron.d/evil', payload); // throws
130
+ */
131
+ wrapWrite(fn) {
132
+ return (filePath, ...rest) => {
133
+ this.assertWritePath(filePath);
134
+ return fn(filePath, ...rest);
135
+ };
136
+ }
137
+ /**
138
+ * Wrap an async write function (e.g. `fs.promises.writeFile`).
139
+ */
140
+ wrapWriteAsync(fn) {
141
+ return async (filePath, ...rest) => {
142
+ this.assertWritePath(filePath);
143
+ return fn(filePath, ...rest);
144
+ };
145
+ }
146
+ // ── Introspection ─────────────────────────────────────────────────────────
147
+ /** Return the current write-root this sandbox enforces. */
148
+ getWriteRoot() {
149
+ return this.writeRoot;
150
+ }
151
+ /** Return true if the process uid check would pass (not root). */
152
+ isRunningAsRoot() {
153
+ return getEffectiveUid() === 0;
154
+ }
155
+ /**
156
+ * Return a summary of the sandbox configuration suitable for logging.
157
+ * Never includes sensitive information.
158
+ */
159
+ describe() {
160
+ return {
161
+ uid: getEffectiveUid(),
162
+ writeRoot: this.writeRoot,
163
+ isRoot: this.isRunningAsRoot(),
164
+ };
165
+ }
166
+ }
167
+ // ---------------------------------------------------------------------------
168
+ // Module-level singleton (convenience export)
169
+ // ---------------------------------------------------------------------------
170
+ /**
171
+ * A default SkillSandbox instance using the standard /tmp write root.
172
+ * Import this directly if you don't need custom configuration.
173
+ */
174
+ export const defaultSandbox = new SkillSandbox();
175
+ //# sourceMappingURL=skill-sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-sandbox.js","sourceRoot":"","sources":["../../../src/trading/skill-sandbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Path validation utilities
3
+ *
4
+ * SEC-12: rejects user-supplied path segments that could traverse outside
5
+ * their intended directory. Use on every untrusted string before joining
6
+ * it into a filesystem path.
7
+ *
8
+ * SEC-17: provides atomicWriteFileSync that writes to a temp file and
9
+ * renames into place, preventing partial writes on crash.
10
+ */
11
+ /**
12
+ * Validate and normalize a path component that came from untrusted input.
13
+ *
14
+ * Rejects empty strings, `..`, anything containing path separators or NUL,
15
+ * and anything outside the allowed character set. Returns the validated
16
+ * value so the call site can use the return rather than the original.
17
+ *
18
+ * @throws Error with a stable, non-leaky message on invalid input
19
+ */
20
+ export declare function sanitizePathPart(part: string): string;
21
+ /**
22
+ * Sanitize multiple path components in one call.
23
+ */
24
+ export declare function sanitizePathParts(...parts: string[]): string[];
25
+ /**
26
+ * SEC-17: atomically write a file by writing to a temp sibling and
27
+ * renaming over the target. Survives process kill mid-write without
28
+ * corrupting the destination.
29
+ */
30
+ export declare function atomicWriteFileSync(targetPath: string, data: string | Buffer | Uint8Array, options?: {
31
+ mode?: number;
32
+ encoding?: BufferEncoding;
33
+ }): void;
34
+ //# sourceMappingURL=path-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-validation.d.ts","sourceRoot":"","sources":["../../../src/utils/path-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBrD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,EAClC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAO,GACzD,IAAI,CAuCN"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Path validation utilities
3
+ *
4
+ * SEC-12: rejects user-supplied path segments that could traverse outside
5
+ * their intended directory. Use on every untrusted string before joining
6
+ * it into a filesystem path.
7
+ *
8
+ * SEC-17: provides atomicWriteFileSync that writes to a temp file and
9
+ * renames into place, preventing partial writes on crash.
10
+ */
11
+ import * as fs from 'node:fs';
12
+ import * as path from 'node:path';
13
+ import * as crypto from 'node:crypto';
14
+ const VALID_PATH_PART = /^[a-zA-Z0-9._-]{1,128}$/;
15
+ /**
16
+ * Validate and normalize a path component that came from untrusted input.
17
+ *
18
+ * Rejects empty strings, `..`, anything containing path separators or NUL,
19
+ * and anything outside the allowed character set. Returns the validated
20
+ * value so the call site can use the return rather than the original.
21
+ *
22
+ * @throws Error with a stable, non-leaky message on invalid input
23
+ */
24
+ export function sanitizePathPart(part) {
25
+ if (typeof part !== 'string' || part.length === 0) {
26
+ throw new Error('Invalid path component: must be a non-empty string');
27
+ }
28
+ if (part === '.' ||
29
+ part === '..' ||
30
+ part.includes('/') ||
31
+ part.includes('\\') ||
32
+ part.includes('\0')) {
33
+ throw new Error('Invalid path component: contains forbidden characters');
34
+ }
35
+ if (!VALID_PATH_PART.test(part)) {
36
+ throw new Error('Invalid path component: only [a-zA-Z0-9._-] up to 128 chars allowed');
37
+ }
38
+ return part;
39
+ }
40
+ /**
41
+ * Sanitize multiple path components in one call.
42
+ */
43
+ export function sanitizePathParts(...parts) {
44
+ return parts.map(sanitizePathPart);
45
+ }
46
+ /**
47
+ * SEC-17: atomically write a file by writing to a temp sibling and
48
+ * renaming over the target. Survives process kill mid-write without
49
+ * corrupting the destination.
50
+ */
51
+ export function atomicWriteFileSync(targetPath, data, options = {}) {
52
+ const dir = path.dirname(targetPath);
53
+ if (!fs.existsSync(dir)) {
54
+ fs.mkdirSync(dir, { recursive: true });
55
+ }
56
+ // Unique temp name so concurrent writers don't clobber each other
57
+ const tmpPath = path.join(dir, `.${path.basename(targetPath)}.${crypto.randomBytes(6).toString('hex')}.tmp`);
58
+ let fd = null;
59
+ try {
60
+ fd = fs.openSync(tmpPath, 'w', options.mode ?? 0o600);
61
+ const buf = typeof data === 'string'
62
+ ? Buffer.from(data, options.encoding ?? 'utf8')
63
+ : Buffer.from(data);
64
+ fs.writeSync(fd, buf, 0, buf.length, 0);
65
+ fs.fsyncSync(fd);
66
+ fs.closeSync(fd);
67
+ fd = null;
68
+ fs.renameSync(tmpPath, targetPath);
69
+ }
70
+ catch (err) {
71
+ if (fd !== null) {
72
+ try {
73
+ fs.closeSync(fd);
74
+ }
75
+ catch {
76
+ /* ignore */
77
+ }
78
+ }
79
+ try {
80
+ fs.unlinkSync(tmpPath);
81
+ }
82
+ catch {
83
+ /* ignore */
84
+ }
85
+ throw err;
86
+ }
87
+ }
88
+ //# sourceMappingURL=path-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-validation.js","sourceRoot":"","sources":["../../../src/utils/path-validation.ts"],"names":[],"mappings":"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"}