@prktsol/prkt 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/.env.devnet.all-protocols.example +18 -0
  2. package/.env.devnet.autonomous.example +16 -0
  3. package/.env.devnet.jupiter.example +16 -0
  4. package/.env.devnet.kamino.example +17 -0
  5. package/.env.devnet.marinade.example +16 -0
  6. package/.env.devnet.orca.example +16 -0
  7. package/.env.devnet.raydium.example +17 -0
  8. package/.env.example +32 -0
  9. package/ARCHITECTURE.md +159 -0
  10. package/CLI.md +509 -0
  11. package/CLI_QUICKSTART.md +108 -0
  12. package/COMPATIBILITY.md +103 -0
  13. package/DEVNET_PROTOCOL_ADDRESSES.md +72 -0
  14. package/README.md +339 -0
  15. package/dist/agent/AgentManager.js +166 -0
  16. package/dist/agent/AgentRuntime.js +92 -0
  17. package/dist/agent/DecisionEngine.js +95 -0
  18. package/dist/agent/MockPriceFeed.js +13 -0
  19. package/dist/agent/intents/types.js +2 -0
  20. package/dist/agent/new-index.js +17 -0
  21. package/dist/agent/policyFactory.js +54 -0
  22. package/dist/agent/registry/AgentRegistry.js +16 -0
  23. package/dist/agent/runner/AgentRunner.js +266 -0
  24. package/dist/agent/strategies/MemoHeartbeatStrategy.js +15 -0
  25. package/dist/agent/strategies/SimpleScriptedTransferStrategy.js +27 -0
  26. package/dist/agent/strategies/TokenRebalancerStrategy.js +35 -0
  27. package/dist/agent/strategies/TreasuryDistributorStrategy.js +29 -0
  28. package/dist/agent/strategies/UniversalDeFiStrategy.js +19 -0
  29. package/dist/agent/types/AgentContext.js +2 -0
  30. package/dist/cli/index.js +1159 -0
  31. package/dist/cli/services/activityStore.js +42 -0
  32. package/dist/cli/services/agentRegistry.js +123 -0
  33. package/dist/cli/services/agentRuntime.js +55 -0
  34. package/dist/cli/services/storagePaths.js +64 -0
  35. package/dist/cli/services/strategyFactory.js +66 -0
  36. package/dist/cli/services/walletCrypto.js +120 -0
  37. package/dist/cli/services/walletRegistry.js +145 -0
  38. package/dist/cli/types.js +2 -0
  39. package/dist/cli/utils/completion.js +62 -0
  40. package/dist/cli/utils/output.js +44 -0
  41. package/dist/config/agentPolicies.js +37 -0
  42. package/dist/config/env.js +249 -0
  43. package/dist/config/policyPresets.js +105 -0
  44. package/dist/core/balances/BalanceService.js +34 -0
  45. package/dist/core/funding/DevnetFundingService.js +105 -0
  46. package/dist/core/idempotency/ExecutionIdempotencyGuard.js +100 -0
  47. package/dist/core/index.js +19 -0
  48. package/dist/core/rpc/RpcClient.js +45 -0
  49. package/dist/core/rpc/RpcFailoverClient.js +97 -0
  50. package/dist/core/tokens/TokenService.js +75 -0
  51. package/dist/core/transactions/PostTransactionVerifier.js +103 -0
  52. package/dist/core/transactions/TransactionService.js +104 -0
  53. package/dist/core/types/services.js +2 -0
  54. package/dist/core/wallet/WalletManager.js +120 -0
  55. package/dist/defi/DeFiCoordinator.js +93 -0
  56. package/dist/defi/DeFiExecutor.js +29 -0
  57. package/dist/defi/DeFiPolicyGuard.js +31 -0
  58. package/dist/defi/adapters/JupiterAdapter.js +25 -0
  59. package/dist/defi/adapters/KaminoAdapter.js +50 -0
  60. package/dist/defi/adapters/MarinadeAdapter.js +25 -0
  61. package/dist/defi/adapters/RaydiumAdapter.js +45 -0
  62. package/dist/defi/kamino/kaminoInstructionCompat.js +24 -0
  63. package/dist/defi/kamino/kaminoLiveConfig.js +60 -0
  64. package/dist/defi/kamino/loadKaminoMarketWithFallback.js +68 -0
  65. package/dist/defi/lp/LpInstructionBuilder.js +2 -0
  66. package/dist/defi/lp/RaydiumLpInstructionBuilder.js +100 -0
  67. package/dist/defi/lp/raydiumDevnetConfig.js +62 -0
  68. package/dist/defi/protocols.js +29 -0
  69. package/dist/defi/types.js +2 -0
  70. package/dist/defi/universal/UniversalDeFiOrchestrator.js +126 -0
  71. package/dist/defi/universal/adapters.js +73 -0
  72. package/dist/defi/universal/index.js +5 -0
  73. package/dist/defi/universal/liveExecutors.js +394 -0
  74. package/dist/defi/universal/types.js +2 -0
  75. package/dist/demo/scenarios/multiAgentDevnetScenario.js +170 -0
  76. package/dist/demo/scripts/runMultiAgentDevnetDemo.js +17 -0
  77. package/dist/dex/JupiterSwapClient.js +59 -0
  78. package/dist/dex/SwapExecutor.js +52 -0
  79. package/dist/index.js +22 -0
  80. package/dist/kora/KoraRpcClient.js +60 -0
  81. package/dist/kora/KoraSigner.js +57 -0
  82. package/dist/kora/gaslessDemo.js +18 -0
  83. package/dist/policy/PolicyGuard.js +158 -0
  84. package/dist/policy/emergencyLock.js +164 -0
  85. package/dist/policy/engine/PolicyEngine.js +237 -0
  86. package/dist/policy/errors.js +10 -0
  87. package/dist/policy/index.js +7 -0
  88. package/dist/policy/sandbox/SandboxExecutor.js +77 -0
  89. package/dist/policy/types/policy.js +2 -0
  90. package/dist/scripts/devnetFunding.js +28 -0
  91. package/dist/scripts/devnetWalletPreflight.js +16 -0
  92. package/dist/scripts/localnetCheck.js +27 -0
  93. package/dist/scripts/managedAgentWallet.js +81 -0
  94. package/dist/scripts/mode.js +6 -0
  95. package/dist/scripts/releaseReadiness.js +93 -0
  96. package/dist/scripts/runAgentUniversalDeFi.js +115 -0
  97. package/dist/scripts/runAutonomousAgentWalletDevnet.js +154 -0
  98. package/dist/scripts/runAutonomousPortfolioDevnet.js +390 -0
  99. package/dist/scripts/runBorrowStrategy.js +35 -0
  100. package/dist/scripts/runDeFiSuite.js +41 -0
  101. package/dist/scripts/runDemoRehearsal.js +111 -0
  102. package/dist/scripts/runDevnetWalletDemo.js +53 -0
  103. package/dist/scripts/runGaslessMemo.js +23 -0
  104. package/dist/scripts/runGaslessWalletDemo.js +60 -0
  105. package/dist/scripts/runKaminoDevnet.js +109 -0
  106. package/dist/scripts/runLpStrategy.js +32 -0
  107. package/dist/scripts/runMarinadeDevnet.js +97 -0
  108. package/dist/scripts/runOrcaLpDevnet.js +208 -0
  109. package/dist/scripts/runRaydiumLpDevnet.js +95 -0
  110. package/dist/scripts/runReleaseReadiness.js +22 -0
  111. package/dist/scripts/runStakeStrategy.js +33 -0
  112. package/dist/scripts/runStressTest.js +41 -0
  113. package/dist/scripts/runTradeLoop.js +53 -0
  114. package/dist/scripts/runUniversalDeFiDemo.js +84 -0
  115. package/dist/scripts/runYieldStrategy.js +33 -0
  116. package/dist/scripts/runtimeFactory.js +27 -0
  117. package/dist/scripts/shared.js +24 -0
  118. package/dist/scripts/simulateAttack.js +40 -0
  119. package/dist/scripts/simulateSwarm.js +106 -0
  120. package/dist/simulation/attack.js +30 -0
  121. package/dist/solana/programs.js +9 -0
  122. package/dist/spl/TokenWallet.js +65 -0
  123. package/dist/types/policy.js +2 -0
  124. package/dist/wallet/WalletManager.js +5 -0
  125. package/package.json +99 -0
