auramaxx 1.0.0-alpha.4
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/LICENSE +26 -0
- package/README.md +112 -0
- package/bin/aurawallet.js +121 -0
- package/docs/ADAPTERS.md +467 -0
- package/docs/API.md +2679 -0
- package/docs/APPS.md +198 -0
- package/docs/ARCHITECTURE.md +350 -0
- package/docs/AUTH.md +698 -0
- package/docs/BEST-PRACTICES.md +121 -0
- package/docs/CLI.md +61 -0
- package/docs/DEVELOPING-APPS.md +452 -0
- package/docs/EXTENSION.md +97 -0
- package/docs/JOBS.md +33 -0
- package/docs/MCP.md +76 -0
- package/docs/PROTOCOL.md +142 -0
- package/docs/SETUP.md +219 -0
- package/docs/WORKSPACE.md +672 -0
- package/docs/agent-auth.md +63 -0
- package/docs/aura-file.md +48 -0
- package/docs/credentials.md +53 -0
- package/docs/external/getting-started.md +65 -0
- package/docs/external/overview.md +45 -0
- package/docs/external/use-cases.md +48 -0
- package/docs/external/why-aura.md +35 -0
- package/docs/jobs/connect-agent.md +77 -0
- package/docs/jobs/migrate-from-dotenv.md +79 -0
- package/docs/jobs/recover-from-lockout.md +72 -0
- package/docs/jobs/secure-ci.md +63 -0
- package/docs/oauth2.md +42 -0
- package/docs/passkeys.md +60 -0
- package/docs/security.md +540 -0
- package/docs/specs/aura-open-protocol.md +61 -0
- package/docs/specs/aura-provider-plugin.md +24 -0
- package/docs/specs/aura-registry-model.md +31 -0
- package/docs/specs/fixtures/invalid-bad-key.aura +1 -0
- package/docs/specs/fixtures/invalid-bad-unicode-escape.aura +1 -0
- package/docs/specs/fixtures/invalid-duplicate-key.aura +2 -0
- package/docs/specs/fixtures/valid-basic.aura +4 -0
- package/docs/specs/fixtures/valid-provider-ref.aura +1 -0
- package/docs/specs/fixtures/valid-quoted-escapes.aura +2 -0
- package/docs/templates/RELEASE_NOTES_TEMPLATE.md +22 -0
- package/docs/totp.md +40 -0
- package/docs/wallet/AI.md +508 -0
- package/docs/wallet/DEVELOPING-STRATEGIES.md +713 -0
- package/docs/wallet/README.md +47 -0
- package/docs/wallet/STRATEGY.md +89 -0
- package/next.config.ts +21 -0
- package/package.json +151 -0
- package/postcss.config.mjs +8 -0
- package/prisma/migrations/20260214170000_baseline/migration.sql +511 -0
- package/prisma/migrations/20260216214537_add_passkey_model/migration.sql +18 -0
- package/prisma/migrations/20260217150500_add_credential_access_audit/migration.sql +31 -0
- package/prisma/migrations/migration_lock.toml +3 -0
- package/prisma/schema.prisma +447 -0
- package/public/logo-chevron.svg +31 -0
- package/public/logo-concentric.svg +31 -0
- package/public/logo-crosshatch.svg +39 -0
- package/public/logo-dashed.svg +39 -0
- package/public/logo-horizontal.svg +31 -0
- package/public/logo-m56.svg +64 -0
- package/public/logo.webp +0 -0
- package/scripts/add-app.js +245 -0
- package/scripts/init.sh +57 -0
- package/scripts/migrate-apikeys-to-credentials.ts +35 -0
- package/scripts/sandbox-agent-flow.sh +235 -0
- package/scripts/sandbox.sh +175 -0
- package/scripts/validate-job-docs.mjs +125 -0
- package/server/abi/SwapHelper.json +438 -0
- package/server/cli/approval.ts +447 -0
- package/server/cli/commands/app.ts +204 -0
- package/server/cli/commands/cron.ts +24 -0
- package/server/cli/commands/doctor.ts +1007 -0
- package/server/cli/commands/env.ts +456 -0
- package/server/cli/commands/init.ts +752 -0
- package/server/cli/commands/mcp.ts +125 -0
- package/server/cli/commands/restore.ts +314 -0
- package/server/cli/commands/shell-hook.ts +468 -0
- package/server/cli/commands/start.ts +62 -0
- package/server/cli/commands/status.ts +59 -0
- package/server/cli/commands/stop.ts +14 -0
- package/server/cli/commands/token.ts +180 -0
- package/server/cli/commands/unlock.ts +49 -0
- package/server/cli/commands/vault.ts +417 -0
- package/server/cli/index.ts +328 -0
- package/server/cli/lib/aura-parser.ts +64 -0
- package/server/cli/lib/credential-create.ts +74 -0
- package/server/cli/lib/credential-resolve.ts +254 -0
- package/server/cli/lib/dotenv-migrate.ts +116 -0
- package/server/cli/lib/dotenv-parser.ts +146 -0
- package/server/cli/lib/http.ts +91 -0
- package/server/cli/lib/init-steps.ts +76 -0
- package/server/cli/lib/local-agent-trust.ts +45 -0
- package/server/cli/lib/process.ts +136 -0
- package/server/cli/lib/prompt.ts +85 -0
- package/server/cli/lib/theme.ts +240 -0
- package/server/cli/socket.ts +570 -0
- package/server/cli/transport-client.ts +50 -0
- package/server/cron/index.ts +137 -0
- package/server/cron/job.ts +31 -0
- package/server/cron/jobs/balance-sync.ts +436 -0
- package/server/cron/jobs/incoming-scan.ts +506 -0
- package/server/cron/jobs/native-price.ts +70 -0
- package/server/cron/jobs/orphan-cleanup.ts +40 -0
- package/server/cron/jobs/strategy-runner.ts +175 -0
- package/server/cron/scheduler.ts +125 -0
- package/server/index.ts +406 -0
- package/server/lib/adapters/factory.ts +110 -0
- package/server/lib/adapters/index.ts +19 -0
- package/server/lib/adapters/router.ts +297 -0
- package/server/lib/adapters/telegram.ts +645 -0
- package/server/lib/adapters/types.ts +89 -0
- package/server/lib/adapters/webhook.ts +95 -0
- package/server/lib/address.ts +49 -0
- package/server/lib/agent-auth/contracts.ts +1194 -0
- package/server/lib/agent-profiles.ts +328 -0
- package/server/lib/ai.ts +285 -0
- package/server/lib/api-registry/contracts.ts +86 -0
- package/server/lib/api-registry/validation.ts +172 -0
- package/server/lib/apikey-migration.ts +189 -0
- package/server/lib/app-installer.ts +505 -0
- package/server/lib/app-tokens.ts +247 -0
- package/server/lib/auth.ts +314 -0
- package/server/lib/batch.ts +242 -0
- package/server/lib/cold.ts +874 -0
- package/server/lib/config.ts +381 -0
- package/server/lib/credential-access-audit.ts +85 -0
- package/server/lib/credential-access-policy.ts +110 -0
- package/server/lib/credential-health.ts +343 -0
- package/server/lib/credential-import.ts +487 -0
- package/server/lib/credential-scope.ts +87 -0
- package/server/lib/credential-shares.ts +190 -0
- package/server/lib/credential-transport.ts +342 -0
- package/server/lib/credential-vault.ts +77 -0
- package/server/lib/credentials.ts +333 -0
- package/server/lib/crypto.ts +8 -0
- package/server/lib/db.ts +15 -0
- package/server/lib/defaults.ts +366 -0
- package/server/lib/dex/index.ts +80 -0
- package/server/lib/dex/relay.ts +235 -0
- package/server/lib/dex/types.ts +59 -0
- package/server/lib/dex/uniswap.ts +370 -0
- package/server/lib/e2e-agent/artifacts.ts +36 -0
- package/server/lib/e2e-agent/contracts.ts +112 -0
- package/server/lib/e2e-agent/validation.ts +135 -0
- package/server/lib/encrypt.ts +128 -0
- package/server/lib/error.ts +20 -0
- package/server/lib/events.ts +205 -0
- package/server/lib/hot.ts +357 -0
- package/server/lib/key-fingerprint.ts +28 -0
- package/server/lib/logger.ts +331 -0
- package/server/lib/network.ts +137 -0
- package/server/lib/notifications.ts +219 -0
- package/server/lib/oauth2-refresh.ts +241 -0
- package/server/lib/oursecret.ts +54 -0
- package/server/lib/passkey-credential.ts +360 -0
- package/server/lib/passkey.ts +68 -0
- package/server/lib/permissions.ts +248 -0
- package/server/lib/pino.ts +24 -0
- package/server/lib/policy-preview.ts +138 -0
- package/server/lib/price.ts +338 -0
- package/server/lib/prices.ts +34 -0
- package/server/lib/project-scope.ts +239 -0
- package/server/lib/resolve-action.ts +427 -0
- package/server/lib/resolve.ts +36 -0
- package/server/lib/sessions.ts +632 -0
- package/server/lib/solana/connection.ts +26 -0
- package/server/lib/solana/jupiter.ts +128 -0
- package/server/lib/solana/transfer.ts +108 -0
- package/server/lib/solana/wallet.ts +136 -0
- package/server/lib/strategy/emits.ts +21 -0
- package/server/lib/strategy/engine.ts +1305 -0
- package/server/lib/strategy/executor.ts +115 -0
- package/server/lib/strategy/hook-context.ts +158 -0
- package/server/lib/strategy/hooks.ts +990 -0
- package/server/lib/strategy/index.ts +28 -0
- package/server/lib/strategy/installer.ts +305 -0
- package/server/lib/strategy/loader.ts +256 -0
- package/server/lib/strategy/message.ts +235 -0
- package/server/lib/strategy/repository.ts +218 -0
- package/server/lib/strategy/session-logger.ts +693 -0
- package/server/lib/strategy/sources.ts +288 -0
- package/server/lib/strategy/state.ts +189 -0
- package/server/lib/strategy/templates.ts +403 -0
- package/server/lib/strategy/tick.ts +404 -0
- package/server/lib/strategy/types.ts +230 -0
- package/server/lib/swap.ts +3 -0
- package/server/lib/temp.ts +86 -0
- package/server/lib/token-metadata.ts +86 -0
- package/server/lib/token-safety.ts +200 -0
- package/server/lib/token-search.ts +444 -0
- package/server/lib/totp.ts +194 -0
- package/server/lib/transactions.ts +123 -0
- package/server/lib/transport.ts +75 -0
- package/server/lib/txhistory/decoder.ts +262 -0
- package/server/lib/txhistory/enricher.ts +652 -0
- package/server/lib/txhistory/index.ts +391 -0
- package/server/lib/txhistory/signatures.ts +59 -0
- package/server/lib/verified-summary.ts +421 -0
- package/server/mcp/profile-policy.ts +30 -0
- package/server/mcp/server.ts +619 -0
- package/server/mcp/tools.ts +523 -0
- package/server/middleware/auth.ts +119 -0
- package/server/middleware/requestLogger.ts +84 -0
- package/server/routes/actions.ts +459 -0
- package/server/routes/adapters.ts +703 -0
- package/server/routes/addressbook.ts +113 -0
- package/server/routes/ai.ts +34 -0
- package/server/routes/apikeys.ts +295 -0
- package/server/routes/apps.ts +601 -0
- package/server/routes/auth.ts +457 -0
- package/server/routes/backup.ts +340 -0
- package/server/routes/batch.ts +270 -0
- package/server/routes/bookmarks.ts +162 -0
- package/server/routes/credential-shares.ts +198 -0
- package/server/routes/credential-vaults.ts +154 -0
- package/server/routes/credentials.ts +1290 -0
- package/server/routes/dashboard.ts +71 -0
- package/server/routes/defaults.ts +124 -0
- package/server/routes/fund.ts +229 -0
- package/server/routes/import.ts +352 -0
- package/server/routes/launch.ts +665 -0
- package/server/routes/lock.ts +54 -0
- package/server/routes/logs.ts +68 -0
- package/server/routes/nuke.ts +111 -0
- package/server/routes/passkey-credentials.ts +99 -0
- package/server/routes/passkey.ts +346 -0
- package/server/routes/portfolio.ts +217 -0
- package/server/routes/price.ts +63 -0
- package/server/routes/resolve.ts +31 -0
- package/server/routes/security.ts +45 -0
- package/server/routes/send-evm.ts +241 -0
- package/server/routes/send-solana.ts +281 -0
- package/server/routes/send.ts +178 -0
- package/server/routes/setup.ts +210 -0
- package/server/routes/strategy.ts +894 -0
- package/server/routes/swap-evm.ts +353 -0
- package/server/routes/swap-solana.ts +177 -0
- package/server/routes/swap.ts +356 -0
- package/server/routes/token.ts +247 -0
- package/server/routes/unlock.ts +403 -0
- package/server/routes/wallet-assets.ts +361 -0
- package/server/routes/wallet-transactions.ts +515 -0
- package/server/routes/wallet.ts +710 -0
- package/server/types.ts +146 -0
- package/skills/aurawallet/SKILL.md +739 -0
- package/skills/aurawallet-setup/SKILL.md +74 -0
- package/skills/security-review/SKILL.md +148 -0
- package/src/app/api/agent-requests/route.ts +30 -0
- package/src/app/api/apps/install/route.ts +126 -0
- package/src/app/api/apps/manifests/route.ts +16 -0
- package/src/app/api/apps/static/[...path]/route.ts +57 -0
- package/src/app/api/events/route.ts +92 -0
- package/src/app/api/page.tsx +212 -0
- package/src/app/api/workspace/[id]/apps/[wid]/route.ts +119 -0
- package/src/app/api/workspace/[id]/apps/route.ts +81 -0
- package/src/app/api/workspace/[id]/export/route.ts +67 -0
- package/src/app/api/workspace/[id]/route.ts +168 -0
- package/src/app/api/workspace/auth.ts +34 -0
- package/src/app/api/workspace/config/route.ts +106 -0
- package/src/app/api/workspace/import/route.ts +127 -0
- package/src/app/api/workspace/route.ts +116 -0
- package/src/app/app/page.tsx +2122 -0
- package/src/app/apple-icon.png +0 -0
- package/src/app/docs/page.tsx +178 -0
- package/src/app/favicon.ico +0 -0
- package/src/app/globals.css +572 -0
- package/src/app/health/page.tsx +5 -0
- package/src/app/hello/page.tsx +15 -0
- package/src/app/icon.png +0 -0
- package/src/app/layout.tsx +34 -0
- package/src/app/page.tsx +986 -0
- package/src/app/providers.tsx +90 -0
- package/src/app/share/[token]/page.tsx +295 -0
- package/src/components/ChainSelector.tsx +144 -0
- package/src/components/HumanActionBar.tsx +695 -0
- package/src/components/NotificationDrawer.tsx +129 -0
- package/src/components/apps/AgentKeysApp.tsx +490 -0
- package/src/components/apps/App.tsx +153 -0
- package/src/components/apps/AppGrid.tsx +15 -0
- package/src/components/apps/DetailedAddressDrawer.tsx +325 -0
- package/src/components/apps/DraggableApp.tsx +562 -0
- package/src/components/apps/IFrameApp.tsx +73 -0
- package/src/components/apps/LogsApp.tsx +360 -0
- package/src/components/apps/SendApp.tsx +394 -0
- package/src/components/apps/SetupWizardApp.tsx +1004 -0
- package/src/components/apps/SystemDefaultsApp.tsx +845 -0
- package/src/components/apps/ThirdPartyApp.tsx +428 -0
- package/src/components/apps/TokenApp.tsx +319 -0
- package/src/components/apps/TransactionsApp.tsx +438 -0
- package/src/components/apps/WalletDetailApp.tsx +1505 -0
- package/src/components/apps/index.ts +13 -0
- package/src/components/design-system/Button.tsx +53 -0
- package/src/components/design-system/ChainIndicator.tsx +65 -0
- package/src/components/design-system/ChainSelector.tsx +137 -0
- package/src/components/design-system/ConfirmationModal.tsx +106 -0
- package/src/components/design-system/ConfirmationPopover.tsx +81 -0
- package/src/components/design-system/Drawer.tsx +123 -0
- package/src/components/design-system/FilterDropdown.tsx +72 -0
- package/src/components/design-system/Modal.tsx +206 -0
- package/src/components/design-system/Popover.tsx +142 -0
- package/src/components/design-system/TextInput.tsx +85 -0
- package/src/components/design-system/Toggle.tsx +58 -0
- package/src/components/design-system/index.ts +11 -0
- package/src/components/docs/DocsThemeToggle.tsx +49 -0
- package/src/components/health/CredentialHealthDashboard.tsx +214 -0
- package/src/components/icons/ChainIcons.tsx +72 -0
- package/src/components/layout/AppStoreDrawer.tsx +369 -0
- package/src/components/layout/ContentArea.tsx +21 -0
- package/src/components/layout/TabBar.tsx +278 -0
- package/src/components/layout/WalletSidebar.tsx +1033 -0
- package/src/components/layout/index.ts +4 -0
- package/src/components/marketing/AuraWalletSpecOverlay.tsx +635 -0
- package/src/components/marketing/DeviceMorphExperience.tsx +216 -0
- package/src/components/vault/ApiKeysConsole.tsx +1080 -0
- package/src/components/vault/AuditConsole.tsx +584 -0
- package/src/components/vault/CredentialDetail.tsx +455 -0
- package/src/components/vault/CredentialEmpty.tsx +55 -0
- package/src/components/vault/CredentialField.tsx +361 -0
- package/src/components/vault/CredentialForm.tsx +1212 -0
- package/src/components/vault/CredentialList.tsx +165 -0
- package/src/components/vault/CredentialRow.tsx +97 -0
- package/src/components/vault/CredentialShareModal.tsx +178 -0
- package/src/components/vault/CredentialVault.tsx +754 -0
- package/src/components/vault/CredentialWalletWidget.tsx +103 -0
- package/src/components/vault/ImportCredentialsModal.tsx +515 -0
- package/src/components/vault/LargeTypeModal.tsx +64 -0
- package/src/components/vault/PasswordGenerator.tsx +224 -0
- package/src/components/vault/TOTPDisplay.tsx +123 -0
- package/src/components/vault/VaultSidebar.tsx +413 -0
- package/src/components/vault/types.ts +54 -0
- package/src/context/AuthContext.tsx +337 -0
- package/src/context/PriceContext.tsx +113 -0
- package/src/context/ThemeContext.tsx +164 -0
- package/src/context/WebSocketContext.tsx +269 -0
- package/src/context/WorkspaceContext.tsx +668 -0
- package/src/hooks/index.ts +3 -0
- package/src/hooks/useAgentActions.ts +368 -0
- package/src/hooks/useBalance.ts +103 -0
- package/src/hooks/useBalances.ts +129 -0
- package/src/instrumentation.ts +12 -0
- package/src/lib/api.ts +449 -0
- package/src/lib/app-loader.ts +148 -0
- package/src/lib/app-registry.ts +178 -0
- package/src/lib/app-sdk.ts +157 -0
- package/src/lib/audit-console-adapter.ts +151 -0
- package/src/lib/auth-client.ts +75 -0
- package/src/lib/config.ts +74 -0
- package/src/lib/crypto.ts +112 -0
- package/src/lib/db.ts +21 -0
- package/src/lib/docs.ts +390 -0
- package/src/lib/events.ts +361 -0
- package/src/lib/pino.ts +24 -0
- package/src/lib/theme-handlers.ts +168 -0
- package/src/lib/theme.ts +351 -0
- package/src/lib/tokenData.ts +378 -0
- package/src/lib/vault-crypto.ts +129 -0
- package/src/lib/websocket-server.ts +302 -0
- package/src/lib/websocket-setup.ts +79 -0
- package/src/lib/wordlist.ts +2050 -0
- package/src/lib/workspace-handlers.ts +285 -0
- package/start.sh +80 -0
- package/tailwind.config.ts +99 -0
- package/tsconfig.json +42 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Wallet & Trading Features
|
|
2
|
+
|
|
3
|
+
AuraWallet also includes the original wallet and agent-trading stack.
|
|
4
|
+
|
|
5
|
+
Use this doc if you are focused on onchain workflows. For credential-vault-first setup, start at the root [README](../../README.md).
|
|
6
|
+
|
|
7
|
+
## What wallet mode provides
|
|
8
|
+
|
|
9
|
+
- Trade on EVM + Solana chains
|
|
10
|
+
- Create and manage hot wallets from a cold vault
|
|
11
|
+
- Execute send/fund/swap/launch flows
|
|
12
|
+
- Human approval flows for sensitive actions
|
|
13
|
+
- Agent tokens with permission and spend limits
|
|
14
|
+
|
|
15
|
+
## Typical wallet prompts
|
|
16
|
+
|
|
17
|
+
- "Buy me $50 of PEPE"
|
|
18
|
+
- "Bridge my ETH from Base to Arbitrum"
|
|
19
|
+
- "Sell all PEPE if price drops 20%"
|
|
20
|
+
- "Launch a token with name AURA"
|
|
21
|
+
|
|
22
|
+
## Quick wallet setup
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npx aurawallet init
|
|
26
|
+
npx aurawallet start
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Open: `http://localhost:4747/app`
|
|
30
|
+
|
|
31
|
+
## Access paths
|
|
32
|
+
|
|
33
|
+
- Dashboard UI
|
|
34
|
+
- CLI (`npx aurawallet ...`)
|
|
35
|
+
- MCP (`npx aurawallet mcp`)
|
|
36
|
+
- Approval listener (`npm run cli`)
|
|
37
|
+
|
|
38
|
+
## Wallet docs
|
|
39
|
+
|
|
40
|
+
- [API reference](../API.md)
|
|
41
|
+
- [Auth + permissions](../AUTH.md)
|
|
42
|
+
- [MCP reference](../MCP.md)
|
|
43
|
+
- [AI / strategy docs](./AI.md)
|
|
44
|
+
- [Strategy overview](./STRATEGY.md)
|
|
45
|
+
- [Strategy developer reference](./DEVELOPING-STRATEGIES.md)
|
|
46
|
+
- [Apps](../APPS.md)
|
|
47
|
+
- [Adapters](../ADAPTERS.md)
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Strategies
|
|
2
|
+
|
|
3
|
+
High-level overview of AuraWallet's strategy system — apps that run on a schedule or respond to messages.
|
|
4
|
+
|
|
5
|
+
For the full developer reference (manifest fields, hooks, sources, examples), see [DEVELOPING-STRATEGIES.md](./DEVELOPING-STRATEGIES.md). For AI engine internals, see [AI.md](./AI.md).
|
|
6
|
+
|
|
7
|
+
## What Are Strategies?
|
|
8
|
+
|
|
9
|
+
Strategies extend apps with AI-powered automation. A strategy is a regular app whose `app.md` manifest includes additional fields — hooks, a ticker, sources — that activate the AI engine. The engine then orchestrates the AI ↔ API ↔ human-approval loop automatically.
|
|
10
|
+
|
|
11
|
+
Every strategy starts as a regular app — see [APPS.md](../APPS.md). Strategies live in `apps/<id>/` alongside regular UI apps. Adding a `ticker`, `jobs`, or `hooks.message` field to the manifest is what activates the AI engine.
|
|
12
|
+
|
|
13
|
+
## Two Modes
|
|
14
|
+
|
|
15
|
+
| Mode | Trigger | Behavior |
|
|
16
|
+
|------|---------|----------|
|
|
17
|
+
| **Tick mode** | `ticker` or `jobs` field | Engine fetches sources on a schedule, calls `tick` hook, processes intents through `execute` and `result` hooks. The full strategy lifecycle. |
|
|
18
|
+
| **Message mode** | `hooks.message` field | No scheduled ticks. AI responds to user messages via tool-call flow. Chat-style apps. |
|
|
19
|
+
|
|
20
|
+
Both can coexist — a strategy that ticks on a schedule and also handles chat messages.
|
|
21
|
+
|
|
22
|
+
## Tick Tiers
|
|
23
|
+
|
|
24
|
+
Tick-mode strategies run at one of five intervals:
|
|
25
|
+
|
|
26
|
+
| Tier | Interval | Use Case |
|
|
27
|
+
|------|----------|----------|
|
|
28
|
+
| `sniper` | 10 seconds | Time-critical sniping, MEV |
|
|
29
|
+
| `active` | 30 seconds | Active trading, price triggers |
|
|
30
|
+
| `standard` | 1 minute | General monitoring |
|
|
31
|
+
| `slow` | 5 minutes | Portfolio tracking, reporting |
|
|
32
|
+
| `maintenance` | 1 hour | Daily buys, maintenance tasks |
|
|
33
|
+
|
|
34
|
+
For strategies that need multiple intervals, use `jobs` instead of `ticker` (see [DEVELOPING-STRATEGIES.md](./DEVELOPING-STRATEGIES.md#jobs)).
|
|
35
|
+
|
|
36
|
+
## Hooks at a Glance
|
|
37
|
+
|
|
38
|
+
Six lifecycle hooks, each a natural-language string instructing the AI what to do:
|
|
39
|
+
|
|
40
|
+
| Hook | When Called | Mode |
|
|
41
|
+
|------|-----------|------|
|
|
42
|
+
| `init` | Strategy enabled | Tick |
|
|
43
|
+
| `tick` | Every scheduled interval | Tick |
|
|
44
|
+
| `execute` | Per approved intent (if no pre-computed action) | Tick |
|
|
45
|
+
| `result` | After action execution | Tick |
|
|
46
|
+
| `shutdown` | Strategy disabled | Tick |
|
|
47
|
+
| `message` | Human sends a message | Message |
|
|
48
|
+
|
|
49
|
+
The engine auto-injects API docs, response format specs, and wallet context — keep hook instructions focused on your app's specific behavior.
|
|
50
|
+
|
|
51
|
+
## Minimal Example
|
|
52
|
+
|
|
53
|
+
A SOL DCA bot that buys ETH on a schedule:
|
|
54
|
+
|
|
55
|
+
```markdown
|
|
56
|
+
---
|
|
57
|
+
name: Daily ETH Buy
|
|
58
|
+
icon: Repeat
|
|
59
|
+
category: strategy
|
|
60
|
+
ticker: maintenance
|
|
61
|
+
|
|
62
|
+
permissions:
|
|
63
|
+
- swap
|
|
64
|
+
- wallet:list
|
|
65
|
+
limits:
|
|
66
|
+
swap: 0.01
|
|
67
|
+
|
|
68
|
+
hooks:
|
|
69
|
+
tick: |
|
|
70
|
+
Buy 0.01 ETH worth of the configured token using the hot wallet.
|
|
71
|
+
If no hot wallet exists, return empty intents.
|
|
72
|
+
|
|
73
|
+
config:
|
|
74
|
+
token: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
|
|
75
|
+
mode: live
|
|
76
|
+
approve: true
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
Buys a small amount of a token every hour. Simple recurring buy strategy.
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
This is a complete, valid strategy. The engine handles source fetching, AI dispatch, human approval, and action execution.
|
|
83
|
+
|
|
84
|
+
## Next Steps
|
|
85
|
+
|
|
86
|
+
- [DEVELOPING-STRATEGIES.md](./DEVELOPING-STRATEGIES.md) — Full developer reference: manifest fields, hook contexts, sources, intents, examples
|
|
87
|
+
- [APPS.md](../APPS.md) — App overview: what apps are, installing, the app store
|
|
88
|
+
- [DEVELOPING-APPS.md](../DEVELOPING-APPS.md) — Building UI apps: SDK API, theming, security, storage
|
|
89
|
+
- [AI.md](./AI.md) — AI engine internals: provider selection, tool-use, testing
|
package/next.config.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { NextConfig } from "next";
|
|
2
|
+
|
|
3
|
+
const nextConfig: NextConfig = {
|
|
4
|
+
// Skip ESLint during production builds — lint is run separately via `npm run lint`
|
|
5
|
+
eslint: { ignoreDuringBuilds: true },
|
|
6
|
+
|
|
7
|
+
// Use webpack for native module support
|
|
8
|
+
serverExternalPackages: ['keytar'],
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
webpack: (config) => {
|
|
12
|
+
// Handle native modules
|
|
13
|
+
config.externals = config.externals || [];
|
|
14
|
+
if (Array.isArray(config.externals)) {
|
|
15
|
+
config.externals.push('keytar');
|
|
16
|
+
}
|
|
17
|
+
return config;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export default nextConfig;
|
package/package.json
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "auramaxx",
|
|
3
|
+
"version": "1.0.0-alpha.4",
|
|
4
|
+
"description": "Secure local crypto wallets for AI agents. Create wallets, send ETH/tokens, swap on Uniswap/Jupiter. Supports Base, Ethereum, Solana.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"crypto",
|
|
7
|
+
"wallet",
|
|
8
|
+
"ai",
|
|
9
|
+
"agent",
|
|
10
|
+
"ethereum",
|
|
11
|
+
"solana",
|
|
12
|
+
"base",
|
|
13
|
+
"uniswap",
|
|
14
|
+
"jupiter"
|
|
15
|
+
],
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/Aura-Industry/aurawallet.git"
|
|
20
|
+
},
|
|
21
|
+
"bin": {
|
|
22
|
+
"auramaxx": "./bin/aurawallet.js",
|
|
23
|
+
"aurawallet": "./bin/aurawallet.js",
|
|
24
|
+
"aura": "./bin/aurawallet.js"
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"bin/",
|
|
28
|
+
"server/",
|
|
29
|
+
"!server/tests/",
|
|
30
|
+
"!server/test-data/",
|
|
31
|
+
"!server/vitest.config.ts",
|
|
32
|
+
"!server/node_modules/",
|
|
33
|
+
"src/",
|
|
34
|
+
"!src/__tests__/",
|
|
35
|
+
"!src/node_modules/",
|
|
36
|
+
"public/",
|
|
37
|
+
"skills/",
|
|
38
|
+
"prisma/",
|
|
39
|
+
"!prisma/dev.db",
|
|
40
|
+
"!prisma/dev.db-journal",
|
|
41
|
+
"!prisma/**/*.db",
|
|
42
|
+
"!prisma/**/*.db-journal",
|
|
43
|
+
"scripts/",
|
|
44
|
+
"!scripts/squash-and-push.sh",
|
|
45
|
+
"docs/",
|
|
46
|
+
"!docs/internal/",
|
|
47
|
+
"!docs/internal/**",
|
|
48
|
+
"start.sh",
|
|
49
|
+
"tsconfig.json",
|
|
50
|
+
"next.config.ts",
|
|
51
|
+
"tailwind.config.ts",
|
|
52
|
+
"postcss.config.mjs"
|
|
53
|
+
],
|
|
54
|
+
"scripts": {
|
|
55
|
+
"dev": "next dev -p 4747",
|
|
56
|
+
"build": "next build",
|
|
57
|
+
"start": "next start -p 4747",
|
|
58
|
+
"start:local": "NEXT_PUBLIC_SHOW_INTERNAL_DOCS=true next start -p 4747",
|
|
59
|
+
"lint": "next lint",
|
|
60
|
+
"server": "npx tsx server/index.ts",
|
|
61
|
+
"server:dev": "BYPASS_RATE_LIMIT=true npx tsx watch server/index.ts",
|
|
62
|
+
"cli": "npx tsx server/cli/index.ts",
|
|
63
|
+
"start:all": "./start.sh",
|
|
64
|
+
"start:prod": "./start.sh prod",
|
|
65
|
+
"test": "vitest run --config server/vitest.config.ts",
|
|
66
|
+
"test:ai": "vitest run --config server/tests/ai-integration/vitest.config.ts",
|
|
67
|
+
"test:setup": "vitest run --config server/tests/setup-integration/vitest.config.ts",
|
|
68
|
+
"test:ai:live": "vitest run --config server/tests/ai-integration/vitest.live.config.ts",
|
|
69
|
+
"test:watch": "vitest --config server/vitest.config.ts",
|
|
70
|
+
"test:coverage": "vitest run --config server/vitest.config.ts --coverage",
|
|
71
|
+
"test:cli": "vitest run --config server/vitest.config.ts tests/cli/",
|
|
72
|
+
"test:e2e": "vitest run --config server/vitest.config.ts tests/e2e.test.ts",
|
|
73
|
+
"test:ui": "vitest run --config src/__tests__/vitest.config.ts",
|
|
74
|
+
"test:ui:watch": "vitest --config src/__tests__/vitest.config.ts",
|
|
75
|
+
"test:e2e-agent:smoke": "vitest run --config server/vitest.config.ts tests/e2e-agent/**/*.test.ts",
|
|
76
|
+
"test:e2e-agent:nightly": "vitest run --config server/vitest.config.ts tests/e2e-agent/**/*.test.ts",
|
|
77
|
+
"test:sandbox:agent-flow": "./scripts/sandbox-agent-flow.sh",
|
|
78
|
+
"test:sandbox:agent-prepublish": "npm run test:sandbox:agent-flow",
|
|
79
|
+
"docs:validate": "node scripts/validate-job-docs.mjs",
|
|
80
|
+
"sandbox": "./scripts/sandbox.sh terminal",
|
|
81
|
+
"sandbox:dashboard": "./scripts/sandbox.sh dashboard",
|
|
82
|
+
"sandbox:mcp": "./scripts/sandbox.sh mcp",
|
|
83
|
+
"sandbox:agent": "./scripts/sandbox.sh agent",
|
|
84
|
+
"prepare": "husky || true"
|
|
85
|
+
},
|
|
86
|
+
"dependencies": {
|
|
87
|
+
"@anthropic-ai/sdk": "^0.73.0",
|
|
88
|
+
"@eslint/eslintrc": "^3.3.3",
|
|
89
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
90
|
+
"@prisma/client": "^5.22.0",
|
|
91
|
+
"@simplewebauthn/server": "^11.0.0",
|
|
92
|
+
"@solana/spl-token": "^0.4.14",
|
|
93
|
+
"@solana/web3.js": "^1.95.4",
|
|
94
|
+
"@types/multer": "^2.0.0",
|
|
95
|
+
"@whetstone-research/doppler-sdk": "^0.0.17",
|
|
96
|
+
"autoprefixer": "^10.4.24",
|
|
97
|
+
"better-sqlite3": "^12.6.2",
|
|
98
|
+
"bip39": "^3.1.0",
|
|
99
|
+
"cbor-x": "^1.6.0",
|
|
100
|
+
"cors": "^2.8.5",
|
|
101
|
+
"crypto-js": "^4.2.0",
|
|
102
|
+
"csv-parse": "^6.1.0",
|
|
103
|
+
"dotenv": "^17.2.3",
|
|
104
|
+
"ed25519-hd-key": "^1.3.0",
|
|
105
|
+
"ethers": "^6.13.4",
|
|
106
|
+
"express": "^4.21.2",
|
|
107
|
+
"express-rate-limit": "^8.2.1",
|
|
108
|
+
"lucide-react": "^0.468.0",
|
|
109
|
+
"marked": "^17.0.2",
|
|
110
|
+
"multer": "^2.0.2",
|
|
111
|
+
"next": "^15.5.11",
|
|
112
|
+
"openai": "^6.21.0",
|
|
113
|
+
"otpauth": "^9.5.0",
|
|
114
|
+
"pino": "^10.3.1",
|
|
115
|
+
"pino-pretty": "^13.1.3",
|
|
116
|
+
"postcss": "^8.4.49",
|
|
117
|
+
"prisma": "^5.22.0",
|
|
118
|
+
"react": "^19.0.0",
|
|
119
|
+
"react-dom": "^19.0.0",
|
|
120
|
+
"tailwindcss": "^3.4.17",
|
|
121
|
+
"tsx": "^4.21.0",
|
|
122
|
+
"typescript": "^5.7.2",
|
|
123
|
+
"uuid": "^11.0.4",
|
|
124
|
+
"viem": "^2.45.1",
|
|
125
|
+
"ws": "^8.19.0",
|
|
126
|
+
"yaml": "^2.8.2",
|
|
127
|
+
"zod": "^3.24.1"
|
|
128
|
+
},
|
|
129
|
+
"devDependencies": {
|
|
130
|
+
"@testing-library/dom": "^10.4.1",
|
|
131
|
+
"@testing-library/react": "^16.3.2",
|
|
132
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
133
|
+
"@types/cors": "^2.8.17",
|
|
134
|
+
"@types/crypto-js": "^4.2.2",
|
|
135
|
+
"@types/express": "^5.0.0",
|
|
136
|
+
"@types/node": "^22.10.5",
|
|
137
|
+
"@types/react": "^19.0.2",
|
|
138
|
+
"@types/react-dom": "^19.0.2",
|
|
139
|
+
"@types/supertest": "^6.0.3",
|
|
140
|
+
"@types/uuid": "^10.0.0",
|
|
141
|
+
"@types/ws": "^8.18.1",
|
|
142
|
+
"@vitejs/plugin-react": "^5.1.3",
|
|
143
|
+
"eslint": "^9.17.0",
|
|
144
|
+
"eslint-config-next": "15.1.4",
|
|
145
|
+
"husky": "^9.1.7",
|
|
146
|
+
"jsdom": "^28.0.0",
|
|
147
|
+
"supertest": "^7.2.2",
|
|
148
|
+
"vite": "^6.4.1",
|
|
149
|
+
"vitest": "^4.0.18"
|
|
150
|
+
}
|
|
151
|
+
}
|