agentvault 1.0.0 → 1.0.2

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 (293) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/README.md +1 -1
  3. package/dist/cli/commands/approve.js +5 -5
  4. package/dist/cli/commands/archive.js +5 -5
  5. package/dist/cli/commands/backup.js +5 -5
  6. package/dist/cli/commands/cloud-backup.js +12 -12
  7. package/dist/cli/commands/decrypt.js +2 -2
  8. package/dist/cli/commands/deploy.js +1 -1
  9. package/dist/cli/commands/exec.js +2 -2
  10. package/dist/cli/commands/fetch.js +4 -4
  11. package/dist/cli/commands/inference.js +5 -5
  12. package/dist/cli/commands/init.d.ts +1 -1
  13. package/dist/cli/commands/init.js +16 -16
  14. package/dist/cli/commands/list.js +4 -4
  15. package/dist/cli/commands/package.js +2 -2
  16. package/dist/cli/commands/profile.js +1 -1
  17. package/dist/cli/commands/rebuild.js +2 -2
  18. package/dist/cli/commands/show.js +1 -1
  19. package/dist/cli/commands/status.d.ts +1 -1
  20. package/dist/cli/commands/status.js +8 -8
  21. package/dist/cli/commands/trace.js +1 -1
  22. package/dist/cli/commands/wallet-export.js +1 -1
  23. package/dist/cli/commands/wallet-sign.js +1 -1
  24. package/dist/cli/commands/wallet.d.ts +1 -1
  25. package/dist/cli/commands/wallet.js +1 -1
  26. package/dist/cli/index.d.ts +2 -2
  27. package/dist/cli/index.js +3 -3
  28. package/dist/src/archival/archive-manager.d.ts +85 -0
  29. package/dist/src/archival/archive-manager.js +294 -0
  30. package/dist/src/archival/arweave-client.d.ts +88 -0
  31. package/dist/src/archival/arweave-client.js +223 -0
  32. package/dist/src/archival/index.d.ts +8 -0
  33. package/{src/archival/index.ts → dist/src/archival/index.js} +1 -1
  34. package/dist/src/backup/backup.d.ts +67 -0
  35. package/dist/src/backup/backup.js +231 -0
  36. package/dist/src/backup/index.d.ts +7 -0
  37. package/{src/backup/index.ts → dist/src/backup/index.js} +1 -1
  38. package/dist/src/cloud-storage/cloud-sync.d.ts +49 -0
  39. package/dist/src/cloud-storage/cloud-sync.js +372 -0
  40. package/dist/src/cloud-storage/index.d.ts +11 -0
  41. package/{src/cloud-storage/index.ts → dist/src/cloud-storage/index.js} +1 -1
  42. package/dist/src/cloud-storage/provider-detector.d.ts +34 -0
  43. package/dist/src/cloud-storage/provider-detector.js +158 -0
  44. package/{src/cloud-storage/types.ts → dist/src/cloud-storage/types.d.ts} +40 -53
  45. package/dist/src/cloud-storage/types.js +10 -0
  46. package/dist/src/debugging/index.d.ts +6 -0
  47. package/{src/debugging/index.ts → dist/src/debugging/index.js} +1 -1
  48. package/dist/src/debugging/logs.d.ts +32 -0
  49. package/dist/src/debugging/logs.js +158 -0
  50. package/dist/src/debugging/types.d.ts +91 -0
  51. package/dist/src/debugging/types.js +5 -0
  52. package/dist/src/deployment/deployer.d.ts +52 -0
  53. package/dist/src/deployment/deployer.js +211 -0
  54. package/dist/src/deployment/icpClient.d.ts +144 -0
  55. package/dist/src/deployment/icpClient.js +545 -0
  56. package/dist/src/deployment/index.d.ts +11 -0
  57. package/dist/src/deployment/index.js +14 -0
  58. package/dist/src/deployment/promotion.d.ts +32 -0
  59. package/dist/src/deployment/promotion.js +114 -0
  60. package/dist/src/deployment/types.d.ts +101 -0
  61. package/dist/src/deployment/types.js +5 -0
  62. package/dist/src/icp/batch.d.ts +112 -0
  63. package/dist/src/icp/batch.js +273 -0
  64. package/dist/src/icp/cycles.d.ts +29 -0
  65. package/{src/icp/cycles.ts → dist/src/icp/cycles.js} +8 -22
  66. package/dist/src/icp/environment.d.ts +60 -0
  67. package/dist/src/icp/environment.js +183 -0
  68. package/dist/src/icp/icpcli.d.ts +204 -0
  69. package/dist/src/icp/icpcli.js +374 -0
  70. package/dist/src/icp/icwasm.d.ts +94 -0
  71. package/dist/src/icp/icwasm.js +197 -0
  72. package/dist/src/icp/identity.d.ts +50 -0
  73. package/{src/icp/identity.ts → dist/src/icp/identity.js} +15 -28
  74. package/dist/src/icp/index.d.ts +16 -0
  75. package/dist/src/icp/index.js +20 -0
  76. package/dist/src/icp/optimization.d.ts +16 -0
  77. package/dist/src/icp/optimization.js +225 -0
  78. package/dist/src/icp/tokens.d.ts +24 -0
  79. package/{src/icp/tokens.ts → dist/src/icp/tokens.js} +5 -12
  80. package/dist/src/icp/tool-detector.d.ts +31 -0
  81. package/dist/src/icp/tool-detector.js +104 -0
  82. package/dist/src/icp/types.d.ts +493 -0
  83. package/dist/src/icp/types.js +7 -0
  84. package/dist/src/index.d.ts +12 -0
  85. package/dist/src/index.js +18 -0
  86. package/dist/src/inference/bittensor-client.d.ts +108 -0
  87. package/dist/src/inference/bittensor-client.js +224 -0
  88. package/dist/src/inference/index.d.ts +8 -0
  89. package/{src/inference/index.ts → dist/src/inference/index.js} +1 -1
  90. package/dist/src/inference/inference-manager.d.ts +76 -0
  91. package/dist/src/inference/inference-manager.js +228 -0
  92. package/dist/src/metrics/index.d.ts +7 -0
  93. package/{src/metrics/index.ts → dist/src/metrics/index.js} +1 -1
  94. package/dist/src/metrics/metrics.d.ts +39 -0
  95. package/dist/src/metrics/metrics.js +129 -0
  96. package/dist/src/monitoring/alerting.d.ts +51 -0
  97. package/dist/src/monitoring/alerting.js +169 -0
  98. package/dist/src/monitoring/health.d.ts +40 -0
  99. package/dist/src/monitoring/health.js +164 -0
  100. package/dist/src/monitoring/index.d.ts +10 -0
  101. package/dist/src/monitoring/index.js +12 -0
  102. package/dist/src/monitoring/info.d.ts +15 -0
  103. package/dist/src/monitoring/info.js +109 -0
  104. package/dist/src/monitoring/types.d.ts +93 -0
  105. package/dist/src/monitoring/types.js +7 -0
  106. package/dist/src/network/index.d.ts +5 -0
  107. package/{src/network/index.ts → dist/src/network/index.js} +1 -1
  108. package/dist/src/network/network-config.d.ts +31 -0
  109. package/dist/src/network/network-config.js +109 -0
  110. package/dist/src/packaging/compiler.d.ts +61 -0
  111. package/dist/src/packaging/compiler.js +562 -0
  112. package/dist/src/packaging/config-persistence.d.ts +46 -0
  113. package/dist/src/packaging/config-persistence.js +108 -0
  114. package/dist/src/packaging/config-schemas.d.ts +115 -0
  115. package/dist/src/packaging/config-schemas.js +43 -0
  116. package/dist/src/packaging/detector.d.ts +26 -0
  117. package/dist/src/packaging/detector.js +193 -0
  118. package/dist/src/packaging/index.d.ts +16 -0
  119. package/dist/src/packaging/index.js +22 -0
  120. package/dist/src/packaging/packager.d.ts +31 -0
  121. package/dist/src/packaging/packager.js +90 -0
  122. package/dist/src/packaging/parsers/clawdbot.d.ts +19 -0
  123. package/dist/src/packaging/parsers/clawdbot.js +231 -0
  124. package/dist/src/packaging/parsers/cline.d.ts +26 -0
  125. package/dist/src/packaging/parsers/cline.js +185 -0
  126. package/dist/src/packaging/parsers/generic.d.ts +27 -0
  127. package/dist/src/packaging/parsers/generic.js +228 -0
  128. package/dist/src/packaging/parsers/goose.d.ts +26 -0
  129. package/dist/src/packaging/parsers/goose.js +175 -0
  130. package/dist/src/packaging/parsers/index.d.ts +11 -0
  131. package/{src/packaging/parsers/index.ts → dist/src/packaging/parsers/index.js} +1 -1
  132. package/dist/src/packaging/serializer.d.ts +108 -0
  133. package/dist/src/packaging/serializer.js +153 -0
  134. package/dist/src/packaging/types.d.ts +131 -0
  135. package/dist/src/packaging/types.js +5 -0
  136. package/dist/src/packaging/wasmedge-compiler.d.ts +76 -0
  137. package/dist/src/packaging/wasmedge-compiler.js +349 -0
  138. package/dist/src/security/index.d.ts +11 -0
  139. package/{src/security/index.ts → dist/src/security/index.js} +1 -4
  140. package/dist/src/security/multisig.d.ts +102 -0
  141. package/dist/src/security/multisig.js +283 -0
  142. package/dist/src/security/types.d.ts +207 -0
  143. package/dist/src/security/types.js +217 -0
  144. package/dist/src/security/vetkeys.d.ts +179 -0
  145. package/dist/src/security/vetkeys.js +499 -0
  146. package/dist/src/testing/index.d.ts +6 -0
  147. package/{src/testing/index.ts → dist/src/testing/index.js} +1 -1
  148. package/dist/src/testing/local-runner.d.ts +23 -0
  149. package/dist/src/testing/local-runner.js +226 -0
  150. package/dist/src/testing/types.d.ts +98 -0
  151. package/dist/src/testing/types.js +5 -0
  152. package/dist/src/wallet/cbor-serializer.d.ts +82 -0
  153. package/dist/src/wallet/cbor-serializer.js +282 -0
  154. package/dist/src/wallet/chain-dispatcher.d.ts +112 -0
  155. package/dist/src/wallet/chain-dispatcher.js +241 -0
  156. package/dist/src/wallet/cross-chain-aggregator.d.ts +119 -0
  157. package/dist/src/wallet/cross-chain-aggregator.js +235 -0
  158. package/dist/src/wallet/index.d.ts +16 -0
  159. package/dist/src/wallet/index.js +22 -0
  160. package/dist/src/wallet/key-derivation.d.ts +117 -0
  161. package/dist/src/wallet/key-derivation.js +325 -0
  162. package/dist/src/wallet/providers/base-provider.d.ts +111 -0
  163. package/dist/src/wallet/providers/base-provider.js +58 -0
  164. package/dist/src/wallet/providers/cketh-provider.d.ts +104 -0
  165. package/dist/src/wallet/providers/cketh-provider.js +343 -0
  166. package/dist/src/wallet/providers/polkadot-provider.d.ts +115 -0
  167. package/dist/src/wallet/providers/polkadot-provider.js +407 -0
  168. package/dist/src/wallet/providers/solana-provider.d.ts +102 -0
  169. package/dist/src/wallet/providers/solana-provider.js +393 -0
  170. package/dist/src/wallet/transaction-queue.d.ts +133 -0
  171. package/dist/src/wallet/transaction-queue.js +195 -0
  172. package/dist/src/wallet/types.d.ts +167 -0
  173. package/dist/src/wallet/types.js +5 -0
  174. package/dist/src/wallet/vetkeys-adapter.d.ts +134 -0
  175. package/dist/src/wallet/vetkeys-adapter.js +313 -0
  176. package/dist/src/wallet/wallet-manager.d.ts +202 -0
  177. package/dist/src/wallet/wallet-manager.js +451 -0
  178. package/dist/src/wallet/wallet-storage.d.ts +131 -0
  179. package/dist/src/wallet/wallet-storage.js +274 -0
  180. package/macos-wallet-app/AgentVaultWallet/App/AgentVaultWalletApp.swift +54 -0
  181. package/macos-wallet-app/AgentVaultWallet/Models/AppState.swift +102 -0
  182. package/macos-wallet-app/AgentVaultWallet/Models/Chain.swift +121 -0
  183. package/macos-wallet-app/AgentVaultWallet/Models/Wallet.swift +98 -0
  184. package/macos-wallet-app/AgentVaultWallet/Resources/AgentVaultWallet.entitlements +27 -0
  185. package/macos-wallet-app/AgentVaultWallet/Resources/Info.plist +69 -0
  186. package/macos-wallet-app/AgentVaultWallet/Services/BackupService.swift +270 -0
  187. package/macos-wallet-app/AgentVaultWallet/Services/CLIBridge.swift +367 -0
  188. package/macos-wallet-app/AgentVaultWallet/Services/CryptoService.swift +157 -0
  189. package/macos-wallet-app/AgentVaultWallet/Services/FileService.swift +120 -0
  190. package/macos-wallet-app/AgentVaultWallet/Services/KeychainService.swift +219 -0
  191. package/macos-wallet-app/AgentVaultWallet/Utilities/Constants.swift +44 -0
  192. package/macos-wallet-app/AgentVaultWallet/Utilities/Extensions.swift +115 -0
  193. package/macos-wallet-app/AgentVaultWallet/ViewModels/BackupViewModel.swift +237 -0
  194. package/macos-wallet-app/AgentVaultWallet/ViewModels/CreateWalletViewModel.swift +137 -0
  195. package/macos-wallet-app/AgentVaultWallet/ViewModels/ImportWalletViewModel.swift +179 -0
  196. package/macos-wallet-app/AgentVaultWallet/ViewModels/WalletStore.swift +286 -0
  197. package/macos-wallet-app/AgentVaultWallet/Views/Backup/BackupView.swift +235 -0
  198. package/macos-wallet-app/AgentVaultWallet/Views/Backup/RestoreView.swift +316 -0
  199. package/macos-wallet-app/AgentVaultWallet/Views/Create/CreateWalletFlow.swift +438 -0
  200. package/macos-wallet-app/AgentVaultWallet/Views/Import/ImportWalletFlow.swift +399 -0
  201. package/macos-wallet-app/AgentVaultWallet/Views/MainView.swift +134 -0
  202. package/macos-wallet-app/AgentVaultWallet/Views/Settings/SettingsView.swift +276 -0
  203. package/macos-wallet-app/AgentVaultWallet/Views/Sidebar/SidebarView.swift +133 -0
  204. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/DashboardView.swift +233 -0
  205. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/WalletDetailView.swift +281 -0
  206. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/WalletListView.swift +280 -0
  207. package/macos-wallet-app/AgentVaultWallet/Views/Welcome/WelcomeView.swift +176 -0
  208. package/macos-wallet-app/Makefile +47 -0
  209. package/macos-wallet-app/project.yml +40 -0
  210. package/macos-wallet-app/setup.sh +73 -0
  211. package/package.json +10 -2
  212. package/backups/agentvault-backup-test-agent-2026-02-12T17-54-28-967Z.json +0 -28
  213. package/backups/agentvault-backup-test-agent-2026-02-12T17-54-29-032Z.backup +0 -1
  214. package/backups/agentvault-backup-test-agent-2026-02-12T17-57-42-373Z.json +0 -28
  215. package/backups/agentvault-backup-test-agent-2026-02-12T17-57-42-428Z.backup +0 -1
  216. package/backups/agentvault-backup-test-agent-2026-02-12T18-52-25-132Z.json +0 -28
  217. package/backups/agentvault-backup-test-agent-2026-02-12T18-52-25-247Z.backup +0 -1
  218. package/backups/agentvault-backup-test-agent-2026-02-12T18-54-09-216Z.json +0 -28
  219. package/backups/agentvault-backup-test-agent-2026-02-12T18-54-09-283Z.backup +0 -1
  220. package/backups/agentvault-backup-test-agent-2026-02-12T22-18-22-772Z.backup +0 -1
  221. package/backups/agentvault-backup-test-agent-2026-02-12T22-18-22-793Z.json +0 -28
  222. package/backups/test-backup.json +0 -28
  223. package/scripts/dev-dashboard.mjs +0 -84
  224. package/site/README.md +0 -63
  225. package/site/docusaurus.config.ts +0 -148
  226. package/site/package-lock.json +0 -18383
  227. package/site/package.json +0 -47
  228. package/site/sidebars.ts +0 -86
  229. package/site/static/.gitkeep +0 -0
  230. package/site/static/img/logo.svg +0 -28
  231. package/site/static/img/og-image.svg +0 -35
  232. package/src/archival/archive-manager.ts +0 -372
  233. package/src/archival/arweave-client.ts +0 -289
  234. package/src/backup/backup.ts +0 -315
  235. package/src/cloud-storage/cloud-sync.ts +0 -461
  236. package/src/cloud-storage/provider-detector.ts +0 -198
  237. package/src/debugging/logs.ts +0 -193
  238. package/src/debugging/types.ts +0 -100
  239. package/src/deployment/deployer.ts +0 -274
  240. package/src/deployment/icpClient.ts +0 -620
  241. package/src/deployment/index.ts +0 -46
  242. package/src/deployment/promotion.ts +0 -161
  243. package/src/deployment/types.ts +0 -111
  244. package/src/icp/batch.ts +0 -374
  245. package/src/icp/environment.ts +0 -215
  246. package/src/icp/icpcli.ts +0 -438
  247. package/src/icp/icwasm.ts +0 -222
  248. package/src/icp/index.ts +0 -94
  249. package/src/icp/optimization.ts +0 -242
  250. package/src/icp/tool-detector.ts +0 -110
  251. package/src/icp/types.ts +0 -574
  252. package/src/index.ts +0 -25
  253. package/src/inference/bittensor-client.ts +0 -304
  254. package/src/inference/inference-manager.ts +0 -327
  255. package/src/metrics/metrics.ts +0 -186
  256. package/src/monitoring/alerting.ts +0 -190
  257. package/src/monitoring/health.ts +0 -197
  258. package/src/monitoring/index.ts +0 -38
  259. package/src/monitoring/info.ts +0 -114
  260. package/src/monitoring/types.ts +0 -99
  261. package/src/network/network-config.ts +0 -129
  262. package/src/packaging/compiler.ts +0 -647
  263. package/src/packaging/config-persistence.ts +0 -135
  264. package/src/packaging/config-schemas.ts +0 -156
  265. package/src/packaging/detector.ts +0 -220
  266. package/src/packaging/index.ts +0 -90
  267. package/src/packaging/packager.ts +0 -118
  268. package/src/packaging/parsers/clawdbot.ts +0 -278
  269. package/src/packaging/parsers/cline.ts +0 -223
  270. package/src/packaging/parsers/generic.ts +0 -266
  271. package/src/packaging/parsers/goose.ts +0 -214
  272. package/src/packaging/serializer.ts +0 -260
  273. package/src/packaging/types.ts +0 -144
  274. package/src/packaging/wasmedge-compiler.ts +0 -406
  275. package/src/security/multisig.ts +0 -415
  276. package/src/security/types.ts +0 -416
  277. package/src/security/vetkeys.ts +0 -655
  278. package/src/testing/local-runner.ts +0 -264
  279. package/src/testing/types.ts +0 -104
  280. package/src/wallet/cbor-serializer.ts +0 -323
  281. package/src/wallet/chain-dispatcher.ts +0 -313
  282. package/src/wallet/cross-chain-aggregator.ts +0 -346
  283. package/src/wallet/index.ts +0 -76
  284. package/src/wallet/key-derivation.ts +0 -425
  285. package/src/wallet/providers/base-provider.ts +0 -154
  286. package/src/wallet/providers/cketh-provider.ts +0 -434
  287. package/src/wallet/providers/polkadot-provider.ts +0 -503
  288. package/src/wallet/providers/solana-provider.ts +0 -490
  289. package/src/wallet/transaction-queue.ts +0 -284
  290. package/src/wallet/types.ts +0 -178
  291. package/src/wallet/vetkeys-adapter.ts +0 -431
  292. package/src/wallet/wallet-manager.ts +0 -597
  293. package/src/wallet/wallet-storage.ts +0 -380
