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,349 @@
1
+ /**
2
+ * WasmEdge Compiler
3
+ *
4
+ * Integrates WasmEdge SDK for compiling JavaScript to WebAssembly.
5
+ * Provides WASI-compliant module generation for agent execution.
6
+ */
7
+ import * as path from 'node:path';
8
+ /**
9
+ * Default WasmEdge options
10
+ */
11
+ export const DEFAULT_WASMEDGE_OPTIONS = {
12
+ debug: true,
13
+ sourcemap: true,
14
+ optimize: 2,
15
+ wasi: true,
16
+ };
17
+ /**
18
+ * Generate WasmEdge-compatible JavaScript wrapper
19
+ *
20
+ * Creates a JavaScript module that implements the standard agent interface
21
+ * and can be compiled with WasmEdge.
22
+ */
23
+ export function generateWasmEdgeWrapper(agentCode, config) {
24
+ const wrapper = `
25
+ // AgentVault WasmEdge Module
26
+ // Agent: ${config.name}
27
+ // Type: ${config.type}
28
+ // Generated: ${new Date().toISOString()}
29
+
30
+ // Agent state management
31
+ let _state = {};
32
+ let _initialized = false;
33
+
34
+ // Agent initialization
35
+ export function init(configStr) {
36
+ try {
37
+ const config = JSON.parse(configStr);
38
+ _state = {
39
+ name: config.name,
40
+ type: config.type,
41
+ version: config.version,
42
+ memories: [],
43
+ tasks: [],
44
+ createdAt: Date.now(),
45
+ };
46
+ _initialized = true;
47
+ return 0; // Success
48
+ } catch (error) {
49
+ console.error('Init failed:', error);
50
+ return 1; // Error
51
+ }
52
+ }
53
+
54
+ // Agent step function
55
+ export function step(input) {
56
+ if (!_initialized) {
57
+ console.error('Agent not initialized');
58
+ return JSON.stringify({ error: 'Agent not initialized' });
59
+ }
60
+
61
+ try {
62
+ // Execute agent code with state
63
+ const result = (function() {
64
+ ${agentCode}
65
+ }).call(_state);
66
+
67
+ // Update state with execution result
68
+ _state.lastExecuted = Date.now();
69
+ _state.lastResult = result;
70
+
71
+ return JSON.stringify({
72
+ success: true,
73
+ result: result,
74
+ state: _state,
75
+ });
76
+ } catch (error) {
77
+ console.error('Step failed:', error);
78
+ return JSON.stringify({
79
+ success: false,
80
+ error: error.message,
81
+ state: _state,
82
+ });
83
+ }
84
+ }
85
+
86
+ // Get agent state as bytes
87
+ export function get_state() {
88
+ const stateJson = JSON.stringify(_state);
89
+ const bytes = new TextEncoder().encode(stateJson);
90
+ return bytes;
91
+ }
92
+
93
+ // Get agent state size
94
+ export function get_state_size() {
95
+ const stateJson = JSON.stringify(_state);
96
+ return new TextEncoder().encode(stateJson).length;
97
+ }
98
+
99
+ // Add memory entry
100
+ export function add_memory(type, content) {
101
+ const memory = {
102
+ type: type,
103
+ content: content,
104
+ timestamp: Date.now(),
105
+ importance: 1,
106
+ };
107
+ if (_state.memories) {
108
+ _state.memories.push(memory);
109
+ }
110
+ return 0;
111
+ }
112
+
113
+ // Get all memories
114
+ export function get_memories() {
115
+ return JSON.stringify(_state.memories || []);
116
+ }
117
+
118
+ // Get memories by type
119
+ export function get_memories_by_type(memoryType) {
120
+ const memories = (_state.memories || []).filter(m => m.type === memoryType);
121
+ return JSON.stringify(memories);
122
+ }
123
+
124
+ // Clear memories
125
+ export function clear_memories() {
126
+ _state.memories = [];
127
+ return 0;
128
+ }
129
+
130
+ // Add task to queue
131
+ export function add_task(taskId, description) {
132
+ const task = {
133
+ id: taskId,
134
+ description: description,
135
+ status: 'pending',
136
+ result: null,
137
+ timestamp: Date.now(),
138
+ };
139
+ if (_state.tasks) {
140
+ _state.tasks.push(task);
141
+ }
142
+ return 0;
143
+ }
144
+
145
+ // Get all tasks
146
+ export function get_tasks() {
147
+ return JSON.stringify(_state.tasks || []);
148
+ }
149
+
150
+ // Get pending tasks
151
+ export function get_pending_tasks() {
152
+ const pending = (_state.tasks || []).filter(t => t.status === 'pending');
153
+ return JSON.stringify(pending);
154
+ }
155
+
156
+ // Update task status
157
+ export function update_task_status(taskId, status, result) {
158
+ const task = (_state.tasks || []).find(t => t.id === taskId);
159
+ if (task) {
160
+ task.status = status;
161
+ task.result = result;
162
+ return 0;
163
+ }
164
+ return 1; // Task not found
165
+ }
166
+
167
+ // Clear all tasks
168
+ export function clear_tasks() {
169
+ _state.tasks = [];
170
+ return 0;
171
+ }
172
+
173
+ // Export module info
174
+ export function get_info() {
175
+ return JSON.stringify({
176
+ name: '${config.name}',
177
+ type: '${config.type}',
178
+ version: '${config.version || '1.0.0'}',
179
+ initialized: _initialized,
180
+ stateSize: get_state_size(),
181
+ });
182
+ }
183
+ `;
184
+ return wrapper;
185
+ }
186
+ /**
187
+ * Generate WasmEdge build configuration
188
+ *
189
+ * Creates configuration for WasmEdge compiler.
190
+ */
191
+ export function generateWasmEdgeConfig(config, options = DEFAULT_WASMEDGE_OPTIONS) {
192
+ const buildConfig = {
193
+ module_name: config.name,
194
+ module_type: 'wasi',
195
+ output_type: 'wasm',
196
+ optimization_level: options.optimize ?? 2,
197
+ debug: options.debug ?? true,
198
+ generate_source_map: options.sourcemap ?? true,
199
+ enable_wasi: options.wasi ?? true,
200
+ target: 'wasm32',
201
+ features: ['bulk-memory', 'mutable-globals', 'sign-ext'],
202
+ exports: [
203
+ 'init',
204
+ 'step',
205
+ 'get_state',
206
+ 'get_state_size',
207
+ 'add_memory',
208
+ 'get_memories',
209
+ 'get_memories_by_type',
210
+ 'clear_memories',
211
+ 'add_task',
212
+ 'get_tasks',
213
+ 'get_pending_tasks',
214
+ 'update_task_status',
215
+ 'clear_tasks',
216
+ 'get_info',
217
+ ],
218
+ };
219
+ return JSON.stringify(buildConfig, null, 2);
220
+ }
221
+ /**
222
+ * Validate WasmEdge module
223
+ *
224
+ * Checks that a compiled module is valid WasmEdge WASM.
225
+ */
226
+ export function validateWasmEdgeModule(wasmBuffer) {
227
+ const errors = [];
228
+ // Check minimum size
229
+ if (wasmBuffer.length < 8) {
230
+ errors.push('WASM file too small (minimum 8 bytes)');
231
+ }
232
+ // Check WASM magic bytes
233
+ const magic = wasmBuffer.subarray(0, 4);
234
+ const expectedMagic = Buffer.from([0x00, 0x61, 0x73, 0x6d]);
235
+ if (!magic.equals(expectedMagic)) {
236
+ errors.push('Invalid WASM magic bytes');
237
+ }
238
+ // Check version
239
+ const version = wasmBuffer.subarray(4, 8);
240
+ const expectedVersion = Buffer.from([0x01, 0x00, 0x00, 0x00]);
241
+ if (!version.equals(expectedVersion)) {
242
+ errors.push('Invalid WASM version (must be 1)');
243
+ }
244
+ // Check for required exports
245
+ // In a real implementation, this would parse the WASM binary
246
+ // and check the export section for required functions
247
+ // For now, we'll just check the file is not empty
248
+ if (wasmBuffer.length < 100) {
249
+ errors.push('WASM file appears to be empty or incomplete');
250
+ }
251
+ return {
252
+ valid: errors.length === 0,
253
+ errors,
254
+ };
255
+ }
256
+ /**
257
+ * Generate WasmEdge build command
258
+ *
259
+ * Returns the command line to compile JavaScript to WasmEdge WASM.
260
+ * This is a placeholder - actual WasmEdge SDK usage would be integrated.
261
+ */
262
+ export function getWasmEdgeBuildCommand(sourcePath, outputPath, options = DEFAULT_WASMEDGE_OPTIONS) {
263
+ const args = [
264
+ sourcePath,
265
+ '--output', outputPath,
266
+ '--target', 'wasm32',
267
+ '--opt', String(options.optimize ?? 2),
268
+ ];
269
+ if (options.debug) {
270
+ args.push('--debug');
271
+ }
272
+ if (options.sourcemap) {
273
+ args.push('--sourcemap');
274
+ }
275
+ if (options.wasi) {
276
+ args.push('--wasi');
277
+ }
278
+ return `wasmedge-compile ${args.join(' ')}`;
279
+ }
280
+ /**
281
+ * Extract compilation errors from WasmEdge output
282
+ *
283
+ * Parses error messages from WasmEdge compiler output.
284
+ */
285
+ export function parseWasmEdgeErrors(output) {
286
+ const errors = [];
287
+ const lines = output.split('\n');
288
+ for (const line of lines) {
289
+ if (line.includes('error:')) {
290
+ errors.push(line.trim());
291
+ }
292
+ else if (line.includes('Error:')) {
293
+ errors.push(line.trim());
294
+ }
295
+ else if (line.includes('ERROR')) {
296
+ errors.push(line.trim());
297
+ }
298
+ }
299
+ return errors;
300
+ }
301
+ /**
302
+ * Get source map path for compiled WASM
303
+ *
304
+ * Returns the expected source map file path.
305
+ */
306
+ export function getSourceMapPath(wasmPath) {
307
+ const dir = path.dirname(wasmPath);
308
+ const basename = path.basename(wasmPath, '.wasm');
309
+ return path.join(dir, `${basename}.wasm.map`);
310
+ }
311
+ /**
312
+ * Generate module manifest for WasmEdge
313
+ *
314
+ * Creates a manifest file with module metadata.
315
+ */
316
+ export function generateWasmEdgeManifest(config, wasmPath, _outputPath) {
317
+ const manifest = {
318
+ module_name: config.name,
319
+ module_type: 'agent',
320
+ version: config.version || '1.0.0',
321
+ agent_type: config.type,
322
+ wasm_path: path.basename(wasmPath),
323
+ created_at: new Date().toISOString(),
324
+ features: {
325
+ wasi: true,
326
+ bulk_memory: true,
327
+ mutable_globals: true,
328
+ multi_value: false,
329
+ },
330
+ exports: [
331
+ 'init',
332
+ 'step',
333
+ 'get_state',
334
+ 'get_state_size',
335
+ 'add_memory',
336
+ 'get_memories',
337
+ 'get_memories_by_type',
338
+ 'clear_memories',
339
+ 'add_task',
340
+ 'get_tasks',
341
+ 'get_pending_tasks',
342
+ 'update_task_status',
343
+ 'clear_tasks',
344
+ 'get_info',
345
+ ],
346
+ };
347
+ return JSON.stringify(manifest, null, 2);
348
+ }
349
+ //# sourceMappingURL=wasmedge-compiler.js.map
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Security module for AgentVault
3
+ *
4
+ * This module provides encryption, decryption, and key management
5
+ * using VetKeys for threshold key derivation.
6
+ */
7
+ export * from './types.js';
8
+ export { VetKeysClient } from './types.js';
9
+ export { decryptJSON } from './vetkeys.js';
10
+ export * from './multisig.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -4,14 +4,11 @@
4
4
  * This module provides encryption, decryption, and key management