@@ -0,0 +1,18 @@
1
+ SOLANA_RPC_URL=https://api.devnet.solana.com
2
+ # SOLANA_RPC_FALLBACK_URL=https://devnet.helius-rpc.com/?api-key=YOUR_KEY
3
+ KORA_RPC_URL=https://kora.devnet.lazorkit.com
4
+ KORA_MOCK_MODE=true
5
+ JUPITER_API_BASE_URL=https://lite-api.jup.ag
6
+ ENABLE_LIVE_SWAP_PATH=true
7
+ ENABLE_LIVE_RAYDIUM_LP=true
8
+ ENABLE_LIVE_KAMINO=true
9
+ ENABLE_LIVE_MARINADE=true
10
+ RAYDIUM_LP_CONFIG_PATH=raydium_lp.devnet.json
11
+ KAMINO_LIVE_CONFIG_PATH=kamino_live.json
12
+ UNIVERSAL_DEFI_LIVE_FIRST=true
13
+ USDC_MINT=4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
14
+ EXTRA_WHITELISTED_PROGRAMS=
15
+ POLICY_SESSION_TTL_MINUTES=60
16
+ # Requires both raydium_lp.devnet.json and kamino_live.json to be present and valid.
17
+ AGENT_PRIVATE_KEY=[]
18
+ DEVNET_TREASURY_PRIVATE_KEY=[]
@@ -0,0 +1,16 @@
1
+ SOLANA_RPC_URL=https://api.devnet.solana.com
2
+ # SOLANA_RPC_FALLBACK_URL=https://devnet.helius-rpc.com/?api-key=YOUR_KEY
3
+ KORA_RPC_URL=https://kora.devnet.lazorkit.com
4
+ KORA_MOCK_MODE=true
5
+ JUPITER_API_BASE_URL=https://lite-api.jup.ag
6
+ ENABLE_LIVE_SWAP_PATH=false
7
+ ENABLE_LIVE_RAYDIUM_LP=false
8
+ ENABLE_LIVE_KAMINO=true
9
+ ENABLE_LIVE_MARINADE=true
10
+ UNIVERSAL_DEFI_LIVE_FIRST=true
11
+ USDC_MINT=4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
12
+ EXTRA_WHITELISTED_PROGRAMS=
13
+ POLICY_SESSION_TTL_MINUTES=60
14
+ # Autonomous bounty demo generates its own wallet. If DEVNET_TREASURY_PRIVATE_KEY is set, it funds from your treasury wallet before falling back to airdrop.
15
+ AGENT_PRIVATE_KEY=[]
16
+ DEVNET_TREASURY_PRIVATE_KEY=[]
@@ -0,0 +1,16 @@
1
+ SOLANA_RPC_URL=https://api.devnet.solana.com
2
+ # SOLANA_RPC_FALLBACK_URL=https://devnet.helius-rpc.com/?api-key=YOUR_KEY
3
+ KORA_RPC_URL=https://kora.devnet.lazorkit.com
4
+ KORA_MOCK_MODE=true
5
+ JUPITER_API_BASE_URL=https://lite-api.jup.ag
6
+ ENABLE_LIVE_SWAP_PATH=true
7
+ ENABLE_LIVE_RAYDIUM_LP=false
8
+ ENABLE_LIVE_KAMINO=false
9
+ ENABLE_LIVE_MARINADE=false
10
+ UNIVERSAL_DEFI_LIVE_FIRST=true
11
+ USDC_MINT=4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
12
+ EXTRA_WHITELISTED_PROGRAMS=
13
+ POLICY_SESSION_TTL_MINUTES=60
14
+ # Jupiter devnet live path still depends on route/API availability and wallet funding.
15
+ AGENT_PRIVATE_KEY=[]
16
+
@@ -0,0 +1,17 @@
1
+ SOLANA_RPC_URL=https://api.devnet.solana.com
2
+ # SOLANA_RPC_FALLBACK_URL=https://devnet.helius-rpc.com/?api-key=YOUR_KEY
3
+ KORA_RPC_URL=https://kora.devnet.lazorkit.com
4
+ KORA_MOCK_MODE=true
5
+ JUPITER_API_BASE_URL=https://lite-api.jup.ag
6
+ ENABLE_LIVE_SWAP_PATH=false
7
+ ENABLE_LIVE_RAYDIUM_LP=false
8
+ ENABLE_LIVE_KAMINO=true
9
+ ENABLE_LIVE_MARINADE=false
10
+ KAMINO_LIVE_CONFIG_PATH=kamino_live.json
11
+ UNIVERSAL_DEFI_LIVE_FIRST=true
12
+ USDC_MINT=4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
13
+ EXTRA_WHITELISTED_PROGRAMS=
14
+ POLICY_SESSION_TTL_MINUTES=60
15
+ # Requires kamino_live.json copied from kamino_live.example.json and filled with devnet values.
16
+ AGENT_PRIVATE_KEY=[]
17
+
@@ -0,0 +1,16 @@
1
+ SOLANA_RPC_URL=https://api.devnet.solana.com
2
+ # SOLANA_RPC_FALLBACK_URL=https://devnet.helius-rpc.com/?api-key=YOUR_KEY
3
+ KORA_RPC_URL=https://kora.devnet.lazorkit.com
4
+ KORA_MOCK_MODE=true
5
+ JUPITER_API_BASE_URL=https://lite-api.jup.ag
6
+ ENABLE_LIVE_SWAP_PATH=false
7
+ ENABLE_LIVE_RAYDIUM_LP=false
8
+ ENABLE_LIVE_KAMINO=false
9
+ ENABLE_LIVE_MARINADE=true
10
+ UNIVERSAL_DEFI_LIVE_FIRST=true
11
+ USDC_MINT=4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
12
+ EXTRA_WHITELISTED_PROGRAMS=
13
+ POLICY_SESSION_TTL_MINUTES=60
14
+ # Use a funded devnet wallet or switch to REMOTE_SIGNER_*.
15
+ AGENT_PRIVATE_KEY=[]
16
+ DEVNET_TREASURY_PRIVATE_KEY=[]
@@ -0,0 +1,16 @@
1
+ SOLANA_RPC_URL=https://api.devnet.solana.com
2
+ # SOLANA_RPC_FALLBACK_URL=https://devnet.helius-rpc.com/?api-key=YOUR_KEY
3
+ KORA_RPC_URL=https://kora.devnet.lazorkit.com
4
+ KORA_MOCK_MODE=true
5
+ JUPITER_API_BASE_URL=https://lite-api.jup.ag
6
+ ENABLE_LIVE_SWAP_PATH=false
7
+ ENABLE_LIVE_RAYDIUM_LP=false
8
+ ENABLE_LIVE_KAMINO=false
9
+ ENABLE_LIVE_MARINADE=false
10
+ UNIVERSAL_DEFI_LIVE_FIRST=true
11
+ USDC_MINT=4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
12
+ EXTRA_WHITELISTED_PROGRAMS=
13
+ POLICY_SESSION_TTL_MINUTES=60
14
+ # Optional. If omitted, the Orca demo generates a fresh wallet. If DEVNET_TREASURY_PRIVATE_KEY is set, it funds from your treasury wallet before falling back to airdrop.
15
+ AGENT_PRIVATE_KEY=[]
16
+ DEVNET_TREASURY_PRIVATE_KEY=[]
@@ -0,0 +1,17 @@
1
+ SOLANA_RPC_URL=https://api.devnet.solana.com
2
+ # SOLANA_RPC_FALLBACK_URL=https://devnet.helius-rpc.com/?api-key=YOUR_KEY
3
+ KORA_RPC_URL=https://kora.devnet.lazorkit.com
4
+ KORA_MOCK_MODE=true
5
+ JUPITER_API_BASE_URL=https://lite-api.jup.ag
6
+ ENABLE_LIVE_SWAP_PATH=false
7
+ ENABLE_LIVE_RAYDIUM_LP=true
8
+ ENABLE_LIVE_KAMINO=false
9
+ ENABLE_LIVE_MARINADE=false
10
+ RAYDIUM_LP_CONFIG_PATH=raydium_lp.devnet.json
11
+ UNIVERSAL_DEFI_LIVE_FIRST=true
12
+ USDC_MINT=4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
13
+ EXTRA_WHITELISTED_PROGRAMS=
14
+ POLICY_SESSION_TTL_MINUTES=60
15
+ # Requires raydium_lp.devnet.json copied from raydium_lp.devnet.example.json and filled with a real devnet pool/account set.
16
+ AGENT_PRIVATE_KEY=[]
17
+
package/.env.example ADDED
@@ -0,0 +1,32 @@
1
+ SOLANA_RPC_URL=https://api.devnet.solana.com
2
+ # Optional fallback RPC endpoint. Used by RpcFailoverClient when the primary is unreachable.
3
+ # SOLANA_RPC_FALLBACK_URL=https://devnet.helius-rpc.com/?api-key=YOUR_KEY
4
+ KORA_RPC_URL=https://kora.devnet.lazorkit.com
5
+ KORA_MOCK_MODE=true
6
+ JUPITER_API_BASE_URL=https://lite-api.jup.ag
7
+ ENABLE_LIVE_SWAP_PATH=false
8
+ ENABLE_LIVE_RAYDIUM_LP=false
9
+ ENABLE_LIVE_KAMINO=false
10
+ # Set true for the autonomous agent wallet bounty demo and direct Marinade staking demo.
11
+ ENABLE_LIVE_MARINADE=false
12
+ # KAMINO_LIVE_CONFIG_PATH=kamino_live.json
13
+ UNIVERSAL_DEFI_LIVE_FIRST=true
14
+ # Preferred production path: remote transaction signer with bearer auth.
15
+ # REMOTE_SIGNER_URL=https://signer.example.internal/sign
16
+ # REMOTE_SIGNER_BEARER_TOKEN=change-me
17
+ # REMOTE_SIGNER_PUBKEY=YourSignerPublicKeyHere
18
+ # Devnet USDC mint (default for this repository's devnet flows).
19
+ USDC_MINT=4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
20
+ EXTRA_WHITELISTED_PROGRAMS=
21
+ POLICY_SESSION_TTL_MINUTES=60
22
+ # Optional: signed emergency command controls.
23
+ # POLICY_EMERGENCY_COMMAND_PATH=emergency_command.json
24
+ # POLICY_EMERGENCY_ADMIN_SECRET=change-me
25
+ # POLICY_EMERGENCY_MAX_AGE_SECONDS=600
26
+ # JSON array of 64 integers generated by Solana keypair tooling. Devnet/demo only.
27
+ # Not required for the autonomous devnet demo, which generates a wallet programmatically.
28
+ # Leave unset in production when using REMOTE_SIGNER_*.
29
+ AGENT_PRIVATE_KEY=[]
30
+ # Optional devnet treasury/faucet wallet used to fund freshly generated agent wallets when the public faucet is flaky.
31
+ # Set this to your funded devnet wallet if you want autonomous demos and `wallet fund` to use treasury transfers first.
32
+ DEVNET_TREASURY_PRIVATE_KEY=[]
@@ -0,0 +1,159 @@
1
+ # PRKT Architecture Deep Dive
2
+
3
+ ## Overview
4
+
5
+ PRKT is a layered agentic wallet runtime designed for secure autonomous operation on Solana devnet.
6
+
7
+ ## Architecture Diagram
8
+
9
+ ```mermaid
10
+ flowchart LR
11
+ A[Strategies] --> B[AgentRunner]
12
+ B --> C[Intents]
13
+ C --> D[PolicyEngine]
14
+ D --> E[SandboxExecutor]
15
+ E --> F[Wallet Core]
16
+ F --> G[Solana Devnet RPC]
17
+
18
+ B --> U[UniversalDeFiOrchestrator]
19
+ U --> J[Jupiter Live Executor]
20
+ U --> R[Raydium LP Live Executor]
21
+ U --> M[Fallback Executor]
22
+ ```
23
+
24
+ ## Layer 1: Wallet Core
25
+
26
+ Path: `src/core`
27
+
28
+ Responsibilities:
29
+
30
+ - Wallet creation/loading (`WalletManager`)
31
+ - RPC abstraction (`RpcClient`)
32
+ - Build/simulate/send/confirm transactions (`TransactionService`)
33
+ - ATA + mint helpers (`TokenService`)
34
+ - SOL/SPL balances (`BalanceService`)
35
+
36
+ Rules:
37
+
38
+ - No strategy logic
39
+ - No policy decisions
40
+
41
+ ## Layer 2: Policy + Sandbox
42
+
43
+ Path: `src/policy`
44
+
45
+ Responsibilities:
46
+
47
+ - Spend limits (per tx/session/day)
48
+ - Program and mint allowlists
49
+ - Unknown instruction deny-default
50
+ - Simulation-gated execution
51
+ - Approval modes (`sandbox` and `live`)
52
+ - Security audit trail
53
+
54
+ Key components:
55
+
56
+ - `PolicyEngine`
57
+ - `SandboxExecutor`
58
+ - `TxInspectionResult`
59
+
60
+ ## Layer 3: Agent Runner
61
+
62
+ Path: `src/agent`
63
+
64
+ Responsibilities:
65
+
66
+ - Strategy loop and intent production
67
+ - Agent context isolation (wallet/config/policy)
68
+ - Parallel agent execution
69
+ - No direct key handling in strategy layer
70
+
71
+ Key components:
72
+
73
+ - `AgentRunner`
74
+ - `AgentRegistry`
75
+ - Typed intents (`transfer-sol`, `transfer-spl`, `mint-token`, `write-memo`, `defi-capability`)
76
+ - Strategies including universal DeFi capability strategy
77
+
78
+ ## Layer 4: Protocol Interaction
79
+
80
+ Paths: `src/defi`, `src/demo`, `src/scripts`
81
+
82
+ Responsibilities:
83
+
84
+ - Protocol adapter model for Solana DeFi capabilities
85
+ - Live-first execution for devnet where available
86
+ - Safe fallback mode when live prerequisites fail
87
+
88
+ Current live protocol paths:
89
+
90
+ - Jupiter swap execution
91
+ - Raydium LP add-liquidity execution
92
+
93
+ ## CLI Layer (Orchestration Only)
94
+
95
+ Path: `src/cli`
96
+
97
+ The CLI is an operational control plane that orchestrates existing layers:
98
+
99
+ - Wallet commands call Wallet Core services.
100
+ - Policy commands call PolicyEngine inspection.
101
+ - Agent commands call AgentRunner and universal DeFi executor flow.
102
+ - Monitor/audit commands read lightweight persistent state in `artifacts/`.
103
+
104
+ The CLI does not introduce protocol or policy business logic into command handlers.
105
+
106
+ ## Security Model
107
+
108
+ ### Assumptions
109
+
110
+ - Agent decision logic may be wrong or compromised.
111
+ - Operators may misconfigure environment settings.
112
+
113
+ ### Controls
114
+
115
+ - Isolation: each agent gets an independent context
116
+ - Policy: hard limits + allowlists
117
+ - Sandbox: simulation and approval gating before broadcast
118
+ - Auditability: explicit allow/deny reasoning
119
+ - Live-first fallback: avoid uncontrolled failures while preserving determinism
120
+
121
+ ### Residual Risks
122
+
123
+ - Bad external protocol config (for example invalid Raydium pool accounts)
124
+ - Operator key management issues
125
+ - Incomplete live adapter coverage for all protocols
126
+ - CLI wallet persistence is intended for local demo operations, not production custody
127
+
128
+ ## Step-by-Step Devnet Demo Flow
129
+
130
+ 1. Set env for devnet:
131
+ - `SOLANA_RPC_URL=https://api.devnet.solana.com`
132
+ - `REMOTE_SIGNER_URL=...`
133
+ - `REMOTE_SIGNER_BEARER_TOKEN=...`
134
+ - `REMOTE_SIGNER_PUBKEY=...`
135
+ - `AGENT_PRIVATE_KEY=[...]` for local devnet/demo use only
136
+ - `USDC_MINT=4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU`
137
+
138
+ 2. Enable live-first execution:
139
+ - `UNIVERSAL_DEFI_LIVE_FIRST=true`
140
+ - `ENABLE_LIVE_SWAP_PATH=true`
141
+ - `KORA_MOCK_MODE=false`
142
+ - optionally `ENABLE_LIVE_RAYDIUM_LP=true`
143
+
144
+ 3. For Raydium live LP, create `raydium_lp.devnet.json` from `raydium_lp.devnet.example.json`.
145
+
146
+ 4. Run universal capability demo:
147
+ ```bash
148
+ npm run defi:universal
149
+ ```
150
+
151
+ 5. Run agent-runner universal flow:
152
+ ```bash
153
+ npm run agent:defi:universal
154
+ ```
155
+
156
+ 6. Validate output:
157
+ - live signatures for available live paths
158
+ - explicit fallback messages where live requirements are missing
159
+ - final per-action execution results