@@ -0,0 +1,374 @@
1
+ /**
2
+ * icp-cli Wrapper
3
+ *
4
+ * TypeScript wrapper around the icp CLI tool (v0.1.0).
5
+ * The binary name is `icp` (not `icp-cli`).
6
+ *
7
+ * Provides typed interfaces for build, deploy, canister operations,
8
+ * cycles management, identity management, network management,
9
+ * token operations, sync, and environment queries.
10
+ */
11
+ import { execa } from 'execa';
12
+ const ICP_BIN = 'icp';
13
+ /**
14
+ * Build common arguments from IcpCommonOptions.
15
+ */
16
+ function buildCommonArgs(options) {
17
+ const args = [];
18
+ if (options.environment) {
19
+ args.push('-e', options.environment);
20
+ }
21
+ if (options.projectRoot) {
22
+ args.push('--project-root-override', options.projectRoot);
23
+ }
24
+ if (options.identity) {
25
+ args.push('--identity', options.identity);
26
+ }
27
+ if (options.identityPasswordFile) {
28
+ args.push('--identity-password-file', options.identityPasswordFile);
29
+ }
30
+ if (options.debug) {
31
+ args.push('--debug');
32
+ }
33
+ return args;
34
+ }
35
+ /**
36
+ * Execute an icp command and return the result.
37
+ *
38
+ * @param args - Command-line arguments (after 'icp')
39
+ * @param timeoutMs - Timeout in milliseconds (default 120s)
40
+ * @param cwd - Working directory
41
+ * @returns Structured result
42
+ */
43
+ async function runIcp(args, timeoutMs = 120_000, cwd) {
44
+ try {
45
+ const result = await execa(ICP_BIN, args, {
46
+ reject: false,
47
+ timeout: timeoutMs,
48
+ cwd,
49
+ });
50
+ return {
51
+ success: result.exitCode === 0,
52
+ stdout: result.stdout,
53
+ stderr: result.stderr,
54
+ exitCode: result.exitCode ?? 1,
55
+ };
56
+ }
57
+ catch (error) {
58
+ const message = error instanceof Error ? error.message : 'Unknown error';
59
+ return {
60
+ success: false,
61
+ stdout: '',
62
+ stderr: message,
63
+ exitCode: 1,
64
+ };
65
+ }
66
+ }
67
+ // ─── Build ─────────────────────────────────────────────────────────────────
68
+ /**
69
+ * Build canisters using icp build.
70
+ *
71
+ * @param options - Build options
72
+ * @returns Command result
73
+ */
74
+ export async function build(options = {}) {
75
+ const args = ['build', ...buildCommonArgs(options)];
76
+ if (options.canisters && options.canisters.length > 0) {
77
+ args.push(...options.canisters);
78
+ }
79
+ return runIcp(args, 300_000, options.projectRoot);
80
+ }
81
+ // ─── Deploy ────────────────────────────────────────────────────────────────
82
+ /**
83
+ * Deploy project to an environment.
84
+ *
85
+ * @param options - Deploy options
86
+ * @returns Command result
87
+ */
88
+ export async function deploy(options = {}) {
89
+ const args = ['deploy', ...buildCommonArgs(options)];
90
+ if (options.mode) {
91
+ args.push('-m', options.mode);
92
+ }
93
+ if (options.canisters && options.canisters.length > 0) {
94
+ args.push(...options.canisters);
95
+ }
96
+ return runIcp(args, 300_000, options.projectRoot);
97
+ }
98
+ // ─── Canister Operations ───────────────────────────────────────────────────
99
+ /**
100
+ * Get canister status.
101
+ *
102
+ * @param options - Canister status options
103
+ * @returns Command result with status in stdout
104
+ */
105
+ export async function canisterStatus(options) {
106
+ const args = ['canister', 'status', options.canister, ...buildCommonArgs(options)];
107
+ return runIcp(args, 30_000, options.projectRoot);
108
+ }
109
+ /**
110
+ * Call a canister method.
111
+ *
112
+ * @param options - Canister call options
113
+ * @returns Command result with response in stdout
114
+ */
115
+ export async function canisterCall(options) {
116
+ const args = ['canister', 'call', options.canister, options.method, ...buildCommonArgs(options)];
117
+ if (options.args) {
118
+ args.push(options.args);
119
+ }
120
+ return runIcp(args, 30_000, options.projectRoot);
121
+ }
122
+ /**
123
+ * List canisters in the project.
124
+ *
125
+ * @param options - Common options
126
+ * @returns Command result with canister list in stdout
127
+ */
128
+ export async function canisterList(options = {}) {
129
+ const args = ['canister', 'list', ...buildCommonArgs(options)];
130
+ return runIcp(args, 15_000, options.projectRoot);
131
+ }
132
+ /**
133
+ * Start a stopped canister.
134
+ *
135
+ * @param canister - Canister ID or name
136
+ * @param options - Common options
137
+ * @returns Command result
138
+ */
139
+ export async function canisterStart(canister, options = {}) {
140
+ const args = ['canister', 'start', canister, ...buildCommonArgs(options)];
141
+ return runIcp(args, 30_000, options.projectRoot);
142
+ }
143
+ /**
144
+ * Stop a running canister.
145
+ *
146
+ * @param canister - Canister ID or name
147
+ * @param options - Common options
148
+ * @returns Command result
149
+ */
150
+ export async function canisterStop(canister, options = {}) {
151
+ const args = ['canister', 'stop', canister, ...buildCommonArgs(options)];
152
+ return runIcp(args, 30_000, options.projectRoot);
153
+ }
154
+ /**
155
+ * Delete a canister.
156
+ *
157
+ * @param canister - Canister ID or name
158
+ * @param options - Common options
159
+ * @returns Command result
160
+ */
161
+ export async function canisterDelete(canister, options = {}) {
162
+ const args = ['canister', 'delete', canister, ...buildCommonArgs(options)];
163
+ return runIcp(args, 30_000, options.projectRoot);
164
+ }
165
+ // ─── Cycles Management ────────────────────────────────────────────────────
166
+ /**
167
+ * Check cycle balance of a canister.
168
+ *
169
+ * @param options - Cycles balance options
170
+ * @returns Command result with balance in stdout
171
+ */
172
+ export async function cyclesBalance(options) {
173
+ const args = ['cycles', 'balance', options.canister, ...buildCommonArgs(options)];
174
+ return runIcp(args, 15_000, options.projectRoot);
175
+ }
176
+ /**
177
+ * Mint cycles.
178
+ *
179
+ * @param options - Mint options
180
+ * @returns Command result
181
+ */
182
+ export async function cyclesMint(options) {
183
+ const args = ['cycles', 'mint', options.amount, ...buildCommonArgs(options)];
184
+ return runIcp(args, 30_000, options.projectRoot);
185
+ }
186
+ /**
187
+ * Transfer cycles to a canister.
188
+ *
189
+ * @param options - Transfer options
190
+ * @returns Command result
191
+ */
192
+ export async function cyclesTransfer(options) {
193
+ const args = ['cycles', 'transfer', options.amount, '--to', options.to, ...buildCommonArgs(options)];
194
+ return runIcp(args, 30_000, options.projectRoot);
195
+ }
196
+ // ─── Identity Management ──────────────────────────────────────────────────
197
+ /**
198
+ * List available identities.
199
+ *
200
+ * @param options - Common options
201
+ * @returns Command result with identity list in stdout
202
+ */
203
+ export async function identityList(options = {}) {
204
+ const args = ['identity', 'list', ...buildCommonArgs(options)];
205
+ return runIcp(args, 15_000, options.projectRoot);
206
+ }
207
+ /**
208
+ * Create a new identity.
209
+ *
210
+ * @param options - New identity options
211
+ * @returns Command result
212
+ */
213
+ export async function identityNew(options) {
214
+ const args = ['identity', 'new', ...(options.name ? [options.name] : []), ...buildCommonArgs(options)];
215
+ return runIcp(args, 15_000, options.projectRoot);
216
+ }
217
+ /**
218
+ * Export an identity.
219
+ *
220
+ * @param options - Export options
221
+ * @returns Command result with PEM data in stdout
222
+ */
223
+ export async function identityExport(options) {
224
+ const args = ['identity', 'export', ...(options.name ? [options.name] : []), ...buildCommonArgs(options)];
225
+ return runIcp(args, 15_000, options.projectRoot);
226
+ }
227
+ /**
228
+ * Import an identity from a PEM file.
229
+ *
230
+ * @param options - Import options
231
+ * @returns Command result
232
+ */
233
+ export async function identityImport(options) {
234
+ const args = ['identity', 'import', ...(options.name ? [options.name] : []), ...(options.pemFile ? [options.pemFile] : []), ...buildCommonArgs(options)];
235
+ return runIcp(args, 15_000, options.projectRoot);
236
+ }
237
+ /**
238
+ * Get the principal of the current or named identity.
239
+ *
240
+ * @param options - Common options (use identity field to specify which identity)
241
+ * @returns Command result with principal in stdout
242
+ */
243
+ export async function identityPrincipal(options = {}) {
244
+ const args = ['identity', 'principal', ...buildCommonArgs(options)];
245
+ return runIcp(args, 15_000, options.projectRoot);
246
+ }
247
+ /**
248
+ * Get the default identity name.
249
+ *
250
+ * @param options - Common options
251
+ * @returns Command result with default identity name in stdout
252
+ */
253
+ export async function identityDefault(options = {}) {
254
+ const args = ['identity', 'default', ...buildCommonArgs(options)];
255
+ return runIcp(args, 15_000, options.projectRoot);
256
+ }
257
+ // ─── Network Management ───────────────────────────────────────────────────
258
+ /**
259
+ * Start a local test network.
260
+ *
261
+ * @param options - Network start options
262
+ * @returns Command result
263
+ */
264
+ export async function networkStart(options = {}) {
265
+ const args = ['network', 'start', ...buildCommonArgs(options)];
266
+ if (options.network) {
267
+ args.push(options.network);
268
+ }
269
+ return runIcp(args, 60_000, options.projectRoot);
270
+ }
271
+ /**
272
+ * Stop a local test network.
273
+ *
274
+ * @param options - Network stop options
275
+ * @returns Command result
276
+ */
277
+ export async function networkStop(options = {}) {
278
+ const args = ['network', 'stop', ...buildCommonArgs(options)];
279
+ if (options.network) {
280
+ args.push(options.network);
281
+ }
282
+ return runIcp(args, 30_000, options.projectRoot);
283
+ }
284
+ /**
285
+ * Get network status.
286
+ *
287
+ * @param options - Common options
288
+ * @returns Command result with status in stdout
289
+ */
290
+ export async function networkStatus(options = {}) {
291
+ const args = ['network', 'status', ...buildCommonArgs(options)];
292
+ return runIcp(args, 15_000, options.projectRoot);
293
+ }
294
+ /**
295
+ * List available networks.
296
+ *
297
+ * @param options - Common options
298
+ * @returns Command result with network list in stdout
299
+ */
300
+ export async function networkList(options = {}) {
301
+ const args = ['network', 'list', ...buildCommonArgs(options)];
302
+ return runIcp(args, 15_000, options.projectRoot);
303
+ }
304
+ /**
305
+ * Ping a network to check connectivity.
306
+ *
307
+ * @param options - Common options
308
+ * @returns Command result
309
+ */
310
+ export async function networkPing(options = {}) {
311
+ const args = ['network', 'ping', ...buildCommonArgs(options)];
312
+ return runIcp(args, 15_000, options.projectRoot);
313
+ }
314
+ // ─── Sync ──────────────────────────────────────────────────────────────────
315
+ /**
316
+ * Synchronize canisters with the network.
317
+ *
318
+ * @param options - Sync options
319
+ * @returns Command result
320
+ */
321
+ export async function sync(options = {}) {
322
+ const args = ['sync', ...buildCommonArgs(options)];
323
+ return runIcp(args, 120_000, options.projectRoot);
324
+ }
325
+ // ─── Token Operations ─────────────────────────────────────────────────────
326
+ /**
327
+ * Get token balance.
328
+ *
329
+ * @param options - Token balance options
330
+ * @returns Command result with balance in stdout
331
+ */
332
+ export async function tokenBalance(options = {}) {
333
+ const args = ['token', 'balance', ...buildCommonArgs(options)];
334
+ if (options.canister) {
335
+ args.push('--canister', options.canister);
336
+ }
337
+ return runIcp(args, 15_000, options.projectRoot);
338
+ }
339
+ /**
340
+ * Transfer tokens.
341
+ *
342
+ * @param options - Token transfer options
343
+ * @returns Command result
344
+ */
345
+ export async function tokenTransfer(options) {
346
+ const args = ['token', 'transfer', options.amount, '--to', options.to, ...buildCommonArgs(options)];
347
+ if (options.canister) {
348
+ args.push('--canister', options.canister);
349
+ }
350
+ return runIcp(args, 30_000, options.projectRoot);
351
+ }
352
+ // ─── Environment ──────────────────────────────────────────────────────────
353
+ /**
354
+ * List project environments.
355
+ *
356
+ * @param options - Common options
357
+ * @returns Command result with environments in stdout
358
+ */
359
+ export async function environmentList(options = {}) {
360
+ const args = ['environment', 'list', ...buildCommonArgs(options)];
361
+ return runIcp(args, 15_000, options.projectRoot);
362
+ }
363
+ // ─── Project ──────────────────────────────────────────────────────────────
364
+ /**
365
+ * Show project information (effective YAML config).
366
+ *
367
+ * @param options - Common options
368
+ * @returns Command result with project info in stdout
369
+ */
370
+ export async function projectShow(options = {}) {
371
+ const args = ['project', 'show', ...buildCommonArgs(options)];
372
+ return runIcp(args, 15_000, options.projectRoot);
373
+ }
374
+ //# sourceMappingURL=icpcli.js.map
@@ -0,0 +1,94 @@
1
+ /**
2
+ * ic-wasm Wrapper
3
+ *
4
+ * TypeScript wrapper around the ic-wasm CLI tool (v0.9.11).
5
+ * Provides typed interfaces for WASM optimization, shrinking,
6
+ * metadata management, resource limiting, endpoint validation,
7
+ * and instrumentation.
8
+ *
9
+ * Usage pattern:
10
+ * ic-wasm [OPTIONS] <INPUT> <COMMAND>
11
+ * Output is written with -o <OUTPUT>
12
+ */
13
+ import type { IcWasmResult, IcWasmOptimizeOptions, IcWasmShrinkOptions, IcWasmResourceOptions, IcWasmMetadataOptions, IcWasmCheckEndpointsOptions, IcWasmInstrumentOptions, IcWasmInfo } from './types.js';
14
+ /**
15
+ * Optimize a WASM module using wasm-opt.
16
+ *
17
+ * Applies dead-code elimination, constant folding, and other
18
+ * optimizations to reduce WASM size and improve performance.
19
+ *
20
+ * @param options - Optimization options
21
+ * @returns Command result
22
+ */
23
+ export declare function optimize(options: IcWasmOptimizeOptions): Promise<IcWasmResult>;
24
+ /**
25
+ * Shrink a WASM module by removing unused functions and debug info.
26
+ *
27
+ * This is a lighter-weight optimization focused purely on size reduction
28
+ * without the full wasm-opt pipeline.
29
+ *
30
+ * @param options - Shrink options
31
+ * @returns Command result
32
+ */
33
+ export declare function shrink(options: IcWasmShrinkOptions): Promise<IcWasmResult>;
34
+ /**
35
+ * Set resource limits on a WASM module.
36
+ *
37
+ * Embeds resource constraints (memory, compute) into the WASM metadata
38
+ * so the ICP runtime can enforce them.
39
+ *
40
+ * @param options - Resource limit options
41
+ * @returns Command result
42
+ */
43
+ export declare function setResource(options: IcWasmResourceOptions): Promise<IcWasmResult>;
44
+ /**
45
+ * List metadata in a WASM module.
46
+ *
47
+ * @param input - Input WASM file path
48
+ * @returns Command result with metadata listing in stdout
49
+ */
50
+ export declare function listMetadata(input: string): Promise<IcWasmResult>;
51
+ /**
52
+ * Get a specific metadata value from a WASM module.
53
+ *
54
+ * @param input - Input WASM file path
55
+ * @param name - Metadata key name
56
+ * @returns Command result with metadata value in stdout
57
+ */
58
+ export declare function getMetadata(input: string, name: string): Promise<IcWasmResult>;
59
+ /**
60
+ * Set metadata on a WASM module.
61
+ *
62
+ * @param options - Metadata options
63
+ * @returns Command result
64
+ */
65
+ export declare function setMetadata(options: IcWasmMetadataOptions): Promise<IcWasmResult>;
66
+ /**
67
+ * Get detailed information about a WASM canister module.
68
+ *
69
+ * @param input - Input WASM file path
70
+ * @returns Parsed info result
71
+ */
72
+ export declare function info(input: string): Promise<IcWasmInfo>;
73
+ /**
74
+ * Validate canister endpoints against a Candid interface.
75
+ *
76
+ * Compares the exported functions in the WASM module against the
77
+ * expected interface defined in a .did file. Returns success if
78
+ * all endpoints match.
79
+ *
80
+ * @param options - Check endpoints options
81
+ * @returns Command result (success means validation passed)
82
+ */
83
+ export declare function checkEndpoints(options: IcWasmCheckEndpointsOptions): Promise<IcWasmResult>;
84
+ /**
85
+ * Instrument a WASM module for execution tracing (experimental).
86
+ *
87
+ * Modifies the WASM to emit execution traces to stable memory,
88
+ * useful for debugging and profiling canister behavior.
89
+ *
90
+ * @param options - Instrument options
91
+ * @returns Command result
92
+ */
93
+ export declare function instrument(options: IcWasmInstrumentOptions): Promise<IcWasmResult>;
94
+ //# sourceMappingURL=icwasm.d.ts.map
@@ -0,0 +1,197 @@
1
+ /**
2
+ * ic-wasm Wrapper
3
+ *
4
+ * TypeScript wrapper around the ic-wasm CLI tool (v0.9.11).
5
+ * Provides typed interfaces for WASM optimization, shrinking,
6
+ * metadata management, resource limiting, endpoint validation,
7
+ * and instrumentation.
8
+ *
9
+ * Usage pattern:
10
+ * ic-wasm [OPTIONS] <INPUT> <COMMAND>
11
+ * Output is written with -o <OUTPUT>
12
+ */
13
+ import { execa } from 'execa';
14
+ const IC_WASM_BIN = 'ic-wasm';
15
+ /**
16
+ * Execute an ic-wasm command and return the result.
17
+ *
18
+ * @param args - Command-line arguments (after 'ic-wasm')
19
+ * @param timeoutMs - Timeout in milliseconds (default 60s)
20
+ * @returns Structured result with stdout, stderr, exitCode
21
+ */
22
+ async function runIcWasm(args, timeoutMs = 60_000) {
23
+ try {
24
+ const result = await execa(IC_WASM_BIN, args, {
25
+ reject: false,
26
+ timeout: timeoutMs,
27
+ });
28
+ return {
29
+ success: result.exitCode === 0,
30
+ stdout: result.stdout,
31
+ stderr: result.stderr,
32
+ exitCode: result.exitCode ?? 1,
33
+ };
34
+ }
35
+ catch (error) {
36
+ const message = error instanceof Error ? error.message : 'Unknown error';
37
+ return {
38
+ success: false,
39
+ stdout: '',
40
+ stderr: message,
41
+ exitCode: 1,
42
+ };
43
+ }
44
+ }
45
+ /**
46
+ * Optimize a WASM module using wasm-opt.
47
+ *
48
+ * Applies dead-code elimination, constant folding, and other
49
+ * optimizations to reduce WASM size and improve performance.
50
+ *
51
+ * @param options - Optimization options
52
+ * @returns Command result
53
+ */
54
+ export async function optimize(options) {
55
+ const args = [options.input, 'optimize', '-o', options.output];
56
+ if (options.level) {
57
+ args.push(`--${options.level}`);
58
+ }
59
+ return runIcWasm(args, 120_000);
60
+ }
61
+ /**
62
+ * Shrink a WASM module by removing unused functions and debug info.
63
+ *
64
+ * This is a lighter-weight optimization focused purely on size reduction
65
+ * without the full wasm-opt pipeline.
66
+ *
67
+ * @param options - Shrink options
68
+ * @returns Command result
69
+ */
70
+ export async function shrink(options) {
71
+ const args = [options.input, 'shrink', '-o', options.output];
72
+ return runIcWasm(args);
73
+ }
74
+ /**
75
+ * Set resource limits on a WASM module.
76
+ *
77
+ * Embeds resource constraints (memory, compute) into the WASM metadata
78
+ * so the ICP runtime can enforce them.
79
+ *
80
+ * @param options - Resource limit options
81
+ * @returns Command result
82
+ */
83
+ export async function setResource(options) {
84
+ const args = [
85
+ options.input,
86
+ 'resource',
87
+ '-o', options.output,
88
+ options.name,
89
+ options.value,
90
+ ];
91
+ return runIcWasm(args);
92
+ }
93
+ /**
94
+ * List metadata in a WASM module.
95
+ *
96
+ * @param input - Input WASM file path
97
+ * @returns Command result with metadata listing in stdout
98
+ */
99
+ export async function listMetadata(input) {
100
+ return runIcWasm([input, 'metadata', 'list']);
101
+ }
102
+ /**
103
+ * Get a specific metadata value from a WASM module.
104
+ *
105
+ * @param input - Input WASM file path
106
+ * @param name - Metadata key name
107
+ * @returns Command result with metadata value in stdout
108
+ */
109
+ export async function getMetadata(input, name) {
110
+ return runIcWasm([input, 'metadata', name]);
111
+ }
112
+ /**
113
+ * Set metadata on a WASM module.
114
+ *
115
+ * @param options - Metadata options
116
+ * @returns Command result
117
+ */
118
+ export async function setMetadata(options) {
119
+ if (!options.output) {
120
+ return {
121
+ success: false,
122
+ stdout: '',
123
+ stderr: 'Output path is required for set metadata operations',
124
+ exitCode: 1,
125
+ };
126
+ }
127
+ const args = [options.input, 'metadata', options.name, '-o', options.output];
128
+ if (options.data !== undefined) {
129
+ args.push('-d', options.data);
130
+ }
131
+ else if (options.file) {
132
+ args.push('-f', options.file);
133
+ }
134
+ if (options.visibility) {
135
+ args.push('-v', options.visibility);
136
+ }
137
+ return runIcWasm(args);
138
+ }
139
+ /**
140
+ * Get detailed information about a WASM canister module.
141
+ *
142
+ * @param input - Input WASM file path
143
+ * @returns Parsed info result
144
+ */
145
+ export async function info(input) {
146
+ const result = await runIcWasm([input, 'info']);
147
+ const parsed = { raw: result.stdout };
148
+ // Best-effort parsing of info output into sections
149
+ if (result.success && result.stdout) {
150
+ const sections = {};
151
+ const lines = result.stdout.split('\n');
152
+ for (const line of lines) {
153
+ const colonIdx = line.indexOf(':');
154
+ if (colonIdx > 0) {
155
+ const key = line.substring(0, colonIdx).trim();
156
+ const value = line.substring(colonIdx + 1).trim();
157
+ if (key && value) {
158
+ sections[key] = value;
159
+ }
160
+ }
161
+ }
162
+ if (Object.keys(sections).length > 0) {
163
+ parsed.sections = sections;
164
+ }
165
+ }
166
+ return parsed;
167
+ }
168
+ /**
169
+ * Validate canister endpoints against a Candid interface.
170
+ *
171
+ * Compares the exported functions in the WASM module against the
172
+ * expected interface defined in a .did file. Returns success if
173
+ * all endpoints match.
174
+ *
175
+ * @param options - Check endpoints options
176
+ * @returns Command result (success means validation passed)
177
+ */
178
+ export async function checkEndpoints(options) {
179
+ return runIcWasm([
180
+ options.input,
181
+ 'check-endpoints',
182
+ '--interface', options.candidInterface,
183
+ ]);
184
+ }
185
+ /**
186
+ * Instrument a WASM module for execution tracing (experimental).
187
+ *
188
+ * Modifies the WASM to emit execution traces to stable memory,
189
+ * useful for debugging and profiling canister behavior.
190
+ *
191
+ * @param options - Instrument options
192
+ * @returns Command result
193
+ */
194
+ export async function instrument(options) {
195
+ return runIcWasm([options.input, 'instrument', '-o', options.output]);
196
+ }
197
+ //# sourceMappingURL=icwasm.js.map