agentvault 1.0.1 → 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 +362 -6
- 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 +5 -5
- 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 +308 -25
- 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 +29 -12
- 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 +2 -2
- 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 +1 -1
- 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 +2 -2
- 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 +72 -8
- 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 +5 -5
- 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 +19 -2
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +162 -37
- 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 +4 -4
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +1 -1
- 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 +3 -1
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +33 -8
- 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 +4 -4
- 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 +1 -1
- 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 +3 -27
- package/dist/cli/commands/wallet-sign.js.map +1 -0
- package/dist/cli/commands/wallet.d.ts +62 -1
- package/dist/cli/commands/wallet.d.ts.map +1 -0
- package/dist/cli/commands/wallet.js +313 -43
- 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 +2 -2
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +77 -5
- 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 +89 -0
- package/dist/src/archival/archive-manager.d.ts.map +1 -0
- package/dist/src/archival/archive-manager.js +300 -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 +89 -0
- package/dist/src/archival/arweave-client.d.ts.map +1 -0
- package/dist/src/archival/arweave-client.js +226 -0
- package/dist/src/archival/arweave-client.js.map +1 -0
- package/dist/src/archival/index.d.ts +11 -0
- package/dist/src/archival/index.d.ts.map +1 -0
- package/dist/src/archival/index.js +9 -0
- 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 +173 -0
- package/dist/src/backup/backup.d.ts.map +1 -0
- package/dist/src/backup/backup.js +640 -0
- package/dist/src/backup/backup.js.map +1 -0
- package/dist/src/backup/index.d.ts +9 -0
- package/dist/src/backup/index.d.ts.map +1 -0
- package/dist/src/backup/index.js +9 -0
- 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 +49 -0
- package/dist/src/cloud-storage/cloud-sync.d.ts.map +1 -0
- package/dist/src/cloud-storage/cloud-sync.js +377 -0
- package/dist/src/cloud-storage/cloud-sync.js.map +1 -0
- package/dist/src/cloud-storage/index.d.ts +11 -0
- package/dist/src/cloud-storage/index.d.ts.map +1 -0
- package/{src/cloud-storage/index.ts → dist/src/cloud-storage/index.js} +1 -1
- package/dist/src/cloud-storage/index.js.map +1 -0
- package/dist/src/cloud-storage/provider-detector.d.ts +34 -0
- package/dist/src/cloud-storage/provider-detector.d.ts.map +1 -0
- package/dist/src/cloud-storage/provider-detector.js +158 -0
- package/dist/src/cloud-storage/provider-detector.js.map +1 -0
- package/dist/src/cloud-storage/types.d.ts +96 -0
- package/dist/src/cloud-storage/types.d.ts.map +1 -0
- package/dist/src/cloud-storage/types.js +10 -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 +7 -0
- package/dist/src/debugging/index.d.ts.map +1 -0
- package/{src/debugging/index.ts → dist/src/debugging/index.js} +2 -1
- package/dist/src/debugging/index.js.map +1 -0
- package/dist/src/debugging/logs.d.ts +32 -0
- package/dist/src/debugging/logs.d.ts.map +1 -0
- package/dist/src/debugging/logs.js +158 -0
- package/dist/src/debugging/logs.js.map +1 -0
- package/dist/src/debugging/types.d.ts +91 -0
- package/dist/src/debugging/types.d.ts.map +1 -0
- package/dist/src/debugging/types.js +5 -0
- package/dist/src/debugging/types.js.map +1 -0
- package/dist/src/deployment/deployer.d.ts +52 -0
- package/dist/src/deployment/deployer.d.ts.map +1 -0
- package/dist/src/deployment/deployer.js +343 -0
- package/dist/src/deployment/deployer.js.map +1 -0
- package/dist/src/deployment/icpClient.d.ts +144 -0
- package/dist/src/deployment/icpClient.d.ts.map +1 -0
- package/dist/src/deployment/icpClient.js +549 -0
- package/dist/src/deployment/icpClient.js.map +1 -0
- package/dist/src/deployment/index.d.ts +11 -0
- package/dist/src/deployment/index.d.ts.map +1 -0
- package/dist/src/deployment/index.js +14 -0
- package/dist/src/deployment/index.js.map +1 -0
- package/dist/src/deployment/promotion.d.ts +32 -0
- package/dist/src/deployment/promotion.d.ts.map +1 -0
- package/dist/src/deployment/promotion.js +114 -0
- package/dist/src/deployment/promotion.js.map +1 -0
- package/dist/src/deployment/types.d.ts +102 -0
- package/dist/src/deployment/types.d.ts.map +1 -0
- package/dist/src/deployment/types.js +5 -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 +112 -0
- package/dist/src/icp/batch.d.ts.map +1 -0
- package/dist/src/icp/batch.js +279 -0
- package/dist/src/icp/batch.js.map +1 -0
- package/dist/src/icp/cycles.d.ts +29 -0
- package/dist/src/icp/cycles.d.ts.map +1 -0
- package/{src/icp/cycles.ts → dist/src/icp/cycles.js} +8 -22
- package/dist/src/icp/cycles.js.map +1 -0
- package/dist/src/icp/environment.d.ts +60 -0
- package/dist/src/icp/environment.d.ts.map +1 -0
- package/dist/src/icp/environment.js +183 -0
- package/dist/src/icp/environment.js.map +1 -0
- package/dist/src/icp/icpcli.d.ts +204 -0
- package/dist/src/icp/icpcli.d.ts.map +1 -0
- package/dist/src/icp/icpcli.js +374 -0
- package/dist/src/icp/icpcli.js.map +1 -0
- package/dist/src/icp/icwasm.d.ts +94 -0
- package/dist/src/icp/icwasm.d.ts.map +1 -0
- package/dist/src/icp/icwasm.js +197 -0
- package/dist/src/icp/icwasm.js.map +1 -0
- package/dist/src/icp/identity.d.ts +50 -0
- package/dist/src/icp/identity.d.ts.map +1 -0
- package/{src/icp/identity.ts → dist/src/icp/identity.js} +15 -28
- package/dist/src/icp/identity.js.map +1 -0
- package/dist/src/icp/index.d.ts +16 -0
- package/dist/src/icp/index.d.ts.map +1 -0
- package/dist/src/icp/index.js +20 -0
- package/dist/src/icp/index.js.map +1 -0
- package/dist/src/icp/optimization.d.ts +16 -0
- package/dist/src/icp/optimization.d.ts.map +1 -0
- package/dist/src/icp/optimization.js +225 -0
- package/dist/src/icp/optimization.js.map +1 -0
- package/dist/src/icp/tokens.d.ts +24 -0
- package/dist/src/icp/tokens.d.ts.map +1 -0
- package/{src/icp/tokens.ts → dist/src/icp/tokens.js} +5 -12
- package/dist/src/icp/tokens.js.map +1 -0
- package/dist/src/icp/tool-detector.d.ts +31 -0
- package/dist/src/icp/tool-detector.d.ts.map +1 -0
- package/dist/src/icp/tool-detector.js +118 -0
- package/dist/src/icp/tool-detector.js.map +1 -0
- package/dist/src/icp/types.d.ts +493 -0
- package/dist/src/icp/types.d.ts.map +1 -0
- package/dist/src/icp/types.js +7 -0
- package/dist/src/icp/types.js.map +1 -0
- package/dist/src/index.d.ts +12 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +39 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/inference/bittensor-client.d.ts +161 -0
- package/dist/src/inference/bittensor-client.d.ts.map +1 -0
- package/dist/src/inference/bittensor-client.js +317 -0
- 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 +13 -0
- package/dist/src/inference/index.d.ts.map +1 -0
- package/dist/src/inference/index.js +13 -0
- package/dist/src/inference/index.js.map +1 -0
- package/dist/src/inference/inference-manager.d.ts +76 -0
- package/dist/src/inference/inference-manager.d.ts.map +1 -0
- package/dist/src/inference/inference-manager.js +228 -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 +7 -0
- package/dist/src/metrics/index.d.ts.map +1 -0
- package/{src/metrics/index.ts → dist/src/metrics/index.js} +1 -1
- package/dist/src/metrics/index.js.map +1 -0
- package/dist/src/metrics/metrics.d.ts +39 -0
- package/dist/src/metrics/metrics.d.ts.map +1 -0
- package/dist/src/metrics/metrics.js +129 -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 +51 -0
- package/dist/src/monitoring/alerting.d.ts.map +1 -0
- package/dist/src/monitoring/alerting.js +169 -0
- package/dist/src/monitoring/alerting.js.map +1 -0
- package/dist/src/monitoring/health.d.ts +48 -0
- package/dist/src/monitoring/health.d.ts.map +1 -0
- package/dist/src/monitoring/health.js +227 -0
- package/dist/src/monitoring/health.js.map +1 -0
- package/dist/src/monitoring/index.d.ts +10 -0
- package/dist/src/monitoring/index.d.ts.map +1 -0
- package/dist/src/monitoring/index.js +12 -0
- package/dist/src/monitoring/index.js.map +1 -0
- package/dist/src/monitoring/info.d.ts +15 -0
- package/dist/src/monitoring/info.d.ts.map +1 -0
- package/dist/src/monitoring/info.js +109 -0
- package/dist/src/monitoring/info.js.map +1 -0
- package/dist/src/monitoring/types.d.ts +119 -0
- package/dist/src/monitoring/types.d.ts.map +1 -0
- package/dist/src/monitoring/types.js +7 -0
- package/dist/src/monitoring/types.js.map +1 -0
- package/dist/src/network/index.d.ts +5 -0
- package/dist/src/network/index.d.ts.map +1 -0
- package/{src/network/index.ts → dist/src/network/index.js} +1 -1
- package/dist/src/network/index.js.map +1 -0
- package/dist/src/network/network-config.d.ts +31 -0
- package/dist/src/network/network-config.d.ts.map +1 -0
- package/dist/src/network/network-config.js +109 -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 +61 -0
- package/dist/src/packaging/compiler.d.ts.map +1 -0
- package/dist/src/packaging/compiler.js +562 -0
- package/dist/src/packaging/compiler.js.map +1 -0
- package/dist/src/packaging/config-persistence.d.ts +46 -0
- package/dist/src/packaging/config-persistence.d.ts.map +1 -0
- package/dist/src/packaging/config-persistence.js +108 -0
- package/dist/src/packaging/config-persistence.js.map +1 -0
- package/dist/src/packaging/config-schemas.d.ts +157 -0
- package/dist/src/packaging/config-schemas.d.ts.map +1 -0
- package/dist/src/packaging/config-schemas.js +62 -0
- package/dist/src/packaging/config-schemas.js.map +1 -0
- package/dist/src/packaging/detector.d.ts +26 -0
- package/dist/src/packaging/detector.d.ts.map +1 -0
- package/dist/src/packaging/detector.js +207 -0
- package/dist/src/packaging/detector.js.map +1 -0
- package/dist/src/packaging/index.d.ts +22 -0
- package/dist/src/packaging/index.d.ts.map +1 -0
- package/dist/src/packaging/index.js +28 -0
- package/dist/src/packaging/index.js.map +1 -0
- package/dist/src/packaging/packager.d.ts +31 -0
- package/dist/src/packaging/packager.d.ts.map +1 -0
- package/dist/src/packaging/packager.js +90 -0
- package/dist/src/packaging/packager.js.map +1 -0
- package/dist/src/packaging/parsers/clawdbot.d.ts +19 -0
- package/dist/src/packaging/parsers/clawdbot.d.ts.map +1 -0
- package/dist/src/packaging/parsers/clawdbot.js +229 -0
- package/dist/src/packaging/parsers/clawdbot.js.map +1 -0
- package/dist/src/packaging/parsers/cline.d.ts +26 -0
- package/dist/src/packaging/parsers/cline.d.ts.map +1 -0
- package/dist/src/packaging/parsers/cline.js +185 -0
- package/dist/src/packaging/parsers/cline.js.map +1 -0
- package/dist/src/packaging/parsers/generic.d.ts +27 -0
- package/dist/src/packaging/parsers/generic.d.ts.map +1 -0
- package/dist/src/packaging/parsers/generic.js +221 -0
- package/dist/src/packaging/parsers/generic.js.map +1 -0
- package/dist/src/packaging/parsers/goose.d.ts +26 -0
- package/dist/src/packaging/parsers/goose.d.ts.map +1 -0
- package/dist/src/packaging/parsers/goose.js +175 -0
- package/dist/src/packaging/parsers/goose.js.map +1 -0
- package/dist/src/packaging/parsers/index.d.ts +13 -0
- package/dist/src/packaging/parsers/index.d.ts.map +1 -0
- package/{src/packaging/parsers/index.ts → dist/src/packaging/parsers/index.js} +3 -1
- 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 +114 -0
- package/dist/src/packaging/serializer.d.ts.map +1 -0
- package/dist/src/packaging/serializer.js +164 -0
- 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 +131 -0
- package/dist/src/packaging/types.d.ts.map +1 -0
- package/dist/src/packaging/types.js +5 -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 +76 -0
- package/dist/src/packaging/wasmedge-compiler.d.ts.map +1 -0
- package/dist/src/packaging/wasmedge-compiler.js +351 -0
- 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 +17 -0
- package/dist/src/security/index.d.ts.map +1 -0
- package/dist/src/security/index.js +24 -0
- 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 +102 -0
- package/dist/src/security/multisig.d.ts.map +1 -0
- package/dist/src/security/multisig.js +283 -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 +212 -0
- package/dist/src/security/types.d.ts.map +1 -0
- package/dist/src/security/types.js +217 -0
- package/dist/src/security/types.js.map +1 -0
- package/dist/src/security/vetkeys.d.ts +222 -0
- package/dist/src/security/vetkeys.d.ts.map +1 -0
- package/dist/src/security/vetkeys.js +628 -0
- 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 +6 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/{src/testing/index.ts → dist/src/testing/index.js} +1 -1
- package/dist/src/testing/index.js.map +1 -0
- package/dist/src/testing/local-runner.d.ts +23 -0
- package/dist/src/testing/local-runner.d.ts.map +1 -0
- package/dist/src/testing/local-runner.js +226 -0
- package/dist/src/testing/local-runner.js.map +1 -0
- package/dist/src/testing/types.d.ts +98 -0
- package/dist/src/testing/types.d.ts.map +1 -0
- package/dist/src/testing/types.js +5 -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 +82 -0
- package/dist/src/wallet/cbor-serializer.d.ts.map +1 -0
- package/dist/src/wallet/cbor-serializer.js +287 -0
- package/dist/src/wallet/cbor-serializer.js.map +1 -0
- package/dist/src/wallet/chain-dispatcher.d.ts +112 -0
- package/dist/src/wallet/chain-dispatcher.d.ts.map +1 -0
- package/dist/src/wallet/chain-dispatcher.js +230 -0
- package/dist/src/wallet/chain-dispatcher.js.map +1 -0
- package/dist/src/wallet/cross-chain-aggregator.d.ts +119 -0
- package/dist/src/wallet/cross-chain-aggregator.d.ts.map +1 -0
- package/dist/src/wallet/cross-chain-aggregator.js +235 -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 +22 -0
- package/dist/src/wallet/index.d.ts.map +1 -0
- package/dist/src/wallet/index.js +29 -0
- package/dist/src/wallet/index.js.map +1 -0
- package/dist/src/wallet/key-derivation.d.ts +145 -0
- package/dist/src/wallet/key-derivation.d.ts.map +1 -0
- package/dist/src/wallet/key-derivation.js +408 -0
- 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 +111 -0
- package/dist/src/wallet/providers/base-provider.d.ts.map +1 -0
- package/dist/src/wallet/providers/base-provider.js +58 -0
- package/dist/src/wallet/providers/base-provider.js.map +1 -0
- package/dist/src/wallet/providers/cketh-provider.d.ts +104 -0
- package/dist/src/wallet/providers/cketh-provider.d.ts.map +1 -0
- package/dist/src/wallet/providers/cketh-provider.js +343 -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 +115 -0
- package/dist/src/wallet/providers/polkadot-provider.d.ts.map +1 -0
- package/dist/src/wallet/providers/polkadot-provider.js +406 -0
- 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 +102 -0
- package/dist/src/wallet/providers/solana-provider.d.ts.map +1 -0
- package/dist/src/wallet/providers/solana-provider.js +392 -0
- 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 +133 -0
- package/dist/src/wallet/transaction-queue.d.ts.map +1 -0
- package/dist/src/wallet/transaction-queue.js +195 -0
- package/dist/src/wallet/transaction-queue.js.map +1 -0
- package/dist/src/wallet/types.d.ts +222 -0
- package/dist/src/wallet/types.d.ts.map +1 -0
- package/dist/src/wallet/types.js +5 -0
- package/dist/src/wallet/types.js.map +1 -0
- package/dist/src/wallet/vetkeys-adapter.d.ts +134 -0
- package/dist/src/wallet/vetkeys-adapter.d.ts.map +1 -0
- package/dist/src/wallet/vetkeys-adapter.js +304 -0
- 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 +222 -0
- package/dist/src/wallet/wallet-manager.d.ts.map +1 -0
- package/dist/src/wallet/wallet-manager.js +518 -0
- package/dist/src/wallet/wallet-manager.js.map +1 -0
- package/dist/src/wallet/wallet-storage.d.ts +139 -0
- package/dist/src/wallet/wallet-storage.d.ts.map +1 -0
- package/dist/src/wallet/wallet-storage.js +290 -0
- 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 +44 -12
- 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/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/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/pnpm-workspace.yaml +0 -5
- 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/archival/index.ts +0 -8
- package/src/backup/backup.ts +0 -315
- package/src/backup/index.ts +0 -7
- package/src/cloud-storage/cloud-sync.ts +0 -461
- package/src/cloud-storage/provider-detector.ts +0 -198
- package/src/cloud-storage/types.ts +0 -104
- 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/index.ts +0 -8
- 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/index.ts +0 -17
- 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
- package/vercel.json +0 -8
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Agent Trade Consensus
|
|
3
|
+
*
|
|
4
|
+
* Implements a 2-of-2 vote gate that must pass before any trade is executed.
|
|
5
|
+
* Protects against:
|
|
6
|
+
* - Laggy ICP agent double-execution (each proposal carries a monotonic nonce)
|
|
7
|
+
* - Solo-agent trading (both agents must sign within the 30-second window)
|
|
8
|
+
* - Replay attacks (nonce is unique per proposal; votes bind nonce + agentId)
|
|
9
|
+
*
|
|
10
|
+
* Flow:
|
|
11
|
+
* 1. Any agent calls proposeConsensus(signal) → returns sessionId + nonce
|
|
12
|
+
* 2. Both agents call castVote(sessionId, agentId, signature, approve=true)
|
|
13
|
+
* Signature covers: sha256(sessionId + ":" + nonce + ":" + agentId + ":approve")
|
|
14
|
+
* 3. TradeConsensusManager.watchSession() resolves APPROVED once both votes arrive
|
|
15
|
+
* or CANCELLED if the 30-second window expires with < 2 approvals.
|
|
16
|
+
* 4. Callers MUST await the result and abort if status !== 'approved'.
|
|
17
|
+
*/
|
|
18
|
+
import crypto from 'node:crypto';
|
|
19
|
+
// ── Constants ────────────────────────────────────────────────────────────────
|
|
20
|
+
/** Hard deadline: both agents must vote within this window or the trade cancels. */
|
|
21
|
+
export const CONSENSUS_TIMEOUT_MS = 30_000;
|
|
22
|
+
/** Required number of approving votes before a trade may fire. */
|
|
23
|
+
export const REQUIRED_VOTES = 2;
|
|
24
|
+
// ── Signature Helpers ────────────────────────────────────────────────────────
|
|
25
|
+
/**
|
|
26
|
+
* Canonical vote payload string.
|
|
27
|
+
*
|
|
28
|
+
* Both agents must agree on this format — any deviation makes the signature invalid.
|
|
29
|
+
*/
|
|
30
|
+
function votePayload(sessionId, nonce, agentId, approve) {
|
|
31
|
+
const decision = approve ? 'approve' : 'veto';
|
|
32
|
+
return `${sessionId}:${nonce}:${agentId}:${decision}`;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Sign a vote using HMAC-SHA256.
|
|
36
|
+
*
|
|
37
|
+
* @param agentSecret - 32-byte (or longer) secret key unique to this agent.
|
|
38
|
+
* On ICP this can be derived from a VetKey.
|
|
39
|
+
* On Solana this can be derived from the wallet keypair.
|
|
40
|
+
*/
|
|
41
|
+
export function signVote(sessionId, nonce, agentId, approve, agentSecret) {
|
|
42
|
+
const payload = votePayload(sessionId, nonce, agentId, approve);
|
|
43
|
+
return crypto
|
|
44
|
+
.createHmac('sha256', agentSecret)
|
|
45
|
+
.update(payload)
|
|
46
|
+
.digest('hex');
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Verify a vote signature using timing-safe comparison.
|
|
50
|
+
*
|
|
51
|
+
* @returns true if the signature is valid.
|
|
52
|
+
*/
|
|
53
|
+
export function verifyVote(vote, sessionId, agentSecret) {
|
|
54
|
+
const expected = signVote(sessionId, vote.nonce, vote.agentId, vote.approve, agentSecret);
|
|
55
|
+
const expectedBuf = Buffer.from(expected, 'hex');
|
|
56
|
+
const actualBuf = Buffer.from(vote.signature, 'hex');
|
|
57
|
+
// Buffers must be same length for timingSafeEqual; reject mismatched lengths.
|
|
58
|
+
if (expectedBuf.length !== actualBuf.length)
|
|
59
|
+
return false;
|
|
60
|
+
return crypto.timingSafeEqual(expectedBuf, actualBuf);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Manages the full lifecycle of multi-agent trade consensus sessions.
|
|
64
|
+
*
|
|
65
|
+
* Thread-safety note: JS is single-threaded, so Map operations are safe.
|
|
66
|
+
* However, the 30-second timer fires asynchronously — always check session
|
|
67
|
+
* status before acting on a resolved promise.
|
|
68
|
+
*/
|
|
69
|
+
export class TradeConsensusManager {
|
|
70
|
+
sessions = new Map();
|
|
71
|
+
timers = new Map();
|
|
72
|
+
opts;
|
|
73
|
+
constructor(options) {
|
|
74
|
+
this.opts = {
|
|
75
|
+
agentSecrets: options.agentSecrets,
|
|
76
|
+
timeoutMs: options.timeoutMs ?? CONSENSUS_TIMEOUT_MS,
|
|
77
|
+
onSessionUpdate: options.onSessionUpdate ?? (() => { }),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
// ── Propose ───────────────────────────────────────────────────────────────
|
|
81
|
+
/**
|
|
82
|
+
* Open a new consensus session for a trade signal.
|
|
83
|
+
*
|
|
84
|
+
* @returns The session (status = 'pending'). Callers should then
|
|
85
|
+
* distribute the sessionId + nonce to both agents so they can vote.
|
|
86
|
+
*/
|
|
87
|
+
proposeConsensus(signal) {
|
|
88
|
+
const sessionId = `cs_${Date.now()}_${crypto.randomBytes(6).toString('hex')}`;
|
|
89
|
+
const nonce = crypto.randomBytes(16).toString('hex');
|
|
90
|
+
const session = {
|
|
91
|
+
sessionId,
|
|
92
|
+
nonce,
|
|
93
|
+
signal,
|
|
94
|
+
status: 'pending',
|
|
95
|
+
votes: [],
|
|
96
|
+
createdAt: new Date().toISOString(),
|
|
97
|
+
};
|
|
98
|
+
this.sessions.set(sessionId, session);
|
|
99
|
+
// Arm the 30-second kill timer.
|
|
100
|
+
const timer = setTimeout(() => {
|
|
101
|
+
this._expire(sessionId, 'timeout: 30-second window elapsed without 2 approvals');
|
|
102
|
+
}, this.opts.timeoutMs);
|
|
103
|
+
// Allow Node to exit even if a session is pending (don't block teardown).
|
|
104
|
+
if (typeof timer === 'object' && 'unref' in timer) {
|
|
105
|
+
timer.unref();
|
|
106
|
+
}
|
|
107
|
+
this.timers.set(sessionId, timer);
|
|
108
|
+
this.opts.onSessionUpdate(session);
|
|
109
|
+
return { ...session };
|
|
110
|
+
}
|
|
111
|
+
// ── Vote ──────────────────────────────────────────────────────────────────
|
|
112
|
+
/**
|
|
113
|
+
* Cast an agent's vote on a pending session.
|
|
114
|
+
*
|
|
115
|
+
* Accepts only if:
|
|
116
|
+
* 1. The session exists and is still 'pending'.
|
|
117
|
+
* 2. The nonce in the vote matches the session nonce (anti-replay).
|
|
118
|
+
* 3. The agent secret is registered in the manager.
|
|
119
|
+
* 4. The HMAC-SHA256 signature over the canonical payload verifies.
|
|
120
|
+
* 5. The agentId has not already voted in this session (no double-vote).
|
|
121
|
+
*
|
|
122
|
+
* @returns The updated session snapshot.
|
|
123
|
+
* @throws If the session is not found, already resolved, or the vote is invalid.
|
|
124
|
+
*/
|
|
125
|
+
castVote(sessionId, vote) {
|
|
126
|
+
const session = this.sessions.get(sessionId);
|
|
127
|
+
if (!session) {
|
|
128
|
+
throw new Error(`Consensus session not found: ${sessionId}`);
|
|
129
|
+
}
|
|
130
|
+
if (session.status !== 'pending') {
|
|
131
|
+
throw new Error(`Session ${sessionId} is already ${session.status} — votes are no longer accepted`);
|
|
132
|
+
}
|
|
133
|
+
// Anti-replay: nonce must exactly match.
|
|
134
|
+
if (vote.nonce !== session.nonce) {
|
|
135
|
+
throw new Error(`Vote nonce mismatch for session ${sessionId} — possible replay attack`);
|
|
136
|
+
}
|
|
137
|
+
// Check for duplicate vote from this agent.
|
|
138
|
+
if (session.votes.some((v) => v.agentId === vote.agentId)) {
|
|
139
|
+
throw new Error(`Agent ${vote.agentId} has already voted in session ${sessionId}`);
|
|
140
|
+
}
|
|
141
|
+
// Verify signature.
|
|
142
|
+
const secret = this.opts.agentSecrets.get(vote.agentId);
|
|
143
|
+
if (!secret) {
|
|
144
|
+
throw new Error(`Unknown agentId ${vote.agentId} — no secret registered`);
|
|
145
|
+
}
|
|
146
|
+
if (!verifyVote(vote, sessionId, secret)) {
|
|
147
|
+
throw new Error(`Invalid vote signature from agent ${vote.agentId}`);
|
|
148
|
+
}
|
|
149
|
+
// Record the vote.
|
|
150
|
+
session.votes.push({ ...vote });
|
|
151
|
+
// If any agent vetoes, cancel immediately — no trade.
|
|
152
|
+
if (!vote.approve) {
|
|
153
|
+
this._resolve(session, 'cancelled', `agent ${vote.agentId} vetoed the trade`);
|
|
154
|
+
return { ...session };
|
|
155
|
+
}
|
|
156
|
+
// Check if we have reached the required quorum.
|
|
157
|
+
const approvals = session.votes.filter((v) => v.approve).length;
|
|
158
|
+
if (approvals >= REQUIRED_VOTES) {
|
|
159
|
+
this._resolve(session, 'approved');
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
this.opts.onSessionUpdate(session);
|
|
163
|
+
}
|
|
164
|
+
return { ...session };
|
|
165
|
+
}
|
|
166
|
+
// ── Query ─────────────────────────────────────────────────────────────────
|
|
167
|
+
/** Return a snapshot of a session, or undefined if not found. */
|
|
168
|
+
getSession(sessionId) {
|
|
169
|
+
const s = this.sessions.get(sessionId);
|
|
170
|
+
return s ? { ...s } : undefined;
|
|
171
|
+
}
|
|
172
|
+
/** Return all sessions that match a given status. */
|
|
173
|
+
listSessions(status) {
|
|
174
|
+
const result = [];
|
|
175
|
+
for (const s of this.sessions.values()) {
|
|
176
|
+
if (!status || s.status === status) {
|
|
177
|
+
result.push({ ...s });
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return result;
|
|
181
|
+
}
|
|
182
|
+
// ── Watch ─────────────────────────────────────────────────────────────────
|
|
183
|
+
/**
|
|
184
|
+
* Await the final outcome of a consensus session.
|
|
185
|
+
*
|
|
186
|
+
* Resolves once the session reaches 'approved' or 'cancelled'.
|
|
187
|
+
* The returned status is authoritative — callers must check it before executing
|
|
188
|
+
* any trade.
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```ts
|
|
192
|
+
* const { status } = await manager.watchSession(sessionId);
|
|
193
|
+
* if (status !== 'approved') return; // abort — no solo trades
|
|
194
|
+
* await executeTrade(signal);
|
|
195
|
+
* ```
|
|
196
|
+
*/
|
|
197
|
+
watchSession(sessionId) {
|
|
198
|
+
return new Promise((resolve, reject) => {
|
|
199
|
+
const poll = () => {
|
|
200
|
+
const session = this.sessions.get(sessionId);
|
|
201
|
+
if (!session) {
|
|
202
|
+
return reject(new Error(`Session ${sessionId} not found`));
|
|
203
|
+
}
|
|
204
|
+
if (session.status === 'approved' || session.status === 'cancelled') {
|
|
205
|
+
return resolve({ ...session });
|
|
206
|
+
}
|
|
207
|
+
// Re-install the hook by wrapping onSessionUpdate.
|
|
208
|
+
const original = this.opts.onSessionUpdate;
|
|
209
|
+
this.opts.onSessionUpdate = (updated) => {
|
|
210
|
+
original(updated);
|
|
211
|
+
if (updated.sessionId === sessionId &&
|
|
212
|
+
(updated.status === 'approved' || updated.status === 'cancelled')) {
|
|
213
|
+
this.opts.onSessionUpdate = original;
|
|
214
|
+
resolve({ ...updated });
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
};
|
|
218
|
+
poll();
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
// ── Cleanup ───────────────────────────────────────────────────────────────
|
|
222
|
+
/**
|
|
223
|
+
* Remove a session from memory after it has been acted upon.
|
|
224
|
+
* Call this once the trade outcome (executed or cancelled) has been recorded.
|
|
225
|
+
*/
|
|
226
|
+
pruneSession(sessionId) {
|
|
227
|
+
this.sessions.delete(sessionId);
|
|
228
|
+
const timer = this.timers.get(sessionId);
|
|
229
|
+
if (timer) {
|
|
230
|
+
clearTimeout(timer);
|
|
231
|
+
this.timers.delete(sessionId);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/** Cancel all pending sessions and clear all timers (e.g. on shutdown). */
|
|
235
|
+
shutdown() {
|
|
236
|
+
for (const [id, session] of this.sessions.entries()) {
|
|
237
|
+
if (session.status === 'pending') {
|
|
238
|
+
this._resolve(session, 'cancelled', 'manager shutdown');
|
|
239
|
+
}
|
|
240
|
+
const timer = this.timers.get(id);
|
|
241
|
+
if (timer)
|
|
242
|
+
clearTimeout(timer);
|
|
243
|
+
}
|
|
244
|
+
this.timers.clear();
|
|
245
|
+
}
|
|
246
|
+
// ── Private ───────────────────────────────────────────────────────────────
|
|
247
|
+
_resolve(session, status, cancelReason) {
|
|
248
|
+
session.status = status;
|
|
249
|
+
session.resolvedAt = new Date().toISOString();
|
|
250
|
+
if (cancelReason)
|
|
251
|
+
session.cancelReason = cancelReason;
|
|
252
|
+
// Disarm the timeout timer.
|
|
253
|
+
const timer = this.timers.get(session.sessionId);
|
|
254
|
+
if (timer) {
|
|
255
|
+
clearTimeout(timer);
|
|
256
|
+
this.timers.delete(session.sessionId);
|
|
257
|
+
}
|
|
258
|
+
this.opts.onSessionUpdate({ ...session });
|
|
259
|
+
}
|
|
260
|
+
_expire(sessionId, reason) {
|
|
261
|
+
const session = this.sessions.get(sessionId);
|
|
262
|
+
if (session && session.status === 'pending') {
|
|
263
|
+
this._resolve(session, 'cancelled', reason);
|
|
264
|
+
}
|
|
265
|
+
this.timers.delete(sessionId);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
// ── Standalone Helpers ───────────────────────────────────────────────────────
|
|
269
|
+
/**
|
|
270
|
+
* Build a ConsensusVote ready to submit.
|
|
271
|
+
*
|
|
272
|
+
* Agents call this locally before sending the vote to the consensus manager.
|
|
273
|
+
*
|
|
274
|
+
* @param sessionId - Returned by proposeConsensus()
|
|
275
|
+
* @param nonce - Returned by proposeConsensus()
|
|
276
|
+
* @param agentId - Unique identifier for this agent (e.g. "icp-agent-1")
|
|
277
|
+
* @param chain - The chain this agent runs on
|
|
278
|
+
* @param approve - true to approve, false to veto
|
|
279
|
+
* @param agentSecret - The agent's signing secret
|
|
280
|
+
*/
|
|
281
|
+
export function buildVote(sessionId, nonce, agentId, chain, approve, agentSecret) {
|
|
282
|
+
return {
|
|
283
|
+
agentId,
|
|
284
|
+
chain,
|
|
285
|
+
nonce,
|
|
286
|
+
approve,
|
|
287
|
+
signature: signVote(sessionId, nonce, agentId, approve, agentSecret),
|
|
288
|
+
votedAt: new Date().toISOString(),
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=consensus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consensus.js","sourceRoot":"","sources":["../../../src/trading/consensus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trading Security Module
|
|
3
|
+
*
|
|
4
|
+
* Exports all components that implement the trading-specific threat model:
|
|
5
|
+
*
|
|
6
|
+
* - ApiKeyManager: Binance API key storage with mandatory weekly rotation.
|
|
7
|
+
* - IpWhitelistManager: IP / CIDR allowlist with firewall rule generation.
|
|
8
|
+
* - SkillSandbox: Runtime sandbox enforcing no-root + /tmp write confinement
|
|
9
|
+
* for OpenClaw / Clawdbot skills.
|
|
10
|
+
*/
|
|
11
|
+
export { ApiKeyManager, getRotationStatus, isKeyValid, KEY_ROTATION_INTERVAL_DAYS, } from './api-key-manager.js';
|
|
12
|
+
export type { BinanceApiKey, KeyRotationStatus, } from './api-key-manager.js';
|
|
13
|
+
export { IpWhitelistManager, isIpAllowed, validateCidr, generateFirewallRules, } from './ip-whitelist.js';
|
|
14
|
+
export type { WhitelistEntry, WhitelistValidationResult, FirewallRules, } from './ip-whitelist.js';
|
|
15
|
+
export { SkillSandbox, defaultSandbox, SKILL_WRITE_ROOT, } from './skill-sandbox.js';
|
|
16
|
+
export type { SandboxViolation, } from './skill-sandbox.js';
|
|
17
|
+
export { TradeConsensusManager, buildVote, signVote, verifyVote, CONSENSUS_TIMEOUT_MS, REQUIRED_VOTES, } from './consensus.js';
|
|
18
|
+
export type { AgentChain, TradeDirection, TradeSignal, ConsensusVote, ConsensusSession, ConsensusStatus, ConsensusManagerOptions, } from './consensus.js';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/trading/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,aAAa,EACb,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,cAAc,EACd,yBAAyB,EACzB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,uBAAuB,GACxB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trading Security Module
|
|
3
|
+
*
|
|
4
|
+
* Exports all components that implement the trading-specific threat model:
|
|
5
|
+
*
|
|
6
|
+
* - ApiKeyManager: Binance API key storage with mandatory weekly rotation.
|
|
7
|
+
* - IpWhitelistManager: IP / CIDR allowlist with firewall rule generation.
|
|
8
|
+
* - SkillSandbox: Runtime sandbox enforcing no-root + /tmp write confinement
|
|
9
|
+
* for OpenClaw / Clawdbot skills.
|
|
10
|
+
*/
|
|
11
|
+
export { ApiKeyManager, getRotationStatus, isKeyValid, KEY_ROTATION_INTERVAL_DAYS, } from './api-key-manager.js';
|
|
12
|
+
export { IpWhitelistManager, isIpAllowed, validateCidr, generateFirewallRules, } from './ip-whitelist.js';
|
|
13
|
+
export { SkillSandbox, defaultSandbox, SKILL_WRITE_ROOT, } from './skill-sandbox.js';
|
|
14
|
+
export { TradeConsensusManager, buildVote, signVote, verifyVote, CONSENSUS_TIMEOUT_MS, REQUIRED_VOTES, } from './consensus.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/trading/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,cAAc,GACf,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IP Whitelist Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages the set of IPs / CIDR blocks that are permitted to reach the
|
|
5
|
+
* trading VPS. Provides:
|
|
6
|
+
* - Validation of individual addresses and CIDR blocks.
|
|
7
|
+
* - Membership testing (does this source IP pass the whitelist?).
|
|
8
|
+
* - Firewall rule generation for iptables and ufw so the VPS can be
|
|
9
|
+
* bootstrapped from the same config that the application uses.
|
|
10
|
+
*
|
|
11
|
+
* Threat model: only traffic originating from known, controlled IPs should
|
|
12
|
+
* reach the Binance proxy endpoint. This module makes that policy explicit
|
|
13
|
+
* and machine-verifiable.
|
|
14
|
+
*/
|
|
15
|
+
export interface WhitelistEntry {
|
|
16
|
+
/** Human-readable label (e.g. "office-nat", "vps-egress"). */
|
|
17
|
+
label: string;
|
|
18
|
+
/** IPv4 / IPv6 address or CIDR block, e.g. "203.0.113.5" or "10.0.0.0/8". */
|
|
19
|
+
cidr: string;
|
|
20
|
+
/** Optional note about why this entry exists. */
|
|
21
|
+
note?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface WhitelistValidationResult {
|
|
24
|
+
valid: boolean;
|
|
25
|
+
errors: string[];
|
|
26
|
+
}
|
|
27
|
+
export interface FirewallRules {
|
|
28
|
+
/** Raw iptables commands (IPv4). */
|
|
29
|
+
iptables: string[];
|
|
30
|
+
/** ufw allow commands. */
|
|
31
|
+
ufw: string[];
|
|
32
|
+
/** ip6tables commands (IPv6). */
|
|
33
|
+
ip6tables: string[];
|
|
34
|
+
}
|
|
35
|
+
/** Validate a single CIDR / address string. */
|
|
36
|
+
export declare function validateCidr(value: string): WhitelistValidationResult;
|
|
37
|
+
/**
|
|
38
|
+
* Test whether `sourceIp` is permitted by the given whitelist entries.
|
|
39
|
+
*/
|
|
40
|
+
export declare function isIpAllowed(sourceIp: string, entries: WhitelistEntry[]): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Generate iptables / ufw / ip6tables rules that allow only whitelisted IPs
|
|
43
|
+
* to reach `port` (TCP) and drop everything else.
|
|
44
|
+
*
|
|
45
|
+
* The generated commands are idempotent-safe: they use INSERT (iptables) and
|
|
46
|
+
* `ufw allow from ... to any port ...` forms that are safe to run repeatedly.
|
|
47
|
+
*/
|
|
48
|
+
export declare function generateFirewallRules(entries: WhitelistEntry[], port: number, chain?: string): FirewallRules;
|
|
49
|
+
export declare class IpWhitelistManager {
|
|
50
|
+
private entries;
|
|
51
|
+
constructor(entries?: WhitelistEntry[]);
|
|
52
|
+
/** Add a new entry, validating first. Throws on invalid input. */
|
|
53
|
+
add(entry: WhitelistEntry): void;
|
|
54
|
+
/** Remove all entries matching `label`. */
|
|
55
|
+
remove(label: string): void;
|
|
56
|
+
/** Return all entries. */
|
|
57
|
+
getEntries(): Readonly<WhitelistEntry[]>;
|
|
58
|
+
/** Test whether `sourceIp` is allowed by the current whitelist. */
|
|
59
|
+
isAllowed(sourceIp: string): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Assert that `sourceIp` is whitelisted. Throws if it is not.
|
|
62
|
+
* Use this as a guard at trade-execution entry points.
|
|
63
|
+
*/
|
|
64
|
+
assertAllowed(sourceIp: string): void;
|
|
65
|
+
/** Validate every entry and return aggregated errors. */
|
|
66
|
+
validate(): WhitelistValidationResult;
|
|
67
|
+
/** Generate firewall rules for a given port. */
|
|
68
|
+
generateRules(port: number, chain?: string): FirewallRules;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=ip-whitelist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip-whitelist.d.ts","sourceRoot":"","sources":["../../../src/trading/ip-whitelist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,0BAA0B;IAC1B,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,iCAAiC;IACjC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AA+BD,+CAA+C;AAC/C,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,yBAAyB,CAcrE;AAgED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CA0BhF;AAMD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,cAAc,EAAE,EACzB,IAAI,EAAE,MAAM,EACZ,KAAK,SAAU,GACd,aAAa,CAsCf;AAMD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAmB;gBAEtB,OAAO,GAAE,cAAc,EAAO;IAI1C,kEAAkE;IAClE,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAQhC,2CAA2C;IAC3C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3B,0BAA0B;IAC1B,UAAU,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;IAIxC,mEAAmE;IACnE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIpC;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IASrC,yDAAyD;IACzD,QAAQ,IAAI,yBAAyB;IAWrC,gDAAgD;IAChD,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa;CAG3D"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IP Whitelist Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages the set of IPs / CIDR blocks that are permitted to reach the
|
|
5
|
+
* trading VPS. Provides:
|
|
6
|
+
* - Validation of individual addresses and CIDR blocks.
|
|
7
|
+
* - Membership testing (does this source IP pass the whitelist?).
|
|
8
|
+
* - Firewall rule generation for iptables and ufw so the VPS can be
|
|
9
|
+
* bootstrapped from the same config that the application uses.
|
|
10
|
+
*
|
|
11
|
+
* Threat model: only traffic originating from known, controlled IPs should
|
|
12
|
+
* reach the Binance proxy endpoint. This module makes that policy explicit
|
|
13
|
+
* and machine-verifiable.
|
|
14
|
+
*/
|
|
15
|
+
import * as net from 'node:net';
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Validation helpers
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
/** Return true if `s` is a plain IPv4 or IPv6 address (no prefix length). */
|
|
20
|
+
function isPlainIp(s) {
|
|
21
|
+
return net.isIP(s) !== 0;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Return true if `s` is a valid CIDR block.
|
|
25
|
+
* Accepts both IPv4 (e.g. "192.168.1.0/24") and IPv6 (e.g. "2001:db8::/32").
|
|
26
|
+
*/
|
|
27
|
+
function isCidr(s) {
|
|
28
|
+
const slashIdx = s.lastIndexOf('/');
|
|
29
|
+
if (slashIdx === -1)
|
|
30
|
+
return false;
|
|
31
|
+
const ip = s.slice(0, slashIdx);
|
|
32
|
+
const prefixStr = s.slice(slashIdx + 1);
|
|
33
|
+
const prefix = parseInt(prefixStr, 10);
|
|
34
|
+
if (isNaN(prefix) || prefixStr.trim() === '')
|
|
35
|
+
return false;
|
|
36
|
+
const ipVersion = net.isIP(ip);
|
|
37
|
+
if (ipVersion === 4 && prefix >= 0 && prefix <= 32)
|
|
38
|
+
return true;
|
|
39
|
+
if (ipVersion === 6 && prefix >= 0 && prefix <= 128)
|
|
40
|
+
return true;
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
/** Validate a single CIDR / address string. */
|
|
44
|
+
export function validateCidr(value) {
|
|
45
|
+
const errors = [];
|
|
46
|
+
const trimmed = value.trim();
|
|
47
|
+
if (!trimmed) {
|
|
48
|
+
errors.push('Entry is empty');
|
|
49
|
+
return { valid: false, errors };
|
|
50
|
+
}
|
|
51
|
+
if (!isPlainIp(trimmed) && !isCidr(trimmed)) {
|
|
52
|
+
errors.push(`"${trimmed}" is not a valid IPv4/IPv6 address or CIDR block`);
|
|
53
|
+
}
|
|
54
|
+
return { valid: errors.length === 0, errors };
|
|
55
|
+
}
|
|
56
|
+
// ---------------------------------------------------------------------------
|
|
57
|
+
// Membership testing
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
/**
|
|
60
|
+
* Convert an IPv4 address string to a 32-bit unsigned integer.
|
|
61
|
+
*/
|
|
62
|
+
function ipv4ToInt(ip) {
|
|
63
|
+
return ip
|
|
64
|
+
.split('.')
|
|
65
|
+
.reduce((acc, octet) => (acc << 8) | parseInt(octet, 10), 0) >>> 0;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Return true if `ip` falls within the given IPv4 CIDR block.
|
|
69
|
+
*/
|
|
70
|
+
function ipv4InCidr(ip, cidr) {
|
|
71
|
+
const parts = cidr.split('/');
|
|
72
|
+
if (parts.length !== 2)
|
|
73
|
+
return false;
|
|
74
|
+
const [network, prefixStr] = parts;
|
|
75
|
+
const prefix = parseInt(prefixStr, 10);
|
|
76
|
+
if (isNaN(prefix) || prefix < 0 || prefix > 32)
|
|
77
|
+
return false;
|
|
78
|
+
const mask = prefix === 0 ? 0 : (~0 << (32 - prefix)) >>> 0;
|
|
79
|
+
return (ipv4ToInt(ip) & mask) === (ipv4ToInt(network) & mask);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Normalise an IPv6 address to its fully-expanded form using the Node.js
|
|
83
|
+
* URL API (cheapest reliable approach without external deps).
|
|
84
|
+
*/
|
|
85
|
+
function normaliseIpv6(ip) {
|
|
86
|
+
try {
|
|
87
|
+
// Wrapping in brackets lets URL parse it as a host.
|
|
88
|
+
const url = new URL(`http://[${ip}]`);
|
|
89
|
+
// url.hostname strips brackets.
|
|
90
|
+
return url.hostname.slice(1, -1);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return ip;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Return true if `ip` falls within the given IPv6 CIDR block.
|
|
98
|
+
* Uses BigInt for correct 128-bit arithmetic.
|
|
99
|
+
*/
|
|
100
|
+
function ipv6InCidr(ip, cidr) {
|
|
101
|
+
const parts = cidr.split('/');
|
|
102
|
+
if (parts.length !== 2)
|
|
103
|
+
return false;
|
|
104
|
+
const [network, prefixStr] = parts;
|
|
105
|
+
const prefixNum = parseInt(prefixStr, 10);
|
|
106
|
+
if (isNaN(prefixNum) || prefixNum < 0 || prefixNum > 128)
|
|
107
|
+
return false;
|
|
108
|
+
const prefix = BigInt(prefixNum);
|
|
109
|
+
const expand = (addr) => {
|
|
110
|
+
const norm = normaliseIpv6(addr).replace(/:/g, '');
|
|
111
|
+
return BigInt('0x' + norm.padStart(32, '0'));
|
|
112
|
+
};
|
|
113
|
+
const mask = prefix === 0n ? 0n : (~0n << (128n - prefix)) & ((1n << 128n) - 1n);
|
|
114
|
+
return (expand(ip) & mask) === (expand(network) & mask);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Test whether `sourceIp` is permitted by the given whitelist entries.
|
|
118
|
+
*/
|
|
119
|
+
export function isIpAllowed(sourceIp, entries) {
|
|
120
|
+
const ipVersion = net.isIP(sourceIp.trim());
|
|
121
|
+
if (ipVersion === 0)
|
|
122
|
+
return false; // Not a valid IP at all.
|
|
123
|
+
for (const entry of entries) {
|
|
124
|
+
const cidr = entry.cidr.trim();
|
|
125
|
+
// Plain IP — exact match.
|
|
126
|
+
if (isPlainIp(cidr)) {
|
|
127
|
+
if (cidr === sourceIp.trim())
|
|
128
|
+
return true;
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
// CIDR block.
|
|
132
|
+
if (isCidr(cidr)) {
|
|
133
|
+
const networkIp = cidr.split('/')[0];
|
|
134
|
+
if (!networkIp)
|
|
135
|
+
continue;
|
|
136
|
+
const networkVersion = net.isIP(networkIp);
|
|
137
|
+
if (networkVersion !== ipVersion)
|
|
138
|
+
continue; // IPv4 vs IPv6 mismatch.
|
|
139
|
+
if (ipVersion === 4 && ipv4InCidr(sourceIp.trim(), cidr))
|
|
140
|
+
return true;
|
|
141
|
+
if (ipVersion === 6 && ipv6InCidr(sourceIp.trim(), cidr))
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
// ---------------------------------------------------------------------------
|
|
148
|
+
// Firewall rule generation
|
|
149
|
+
// ---------------------------------------------------------------------------
|
|
150
|
+
/**
|
|
151
|
+
* Generate iptables / ufw / ip6tables rules that allow only whitelisted IPs
|
|
152
|
+
* to reach `port` (TCP) and drop everything else.
|
|
153
|
+
*
|
|
154
|
+
* The generated commands are idempotent-safe: they use INSERT (iptables) and
|
|
155
|
+
* `ufw allow from ... to any port ...` forms that are safe to run repeatedly.
|
|
156
|
+
*/
|
|
157
|
+
export function generateFirewallRules(entries, port, chain = 'INPUT') {
|
|
158
|
+
const iptables = [];
|
|
159
|
+
const ip6tables = [];
|
|
160
|
+
const ufw = [];
|
|
161
|
+
for (const entry of entries) {
|
|
162
|
+
const cidr = entry.cidr.trim();
|
|
163
|
+
const comment = entry.label.replace(/[^a-zA-Z0-9_-]/g, '-');
|
|
164
|
+
if (isPlainIp(cidr) || isCidr(cidr)) {
|
|
165
|
+
const networkIp = isPlainIp(cidr) ? cidr : cidr.split('/')[0];
|
|
166
|
+
if (!networkIp)
|
|
167
|
+
continue;
|
|
168
|
+
const version = net.isIP(networkIp);
|
|
169
|
+
if (version === 4) {
|
|
170
|
+
iptables.push(`iptables -I ${chain} -p tcp --dport ${port} -s ${cidr} -j ACCEPT -m comment --comment "av-whitelist-${comment}"`);
|
|
171
|
+
ufw.push(`ufw allow from ${cidr} to any port ${port} proto tcp comment "av-whitelist-${comment}"`);
|
|
172
|
+
}
|
|
173
|
+
else if (version === 6) {
|
|
174
|
+
ip6tables.push(`ip6tables -I ${chain} -p tcp --dport ${port} -s ${cidr} -j ACCEPT -m comment --comment "av-whitelist-${comment}"`);
|
|
175
|
+
ufw.push(`ufw allow from ${cidr} to any port ${port} proto tcp comment "av-whitelist-${comment}"`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// Default-deny rules go last (lowest priority in iptables INSERT order).
|
|
180
|
+
iptables.push(`iptables -A ${chain} -p tcp --dport ${port} -j DROP -m comment --comment "av-whitelist-default-deny"`);
|
|
181
|
+
ip6tables.push(`ip6tables -A ${chain} -p tcp --dport ${port} -j DROP -m comment --comment "av-whitelist-default-deny"`);
|
|
182
|
+
ufw.push(`ufw deny ${port}/tcp comment "av-whitelist-default-deny"`);
|
|
183
|
+
return { iptables, ufw, ip6tables };
|
|
184
|
+
}
|
|
185
|
+
// ---------------------------------------------------------------------------
|
|
186
|
+
// IpWhitelistManager
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
export class IpWhitelistManager {
|
|
189
|
+
entries;
|
|
190
|
+
constructor(entries = []) {
|
|
191
|
+
this.entries = entries;
|
|
192
|
+
}
|
|
193
|
+
/** Add a new entry, validating first. Throws on invalid input. */
|
|
194
|
+
add(entry) {
|
|
195
|
+
const result = validateCidr(entry.cidr);
|
|
196
|
+
if (!result.valid) {
|
|
197
|
+
throw new Error(`Invalid whitelist entry "${entry.cidr}": ${result.errors.join('; ')}`);
|
|
198
|
+
}
|
|
199
|
+
this.entries.push(entry);
|
|
200
|
+
}
|
|
201
|
+
/** Remove all entries matching `label`. */
|
|
202
|
+
remove(label) {
|
|
203
|
+
this.entries = this.entries.filter(e => e.label !== label);
|
|
204
|
+
}
|
|
205
|
+
/** Return all entries. */
|
|
206
|
+
getEntries() {
|
|
207
|
+
return this.entries;
|
|
208
|
+
}
|
|
209
|
+
/** Test whether `sourceIp` is allowed by the current whitelist. */
|
|
210
|
+
isAllowed(sourceIp) {
|
|
211
|
+
return isIpAllowed(sourceIp, this.entries);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Assert that `sourceIp` is whitelisted. Throws if it is not.
|
|
215
|
+
* Use this as a guard at trade-execution entry points.
|
|
216
|
+
*/
|
|
217
|
+
assertAllowed(sourceIp) {
|
|
218
|
+
if (!this.isAllowed(sourceIp)) {
|
|
219
|
+
throw new Error(`Blocked: source IP ${sourceIp} is not in the trading whitelist. ` +
|
|
220
|
+
'Update the whitelist configuration and restart the service.');
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/** Validate every entry and return aggregated errors. */
|
|
224
|
+
validate() {
|
|
225
|
+
const errors = [];
|
|
226
|
+
for (const entry of this.entries) {
|
|
227
|
+
const r = validateCidr(entry.cidr);
|
|
228
|
+
if (!r.valid) {
|
|
229
|
+
errors.push(`[${entry.label}] ${r.errors.join('; ')}`);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return { valid: errors.length === 0, errors };
|
|
233
|
+
}
|
|
234
|
+
/** Generate firewall rules for a given port. */
|
|
235
|
+
generateRules(port, chain) {
|
|
236
|
+
return generateFirewallRules(this.entries, port, chain);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=ip-whitelist.js.map
|