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
package/LICENSE
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Aura Industry
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
The name "AuraWallet" and the AuraWallet logo are trademarks of Aura Industry
|
|
26
|
+
and may not be used in derivative works without prior written permission.
|
package/README.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# AuraWallet
|
|
2
|
+
|
|
3
|
+
AuraWallet is a local password manager and credential vault for humans and AI agents.
|
|
4
|
+
|
|
5
|
+
It lets you store API keys, passwords, TOTP secrets, passkeys, and OAuth2 credentials in one place, then give agents scoped access without exposing long-lived plaintext secrets.
|
|
6
|
+
|
|
7
|
+
## Why this matters
|
|
8
|
+
|
|
9
|
+
- **Agent-safe secret access:** agents read encrypted payloads tied to their `pubkey`
|
|
10
|
+
- **Scoped permissions:** tokens can be limited by capability and credential scope
|
|
11
|
+
- **Local-first:** server runs on your machine (`localhost`), no hosted vault required
|
|
12
|
+
- **Works in real workflows:** CLI, MCP, `.aura` project mapping, shell hooks, and browser extension
|
|
13
|
+
|
|
14
|
+
## 10-minute quickstart
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# 1) Install + initialize
|
|
18
|
+
npx aurawallet init
|
|
19
|
+
|
|
20
|
+
# 2) Start later sessions
|
|
21
|
+
npx aurawallet start
|
|
22
|
+
|
|
23
|
+
# 3) Check status
|
|
24
|
+
npx aurawallet status
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Then open the dashboard at `http://localhost:4747/app` and create your vault.
|
|
28
|
+
|
|
29
|
+
### Add your first credential
|
|
30
|
+
|
|
31
|
+
Use the dashboard, or call the API directly once you have a token:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
curl -X POST http://localhost:4242/credentials \
|
|
35
|
+
-H "Authorization: Bearer $AURA_TOKEN" \
|
|
36
|
+
-H "Content-Type: application/json" \
|
|
37
|
+
-d '{
|
|
38
|
+
"vaultId": "primary",
|
|
39
|
+
"type": "apikey",
|
|
40
|
+
"name": "openai-prod",
|
|
41
|
+
"fields": [
|
|
42
|
+
{"key":"api_key","value":"sk-...","type":"secret","sensitive":true}
|
|
43
|
+
],
|
|
44
|
+
"meta": {"tags":["prod","openai"]}
|
|
45
|
+
}'
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Read with CLI
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# list
|
|
52
|
+
npx aurawallet vault list
|
|
53
|
+
|
|
54
|
+
# read one field (raw stdout)
|
|
55
|
+
npx aurawallet vault get openai-prod --field api_key
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Load project env from vault (`.aura`)
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# create mapping from existing .env
|
|
62
|
+
npx aurawallet env init --from .env
|
|
63
|
+
|
|
64
|
+
# run with vault-injected env vars
|
|
65
|
+
npx aurawallet env -- npm run dev
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Connect an MCP client
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# start MCP server over stdio
|
|
72
|
+
npx aurawallet mcp
|
|
73
|
+
|
|
74
|
+
# or auto-install configs for supported IDEs
|
|
75
|
+
npx aurawallet mcp --install
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Practical examples
|
|
79
|
+
|
|
80
|
+
- “Get `DATABASE_URL` from vault and run migrations.”
|
|
81
|
+
- “Return only the current TOTP code for `github-admin`.”
|
|
82
|
+
- “Use OAuth2 credential `google-workspace`; refresh access token if expired.”
|
|
83
|
+
- “Load all secrets for this repo from `.aura`, not `.env`.”
|
|
84
|
+
- “Request temporary permission upgrade instead of using broad token scope.”
|
|
85
|
+
|
|
86
|
+
## Docs by job
|
|
87
|
+
|
|
88
|
+
- [Start here: job-based runbooks](./docs/JOBS.md)
|
|
89
|
+
|
|
90
|
+
## Core docs
|
|
91
|
+
|
|
92
|
+
- [Credentials model](./docs/credentials.md)
|
|
93
|
+
- [CLI guide](./docs/CLI.md)
|
|
94
|
+
- [MCP guide](./docs/MCP.md)
|
|
95
|
+
- [Agent auth model](./docs/agent-auth.md)
|
|
96
|
+
- [Passkeys](./docs/passkeys.md)
|
|
97
|
+
- [TOTP](./docs/totp.md)
|
|
98
|
+
- [OAuth2 credential refresh](./docs/oauth2.md)
|
|
99
|
+
- [`.aura` file format](./docs/aura-file.md)
|
|
100
|
+
- [Wallet and trading docs](./docs/wallet/README.md)
|
|
101
|
+
|
|
102
|
+
## Limits / current behavior
|
|
103
|
+
|
|
104
|
+
- OAuth2 re-auth endpoint exists but full redirect-based re-auth flow is still TODO.
|
|
105
|
+
- Passkey unlock still depends on server unlock state after restart (`vault_locked` until unlocked).
|
|
106
|
+
- Credential files are local JSON under Aura data directory; secure your machine and backups.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
Wallet server: `http://localhost:4242`
|
|
111
|
+
Dashboard: `http://localhost:4747/app`
|
|
112
|
+
WebSocket: `ws://localhost:4748`
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* AuraWallet CLI entry point
|
|
4
|
+
*
|
|
5
|
+
* Routes subcommands to server/cli/commands/<cmd>.ts via tsx.
|
|
6
|
+
* Works with: npx auramaxx <command> [args]
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
const { execFileSync } = require('child_process');
|
|
10
|
+
const path = require('path');
|
|
11
|
+
|
|
12
|
+
const root = path.join(__dirname, '..');
|
|
13
|
+
const cmd = process.argv[2];
|
|
14
|
+
const args = process.argv.slice(3);
|
|
15
|
+
|
|
16
|
+
const COMMANDS = {
|
|
17
|
+
init: 'Full interactive first-time setup',
|
|
18
|
+
start: 'Start wallet servers (--headless for no dashboard)',
|
|
19
|
+
stop: 'Stop running servers',
|
|
20
|
+
status: 'Show server and wallet status',
|
|
21
|
+
doctor: 'Run deterministic onboarding/runtime diagnostics',
|
|
22
|
+
unlock: 'Unlock the vault interactively',
|
|
23
|
+
restore: 'Restore from a backup (--list, --latest, --dry-run)',
|
|
24
|
+
app: 'Manage installed apps (install, remove, list, update)',
|
|
25
|
+
mcp: 'Start MCP server (stdio) for Claude Code, Cursor, etc.',
|
|
26
|
+
cron: 'Run the cron server standalone (balance sync, price sync)',
|
|
27
|
+
vault: 'Retrieve credentials from the vault (get, list)',
|
|
28
|
+
token: 'Preview profile-based token policy before issuance',
|
|
29
|
+
env: 'Load env vars from vault via .aura file (run, inject, check, list, init)',
|
|
30
|
+
'shell-hook': 'Auto-load .aura env vars on cd (like direnv)',
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
function showHelp() {
|
|
34
|
+
// Inline Tyvek theme (bin/ is plain CJS — cannot import TS theme module)
|
|
35
|
+
const isTTY = process.stdout.isTTY && !process.env.NO_COLOR && process.env.CI !== 'true' && process.env.TERM !== 'dumb';
|
|
36
|
+
const RST = isTTY ? '\x1b[0m' : '';
|
|
37
|
+
const BOLD = isTTY ? '\x1b[1m' : '';
|
|
38
|
+
const DIM = isTTY ? '\x1b[2m' : '';
|
|
39
|
+
const CYAN = isTTY ? '\x1b[36m' : '';
|
|
40
|
+
const GRAY = isTTY ? '\x1b[90m' : '';
|
|
41
|
+
|
|
42
|
+
const W = 62;
|
|
43
|
+
const TL = `${GRAY}.-${RST}`;
|
|
44
|
+
const TR = `${GRAY}-.${RST}`;
|
|
45
|
+
const BL = `${GRAY}'-${RST}`;
|
|
46
|
+
const BR = `${GRAY}-'${RST}`;
|
|
47
|
+
const PIPE = `${GRAY}|${RST}`;
|
|
48
|
+
const SEP = ' ' + '- '.repeat(Math.floor(W / 2));
|
|
49
|
+
|
|
50
|
+
// Banner — three diagonal stripes in a square (aura_logo.svg)
|
|
51
|
+
const LP = `${GRAY}|${RST}`;
|
|
52
|
+
const LT = `${GRAY}.${RST}${DIM}----------${RST}${GRAY}.${RST}`;
|
|
53
|
+
const LB = `${GRAY}'${RST}${DIM}----------${RST}${GRAY}'${RST}`;
|
|
54
|
+
|
|
55
|
+
console.log('');
|
|
56
|
+
console.log(` ${TL}${DIM}${' '.repeat(W - 4)}${RST}${TR}`);
|
|
57
|
+
console.log(` ${PIPE} ${LT}${' '.repeat(W - 19)}${PIPE}`);
|
|
58
|
+
console.log(` ${PIPE} ${LP}${BOLD}//${RST} ${BOLD}//${RST} ${BOLD}//${RST}${LP} ${BOLD}A U R A${RST}${' '.repeat(W - 30)}${PIPE}`);
|
|
59
|
+
console.log(` ${PIPE} ${LP} ${BOLD}//${RST} ${BOLD}//${RST} ${BOLD}/${RST}${LP} ${DIM}W A L L E T${RST}${' '.repeat(W - 34)}${PIPE}`);
|
|
60
|
+
console.log(` ${PIPE} ${LP} ${BOLD}//${RST} ${BOLD}//${RST} ${LP} ${CYAN}COMMAND REFERENCE${RST}${' '.repeat(W - 40)}${PIPE}`);
|
|
61
|
+
console.log(` ${PIPE} ${LB}${' '.repeat(W - 19)}${PIPE}`);
|
|
62
|
+
console.log(` ${BL}${DIM}${' '.repeat(W - 4)}${RST}${BR}`);
|
|
63
|
+
console.log('');
|
|
64
|
+
|
|
65
|
+
console.log(` ${BOLD}Usage:${RST} npx auramaxx <command> [options]`);
|
|
66
|
+
console.log(` ${DIM}Alias:${RST} npx aurawallet <command>`);
|
|
67
|
+
console.log('');
|
|
68
|
+
console.log(SEP);
|
|
69
|
+
console.log(` ${BOLD}[ COMMANDS ]${RST}`);
|
|
70
|
+
console.log('');
|
|
71
|
+
|
|
72
|
+
for (const [name, desc] of Object.entries(COMMANDS)) {
|
|
73
|
+
console.log(` ${CYAN}${name.padEnd(14)}${RST}${desc}`);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
console.log('');
|
|
77
|
+
console.log(SEP);
|
|
78
|
+
console.log(` ${BOLD}[ OPTIONS ]${RST}`);
|
|
79
|
+
console.log('');
|
|
80
|
+
console.log(` ${CYAN}${'--help'.padEnd(14)}${RST}Show this help message`);
|
|
81
|
+
console.log('');
|
|
82
|
+
console.log(SEP);
|
|
83
|
+
console.log(` ${BOLD}[ EXAMPLES ]${RST}`);
|
|
84
|
+
console.log('');
|
|
85
|
+
console.log(` npx auramaxx init ${DIM}# Set up wallet for the first time${RST}`);
|
|
86
|
+
console.log(` npx auramaxx start ${DIM}# Start all services${RST}`);
|
|
87
|
+
console.log(` npx auramaxx start --headless ${DIM}# Start server only (no dashboard)${RST}`);
|
|
88
|
+
console.log(` npx auramaxx status ${DIM}# Check if wallet is running${RST}`);
|
|
89
|
+
console.log(` npx auramaxx unlock ${DIM}# Unlock the vault${RST}`);
|
|
90
|
+
console.log(` npx auramaxx token preview ${DIM}# Preview token policy${RST}`);
|
|
91
|
+
console.log(` npx auramaxx stop ${DIM}# Stop all services${RST}`);
|
|
92
|
+
console.log('');
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (!cmd || cmd === '--help' || cmd === '-h' || cmd === 'help') {
|
|
96
|
+
showHelp();
|
|
97
|
+
process.exit(0);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (!COMMANDS[cmd]) {
|
|
101
|
+
console.error(`Unknown command: ${cmd}\n`);
|
|
102
|
+
console.error(`Run 'npx auramaxx --help' to see available commands.`);
|
|
103
|
+
process.exit(1);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const commandFile = path.join(root, 'server', 'cli', 'commands', `${cmd}.ts`);
|
|
107
|
+
const useNodeTsxLoader = process.env.SANDBOX_MODE === 'true' || process.env.AURA_FORCE_NODE_TSX === '1';
|
|
108
|
+
const runner = useNodeTsxLoader
|
|
109
|
+
? { command: process.execPath, args: ['--import', 'tsx', commandFile, ...args] }
|
|
110
|
+
: { command: 'npx', args: ['tsx', commandFile, ...args] };
|
|
111
|
+
|
|
112
|
+
try {
|
|
113
|
+
execFileSync(runner.command, runner.args, {
|
|
114
|
+
cwd: root,
|
|
115
|
+
stdio: 'inherit',
|
|
116
|
+
env: process.env,
|
|
117
|
+
});
|
|
118
|
+
} catch (error) {
|
|
119
|
+
// tsx already printed the error, just exit with its code
|
|
120
|
+
process.exit(error.status || 1);
|
|
121
|
+
}
|