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.
- package/.claude/settings.local.json +9 -0
- package/README.md +1 -1
- package/dist/cli/commands/approve.js +5 -5
- package/dist/cli/commands/archive.js +5 -5
- package/dist/cli/commands/backup.js +5 -5
- package/dist/cli/commands/cloud-backup.js +12 -12
- package/dist/cli/commands/decrypt.js +2 -2
- package/dist/cli/commands/deploy.js +1 -1
- package/dist/cli/commands/exec.js +2 -2
- package/dist/cli/commands/fetch.js +4 -4
- package/dist/cli/commands/inference.js +5 -5
- package/dist/cli/commands/init.d.ts +1 -1
- package/dist/cli/commands/init.js +16 -16
- package/dist/cli/commands/list.js +4 -4
- package/dist/cli/commands/package.js +2 -2
- package/dist/cli/commands/profile.js +1 -1
- package/dist/cli/commands/rebuild.js +2 -2
- package/dist/cli/commands/show.js +1 -1
- package/dist/cli/commands/status.d.ts +1 -1
- package/dist/cli/commands/status.js +8 -8
- package/dist/cli/commands/trace.js +1 -1
- package/dist/cli/commands/wallet-export.js +1 -1
- package/dist/cli/commands/wallet-sign.js +1 -1
- package/dist/cli/commands/wallet.d.ts +1 -1
- package/dist/cli/commands/wallet.js +1 -1
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.js +3 -3
- package/dist/src/archival/archive-manager.d.ts +85 -0
- package/dist/src/archival/archive-manager.js +294 -0
- package/dist/src/archival/arweave-client.d.ts +88 -0
- package/dist/src/archival/arweave-client.js +223 -0
- package/dist/src/archival/index.d.ts +8 -0
- package/{src/archival/index.ts → dist/src/archival/index.js} +1 -1
- package/dist/src/backup/backup.d.ts +67 -0
- package/dist/src/backup/backup.js +231 -0
- package/dist/src/backup/index.d.ts +7 -0
- package/{src/backup/index.ts → dist/src/backup/index.js} +1 -1
- package/dist/src/cloud-storage/cloud-sync.d.ts +49 -0
- package/dist/src/cloud-storage/cloud-sync.js +372 -0
- package/dist/src/cloud-storage/index.d.ts +11 -0
- package/{src/cloud-storage/index.ts → dist/src/cloud-storage/index.js} +1 -1
- package/dist/src/cloud-storage/provider-detector.d.ts +34 -0
- package/dist/src/cloud-storage/provider-detector.js +158 -0
- package/{src/cloud-storage/types.ts → dist/src/cloud-storage/types.d.ts} +40 -53
- package/dist/src/cloud-storage/types.js +10 -0
- package/dist/src/debugging/index.d.ts +6 -0
- package/{src/debugging/index.ts → dist/src/debugging/index.js} +1 -1
- package/dist/src/debugging/logs.d.ts +32 -0
- package/dist/src/debugging/logs.js +158 -0
- package/dist/src/debugging/types.d.ts +91 -0
- package/dist/src/debugging/types.js +5 -0
- package/dist/src/deployment/deployer.d.ts +52 -0
- package/dist/src/deployment/deployer.js +211 -0
- package/dist/src/deployment/icpClient.d.ts +144 -0
- package/dist/src/deployment/icpClient.js +545 -0
- package/dist/src/deployment/index.d.ts +11 -0
- package/dist/src/deployment/index.js +14 -0
- package/dist/src/deployment/promotion.d.ts +32 -0
- package/dist/src/deployment/promotion.js +114 -0
- package/dist/src/deployment/types.d.ts +101 -0
- package/dist/src/deployment/types.js +5 -0
- package/dist/src/icp/batch.d.ts +112 -0
- package/dist/src/icp/batch.js +273 -0
- package/dist/src/icp/cycles.d.ts +29 -0
- package/{src/icp/cycles.ts → dist/src/icp/cycles.js} +8 -22
- package/dist/src/icp/environment.d.ts +60 -0
- package/dist/src/icp/environment.js +183 -0
- package/dist/src/icp/icpcli.d.ts +204 -0
- package/dist/src/icp/icpcli.js +374 -0
- package/dist/src/icp/icwasm.d.ts +94 -0
- package/dist/src/icp/icwasm.js +197 -0
- package/dist/src/icp/identity.d.ts +50 -0
- package/{src/icp/identity.ts → dist/src/icp/identity.js} +15 -28
- package/dist/src/icp/index.d.ts +16 -0
- package/dist/src/icp/index.js +20 -0
- package/dist/src/icp/optimization.d.ts +16 -0
- package/dist/src/icp/optimization.js +225 -0
- package/dist/src/icp/tokens.d.ts +24 -0
- package/{src/icp/tokens.ts → dist/src/icp/tokens.js} +5 -12
- package/dist/src/icp/tool-detector.d.ts +31 -0
- package/dist/src/icp/tool-detector.js +104 -0
- package/dist/src/icp/types.d.ts +493 -0
- package/dist/src/icp/types.js +7 -0
- package/dist/src/index.d.ts +12 -0
- package/dist/src/index.js +18 -0
- package/dist/src/inference/bittensor-client.d.ts +108 -0
- package/dist/src/inference/bittensor-client.js +224 -0
- package/dist/src/inference/index.d.ts +8 -0
- package/{src/inference/index.ts → dist/src/inference/index.js} +1 -1
- package/dist/src/inference/inference-manager.d.ts +76 -0
- package/dist/src/inference/inference-manager.js +228 -0
- package/dist/src/metrics/index.d.ts +7 -0
- package/{src/metrics/index.ts → dist/src/metrics/index.js} +1 -1
- package/dist/src/metrics/metrics.d.ts +39 -0
- package/dist/src/metrics/metrics.js +129 -0
- package/dist/src/monitoring/alerting.d.ts +51 -0
- package/dist/src/monitoring/alerting.js +169 -0
- package/dist/src/monitoring/health.d.ts +40 -0
- package/dist/src/monitoring/health.js +164 -0
- package/dist/src/monitoring/index.d.ts +10 -0
- package/dist/src/monitoring/index.js +12 -0
- package/dist/src/monitoring/info.d.ts +15 -0
- package/dist/src/monitoring/info.js +109 -0
- package/dist/src/monitoring/types.d.ts +93 -0
- package/dist/src/monitoring/types.js +7 -0
- package/dist/src/network/index.d.ts +5 -0
- package/{src/network/index.ts → dist/src/network/index.js} +1 -1
- package/dist/src/network/network-config.d.ts +31 -0
- package/dist/src/network/network-config.js +109 -0
- package/dist/src/packaging/compiler.d.ts +61 -0
- package/dist/src/packaging/compiler.js +562 -0
- package/dist/src/packaging/config-persistence.d.ts +46 -0
- package/dist/src/packaging/config-persistence.js +108 -0
- package/dist/src/packaging/config-schemas.d.ts +115 -0
- package/dist/src/packaging/config-schemas.js +43 -0
- package/dist/src/packaging/detector.d.ts +26 -0
- package/dist/src/packaging/detector.js +193 -0
- package/dist/src/packaging/index.d.ts +16 -0
- package/dist/src/packaging/index.js +22 -0
- package/dist/src/packaging/packager.d.ts +31 -0
- package/dist/src/packaging/packager.js +90 -0
- package/dist/src/packaging/parsers/clawdbot.d.ts +19 -0
- package/dist/src/packaging/parsers/clawdbot.js +231 -0
- package/dist/src/packaging/parsers/cline.d.ts +26 -0
- package/dist/src/packaging/parsers/cline.js +185 -0
- package/dist/src/packaging/parsers/generic.d.ts +27 -0
- package/dist/src/packaging/parsers/generic.js +228 -0
- package/dist/src/packaging/parsers/goose.d.ts +26 -0
- package/dist/src/packaging/parsers/goose.js +175 -0
- package/dist/src/packaging/parsers/index.d.ts +11 -0
- package/{src/packaging/parsers/index.ts → dist/src/packaging/parsers/index.js} +1 -1
- package/dist/src/packaging/serializer.d.ts +108 -0
- package/dist/src/packaging/serializer.js +153 -0
- package/dist/src/packaging/types.d.ts +131 -0
- package/dist/src/packaging/types.js +5 -0
- package/dist/src/packaging/wasmedge-compiler.d.ts +76 -0
- package/dist/src/packaging/wasmedge-compiler.js +349 -0
- package/dist/src/security/index.d.ts +11 -0
- package/{src/security/index.ts → dist/src/security/index.js} +1 -4
- package/dist/src/security/multisig.d.ts +102 -0
- package/dist/src/security/multisig.js +283 -0
- package/dist/src/security/types.d.ts +207 -0
- package/dist/src/security/types.js +217 -0
- package/dist/src/security/vetkeys.d.ts +179 -0
- package/dist/src/security/vetkeys.js +499 -0
- package/dist/src/testing/index.d.ts +6 -0
- package/{src/testing/index.ts → dist/src/testing/index.js} +1 -1
- package/dist/src/testing/local-runner.d.ts +23 -0
- package/dist/src/testing/local-runner.js +226 -0
- package/dist/src/testing/types.d.ts +98 -0
- package/dist/src/testing/types.js +5 -0
- package/dist/src/wallet/cbor-serializer.d.ts +82 -0
- package/dist/src/wallet/cbor-serializer.js +282 -0
- package/dist/src/wallet/chain-dispatcher.d.ts +112 -0
- package/dist/src/wallet/chain-dispatcher.js +241 -0
- package/dist/src/wallet/cross-chain-aggregator.d.ts +119 -0
- package/dist/src/wallet/cross-chain-aggregator.js +235 -0
- package/dist/src/wallet/index.d.ts +16 -0
- package/dist/src/wallet/index.js +22 -0
- package/dist/src/wallet/key-derivation.d.ts +117 -0
- package/dist/src/wallet/key-derivation.js +325 -0
- package/dist/src/wallet/providers/base-provider.d.ts +111 -0
- package/dist/src/wallet/providers/base-provider.js +58 -0
- package/dist/src/wallet/providers/cketh-provider.d.ts +104 -0
- package/dist/src/wallet/providers/cketh-provider.js +343 -0
- package/dist/src/wallet/providers/polkadot-provider.d.ts +115 -0
- package/dist/src/wallet/providers/polkadot-provider.js +407 -0
- package/dist/src/wallet/providers/solana-provider.d.ts +102 -0
- package/dist/src/wallet/providers/solana-provider.js +393 -0
- package/dist/src/wallet/transaction-queue.d.ts +133 -0
- package/dist/src/wallet/transaction-queue.js +195 -0
- package/dist/src/wallet/types.d.ts +167 -0
- package/dist/src/wallet/types.js +5 -0
- package/dist/src/wallet/vetkeys-adapter.d.ts +134 -0
- package/dist/src/wallet/vetkeys-adapter.js +313 -0
- package/dist/src/wallet/wallet-manager.d.ts +202 -0
- package/dist/src/wallet/wallet-manager.js +451 -0
- package/dist/src/wallet/wallet-storage.d.ts +131 -0
- package/dist/src/wallet/wallet-storage.js +274 -0
- package/macos-wallet-app/AgentVaultWallet/App/AgentVaultWalletApp.swift +54 -0
- package/macos-wallet-app/AgentVaultWallet/Models/AppState.swift +102 -0
- package/macos-wallet-app/AgentVaultWallet/Models/Chain.swift +121 -0
- package/macos-wallet-app/AgentVaultWallet/Models/Wallet.swift +98 -0
- package/macos-wallet-app/AgentVaultWallet/Resources/AgentVaultWallet.entitlements +27 -0
- package/macos-wallet-app/AgentVaultWallet/Resources/Info.plist +69 -0
- package/macos-wallet-app/AgentVaultWallet/Services/BackupService.swift +270 -0
- package/macos-wallet-app/AgentVaultWallet/Services/CLIBridge.swift +367 -0
- package/macos-wallet-app/AgentVaultWallet/Services/CryptoService.swift +157 -0
- package/macos-wallet-app/AgentVaultWallet/Services/FileService.swift +120 -0
- package/macos-wallet-app/AgentVaultWallet/Services/KeychainService.swift +219 -0
- package/macos-wallet-app/AgentVaultWallet/Utilities/Constants.swift +44 -0
- package/macos-wallet-app/AgentVaultWallet/Utilities/Extensions.swift +115 -0
- package/macos-wallet-app/AgentVaultWallet/ViewModels/BackupViewModel.swift +237 -0
- package/macos-wallet-app/AgentVaultWallet/ViewModels/CreateWalletViewModel.swift +137 -0
- package/macos-wallet-app/AgentVaultWallet/ViewModels/ImportWalletViewModel.swift +179 -0
- package/macos-wallet-app/AgentVaultWallet/ViewModels/WalletStore.swift +286 -0
- package/macos-wallet-app/AgentVaultWallet/Views/Backup/BackupView.swift +235 -0
- package/macos-wallet-app/AgentVaultWallet/Views/Backup/RestoreView.swift +316 -0
- package/macos-wallet-app/AgentVaultWallet/Views/Create/CreateWalletFlow.swift +438 -0
- package/macos-wallet-app/AgentVaultWallet/Views/Import/ImportWalletFlow.swift +399 -0
- package/macos-wallet-app/AgentVaultWallet/Views/MainView.swift +134 -0
- package/macos-wallet-app/AgentVaultWallet/Views/Settings/SettingsView.swift +276 -0
- package/macos-wallet-app/AgentVaultWallet/Views/Sidebar/SidebarView.swift +133 -0
- package/macos-wallet-app/AgentVaultWallet/Views/Wallet/DashboardView.swift +233 -0
- package/macos-wallet-app/AgentVaultWallet/Views/Wallet/WalletDetailView.swift +281 -0
- package/macos-wallet-app/AgentVaultWallet/Views/Wallet/WalletListView.swift +280 -0
- package/macos-wallet-app/AgentVaultWallet/Views/Welcome/WelcomeView.swift +176 -0
- package/macos-wallet-app/Makefile +47 -0
- package/macos-wallet-app/project.yml +40 -0
- package/macos-wallet-app/setup.sh +73 -0
- package/package.json +10 -2
- package/backups/agentvault-backup-test-agent-2026-02-12T17-54-28-967Z.json +0 -28
- package/backups/agentvault-backup-test-agent-2026-02-12T17-54-29-032Z.backup +0 -1
- package/backups/agentvault-backup-test-agent-2026-02-12T17-57-42-373Z.json +0 -28
- package/backups/agentvault-backup-test-agent-2026-02-12T17-57-42-428Z.backup +0 -1
- package/backups/agentvault-backup-test-agent-2026-02-12T18-52-25-132Z.json +0 -28
- package/backups/agentvault-backup-test-agent-2026-02-12T18-52-25-247Z.backup +0 -1
- package/backups/agentvault-backup-test-agent-2026-02-12T18-54-09-216Z.json +0 -28
- package/backups/agentvault-backup-test-agent-2026-02-12T18-54-09-283Z.backup +0 -1
- package/backups/agentvault-backup-test-agent-2026-02-12T22-18-22-772Z.backup +0 -1
- package/backups/agentvault-backup-test-agent-2026-02-12T22-18-22-793Z.json +0 -28
- package/backups/test-backup.json +0 -28
- package/scripts/dev-dashboard.mjs +0 -84
- package/site/README.md +0 -63
- package/site/docusaurus.config.ts +0 -148
- package/site/package-lock.json +0 -18383
- package/site/package.json +0 -47
- package/site/sidebars.ts +0 -86
- package/site/static/.gitkeep +0 -0
- package/site/static/img/logo.svg +0 -28
- package/site/static/img/og-image.svg +0 -35
- package/src/archival/archive-manager.ts +0 -372
- package/src/archival/arweave-client.ts +0 -289
- package/src/backup/backup.ts +0 -315
- package/src/cloud-storage/cloud-sync.ts +0 -461
- package/src/cloud-storage/provider-detector.ts +0 -198
- package/src/debugging/logs.ts +0 -193
- package/src/debugging/types.ts +0 -100
- package/src/deployment/deployer.ts +0 -274
- package/src/deployment/icpClient.ts +0 -620
- package/src/deployment/index.ts +0 -46
- package/src/deployment/promotion.ts +0 -161
- package/src/deployment/types.ts +0 -111
- package/src/icp/batch.ts +0 -374
- package/src/icp/environment.ts +0 -215
- package/src/icp/icpcli.ts +0 -438
- package/src/icp/icwasm.ts +0 -222
- package/src/icp/index.ts +0 -94
- package/src/icp/optimization.ts +0 -242
- package/src/icp/tool-detector.ts +0 -110
- package/src/icp/types.ts +0 -574
- package/src/index.ts +0 -25
- package/src/inference/bittensor-client.ts +0 -304
- package/src/inference/inference-manager.ts +0 -327
- package/src/metrics/metrics.ts +0 -186
- package/src/monitoring/alerting.ts +0 -190
- package/src/monitoring/health.ts +0 -197
- package/src/monitoring/index.ts +0 -38
- package/src/monitoring/info.ts +0 -114
- package/src/monitoring/types.ts +0 -99
- package/src/network/network-config.ts +0 -129
- package/src/packaging/compiler.ts +0 -647
- package/src/packaging/config-persistence.ts +0 -135
- package/src/packaging/config-schemas.ts +0 -156
- package/src/packaging/detector.ts +0 -220
- package/src/packaging/index.ts +0 -90
- package/src/packaging/packager.ts +0 -118
- package/src/packaging/parsers/clawdbot.ts +0 -278
- package/src/packaging/parsers/cline.ts +0 -223
- package/src/packaging/parsers/generic.ts +0 -266
- package/src/packaging/parsers/goose.ts +0 -214
- package/src/packaging/serializer.ts +0 -260
- package/src/packaging/types.ts +0 -144
- package/src/packaging/wasmedge-compiler.ts +0 -406
- package/src/security/multisig.ts +0 -415
- package/src/security/types.ts +0 -416
- package/src/security/vetkeys.ts +0 -655
- package/src/testing/local-runner.ts +0 -264
- package/src/testing/types.ts +0 -104
- package/src/wallet/cbor-serializer.ts +0 -323
- package/src/wallet/chain-dispatcher.ts +0 -313
- package/src/wallet/cross-chain-aggregator.ts +0 -346
- package/src/wallet/index.ts +0 -76
- package/src/wallet/key-derivation.ts +0 -425
- package/src/wallet/providers/base-provider.ts +0 -154
- package/src/wallet/providers/cketh-provider.ts +0 -434
- package/src/wallet/providers/polkadot-provider.ts +0 -503
- package/src/wallet/providers/solana-provider.ts +0 -490
- package/src/wallet/transaction-queue.ts +0 -284
- package/src/wallet/types.ts +0 -178
- package/src/wallet/vetkeys-adapter.ts +0 -431
- package/src/wallet/wallet-manager.ts +0 -597
- 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
|