agentvault 1.0.2 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +69 -0
- package/README.md +66 -6
- package/dist/cli/commands/approve.d.ts.map +1 -0
- package/dist/cli/commands/approve.js +357 -1
- package/dist/cli/commands/approve.js.map +1 -0
- package/dist/cli/commands/archive.d.ts.map +1 -0
- package/dist/cli/commands/archive.js.map +1 -0
- package/dist/cli/commands/backup.d.ts.map +1 -0
- package/dist/cli/commands/backup.js +303 -20
- package/dist/cli/commands/backup.js.map +1 -0
- package/dist/cli/commands/cloud-backup.d.ts.map +1 -0
- package/dist/cli/commands/cloud-backup.js +17 -0
- package/dist/cli/commands/cloud-backup.js.map +1 -0
- package/dist/cli/commands/cron.d.ts +14 -0
- package/dist/cli/commands/cron.d.ts.map +1 -0
- package/dist/cli/commands/cron.js +144 -0
- package/dist/cli/commands/cron.js.map +1 -0
- package/dist/cli/commands/cycles.d.ts.map +1 -0
- package/dist/cli/commands/cycles.js.map +1 -0
- package/dist/cli/commands/decrypt.d.ts.map +1 -0
- package/dist/cli/commands/decrypt.js.map +1 -0
- package/dist/cli/commands/deploy.d.ts.map +1 -0
- package/dist/cli/commands/deploy.js.map +1 -0
- package/dist/cli/commands/exec.d.ts.map +1 -0
- package/dist/cli/commands/exec.js.map +1 -0
- package/dist/cli/commands/fetch.d.ts +3 -0
- package/dist/cli/commands/fetch.d.ts.map +1 -0
- package/dist/cli/commands/fetch.js +68 -4
- package/dist/cli/commands/fetch.js.map +1 -0
- package/dist/cli/commands/health.d.ts.map +1 -0
- package/dist/cli/commands/health.js +57 -2
- package/dist/cli/commands/health.js.map +1 -0
- package/dist/cli/commands/identity.d.ts.map +1 -0
- package/dist/cli/commands/identity.js.map +1 -0
- package/dist/cli/commands/inference.d.ts.map +1 -0
- package/dist/cli/commands/inference.js.map +1 -0
- package/dist/cli/commands/info.d.ts.map +1 -0
- package/dist/cli/commands/info.js.map +1 -0
- package/dist/cli/commands/init.d.ts +18 -1
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +152 -27
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/instrument.d.ts.map +1 -0
- package/dist/cli/commands/instrument.js.map +1 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/logs.d.ts.map +1 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +4 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +228 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/memory.d.ts +26 -0
- package/dist/cli/commands/memory.d.ts.map +1 -0
- package/dist/cli/commands/memory.js +509 -0
- package/dist/cli/commands/memory.js.map +1 -0
- package/dist/cli/commands/mint.d.ts +25 -0
- package/dist/cli/commands/mint.d.ts.map +1 -0
- package/dist/cli/commands/mint.js +276 -0
- package/dist/cli/commands/mint.js.map +1 -0
- package/dist/cli/commands/mirror.d.ts +19 -0
- package/dist/cli/commands/mirror.d.ts.map +1 -0
- package/dist/cli/commands/mirror.js +216 -0
- package/dist/cli/commands/mirror.js.map +1 -0
- package/dist/cli/commands/monitor.d.ts.map +1 -0
- package/dist/cli/commands/monitor.js.map +1 -0
- package/dist/cli/commands/network.d.ts.map +1 -0
- package/dist/cli/commands/network.js.map +1 -0
- package/dist/cli/commands/orchestrate.d.ts +35 -0
- package/dist/cli/commands/orchestrate.d.ts.map +1 -0
- package/dist/cli/commands/orchestrate.js +190 -0
- package/dist/cli/commands/orchestrate.js.map +1 -0
- package/dist/cli/commands/package.d.ts.map +1 -0
- package/dist/cli/commands/package.js.map +1 -0
- package/dist/cli/commands/pilot.d.ts +17 -0
- package/dist/cli/commands/pilot.d.ts.map +1 -0
- package/dist/cli/commands/pilot.js +490 -0
- package/dist/cli/commands/pilot.js.map +1 -0
- package/dist/cli/commands/polytician.d.ts +4 -0
- package/dist/cli/commands/polytician.d.ts.map +1 -0
- package/dist/cli/commands/polytician.js +229 -0
- package/dist/cli/commands/polytician.js.map +1 -0
- package/dist/cli/commands/profile.d.ts.map +1 -0
- package/dist/cli/commands/profile.js +1 -1
- package/dist/cli/commands/profile.js.map +1 -0
- package/dist/cli/commands/promote.d.ts.map +1 -0
- package/dist/cli/commands/promote.js.map +1 -0
- package/dist/cli/commands/rebase.d.ts +85 -0
- package/dist/cli/commands/rebase.d.ts.map +1 -0
- package/dist/cli/commands/rebase.js +175 -0
- package/dist/cli/commands/rebase.js.map +1 -0
- package/dist/cli/commands/rebuild.d.ts.map +1 -0
- package/dist/cli/commands/rebuild.js.map +1 -0
- package/dist/cli/commands/repo.d.ts +19 -0
- package/dist/cli/commands/repo.d.ts.map +1 -0
- package/dist/cli/commands/repo.js +187 -0
- package/dist/cli/commands/repo.js.map +1 -0
- package/dist/cli/commands/rollback.d.ts.map +1 -0
- package/dist/cli/commands/rollback.js.map +1 -0
- package/dist/cli/commands/safehouse.d.ts +11 -0
- package/dist/cli/commands/safehouse.d.ts.map +1 -0
- package/dist/cli/commands/safehouse.js +323 -0
- package/dist/cli/commands/safehouse.js.map +1 -0
- package/dist/cli/commands/show.d.ts.map +1 -0
- package/dist/cli/commands/show.js.map +1 -0
- package/dist/cli/commands/skills.d.ts +12 -0
- package/dist/cli/commands/skills.d.ts.map +1 -0
- package/dist/cli/commands/skills.js +248 -0
- package/dist/cli/commands/skills.js.map +1 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +2 -2
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/commands/status.d.ts +2 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +25 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/test.js.map +1 -0
- package/dist/cli/commands/tokens.d.ts.map +1 -0
- package/dist/cli/commands/tokens.js.map +1 -0
- package/dist/cli/commands/trace.d.ts.map +1 -0
- package/dist/cli/commands/trace.js +3 -3
- package/dist/cli/commands/trace.js.map +1 -0
- package/dist/cli/commands/vault.d.ts +7 -0
- package/dist/cli/commands/vault.d.ts.map +1 -0
- package/dist/cli/commands/vault.js +551 -0
- package/dist/cli/commands/vault.js.map +1 -0
- package/dist/cli/commands/wallet-export.d.ts.map +1 -0
- package/dist/cli/commands/wallet-export.js.map +1 -0
- package/dist/cli/commands/wallet-history.d.ts.map +1 -0
- package/dist/cli/commands/wallet-history.js +2 -26
- package/dist/cli/commands/wallet-history.js.map +1 -0
- package/dist/cli/commands/wallet-import.d.ts.map +1 -0
- package/dist/cli/commands/wallet-import.js.map +1 -0
- package/dist/cli/commands/wallet-multi-send.d.ts.map +1 -0
- package/dist/cli/commands/wallet-multi-send.js.map +1 -0
- package/dist/cli/commands/wallet-process-queue.d.ts.map +1 -0
- package/dist/cli/commands/wallet-process-queue.js +2 -23
- package/dist/cli/commands/wallet-process-queue.js.map +1 -0
- package/dist/cli/commands/wallet-sign.d.ts.map +1 -0
- package/dist/cli/commands/wallet-sign.js +2 -26
- package/dist/cli/commands/wallet-sign.js.map +1 -0
- package/dist/cli/commands/wallet.d.ts +61 -0
- package/dist/cli/commands/wallet.d.ts.map +1 -0
- package/dist/cli/commands/wallet.js +312 -42
- package/dist/cli/commands/wallet.js.map +1 -0
- package/dist/cli/commands/wiki.d.ts +29 -0
- package/dist/cli/commands/wiki.d.ts.map +1 -0
- package/dist/cli/commands/wiki.js +528 -0
- package/dist/cli/commands/wiki.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +74 -2
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/merge.d.ts +70 -0
- package/dist/cli/merge.d.ts.map +1 -0
- package/dist/cli/merge.js +232 -0
- package/dist/cli/merge.js.map +1 -0
- package/dist/src/archival/archive-manager.d.ts +4 -0
- package/dist/src/archival/archive-manager.d.ts.map +1 -0
- package/dist/src/archival/archive-manager.js +6 -0
- package/dist/src/archival/archive-manager.js.map +1 -0
- package/dist/src/archival/arweave-archiver.d.ts +173 -0
- package/dist/src/archival/arweave-archiver.d.ts.map +1 -0
- package/dist/src/archival/arweave-archiver.js +279 -0
- package/dist/src/archival/arweave-archiver.js.map +1 -0
- package/dist/src/archival/arweave-client.d.ts +1 -0
- package/dist/src/archival/arweave-client.d.ts.map +1 -0
- package/dist/src/archival/arweave-client.js +5 -2
- package/dist/src/archival/arweave-client.js.map +1 -0
- package/dist/src/archival/index.d.ts +4 -1
- package/dist/src/archival/index.d.ts.map +1 -0
- package/dist/src/archival/index.js +2 -1
- package/dist/src/archival/index.js.map +1 -0
- package/dist/src/backbone/constants.d.ts +30 -0
- package/dist/src/backbone/constants.d.ts.map +1 -0
- package/dist/src/backbone/constants.js +62 -0
- package/dist/src/backbone/constants.js.map +1 -0
- package/dist/src/backbone/index.d.ts +15 -0
- package/dist/src/backbone/index.d.ts.map +1 -0
- package/dist/src/backbone/index.js +18 -0
- package/dist/src/backbone/index.js.map +1 -0
- package/dist/src/backbone/services/communication.d.ts +42 -0
- package/dist/src/backbone/services/communication.d.ts.map +1 -0
- package/dist/src/backbone/services/communication.js +107 -0
- package/dist/src/backbone/services/communication.js.map +1 -0
- package/dist/src/backbone/services/consensus.d.ts +61 -0
- package/dist/src/backbone/services/consensus.d.ts.map +1 -0
- package/dist/src/backbone/services/consensus.js +210 -0
- package/dist/src/backbone/services/consensus.js.map +1 -0
- package/dist/src/backbone/services/index.d.ts +10 -0
- package/dist/src/backbone/services/index.d.ts.map +1 -0
- package/dist/src/backbone/services/index.js +6 -0
- package/dist/src/backbone/services/index.js.map +1 -0
- package/dist/src/backbone/services/knowledge.d.ts +44 -0
- package/dist/src/backbone/services/knowledge.d.ts.map +1 -0
- package/dist/src/backbone/services/knowledge.js +99 -0
- package/dist/src/backbone/services/knowledge.js.map +1 -0
- package/dist/src/backbone/services/memory.d.ts +36 -0
- package/dist/src/backbone/services/memory.d.ts.map +1 -0
- package/dist/src/backbone/services/memory.js +94 -0
- package/dist/src/backbone/services/memory.js.map +1 -0
- package/dist/src/backbone/services/vault-health.d.ts +18 -0
- package/dist/src/backbone/services/vault-health.d.ts.map +1 -0
- package/dist/src/backbone/services/vault-health.js +74 -0
- package/dist/src/backbone/services/vault-health.js.map +1 -0
- package/dist/src/backbone/types.d.ts +211 -0
- package/dist/src/backbone/types.d.ts.map +1 -0
- package/dist/src/backbone/types.js +8 -0
- package/dist/src/backbone/types.js.map +1 -0
- package/dist/src/backbone/validators.d.ts +211 -0
- package/dist/src/backbone/validators.d.ts.map +1 -0
- package/dist/src/backbone/validators.js +122 -0
- package/dist/src/backbone/validators.js.map +1 -0
- package/dist/src/backup/backup.d.ts +107 -1
- package/dist/src/backup/backup.d.ts.map +1 -0
- package/dist/src/backup/backup.js +413 -4
- package/dist/src/backup/backup.js.map +1 -0
- package/dist/src/backup/index.d.ts +3 -1
- package/dist/src/backup/index.d.ts.map +1 -0
- package/dist/src/backup/index.js +3 -1
- package/dist/src/backup/index.js.map +1 -0
- package/dist/src/backup/merkle.d.ts +44 -0
- package/dist/src/backup/merkle.d.ts.map +1 -0
- package/dist/src/backup/merkle.js +85 -0
- package/dist/src/backup/merkle.js.map +1 -0
- package/dist/src/backup/thoughtform-bundle.d.ts +42 -0
- package/dist/src/backup/thoughtform-bundle.d.ts.map +1 -0
- package/dist/src/backup/thoughtform-bundle.js +200 -0
- package/dist/src/backup/thoughtform-bundle.js.map +1 -0
- package/dist/src/canister/actor.d.ts +310 -0
- package/dist/src/canister/actor.d.ts.map +1 -0
- package/dist/src/canister/actor.idl.d.ts +8 -0
- package/dist/src/canister/actor.idl.d.ts.map +1 -0
- package/dist/src/canister/actor.idl.js +518 -0
- package/dist/src/canister/actor.idl.js.map +1 -0
- package/dist/src/canister/actor.js +51 -0
- package/dist/src/canister/actor.js.map +1 -0
- package/dist/src/canister/encryption.d.ts +158 -0
- package/dist/src/canister/encryption.d.ts.map +1 -0
- package/dist/src/canister/encryption.js +296 -0
- package/dist/src/canister/encryption.js.map +1 -0
- package/dist/src/canister/memory-repo-actor.d.ts +162 -0
- package/dist/src/canister/memory-repo-actor.d.ts.map +1 -0
- package/dist/src/canister/memory-repo-actor.idl.d.ts +8 -0
- package/dist/src/canister/memory-repo-actor.idl.d.ts.map +1 -0
- package/dist/src/canister/memory-repo-actor.idl.js +90 -0
- package/dist/src/canister/memory-repo-actor.idl.js.map +1 -0
- package/dist/src/canister/memory-repo-actor.js +69 -0
- package/dist/src/canister/memory-repo-actor.js.map +1 -0
- package/dist/src/canister/types.d.ts +54 -0
- package/dist/src/canister/types.d.ts.map +1 -0
- package/dist/src/canister/types.js +7 -0
- package/dist/src/canister/types.js.map +1 -0
- package/dist/src/cloud-storage/cloud-sync.d.ts.map +1 -0
- package/dist/src/cloud-storage/cloud-sync.js +10 -5
- package/dist/src/cloud-storage/cloud-sync.js.map +1 -0
- package/dist/src/cloud-storage/index.d.ts.map +1 -0
- package/dist/src/cloud-storage/index.js.map +1 -0
- package/dist/src/cloud-storage/provider-detector.d.ts.map +1 -0
- package/dist/src/cloud-storage/provider-detector.js.map +1 -0
- package/dist/src/cloud-storage/types.d.ts +5 -0
- package/dist/src/cloud-storage/types.d.ts.map +1 -0
- package/dist/src/cloud-storage/types.js.map +1 -0
- package/dist/src/debugging/debug-logger.d.ts +8 -0
- package/dist/src/debugging/debug-logger.d.ts.map +1 -0
- package/dist/src/debugging/debug-logger.js +11 -0
- package/dist/src/debugging/debug-logger.js.map +1 -0
- package/dist/src/debugging/index.d.ts +1 -0
- package/dist/src/debugging/index.d.ts.map +1 -0
- package/dist/src/debugging/index.js +1 -0
- package/dist/src/debugging/index.js.map +1 -0
- package/dist/src/debugging/logs.d.ts.map +1 -0
- package/dist/src/debugging/logs.js.map +1 -0
- package/dist/src/debugging/types.d.ts.map +1 -0
- package/dist/src/debugging/types.js.map +1 -0
- package/dist/src/deployment/deployer.d.ts.map +1 -0
- package/dist/src/deployment/deployer.js +133 -1
- package/dist/src/deployment/deployer.js.map +1 -0
- package/dist/src/deployment/icpClient.d.ts.map +1 -0
- package/dist/src/deployment/icpClient.js +4 -0
- package/dist/src/deployment/icpClient.js.map +1 -0
- package/dist/src/deployment/index.d.ts.map +1 -0
- package/dist/src/deployment/index.js.map +1 -0
- package/dist/src/deployment/promotion.d.ts.map +1 -0
- package/dist/src/deployment/promotion.js.map +1 -0
- package/dist/src/deployment/types.d.ts +2 -1
- package/dist/src/deployment/types.d.ts.map +1 -0
- package/dist/src/deployment/types.js.map +1 -0
- package/dist/src/fault-tolerance/backup-status.d.ts +31 -0
- package/dist/src/fault-tolerance/backup-status.d.ts.map +1 -0
- package/dist/src/fault-tolerance/backup-status.js +76 -0
- package/dist/src/fault-tolerance/backup-status.js.map +1 -0
- package/dist/src/fault-tolerance/cron-check.d.ts +66 -0
- package/dist/src/fault-tolerance/cron-check.d.ts.map +1 -0
- package/dist/src/fault-tolerance/cron-check.js +177 -0
- package/dist/src/fault-tolerance/cron-check.js.map +1 -0
- package/dist/src/fault-tolerance/index.d.ts +12 -0
- package/dist/src/fault-tolerance/index.d.ts.map +1 -0
- package/dist/src/fault-tolerance/index.js +12 -0
- package/dist/src/fault-tolerance/index.js.map +1 -0
- package/dist/src/fault-tolerance/mirror-sync.d.ts +61 -0
- package/dist/src/fault-tolerance/mirror-sync.d.ts.map +1 -0
- package/dist/src/fault-tolerance/mirror-sync.js +203 -0
- package/dist/src/fault-tolerance/mirror-sync.js.map +1 -0
- package/dist/src/icp/batch.d.ts.map +1 -0
- package/dist/src/icp/batch.js +10 -4
- package/dist/src/icp/batch.js.map +1 -0
- package/dist/src/icp/cycles.d.ts.map +1 -0
- package/dist/src/icp/cycles.js.map +1 -0
- package/dist/src/icp/environment.d.ts.map +1 -0
- package/dist/src/icp/environment.js.map +1 -0
- package/dist/src/icp/icpcli.d.ts.map +1 -0
- package/dist/src/icp/icpcli.js.map +1 -0
- package/dist/src/icp/icwasm.d.ts.map +1 -0
- package/dist/src/icp/icwasm.js.map +1 -0
- package/dist/src/icp/identity.d.ts.map +1 -0
- package/dist/src/icp/identity.js.map +1 -0
- package/dist/src/icp/index.d.ts.map +1 -0
- package/dist/src/icp/index.js.map +1 -0
- package/dist/src/icp/optimization.d.ts.map +1 -0
- package/dist/src/icp/optimization.js.map +1 -0
- package/dist/src/icp/tokens.d.ts.map +1 -0
- package/dist/src/icp/tokens.js.map +1 -0
- package/dist/src/icp/tool-detector.d.ts.map +1 -0
- package/dist/src/icp/tool-detector.js +19 -5
- package/dist/src/icp/tool-detector.js.map +1 -0
- package/dist/src/icp/types.d.ts.map +1 -0
- package/dist/src/icp/types.js.map +1 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +22 -1
- package/dist/src/index.js.map +1 -0
- package/dist/src/inference/bittensor-client.d.ts +54 -1
- package/dist/src/inference/bittensor-client.d.ts.map +1 -0
- package/dist/src/inference/bittensor-client.js +96 -3
- package/dist/src/inference/bittensor-client.js.map +1 -0
- package/dist/src/inference/fallback-chain.d.ts +90 -0
- package/dist/src/inference/fallback-chain.d.ts.map +1 -0
- package/dist/src/inference/fallback-chain.js +219 -0
- package/dist/src/inference/fallback-chain.js.map +1 -0
- package/dist/src/inference/index.d.ts +6 -1
- package/dist/src/inference/index.d.ts.map +1 -0
- package/dist/src/inference/index.js +6 -1
- package/dist/src/inference/index.js.map +1 -0
- package/dist/src/inference/inference-manager.d.ts.map +1 -0
- package/dist/src/inference/inference-manager.js.map +1 -0
- package/dist/src/inference/local-model-client.d.ts +46 -0
- package/dist/src/inference/local-model-client.d.ts.map +1 -0
- package/dist/src/inference/local-model-client.js +92 -0
- package/dist/src/inference/local-model-client.js.map +1 -0
- package/dist/src/inference/secure-inference.d.ts +105 -0
- package/dist/src/inference/secure-inference.d.ts.map +1 -0
- package/dist/src/inference/secure-inference.js +237 -0
- package/dist/src/inference/secure-inference.js.map +1 -0
- package/dist/src/inference/venice-client.d.ts +149 -0
- package/dist/src/inference/venice-client.d.ts.map +1 -0
- package/dist/src/inference/venice-client.js +333 -0
- package/dist/src/inference/venice-client.js.map +1 -0
- package/dist/src/metrics/index.d.ts.map +1 -0
- package/dist/src/metrics/index.js.map +1 -0
- package/dist/src/metrics/metrics.d.ts.map +1 -0
- package/dist/src/metrics/metrics.js.map +1 -0
- package/dist/src/mint/google-adk.d.ts +19 -0
- package/dist/src/mint/google-adk.d.ts.map +1 -0
- package/dist/src/mint/google-adk.js +180 -0
- package/dist/src/mint/google-adk.js.map +1 -0
- package/dist/src/monitoring/alerting.d.ts.map +1 -0
- package/dist/src/monitoring/alerting.js.map +1 -0
- package/dist/src/monitoring/health.d.ts +9 -1
- package/dist/src/monitoring/health.d.ts.map +1 -0
- package/dist/src/monitoring/health.js +63 -0
- package/dist/src/monitoring/health.js.map +1 -0
- package/dist/src/monitoring/index.d.ts +2 -2
- package/dist/src/monitoring/index.d.ts.map +1 -0
- package/dist/src/monitoring/index.js +1 -1
- package/dist/src/monitoring/index.js.map +1 -0
- package/dist/src/monitoring/info.d.ts.map +1 -0
- package/dist/src/monitoring/info.js.map +1 -0
- package/dist/src/monitoring/types.d.ts +26 -0
- package/dist/src/monitoring/types.d.ts.map +1 -0
- package/dist/src/monitoring/types.js.map +1 -0
- package/dist/src/network/index.d.ts.map +1 -0
- package/dist/src/network/index.js.map +1 -0
- package/dist/src/network/network-config.d.ts.map +1 -0
- package/dist/src/network/network-config.js.map +1 -0
- package/dist/src/orchestration/claude.d.ts +125 -0
- package/dist/src/orchestration/claude.d.ts.map +1 -0
- package/dist/src/orchestration/claude.js +639 -0
- package/dist/src/orchestration/claude.js.map +1 -0
- package/dist/src/orchestration/google-adk.d.ts +77 -0
- package/dist/src/orchestration/google-adk.d.ts.map +1 -0
- package/dist/src/orchestration/google-adk.js +659 -0
- package/dist/src/orchestration/google-adk.js.map +1 -0
- package/dist/src/orchestration/mcp-client.d.ts +47 -0
- package/dist/src/orchestration/mcp-client.d.ts.map +1 -0
- package/dist/src/orchestration/mcp-client.js +179 -0
- package/dist/src/orchestration/mcp-client.js.map +1 -0
- package/dist/src/orchestration/polytician-enricher.d.ts +21 -0
- package/dist/src/orchestration/polytician-enricher.d.ts.map +1 -0
- package/dist/src/orchestration/polytician-enricher.js +131 -0
- package/dist/src/orchestration/polytician-enricher.js.map +1 -0
- package/dist/src/orchestration/smallchat-bridge.d.ts +121 -0
- package/dist/src/orchestration/smallchat-bridge.d.ts.map +1 -0
- package/dist/src/orchestration/smallchat-bridge.js +331 -0
- package/dist/src/orchestration/smallchat-bridge.js.map +1 -0
- package/dist/src/orchestration/smallchat-compression.d.ts +100 -0
- package/dist/src/orchestration/smallchat-compression.d.ts.map +1 -0
- package/dist/src/orchestration/smallchat-compression.js +203 -0
- package/dist/src/orchestration/smallchat-compression.js.map +1 -0
- package/dist/src/orchestration/smallchat-policy.d.ts +158 -0
- package/dist/src/orchestration/smallchat-policy.d.ts.map +1 -0
- package/dist/src/orchestration/smallchat-policy.js +314 -0
- package/dist/src/orchestration/smallchat-policy.js.map +1 -0
- package/dist/src/orchestration/smallchat-tools.d.ts +69 -0
- package/dist/src/orchestration/smallchat-tools.d.ts.map +1 -0
- package/dist/src/orchestration/smallchat-tools.js +501 -0
- package/dist/src/orchestration/smallchat-tools.js.map +1 -0
- package/dist/src/packaging/compiler.d.ts.map +1 -0
- package/dist/src/packaging/compiler.js.map +1 -0
- package/dist/src/packaging/config-persistence.d.ts.map +1 -0
- package/dist/src/packaging/config-persistence.js.map +1 -0
- package/dist/src/packaging/config-schemas.d.ts +44 -2
- package/dist/src/packaging/config-schemas.d.ts.map +1 -0
- package/dist/src/packaging/config-schemas.js +19 -0
- package/dist/src/packaging/config-schemas.js.map +1 -0
- package/dist/src/packaging/detector.d.ts.map +1 -0
- package/dist/src/packaging/detector.js +15 -1
- package/dist/src/packaging/detector.js.map +1 -0
- package/dist/src/packaging/index.d.ts +11 -5
- package/dist/src/packaging/index.d.ts.map +1 -0
- package/dist/src/packaging/index.js +10 -4
- package/dist/src/packaging/index.js.map +1 -0
- package/dist/src/packaging/packager.d.ts.map +1 -0
- package/dist/src/packaging/packager.js.map +1 -0
- package/dist/src/packaging/parsers/clawdbot.d.ts +1 -1
- package/dist/src/packaging/parsers/clawdbot.d.ts.map +1 -0
- package/dist/src/packaging/parsers/clawdbot.js +26 -28
- package/dist/src/packaging/parsers/clawdbot.js.map +1 -0
- package/dist/src/packaging/parsers/cline.d.ts.map +1 -0
- package/dist/src/packaging/parsers/cline.js.map +1 -0
- package/dist/src/packaging/parsers/generic.d.ts +1 -1
- package/dist/src/packaging/parsers/generic.d.ts.map +1 -0
- package/dist/src/packaging/parsers/generic.js +13 -20
- package/dist/src/packaging/parsers/generic.js.map +1 -0
- package/dist/src/packaging/parsers/goose.d.ts.map +1 -0
- package/dist/src/packaging/parsers/goose.js.map +1 -0
- package/dist/src/packaging/parsers/index.d.ts +2 -0
- package/dist/src/packaging/parsers/index.d.ts.map +1 -0
- package/dist/src/packaging/parsers/index.js +2 -0
- package/dist/src/packaging/parsers/index.js.map +1 -0
- package/dist/src/packaging/parsers/nemoclaw.d.ts +4 -0
- package/dist/src/packaging/parsers/nemoclaw.d.ts.map +1 -0
- package/dist/src/packaging/parsers/nemoclaw.js +145 -0
- package/dist/src/packaging/parsers/nemoclaw.js.map +1 -0
- package/dist/src/packaging/parsers/polytician.d.ts +4 -0
- package/dist/src/packaging/parsers/polytician.d.ts.map +1 -0
- package/dist/src/packaging/parsers/polytician.js +121 -0
- package/dist/src/packaging/parsers/polytician.js.map +1 -0
- package/dist/src/packaging/serializer.d.ts +7 -1
- package/dist/src/packaging/serializer.d.ts.map +1 -0
- package/dist/src/packaging/serializer.js +14 -3
- package/dist/src/packaging/serializer.js.map +1 -0
- package/dist/src/packaging/serializers/index.d.ts +3 -0
- package/dist/src/packaging/serializers/index.d.ts.map +1 -0
- package/dist/src/packaging/serializers/index.js +2 -0
- package/dist/src/packaging/serializers/index.js.map +1 -0
- package/dist/src/packaging/serializers/thoughtform.d.ts +89 -0
- package/dist/src/packaging/serializers/thoughtform.d.ts.map +1 -0
- package/dist/src/packaging/serializers/thoughtform.js +84 -0
- package/dist/src/packaging/serializers/thoughtform.js.map +1 -0
- package/dist/src/packaging/state-format.d.ts +332 -0
- package/dist/src/packaging/state-format.d.ts.map +1 -0
- package/dist/src/packaging/state-format.js +602 -0
- package/dist/src/packaging/state-format.js.map +1 -0
- package/dist/src/packaging/types.d.ts +2 -2
- package/dist/src/packaging/types.d.ts.map +1 -0
- package/dist/src/packaging/types.js.map +1 -0
- package/dist/src/packaging/wasm-compiler.d.ts +160 -0
- package/dist/src/packaging/wasm-compiler.d.ts.map +1 -0
- package/dist/src/packaging/wasm-compiler.js +662 -0
- package/dist/src/packaging/wasm-compiler.js.map +1 -0
- package/dist/src/packaging/wasmedge-compiler.d.ts.map +1 -0
- package/dist/src/packaging/wasmedge-compiler.js +6 -4
- package/dist/src/packaging/wasmedge-compiler.js.map +1 -0
- package/dist/src/pilot/air-gap.d.ts +51 -0
- package/dist/src/pilot/air-gap.d.ts.map +1 -0
- package/dist/src/pilot/air-gap.js +118 -0
- package/dist/src/pilot/air-gap.js.map +1 -0
- package/dist/src/pilot/index.d.ts +14 -0
- package/dist/src/pilot/index.d.ts.map +1 -0
- package/dist/src/pilot/index.js +16 -0
- package/dist/src/pilot/index.js.map +1 -0
- package/dist/src/pilot/private-replica.d.ts +67 -0
- package/dist/src/pilot/private-replica.d.ts.map +1 -0
- package/dist/src/pilot/private-replica.js +429 -0
- package/dist/src/pilot/private-replica.js.map +1 -0
- package/dist/src/pilot/proxy-config.d.ts +36 -0
- package/dist/src/pilot/proxy-config.d.ts.map +1 -0
- package/dist/src/pilot/proxy-config.js +96 -0
- package/dist/src/pilot/proxy-config.js.map +1 -0
- package/dist/src/pilot/types.d.ts +181 -0
- package/dist/src/pilot/types.d.ts.map +1 -0
- package/dist/src/pilot/types.js +7 -0
- package/dist/src/pilot/types.js.map +1 -0
- package/dist/src/security/icp-audit.d.ts +63 -0
- package/dist/src/security/icp-audit.d.ts.map +1 -0
- package/dist/src/security/icp-audit.js +234 -0
- package/dist/src/security/icp-audit.js.map +1 -0
- package/dist/src/security/index.d.ts +7 -1
- package/dist/src/security/index.d.ts.map +1 -0
- package/dist/src/security/index.js +12 -2
- package/dist/src/security/index.js.map +1 -0
- package/dist/src/security/mfa-approval.d.ts +219 -0
- package/dist/src/security/mfa-approval.d.ts.map +1 -0
- package/dist/src/security/mfa-approval.js +668 -0
- package/dist/src/security/mfa-approval.js.map +1 -0
- package/dist/src/security/multisig.d.ts.map +1 -0
- package/dist/src/security/multisig.js.map +1 -0
- package/dist/src/security/totp.d.ts +67 -0
- package/dist/src/security/totp.d.ts.map +1 -0
- package/dist/src/security/totp.js +148 -0
- package/dist/src/security/totp.js.map +1 -0
- package/dist/src/security/types.d.ts +7 -2
- package/dist/src/security/types.d.ts.map +1 -0
- package/dist/src/security/types.js +14 -14
- package/dist/src/security/types.js.map +1 -0
- package/dist/src/security/vetkeys.d.ts +43 -0
- package/dist/src/security/vetkeys.d.ts.map +1 -0
- package/dist/src/security/vetkeys.js +144 -15
- package/dist/src/security/vetkeys.js.map +1 -0
- package/dist/src/security/webauthn.d.ts +127 -0
- package/dist/src/security/webauthn.d.ts.map +1 -0
- package/dist/src/security/webauthn.js +246 -0
- package/dist/src/security/webauthn.js.map +1 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/dist/src/testing/index.js.map +1 -0
- package/dist/src/testing/local-runner.d.ts.map +1 -0
- package/dist/src/testing/local-runner.js.map +1 -0
- package/dist/src/testing/types.d.ts.map +1 -0
- package/dist/src/testing/types.js.map +1 -0
- package/dist/src/trading/api-key-manager.d.ts +96 -0
- package/dist/src/trading/api-key-manager.d.ts.map +1 -0
- package/dist/src/trading/api-key-manager.js +201 -0
- package/dist/src/trading/api-key-manager.js.map +1 -0
- package/dist/src/trading/consensus.d.ts +171 -0
- package/dist/src/trading/consensus.d.ts.map +1 -0
- package/dist/src/trading/consensus.js +291 -0
- package/dist/src/trading/consensus.js.map +1 -0
- package/dist/src/trading/index.d.ts +19 -0
- package/dist/src/trading/index.d.ts.map +1 -0
- package/dist/src/trading/index.js +15 -0
- package/dist/src/trading/index.js.map +1 -0
- package/dist/src/trading/ip-whitelist.d.ts +70 -0
- package/dist/src/trading/ip-whitelist.d.ts.map +1 -0
- package/dist/src/trading/ip-whitelist.js +239 -0
- package/dist/src/trading/ip-whitelist.js.map +1 -0
- package/dist/src/trading/skill-sandbox.d.ts +88 -0
- package/dist/src/trading/skill-sandbox.d.ts.map +1 -0
- package/dist/src/trading/skill-sandbox.js +175 -0
- package/dist/src/trading/skill-sandbox.js.map +1 -0
- package/dist/src/utils/path-validation.d.ts +34 -0
- package/dist/src/utils/path-validation.d.ts.map +1 -0
- package/dist/src/utils/path-validation.js +88 -0
- package/dist/src/utils/path-validation.js.map +1 -0
- package/dist/src/vault/bitwarden.d.ts +51 -0
- package/dist/src/vault/bitwarden.d.ts.map +1 -0
- package/dist/src/vault/bitwarden.js +172 -0
- package/dist/src/vault/bitwarden.js.map +1 -0
- package/dist/src/vault/client.d.ts +44 -0
- package/dist/src/vault/client.d.ts.map +1 -0
- package/dist/src/vault/client.js +523 -0
- package/dist/src/vault/client.js.map +1 -0
- package/dist/src/vault/config.d.ts +68 -0
- package/dist/src/vault/config.d.ts.map +1 -0
- package/dist/src/vault/config.js +265 -0
- package/dist/src/vault/config.js.map +1 -0
- package/dist/src/vault/encrypted-memory-store.d.ts +80 -0
- package/dist/src/vault/encrypted-memory-store.d.ts.map +1 -0
- package/dist/src/vault/encrypted-memory-store.js +175 -0
- package/dist/src/vault/encrypted-memory-store.js.map +1 -0
- package/dist/src/vault/hashicorp-provider.d.ts +22 -0
- package/dist/src/vault/hashicorp-provider.d.ts.map +1 -0
- package/dist/src/vault/hashicorp-provider.js +63 -0
- package/dist/src/vault/hashicorp-provider.js.map +1 -0
- package/dist/src/vault/index.d.ts +40 -0
- package/dist/src/vault/index.d.ts.map +1 -0
- package/dist/src/vault/index.js +38 -0
- package/dist/src/vault/index.js.map +1 -0
- package/dist/src/vault/memory-provider.d.ts +26 -0
- package/dist/src/vault/memory-provider.d.ts.map +1 -0
- package/dist/src/vault/memory-provider.js +42 -0
- package/dist/src/vault/memory-provider.js.map +1 -0
- package/dist/src/vault/provider.d.ts +68 -0
- package/dist/src/vault/provider.d.ts.map +1 -0
- package/dist/src/vault/provider.js +50 -0
- package/dist/src/vault/provider.js.map +1 -0
- package/dist/src/vault/safehouse-types.d.ts +204 -0
- package/dist/src/vault/safehouse-types.d.ts.map +1 -0
- package/dist/src/vault/safehouse-types.js +9 -0
- package/dist/src/vault/safehouse-types.js.map +1 -0
- package/dist/src/vault/secret-audit.d.ts +91 -0
- package/dist/src/vault/secret-audit.d.ts.map +1 -0
- package/dist/src/vault/secret-audit.js +224 -0
- package/dist/src/vault/secret-audit.js.map +1 -0
- package/dist/src/vault/secret-injector.d.ts +62 -0
- package/dist/src/vault/secret-injector.d.ts.map +1 -0
- package/dist/src/vault/secret-injector.js +237 -0
- package/dist/src/vault/secret-injector.js.map +1 -0
- package/dist/src/vault/secret-leak-detector.d.ts +94 -0
- package/dist/src/vault/secret-leak-detector.d.ts.map +1 -0
- package/dist/src/vault/secret-leak-detector.js +218 -0
- package/dist/src/vault/secret-leak-detector.js.map +1 -0
- package/dist/src/vault/secret-management-layer.d.ts +139 -0
- package/dist/src/vault/secret-management-layer.d.ts.map +1 -0
- package/dist/src/vault/secret-management-layer.js +366 -0
- package/dist/src/vault/secret-management-layer.js.map +1 -0
- package/dist/src/vault/secret-rotation.d.ts +54 -0
- package/dist/src/vault/secret-rotation.d.ts.map +1 -0
- package/dist/src/vault/secret-rotation.js +156 -0
- package/dist/src/vault/secret-rotation.js.map +1 -0
- package/dist/src/vault/secret-sandbox.d.ts +94 -0
- package/dist/src/vault/secret-sandbox.d.ts.map +1 -0
- package/dist/src/vault/secret-sandbox.js +232 -0
- package/dist/src/vault/secret-sandbox.js.map +1 -0
- package/dist/src/vault/types.d.ts +148 -0
- package/dist/src/vault/types.d.ts.map +1 -0
- package/dist/src/vault/types.js +7 -0
- package/dist/src/vault/types.js.map +1 -0
- package/dist/src/wallet/cbor-serializer.d.ts.map +1 -0
- package/dist/src/wallet/cbor-serializer.js +7 -2
- package/dist/src/wallet/cbor-serializer.js.map +1 -0
- package/dist/src/wallet/chain-dispatcher.d.ts +1 -1
- package/dist/src/wallet/chain-dispatcher.d.ts.map +1 -0
- package/dist/src/wallet/chain-dispatcher.js +8 -19
- package/dist/src/wallet/chain-dispatcher.js.map +1 -0
- package/dist/src/wallet/cross-chain-aggregator.d.ts.map +1 -0
- package/dist/src/wallet/cross-chain-aggregator.js.map +1 -0
- package/dist/src/wallet/hsm/index.d.ts +39 -0
- package/dist/src/wallet/hsm/index.d.ts.map +1 -0
- package/dist/src/wallet/hsm/index.js +60 -0
- package/dist/src/wallet/hsm/index.js.map +1 -0
- package/dist/src/wallet/hsm/ledger-provider.d.ts +75 -0
- package/dist/src/wallet/hsm/ledger-provider.d.ts.map +1 -0
- package/dist/src/wallet/hsm/ledger-provider.js +272 -0
- package/dist/src/wallet/hsm/ledger-provider.js.map +1 -0
- package/dist/src/wallet/hsm/sgx-provider.d.ts +83 -0
- package/dist/src/wallet/hsm/sgx-provider.d.ts.map +1 -0
- package/dist/src/wallet/hsm/sgx-provider.js +281 -0
- package/dist/src/wallet/hsm/sgx-provider.js.map +1 -0
- package/dist/src/wallet/hsm/types.d.ts +134 -0
- package/dist/src/wallet/hsm/types.d.ts.map +1 -0
- package/dist/src/wallet/hsm/types.js +46 -0
- package/dist/src/wallet/hsm/types.js.map +1 -0
- package/dist/src/wallet/index.d.ts +8 -2
- package/dist/src/wallet/index.d.ts.map +1 -0
- package/dist/src/wallet/index.js +9 -2
- package/dist/src/wallet/index.js.map +1 -0
- package/dist/src/wallet/key-derivation.d.ts +29 -1
- package/dist/src/wallet/key-derivation.d.ts.map +1 -0
- package/dist/src/wallet/key-derivation.js +106 -23
- package/dist/src/wallet/key-derivation.js.map +1 -0
- package/dist/src/wallet/providers/arweave-provider.d.ts +34 -0
- package/dist/src/wallet/providers/arweave-provider.d.ts.map +1 -0
- package/dist/src/wallet/providers/arweave-provider.js +126 -0
- package/dist/src/wallet/providers/arweave-provider.js.map +1 -0
- package/dist/src/wallet/providers/base-provider.d.ts.map +1 -0
- package/dist/src/wallet/providers/base-provider.js.map +1 -0
- package/dist/src/wallet/providers/cketh-provider.d.ts.map +1 -0
- package/dist/src/wallet/providers/cketh-provider.js.map +1 -0
- package/dist/src/wallet/providers/icp-provider.d.ts +34 -0
- package/dist/src/wallet/providers/icp-provider.d.ts.map +1 -0
- package/dist/src/wallet/providers/icp-provider.js +114 -0
- package/dist/src/wallet/providers/icp-provider.js.map +1 -0
- package/dist/src/wallet/providers/polkadot-provider.d.ts.map +1 -0
- package/dist/src/wallet/providers/polkadot-provider.js +5 -6
- package/dist/src/wallet/providers/polkadot-provider.js.map +1 -0
- package/dist/src/wallet/providers/provider-factory.d.ts +23 -0
- package/dist/src/wallet/providers/provider-factory.d.ts.map +1 -0
- package/dist/src/wallet/providers/provider-factory.js +74 -0
- package/dist/src/wallet/providers/provider-factory.js.map +1 -0
- package/dist/src/wallet/providers/solana-provider.d.ts.map +1 -0
- package/dist/src/wallet/providers/solana-provider.js +6 -7
- package/dist/src/wallet/providers/solana-provider.js.map +1 -0
- package/dist/src/wallet/secure-wallet.d.ts +132 -0
- package/dist/src/wallet/secure-wallet.d.ts.map +1 -0
- package/dist/src/wallet/secure-wallet.js +298 -0
- package/dist/src/wallet/secure-wallet.js.map +1 -0
- package/dist/src/wallet/transaction-queue.d.ts.map +1 -0
- package/dist/src/wallet/transaction-queue.js.map +1 -0
- package/dist/src/wallet/types.d.ts +57 -2
- package/dist/src/wallet/types.d.ts.map +1 -0
- package/dist/src/wallet/types.js.map +1 -0
- package/dist/src/wallet/vetkeys-adapter.d.ts.map +1 -0
- package/dist/src/wallet/vetkeys-adapter.js +16 -25
- package/dist/src/wallet/vetkeys-adapter.js.map +1 -0
- package/dist/src/wallet/wallet-crypto.d.ts +101 -0
- package/dist/src/wallet/wallet-crypto.d.ts.map +1 -0
- package/dist/src/wallet/wallet-crypto.js +185 -0
- package/dist/src/wallet/wallet-crypto.js.map +1 -0
- package/dist/src/wallet/wallet-manager.d.ts +24 -4
- package/dist/src/wallet/wallet-manager.d.ts.map +1 -0
- package/dist/src/wallet/wallet-manager.js +70 -3
- package/dist/src/wallet/wallet-manager.js.map +1 -0
- package/dist/src/wallet/wallet-storage.d.ts +15 -7
- package/dist/src/wallet/wallet-storage.d.ts.map +1 -0
- package/dist/src/wallet/wallet-storage.js +34 -18
- package/dist/src/wallet/wallet-storage.js.map +1 -0
- package/dist/src/wiki/index.d.ts +30 -0
- package/dist/src/wiki/index.d.ts.map +1 -0
- package/dist/src/wiki/index.js +30 -0
- package/dist/src/wiki/index.js.map +1 -0
- package/dist/src/wiki/ingest.d.ts +51 -0
- package/dist/src/wiki/ingest.d.ts.map +1 -0
- package/dist/src/wiki/ingest.js +197 -0
- package/dist/src/wiki/ingest.js.map +1 -0
- package/dist/src/wiki/lint.d.ts +43 -0
- package/dist/src/wiki/lint.d.ts.map +1 -0
- package/dist/src/wiki/lint.js +187 -0
- package/dist/src/wiki/lint.js.map +1 -0
- package/dist/src/wiki/mcp-tools.d.ts +35 -0
- package/dist/src/wiki/mcp-tools.d.ts.map +1 -0
- package/dist/src/wiki/mcp-tools.js +353 -0
- package/dist/src/wiki/mcp-tools.js.map +1 -0
- package/dist/src/wiki/query.d.ts +38 -0
- package/dist/src/wiki/query.d.ts.map +1 -0
- package/dist/src/wiki/query.js +117 -0
- package/dist/src/wiki/query.js.map +1 -0
- package/dist/src/wiki/wiki-store.d.ts +53 -0
- package/dist/src/wiki/wiki-store.d.ts.map +1 -0
- package/dist/src/wiki/wiki-store.js +132 -0
- package/dist/src/wiki/wiki-store.js.map +1 -0
- package/package.json +35 -11
- package/.claude/settings.local.json +0 -9
- package/.dfx/local/network-id +0 -4
- package/.next/trace +0 -2
- package/.vercel/README.txt +0 -11
- package/.vercel/project.json +0 -1
- package/AGENTS.md +0 -43
- package/PLAN_VAULT_INTEGRATION.md +0 -318
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.js +0 -14
- package/fixup_1_0_OSS_release.md +0 -136
- package/fixup_REALEASE_PRD.md +0 -136
- package/macos-wallet-app/AgentVaultWallet/App/AgentVaultWalletApp.swift +0 -54
- package/macos-wallet-app/AgentVaultWallet/Models/AppState.swift +0 -102
- package/macos-wallet-app/AgentVaultWallet/Models/Chain.swift +0 -121
- package/macos-wallet-app/AgentVaultWallet/Models/Wallet.swift +0 -98
- package/macos-wallet-app/AgentVaultWallet/Resources/AgentVaultWallet.entitlements +0 -27
- package/macos-wallet-app/AgentVaultWallet/Resources/Info.plist +0 -69
- package/macos-wallet-app/AgentVaultWallet/Services/BackupService.swift +0 -270
- package/macos-wallet-app/AgentVaultWallet/Services/CLIBridge.swift +0 -367
- package/macos-wallet-app/AgentVaultWallet/Services/CryptoService.swift +0 -157
- package/macos-wallet-app/AgentVaultWallet/Services/FileService.swift +0 -120
- package/macos-wallet-app/AgentVaultWallet/Services/KeychainService.swift +0 -219
- package/macos-wallet-app/AgentVaultWallet/Utilities/Constants.swift +0 -44
- package/macos-wallet-app/AgentVaultWallet/Utilities/Extensions.swift +0 -115
- package/macos-wallet-app/AgentVaultWallet/ViewModels/BackupViewModel.swift +0 -237
- package/macos-wallet-app/AgentVaultWallet/ViewModels/CreateWalletViewModel.swift +0 -137
- package/macos-wallet-app/AgentVaultWallet/ViewModels/ImportWalletViewModel.swift +0 -179
- package/macos-wallet-app/AgentVaultWallet/ViewModels/WalletStore.swift +0 -286
- package/macos-wallet-app/AgentVaultWallet/Views/Backup/BackupView.swift +0 -235
- package/macos-wallet-app/AgentVaultWallet/Views/Backup/RestoreView.swift +0 -316
- package/macos-wallet-app/AgentVaultWallet/Views/Create/CreateWalletFlow.swift +0 -438
- package/macos-wallet-app/AgentVaultWallet/Views/Import/ImportWalletFlow.swift +0 -399
- package/macos-wallet-app/AgentVaultWallet/Views/MainView.swift +0 -134
- package/macos-wallet-app/AgentVaultWallet/Views/Settings/SettingsView.swift +0 -276
- package/macos-wallet-app/AgentVaultWallet/Views/Sidebar/SidebarView.swift +0 -133
- package/macos-wallet-app/AgentVaultWallet/Views/Wallet/DashboardView.swift +0 -233
- package/macos-wallet-app/AgentVaultWallet/Views/Wallet/WalletDetailView.swift +0 -281
- package/macos-wallet-app/AgentVaultWallet/Views/Wallet/WalletListView.swift +0 -280
- package/macos-wallet-app/AgentVaultWallet/Views/Welcome/WelcomeView.swift +0 -176
- package/macos-wallet-app/Makefile +0 -47
- package/macos-wallet-app/project.yml +0 -40
- package/macos-wallet-app/setup.sh +0 -73
- package/pnpm-workspace.yaml +0 -5
- package/vercel.json +0 -8
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet Crypto Module
|
|
3
|
+
*
|
|
4
|
+
* Provides cryptographic primitives for wallet key generation and at-rest
|
|
5
|
+
* encryption using industry-standard algorithms:
|
|
6
|
+
*
|
|
7
|
+
* - secp256k1 ECDSA (Ethereum / Polkadot) via @noble/curves
|
|
8
|
+
* - Ed25519 EdDSA (Solana / ICP / Arweave) via @noble/curves
|
|
9
|
+
* - AES-256-GCM authenticated encryption for private keys / mnemonics
|
|
10
|
+
* - PBKDF2-SHA256 (210 000 iterations) for storage-key derivation
|
|
11
|
+
*
|
|
12
|
+
* Private keys and mnemonics are NEVER stored in plaintext. When a
|
|
13
|
+
* caller supplies an encryptionKey (the wallet's BIP39 mnemonic) the
|
|
14
|
+
* sensitive fields are encrypted into an EncryptedKeyBundle before the
|
|
15
|
+
* wallet is written to disk.
|
|
16
|
+
*/
|
|
17
|
+
import type { EncryptedCiphertext, WalletData } from './types.js';
|
|
18
|
+
/**
|
|
19
|
+
* Derive a secp256k1 keypair from a 32-byte seed.
|
|
20
|
+
*
|
|
21
|
+
* Uses @noble/curves/secp256k1 – the same underlying library used by ethers
|
|
22
|
+
* and most modern JS wallets. The uncompressed public key (65 bytes,
|
|
23
|
+
* 0x04 prefix) is returned so callers can choose their own encoding.
|
|
24
|
+
*
|
|
25
|
+
* @param seed - 32 bytes of key material (e.g. from BIP32 derivation)
|
|
26
|
+
*/
|
|
27
|
+
export declare function secp256k1KeypairFromSeed(seed: Uint8Array): {
|
|
28
|
+
privateKey: Uint8Array;
|
|
29
|
+
publicKeyUncompressed: Uint8Array;
|
|
30
|
+
publicKeyCompressed: Uint8Array;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Derive an Ed25519 keypair from a 32-byte seed.
|
|
34
|
+
*
|
|
35
|
+
* Uses @noble/curves/ed25519. The private key is the raw 32-byte seed;
|
|
36
|
+
* the public key is the 32-byte Ed25519 point.
|
|
37
|
+
*
|
|
38
|
+
* @param seed - 32 bytes of key material
|
|
39
|
+
*/
|
|
40
|
+
export declare function ed25519KeypairFromSeed(seed: Uint8Array): {
|
|
41
|
+
privateKey: Uint8Array;
|
|
42
|
+
publicKey: Uint8Array;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Derive a 32-byte AES-256-GCM key from a BIP39 mnemonic and a random salt
|
|
46
|
+
* using PBKDF2-SHA256.
|
|
47
|
+
*
|
|
48
|
+
* The per-wallet salt ensures that two wallets encrypted with the same
|
|
49
|
+
* mnemonic produce independent keys, preventing cross-wallet key reuse.
|
|
50
|
+
*
|
|
51
|
+
* @param mnemonic - BIP39 mnemonic (the wallet owner's seed phrase)
|
|
52
|
+
* @param salt - 32-byte random per-wallet salt (stored alongside ciphertext)
|
|
53
|
+
*/
|
|
54
|
+
export declare function deriveStorageKey(mnemonic: string, salt: Buffer): Buffer;
|
|
55
|
+
/**
|
|
56
|
+
* Encrypt a UTF-8 plaintext string with AES-256-GCM.
|
|
57
|
+
*
|
|
58
|
+
* A fresh 12-byte IV is generated for every call. The authentication tag
|
|
59
|
+
* is stored alongside the ciphertext so that any tampering is detected on
|
|
60
|
+
* decryption.
|
|
61
|
+
*
|
|
62
|
+
* @param plaintext - The string to encrypt (private key hex or mnemonic)
|
|
63
|
+
* @param key - 32-byte AES key (output of deriveStorageKey)
|
|
64
|
+
*/
|
|
65
|
+
export declare function encryptSecret(plaintext: string, key: Buffer): EncryptedCiphertext;
|
|
66
|
+
/**
|
|
67
|
+
* Decrypt an AES-256-GCM ciphertext produced by encryptSecret.
|
|
68
|
+
*
|
|
69
|
+
* Throws if the authentication tag does not match (tamper detection).
|
|
70
|
+
*
|
|
71
|
+
* @param encrypted - EncryptedCiphertext produced by encryptSecret
|
|
72
|
+
* @param key - 32-byte AES key (must match the key used for encryption)
|
|
73
|
+
*/
|
|
74
|
+
export declare function decryptSecret(encrypted: EncryptedCiphertext, key: Buffer): string;
|
|
75
|
+
/**
|
|
76
|
+
* Encrypt a wallet's sensitive fields (privateKey and/or mnemonic) using
|
|
77
|
+
* AES-256-GCM with a key derived from the supplied mnemonic + a fresh
|
|
78
|
+
* random salt.
|
|
79
|
+
*
|
|
80
|
+
* The returned wallet has:
|
|
81
|
+
* - privateKey set to undefined
|
|
82
|
+
* - mnemonic set to undefined
|
|
83
|
+
* - encryptedSecrets populated with the ciphertext bundle
|
|
84
|
+
*
|
|
85
|
+
* The in-memory wallet object passed in is not mutated.
|
|
86
|
+
*
|
|
87
|
+
* @param wallet - Wallet whose secrets should be encrypted
|
|
88
|
+
* @param mnemonic - BIP39 mnemonic used as key-derivation material
|
|
89
|
+
*/
|
|
90
|
+
export declare function encryptWalletSecrets(wallet: WalletData, mnemonic: string): WalletData;
|
|
91
|
+
/**
|
|
92
|
+
* Decrypt a wallet's EncryptedKeyBundle back into plaintext fields.
|
|
93
|
+
*
|
|
94
|
+
* If the wallet has no encryptedSecrets the wallet is returned unchanged.
|
|
95
|
+
* Throws if the mnemonic is wrong (AES-GCM authentication will fail).
|
|
96
|
+
*
|
|
97
|
+
* @param wallet - Wallet with encryptedSecrets populated
|
|
98
|
+
* @param mnemonic - BIP39 mnemonic used as key-derivation material
|
|
99
|
+
*/
|
|
100
|
+
export declare function decryptWalletSecrets(wallet: WalletData, mnemonic: string): WalletData;
|
|
101
|
+
//# sourceMappingURL=wallet-crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-crypto.d.ts","sourceRoot":"","sources":["../../../src/wallet/wallet-crypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,mBAAmB,EAAsB,UAAU,EAAE,MAAM,YAAY,CAAC;AAsBtF;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU,GAAG;IAC1D,UAAU,EAAE,UAAU,CAAC;IACvB,qBAAqB,EAAE,UAAU,CAAC;IAClC,mBAAmB,EAAE,UAAU,CAAC;CACjC,CAKA;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG;IACxD,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;CACvB,CAIA;AAMD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvE;AAMD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAcjF;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAcjF;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAsBrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAmBrF"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet Crypto Module
|
|
3
|
+
*
|
|
4
|
+
* Provides cryptographic primitives for wallet key generation and at-rest
|
|
5
|
+
* encryption using industry-standard algorithms:
|
|
6
|
+
*
|
|
7
|
+
* - secp256k1 ECDSA (Ethereum / Polkadot) via @noble/curves
|
|
8
|
+
* - Ed25519 EdDSA (Solana / ICP / Arweave) via @noble/curves
|
|
9
|
+
* - AES-256-GCM authenticated encryption for private keys / mnemonics
|
|
10
|
+
* - PBKDF2-SHA256 (210 000 iterations) for storage-key derivation
|
|
11
|
+
*
|
|
12
|
+
* Private keys and mnemonics are NEVER stored in plaintext. When a
|
|
13
|
+
* caller supplies an encryptionKey (the wallet's BIP39 mnemonic) the
|
|
14
|
+
* sensitive fields are encrypted into an EncryptedKeyBundle before the
|
|
15
|
+
* wallet is written to disk.
|
|
16
|
+
*/
|
|
17
|
+
import * as crypto from 'node:crypto';
|
|
18
|
+
import { secp256k1 } from '@noble/curves/secp256k1';
|
|
19
|
+
import { ed25519 } from '@noble/curves/ed25519';
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
// Constants
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
/** PBKDF2 iteration count – OWASP 2023 recommendation for SHA-256 */
|
|
24
|
+
const PBKDF2_ITERATIONS = 210_000;
|
|
25
|
+
/** AES-256-GCM key length in bytes */
|
|
26
|
+
const AES_KEY_BYTES = 32;
|
|
27
|
+
/** AES-256-GCM IV length in bytes */
|
|
28
|
+
const GCM_IV_BYTES = 12;
|
|
29
|
+
/** PBKDF2 salt length in bytes */
|
|
30
|
+
const SALT_BYTES = 32;
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// Key-generation helpers (exported for use in key-derivation.ts)
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
/**
|
|
35
|
+
* Derive a secp256k1 keypair from a 32-byte seed.
|
|
36
|
+
*
|
|
37
|
+
* Uses @noble/curves/secp256k1 – the same underlying library used by ethers
|
|
38
|
+
* and most modern JS wallets. The uncompressed public key (65 bytes,
|
|
39
|
+
* 0x04 prefix) is returned so callers can choose their own encoding.
|
|
40
|
+
*
|
|
41
|
+
* @param seed - 32 bytes of key material (e.g. from BIP32 derivation)
|
|
42
|
+
*/
|
|
43
|
+
export function secp256k1KeypairFromSeed(seed) {
|
|
44
|
+
const privateKey = seed.slice(0, 32);
|
|
45
|
+
const publicKeyUncompressed = secp256k1.getPublicKey(privateKey, false);
|
|
46
|
+
const publicKeyCompressed = secp256k1.getPublicKey(privateKey, true);
|
|
47
|
+
return { privateKey, publicKeyUncompressed, publicKeyCompressed };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Derive an Ed25519 keypair from a 32-byte seed.
|
|
51
|
+
*
|
|
52
|
+
* Uses @noble/curves/ed25519. The private key is the raw 32-byte seed;
|
|
53
|
+
* the public key is the 32-byte Ed25519 point.
|
|
54
|
+
*
|
|
55
|
+
* @param seed - 32 bytes of key material
|
|
56
|
+
*/
|
|
57
|
+
export function ed25519KeypairFromSeed(seed) {
|
|
58
|
+
const privateKey = seed.slice(0, 32);
|
|
59
|
+
const publicKey = ed25519.getPublicKey(privateKey);
|
|
60
|
+
return { privateKey, publicKey };
|
|
61
|
+
}
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
// Storage-key derivation
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
/**
|
|
66
|
+
* Derive a 32-byte AES-256-GCM key from a BIP39 mnemonic and a random salt
|
|
67
|
+
* using PBKDF2-SHA256.
|
|
68
|
+
*
|
|
69
|
+
* The per-wallet salt ensures that two wallets encrypted with the same
|
|
70
|
+
* mnemonic produce independent keys, preventing cross-wallet key reuse.
|
|
71
|
+
*
|
|
72
|
+
* @param mnemonic - BIP39 mnemonic (the wallet owner's seed phrase)
|
|
73
|
+
* @param salt - 32-byte random per-wallet salt (stored alongside ciphertext)
|
|
74
|
+
*/
|
|
75
|
+
export function deriveStorageKey(mnemonic, salt) {
|
|
76
|
+
return crypto.pbkdf2Sync(mnemonic, salt, PBKDF2_ITERATIONS, AES_KEY_BYTES, 'sha256');
|
|
77
|
+
}
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
// AES-256-GCM encrypt / decrypt
|
|
80
|
+
// ---------------------------------------------------------------------------
|
|
81
|
+
/**
|
|
82
|
+
* Encrypt a UTF-8 plaintext string with AES-256-GCM.
|
|
83
|
+
*
|
|
84
|
+
* A fresh 12-byte IV is generated for every call. The authentication tag
|
|
85
|
+
* is stored alongside the ciphertext so that any tampering is detected on
|
|
86
|
+
* decryption.
|
|
87
|
+
*
|
|
88
|
+
* @param plaintext - The string to encrypt (private key hex or mnemonic)
|
|
89
|
+
* @param key - 32-byte AES key (output of deriveStorageKey)
|
|
90
|
+
*/
|
|
91
|
+
export function encryptSecret(plaintext, key) {
|
|
92
|
+
const iv = crypto.randomBytes(GCM_IV_BYTES);
|
|
93
|
+
const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
|
|
94
|
+
const ciphertext = Buffer.concat([
|
|
95
|
+
cipher.update(plaintext, 'utf8'),
|
|
96
|
+
cipher.final(),
|
|
97
|
+
]);
|
|
98
|
+
const tag = cipher.getAuthTag();
|
|
99
|
+
return {
|
|
100
|
+
iv: iv.toString('hex'),
|
|
101
|
+
ciphertext: ciphertext.toString('hex'),
|
|
102
|
+
tag: tag.toString('hex'),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Decrypt an AES-256-GCM ciphertext produced by encryptSecret.
|
|
107
|
+
*
|
|
108
|
+
* Throws if the authentication tag does not match (tamper detection).
|
|
109
|
+
*
|
|
110
|
+
* @param encrypted - EncryptedCiphertext produced by encryptSecret
|
|
111
|
+
* @param key - 32-byte AES key (must match the key used for encryption)
|
|
112
|
+
*/
|
|
113
|
+
export function decryptSecret(encrypted, key) {
|
|
114
|
+
const decipher = crypto.createDecipheriv('aes-256-gcm', key, Buffer.from(encrypted.iv, 'hex'));
|
|
115
|
+
decipher.setAuthTag(Buffer.from(encrypted.tag, 'hex'));
|
|
116
|
+
const plaintext = Buffer.concat([
|
|
117
|
+
decipher.update(Buffer.from(encrypted.ciphertext, 'hex')),
|
|
118
|
+
decipher.final(),
|
|
119
|
+
]);
|
|
120
|
+
return plaintext.toString('utf8');
|
|
121
|
+
}
|
|
122
|
+
// ---------------------------------------------------------------------------
|
|
123
|
+
// Wallet-level encrypt / decrypt
|
|
124
|
+
// ---------------------------------------------------------------------------
|
|
125
|
+
/**
|
|
126
|
+
* Encrypt a wallet's sensitive fields (privateKey and/or mnemonic) using
|
|
127
|
+
* AES-256-GCM with a key derived from the supplied mnemonic + a fresh
|
|
128
|
+
* random salt.
|
|
129
|
+
*
|
|
130
|
+
* The returned wallet has:
|
|
131
|
+
* - privateKey set to undefined
|
|
132
|
+
* - mnemonic set to undefined
|
|
133
|
+
* - encryptedSecrets populated with the ciphertext bundle
|
|
134
|
+
*
|
|
135
|
+
* The in-memory wallet object passed in is not mutated.
|
|
136
|
+
*
|
|
137
|
+
* @param wallet - Wallet whose secrets should be encrypted
|
|
138
|
+
* @param mnemonic - BIP39 mnemonic used as key-derivation material
|
|
139
|
+
*/
|
|
140
|
+
export function encryptWalletSecrets(wallet, mnemonic) {
|
|
141
|
+
const salt = crypto.randomBytes(SALT_BYTES);
|
|
142
|
+
const key = deriveStorageKey(mnemonic, salt);
|
|
143
|
+
const bundle = {
|
|
144
|
+
version: 1,
|
|
145
|
+
salt: salt.toString('hex'),
|
|
146
|
+
};
|
|
147
|
+
if (wallet.privateKey) {
|
|
148
|
+
bundle.privateKey = encryptSecret(wallet.privateKey, key);
|
|
149
|
+
}
|
|
150
|
+
if (wallet.mnemonic) {
|
|
151
|
+
bundle.mnemonic = encryptSecret(wallet.mnemonic, key);
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
...wallet,
|
|
155
|
+
privateKey: undefined,
|
|
156
|
+
mnemonic: undefined,
|
|
157
|
+
encryptedSecrets: bundle,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Decrypt a wallet's EncryptedKeyBundle back into plaintext fields.
|
|
162
|
+
*
|
|
163
|
+
* If the wallet has no encryptedSecrets the wallet is returned unchanged.
|
|
164
|
+
* Throws if the mnemonic is wrong (AES-GCM authentication will fail).
|
|
165
|
+
*
|
|
166
|
+
* @param wallet - Wallet with encryptedSecrets populated
|
|
167
|
+
* @param mnemonic - BIP39 mnemonic used as key-derivation material
|
|
168
|
+
*/
|
|
169
|
+
export function decryptWalletSecrets(wallet, mnemonic) {
|
|
170
|
+
if (!wallet.encryptedSecrets) {
|
|
171
|
+
return wallet;
|
|
172
|
+
}
|
|
173
|
+
const { encryptedSecrets } = wallet;
|
|
174
|
+
const salt = Buffer.from(encryptedSecrets.salt, 'hex');
|
|
175
|
+
const key = deriveStorageKey(mnemonic, salt);
|
|
176
|
+
const decrypted = {};
|
|
177
|
+
if (encryptedSecrets.privateKey) {
|
|
178
|
+
decrypted.privateKey = decryptSecret(encryptedSecrets.privateKey, key);
|
|
179
|
+
}
|
|
180
|
+
if (encryptedSecrets.mnemonic) {
|
|
181
|
+
decrypted.mnemonic = decryptSecret(encryptedSecrets.mnemonic, key);
|
|
182
|
+
}
|
|
183
|
+
return { ...wallet, ...decrypted };
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=wallet-crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-crypto.js","sourceRoot":"","sources":["../../../src/wallet/wallet-crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Handles wallet creation, storage, and retrieval with per-agent isolation.
|
|
6
6
|
* Phase 5A: Added canister sync functionality.
|
|
7
7
|
*/
|
|
8
|
-
import type { WalletData, WalletCreationOptions, WalletStorageOptions } from './types.js';
|
|
8
|
+
import type { WalletData, WalletCreationOptions, WalletStorageOptions, HsmWalletCreationOptions } from './types.js';
|
|
9
9
|
/**
|
|
10
10
|
* Create a new wallet
|
|
11
11
|
*
|
|
@@ -23,7 +23,7 @@ export declare function createWallet(options: WalletCreationOptions, storageOpti
|
|
|
23
23
|
* @param storageOptions - Storage options
|
|
24
24
|
* @returns Imported wallet data
|
|
25
25
|
*/
|
|
26
|
-
export declare function importWalletFromPrivateKey(agentId: string, chain: string, privateKey: string, storageOptions?: WalletStorageOptions): WalletData;
|
|
26
|
+
export declare function importWalletFromPrivateKey(agentId: string, chain: string, privateKey: string, storageOptions?: WalletStorageOptions, chainMetadata?: Record<string, unknown>): WalletData;
|
|
27
27
|
/**
|
|
28
28
|
* Import wallet from seed phrase
|
|
29
29
|
*
|
|
@@ -34,7 +34,7 @@ export declare function importWalletFromPrivateKey(agentId: string, chain: strin
|
|
|
34
34
|
* @param storageOptions - Storage options
|
|
35
35
|
* @returns Imported wallet data
|
|
36
36
|
*/
|
|
37
|
-
export declare function importWalletFromSeed(agentId: string, chain: string, seedPhrase: string, derivationPath?: string, storageOptions?: WalletStorageOptions): WalletData;
|
|
37
|
+
export declare function importWalletFromSeed(agentId: string, chain: string, seedPhrase: string, derivationPath?: string, storageOptions?: WalletStorageOptions, chainMetadata?: Record<string, unknown>): WalletData;
|
|
38
38
|
/**
|
|
39
39
|
* Import wallet from mnemonic
|
|
40
40
|
*
|
|
@@ -45,7 +45,7 @@ export declare function importWalletFromSeed(agentId: string, chain: string, see
|
|
|
45
45
|
* @param storageOptions - Storage options
|
|
46
46
|
* @returns Imported wallet data
|
|
47
47
|
*/
|
|
48
|
-
export declare function importWalletFromMnemonic(agentId: string, chain: string, mnemonic: string, derivationPath?: string, storageOptions?: WalletStorageOptions): WalletData;
|
|
48
|
+
export declare function importWalletFromMnemonic(agentId: string, chain: string, mnemonic: string, derivationPath?: string, storageOptions?: WalletStorageOptions, chainMetadata?: Record<string, unknown>): WalletData;
|
|
49
49
|
/**
|
|
50
50
|
* Generate new wallet
|
|
51
51
|
*
|
|
@@ -126,6 +126,26 @@ export declare function clearCachedConnection(agentId: string, walletId: string)
|
|
|
126
126
|
* @returns True if valid
|
|
127
127
|
*/
|
|
128
128
|
export declare function validateSeedPhraseWrapper(seedPhrase: string): boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Create a wallet whose private key is generated and permanently stored inside
|
|
131
|
+
* a hardware secure element (Ledger) or Trusted Execution Environment (SGX).
|
|
132
|
+
*
|
|
133
|
+
* Security guarantees:
|
|
134
|
+
* - The private key is generated inside the secure boundary.
|
|
135
|
+
* - The BIP39 mnemonic never exists in this process (Ledger) or is sealed
|
|
136
|
+
* inside the enclave (SGX).
|
|
137
|
+
* - Only the public key and chain address cross the hardware boundary.
|
|
138
|
+
* - The returned WalletData has privateKey=undefined and mnemonic=undefined.
|
|
139
|
+
*
|
|
140
|
+
* @param options - HSM-specific wallet creation options.
|
|
141
|
+
* @param storageOptions - Where / how to persist the wallet metadata.
|
|
142
|
+
* @returns WalletData with address/publicKey populated, secrets absent.
|
|
143
|
+
*
|
|
144
|
+
* @throws {HsmNotAvailableError} when device / daemon is unreachable.
|
|
145
|
+
* @throws {HsmCurveUnsupportedError} when the chain's curve is unsupported.
|
|
146
|
+
* @throws {HsmOperationError} on device-level failures.
|
|
147
|
+
*/
|
|
148
|
+
export declare function createWalletWithHsm(options: HsmWalletCreationOptions, storageOptions?: WalletStorageOptions): Promise<WalletData>;
|
|
129
149
|
/**
|
|
130
150
|
* Sync wallet to canister (register wallet metadata)
|
|
131
151
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-manager.d.ts","sourceRoot":"","sources":["../../../src/wallet/wallet-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,12 +90,13 @@ export function createWallet(options, storageOptions = {}) {
|
|
|
90
90
|
* @param storageOptions - Storage options
|
|
91
91
|
* @returns Imported wallet data
|
|
92
92
|
*/
|
|
93
|
-
export function importWalletFromPrivateKey(agentId, chain, privateKey, storageOptions = {}) {
|
|
93
|
+
export function importWalletFromPrivateKey(agentId, chain, privateKey, storageOptions = {}, chainMetadata) {
|
|
94
94
|
return createWallet({
|
|
95
95
|
agentId,
|
|
96
96
|
chain: chain,
|
|
97
97
|
method: 'private-key',
|
|
98
98
|
privateKey,
|
|
99
|
+
chainMetadata,
|
|
99
100
|
}, storageOptions);
|
|
100
101
|
}
|
|
101
102
|
/**
|
|
@@ -108,13 +109,14 @@ export function importWalletFromPrivateKey(agentId, chain, privateKey, storageOp
|
|
|
108
109
|
* @param storageOptions - Storage options
|
|
109
110
|
* @returns Imported wallet data
|
|
110
111
|
*/
|
|
111
|
-
export function importWalletFromSeed(agentId, chain, seedPhrase, derivationPath, storageOptions = {}) {
|
|
112
|
+
export function importWalletFromSeed(agentId, chain, seedPhrase, derivationPath, storageOptions = {}, chainMetadata) {
|
|
112
113
|
return createWallet({
|
|
113
114
|
agentId,
|
|
114
115
|
chain: chain,
|
|
115
116
|
method: 'seed',
|
|
116
117
|
seedPhrase,
|
|
117
118
|
derivationPath,
|
|
119
|
+
chainMetadata,
|
|
118
120
|
}, storageOptions);
|
|
119
121
|
}
|
|
120
122
|
/**
|
|
@@ -127,13 +129,14 @@ export function importWalletFromSeed(agentId, chain, seedPhrase, derivationPath,
|
|
|
127
129
|
* @param storageOptions - Storage options
|
|
128
130
|
* @returns Imported wallet data
|
|
129
131
|
*/
|
|
130
|
-
export function importWalletFromMnemonic(agentId, chain, mnemonic, derivationPath, storageOptions = {}) {
|
|
132
|
+
export function importWalletFromMnemonic(agentId, chain, mnemonic, derivationPath, storageOptions = {}, chainMetadata) {
|
|
131
133
|
return createWallet({
|
|
132
134
|
agentId,
|
|
133
135
|
chain: chain,
|
|
134
136
|
method: 'mnemonic',
|
|
135
137
|
seedPhrase: mnemonic,
|
|
136
138
|
derivationPath,
|
|
139
|
+
chainMetadata,
|
|
137
140
|
}, storageOptions);
|
|
138
141
|
}
|
|
139
142
|
/**
|
|
@@ -243,6 +246,70 @@ export function clearCachedConnection(agentId, walletId) {
|
|
|
243
246
|
export function validateSeedPhraseWrapper(seedPhrase) {
|
|
244
247
|
return validateSeedPhrase(seedPhrase);
|
|
245
248
|
}
|
|
249
|
+
// ==================== HSM / TEE Keygen ====================
|
|
250
|
+
/**
|
|
251
|
+
* Create a wallet whose private key is generated and permanently stored inside
|
|
252
|
+
* a hardware secure element (Ledger) or Trusted Execution Environment (SGX).
|
|
253
|
+
*
|
|
254
|
+
* Security guarantees:
|
|
255
|
+
* - The private key is generated inside the secure boundary.
|
|
256
|
+
* - The BIP39 mnemonic never exists in this process (Ledger) or is sealed
|
|
257
|
+
* inside the enclave (SGX).
|
|
258
|
+
* - Only the public key and chain address cross the hardware boundary.
|
|
259
|
+
* - The returned WalletData has privateKey=undefined and mnemonic=undefined.
|
|
260
|
+
*
|
|
261
|
+
* @param options - HSM-specific wallet creation options.
|
|
262
|
+
* @param storageOptions - Where / how to persist the wallet metadata.
|
|
263
|
+
* @returns WalletData with address/publicKey populated, secrets absent.
|
|
264
|
+
*
|
|
265
|
+
* @throws {HsmNotAvailableError} when device / daemon is unreachable.
|
|
266
|
+
* @throws {HsmCurveUnsupportedError} when the chain's curve is unsupported.
|
|
267
|
+
* @throws {HsmOperationError} on device-level failures.
|
|
268
|
+
*/
|
|
269
|
+
export async function createWalletWithHsm(options, storageOptions = {}) {
|
|
270
|
+
const { createHsmProvider } = await import('./hsm/index.js');
|
|
271
|
+
const { getDefaultDerivationPath } = await import('./key-derivation.js');
|
|
272
|
+
// Determine curve from chain
|
|
273
|
+
const chain = options.chain.toLowerCase();
|
|
274
|
+
const isEd25519Chain = ['solana', 'icp', 'arweave'].includes(chain);
|
|
275
|
+
const curve = isEd25519Chain ? 'ed25519' : 'secp256k1';
|
|
276
|
+
const derivationPath = options.derivationPath ?? getDefaultDerivationPath(chain);
|
|
277
|
+
let provider = null;
|
|
278
|
+
try {
|
|
279
|
+
provider = await createHsmProvider(options.hsmBackend, options.hsmOptions ?? {});
|
|
280
|
+
const pubKeyResult = await provider.getPublicKey(derivationPath, curve);
|
|
281
|
+
const deviceId = await provider.deviceId();
|
|
282
|
+
const walletData = {
|
|
283
|
+
id: options.walletId ?? generateWalletId(),
|
|
284
|
+
agentId: options.agentId,
|
|
285
|
+
chain: options.chain,
|
|
286
|
+
address: pubKeyResult.address,
|
|
287
|
+
// No privateKey or mnemonic – they stay inside the hardware boundary.
|
|
288
|
+
privateKey: undefined,
|
|
289
|
+
mnemonic: undefined,
|
|
290
|
+
seedDerivationPath: derivationPath,
|
|
291
|
+
createdAt: Date.now(),
|
|
292
|
+
updatedAt: Date.now(),
|
|
293
|
+
creationMethod: 'hsm',
|
|
294
|
+
chainMetadata: {
|
|
295
|
+
hsm: {
|
|
296
|
+
backend: options.hsmBackend,
|
|
297
|
+
deviceId,
|
|
298
|
+
derivationPath,
|
|
299
|
+
curve,
|
|
300
|
+
createdAt: new Date().toISOString(),
|
|
301
|
+
publicKeyHex: pubKeyResult.publicKeyHex,
|
|
302
|
+
},
|
|
303
|
+
},
|
|
304
|
+
};
|
|
305
|
+
saveWallet(walletData, storageOptions);
|
|
306
|
+
return walletData;
|
|
307
|
+
}
|
|
308
|
+
finally {
|
|
309
|
+
if (provider)
|
|
310
|
+
await provider.close();
|
|
311
|
+
}
|
|
312
|
+
}
|
|
246
313
|
// ==================== Phase 5A: Canister Sync Functions ====================
|
|
247
314
|
/**
|
|
248
315
|
* Sync wallet to canister (register wallet metadata)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-manager.js","sourceRoot":"","sources":["../../../src/wallet/wallet-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,19 +37,27 @@ export declare function getWalletFilePath(agentId: string, walletId: string, opt
|
|
|
37
37
|
*/
|
|
38
38
|
export declare function ensureWalletDirectories(agentId: string, options?: WalletStorageOptions): void;
|
|
39
39
|
/**
|
|
40
|
-
* Save wallet to
|
|
40
|
+
* Save wallet to storage, encrypting private keys and mnemonics with
|
|
41
|
+
* AES-256-GCM when options.encryptionKey (a BIP39 mnemonic) is supplied.
|
|
41
42
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
43
|
+
* When encryption is active the on-disk CBOR file will contain an
|
|
44
|
+
* `encryptedSecrets` bundle and the plaintext `privateKey` / `mnemonic`
|
|
45
|
+
* fields will be absent, ensuring no sensitive material is committed to
|
|
46
|
+
* the canister or filesystem in cleartext.
|
|
47
|
+
*
|
|
48
|
+
* @param wallet - Wallet data to save
|
|
49
|
+
* @param options - Storage options; supply `encryptionKey` to enable at-rest
|
|
50
|
+
* encryption of private keys / mnemonics
|
|
44
51
|
*/
|
|
45
52
|
export declare function saveWallet(wallet: WalletData, options?: WalletStorageOptions): void;
|
|
46
53
|
/**
|
|
47
|
-
* Load wallet from storage
|
|
54
|
+
* Load wallet from storage, decrypting secrets when options.encryptionKey
|
|
55
|
+
* is supplied and the wallet contains an encrypted bundle.
|
|
48
56
|
*
|
|
49
|
-
* @param agentId
|
|
57
|
+
* @param agentId - Agent ID
|
|
50
58
|
* @param walletId - Wallet ID
|
|
51
|
-
* @param options
|
|
52
|
-
* @returns Loaded wallet data or null if not found
|
|
59
|
+
* @param options - Storage options; supply `encryptionKey` to decrypt secrets
|
|
60
|
+
* @returns Loaded (and optionally decrypted) wallet data, or null if not found
|
|
53
61
|
*/
|
|
54
62
|
export declare function loadWallet(agentId: string, walletId: string, options?: WalletStorageOptions): WalletData | null;
|
|
55
63
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-storage.d.ts","sourceRoot":"","sources":["../../../src/wallet/wallet-storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,CAG3E;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAIR;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAIR;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,IAAI,CAMN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,oBAAyB,GACjC,IAAI,CAiBN;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,UAAU,GAAG,IAAI,CAoBnB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,IAAI,CAON;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,MAAM,EAAE,CAiBV;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,EAAE,CAkBvE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAGT;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC;IACD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;CACf,GAAG,IAAI,CAcP;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,oBAAyB,GACjC,IAAI,CAoBN;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,oBAAyB,GACjC,IAAI,CAmBN;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,IAAI,CAaN;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAmBR"}
|
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
import * as fs from 'node:fs';
|
|
8
8
|
import * as path from 'node:path';
|
|
9
9
|
import * as os from 'node:os';
|
|
10
|
-
import { serializeWallet, deserializeWallet,
|
|
10
|
+
import { serializeWallet, deserializeWallet, } from './cbor-serializer.js';
|
|
11
|
+
import { encryptWalletSecrets, decryptWalletSecrets, } from './wallet-crypto.js';
|
|
12
|
+
import { sanitizePathPart, atomicWriteFileSync, } from '../utils/path-validation.js';
|
|
11
13
|
/**
|
|
12
14
|
* Get base directory for wallet storage
|
|
13
15
|
*
|
|
@@ -27,7 +29,8 @@ export function getWalletBaseDir(options = {}) {
|
|
|
27
29
|
*/
|
|
28
30
|
export function getAgentWalletDir(agentId, options = {}) {
|
|
29
31
|
const baseDir = getWalletBaseDir(options);
|
|
30
|
-
|
|
32
|
+
// SEC-12: reject `..`, separators, NUL, etc. before joining
|
|
33
|
+
return path.join(baseDir, sanitizePathPart(agentId));
|
|
31
34
|
}
|
|
32
35
|
/**
|
|
33
36
|
* Get wallet file path
|
|
@@ -39,7 +42,8 @@ export function getAgentWalletDir(agentId, options = {}) {
|
|
|
39
42
|
*/
|
|
40
43
|
export function getWalletFilePath(agentId, walletId, options = {}) {
|
|
41
44
|
const agentDir = getAgentWalletDir(agentId, options);
|
|
42
|
-
|
|
45
|
+
// SEC-12: walletId is also user-supplied
|
|
46
|
+
return path.join(agentDir, `${sanitizePathPart(walletId)}.wallet`);
|
|
43
47
|
}
|
|
44
48
|
/**
|
|
45
49
|
* Ensure wallet directories exist
|
|
@@ -54,28 +58,40 @@ export function ensureWalletDirectories(agentId, options = {}) {
|
|
|
54
58
|
}
|
|
55
59
|
}
|
|
56
60
|
/**
|
|
57
|
-
* Save wallet to
|
|
61
|
+
* Save wallet to storage, encrypting private keys and mnemonics with
|
|
62
|
+
* AES-256-GCM when options.encryptionKey (a BIP39 mnemonic) is supplied.
|
|
58
63
|
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
64
|
+
* When encryption is active the on-disk CBOR file will contain an
|
|
65
|
+
* `encryptedSecrets` bundle and the plaintext `privateKey` / `mnemonic`
|
|
66
|
+
* fields will be absent, ensuring no sensitive material is committed to
|
|
67
|
+
* the canister or filesystem in cleartext.
|
|
68
|
+
*
|
|
69
|
+
* @param wallet - Wallet data to save
|
|
70
|
+
* @param options - Storage options; supply `encryptionKey` to enable at-rest
|
|
71
|
+
* encryption of private keys / mnemonics
|
|
61
72
|
*/
|
|
62
73
|
export function saveWallet(wallet, options = {}) {
|
|
63
74
|
// Ensure directories exist
|
|
64
75
|
ensureWalletDirectories(wallet.agentId, options);
|
|
76
|
+
// Encrypt sensitive fields when a key is available
|
|
77
|
+
const walletToStore = options.encryptionKey
|
|
78
|
+
? encryptWalletSecrets(wallet, options.encryptionKey)
|
|
79
|
+
: wallet;
|
|
65
80
|
// Serialize wallet to CBOR
|
|
66
|
-
const serialized = serializeWallet(
|
|
81
|
+
const serialized = serializeWallet(walletToStore);
|
|
67
82
|
// Get wallet file path
|
|
68
83
|
const walletPath = getWalletFilePath(wallet.agentId, wallet.id, options);
|
|
69
|
-
//
|
|
70
|
-
|
|
84
|
+
// SEC-17: atomic write so a crash mid-flight doesn't corrupt the wallet
|
|
85
|
+
atomicWriteFileSync(walletPath, Buffer.from(serialized), { mode: 0o600 });
|
|
71
86
|
}
|
|
72
87
|
/**
|
|
73
|
-
* Load wallet from storage
|
|
88
|
+
* Load wallet from storage, decrypting secrets when options.encryptionKey
|
|
89
|
+
* is supplied and the wallet contains an encrypted bundle.
|
|
74
90
|
*
|
|
75
|
-
* @param agentId
|
|
91
|
+
* @param agentId - Agent ID
|
|
76
92
|
* @param walletId - Wallet ID
|
|
77
|
-
* @param options
|
|
78
|
-
* @returns Loaded wallet data or null if not found
|
|
93
|
+
* @param options - Storage options; supply `encryptionKey` to decrypt secrets
|
|
94
|
+
* @returns Loaded (and optionally decrypted) wallet data, or null if not found
|
|
79
95
|
*/
|
|
80
96
|
export function loadWallet(agentId, walletId, options = {}) {
|
|
81
97
|
const walletPath = getWalletFilePath(agentId, walletId, options);
|
|
@@ -85,12 +101,12 @@ export function loadWallet(agentId, walletId, options = {}) {
|
|
|
85
101
|
}
|
|
86
102
|
// Read wallet file
|
|
87
103
|
const data = fs.readFileSync(walletPath);
|
|
88
|
-
//
|
|
89
|
-
if (!validateCborData(new Uint8Array(data))) {
|
|
90
|
-
throw new Error(`Invalid wallet data: ${walletId}`);
|
|
91
|
-
}
|
|
92
|
-
// Deserialize wallet
|
|
104
|
+
// Deserialize wallet (validation is done inside deserializeWallet)
|
|
93
105
|
const wallet = deserializeWallet(new Uint8Array(data));
|
|
106
|
+
// Decrypt secrets when a key is present
|
|
107
|
+
if (options.encryptionKey && wallet.encryptedSecrets) {
|
|
108
|
+
return decryptWalletSecrets(wallet, options.encryptionKey);
|
|
109
|
+
}
|
|
94
110
|
return wallet;
|
|
95
111
|
}
|
|
96
112
|
/**
|