5
5
  * using VetKeys for threshold key derivation.
6
6
  */
7
-
8
7
  export * from './types.js';
9
-
10
8
  // VetKeysClient is exported from types.js, avoid re-exporting from vetkeys.js
11
9
  export { VetKeysClient } from './types.js';
12
-
13
10
  // Re-export decryptJSON from vetkeys.js
14
11
  export { decryptJSON } from './vetkeys.js';
15
-
16
12
  // Multi-sig approval workflows
17
13
  export * from './multisig.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Multi-Signature Approval Workflows
3
+ *
4
+ * Manages local approval workflows requiring multiple signatures.
5
+ * This is a LOCAL approval tracking system, not cryptographic multisig.
6
+ *
7
+ * IMPORTANT: For production blockchain multisig, use:
8
+ * - ICP canister-based threshold signatures (VetKeys)
9
+ * - The canister multisig module for on-chain verification
10
+ *
11
+ * This module provides:
12
+ * - Approval request tracking
13
+ * - Signature collection and counting
14
+ * - Policy-based approval thresholds
15
+ * - Audit trail for approvals
16
+ */
17
+ export type ApprovalStatus = 'pending' | 'approved' | 'rejected' | 'expired';
18
+ export type ApprovalPolicy = 'all' | 'majority' | 'quorum';
19
+ export interface ApprovalRequest {
20
+ id: string;
21
+ type: 'deploy' | 'upgrade' | 'transfer' | 'config_change' | 'rollback';
22
+ agentName: string;
23
+ canisterId?: string;
24
+ description: string;
25
+ proposedBy: string;
26
+ timestamp: Date;
27
+ expiresAt?: Date;
28
+ policy: ApprovalPolicy;
29
+ requiredApprovals: number;
30
+ approvals: ApprovalSignature[];
31
+ status: ApprovalStatus;
32
+ data?: Record<string, unknown>;
33
+ }
34
+ /**
35
+ * Approval signature (NOT cryptographic - for audit trail only)
36
+ *
37
+ * This represents an approval action, not a cryptographic signature.
38
+ * For cryptographic multisig, use the VetKeys canister integration.
39
+ */
40
+ export interface ApprovalSignature {
41
+ signer: string;
42
+ /** Audit token - NOT a cryptographic signature */
43
+ auditToken: string;
44
+ timestamp: Date;
45
+ comment?: string;
46
+ }
47
+ export interface ApprovalConfig {
48
+ policy: ApprovalPolicy;
49
+ requiredApprovals?: number;
50
+ approvalTimeoutMs?: number;
51
+ allowedSigners?: string[];
52
+ }
53
+ /**
54
+ * Create a new approval request
55
+ */
56
+ export declare function createApprovalRequest(type: ApprovalRequest['type'], agentName: string, description: string, proposedBy: string, config: ApprovalConfig, data?: Record<string, any>): ApprovalRequest;
57
+ /**
58
+ * Calculate required approvals based on policy
59
+ */
60
+ export declare function calculateRequiredApprovals(policy: ApprovalPolicy, totalSigners: number): number;
61
+ /**
62
+ * Sign an approval request
63
+ */
64
+ export declare function signApprovalRequest(id: string, signer: string, comment?: string): boolean;
65
+ /**
66
+ * Reject an approval request
67
+ */
68
+ export declare function rejectApprovalRequest(id: string, rejectedBy: string, reason?: string): boolean;
69
+ /**
70
+ * Get approval request by ID
71
+ */
72
+ export declare function getApprovalRequest(id: string): ApprovalRequest | null;
73
+ /**
74
+ * List approval requests
75
+ */
76
+ export declare function listApprovalRequests(agentName?: string, status?: ApprovalStatus): ApprovalRequest[];
77
+ /**
78
+ * Delete approval request
79
+ */
80
+ export declare function deleteApprovalRequest(id: string): boolean;
81
+ /**
82
+ * Check if request is approved
83
+ */
84
+ export declare function isApproved(id: string): boolean;
85
+ /**
86
+ * Get approval status summary
87
+ */
88
+ export declare function getApprovalSummary(id: string): {
89
+ total: number;
90
+ approved: number;
91
+ required: number;
92
+ status: ApprovalStatus;
93
+ } | null;
94
+ /**
95
+ * List pending approvals for a signer
96
+ */
97
+ export declare function listPendingApprovals(signer: string): ApprovalRequest[];
98
+ /**
99
+ * Clean up expired requests
100
+ */
101
+ export declare function cleanupExpiredRequests(): number;
102
+ //# sourceMappingURL=multisig.d.ts.map