auramaxx 0.0.1
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 +77 -0
- package/apps/desktop-electron/main.js +428 -0
- package/bin/auramaxx.js +1063 -0
- package/docs/ADAPTERS.md +466 -0
- package/docs/AGENT_SETUP.md +159 -0
- package/docs/API.md +127 -0
- package/docs/APPS.md +199 -0
- package/docs/ARCHITECTURE.md +235 -0
- package/docs/AUTH.md +318 -0
- package/docs/BEST-PRACTICES.md +82 -0
- package/docs/CLI.md +141 -0
- package/docs/DESKTOP_ELECTRON.md +26 -0
- package/docs/DEVELOPING-APPS.md +453 -0
- package/docs/MCP.md +122 -0
- package/docs/PACKAGING_POLICY.md +19 -0
- package/docs/PERMISSION.md +137 -0
- package/docs/PROTOCOL.md +142 -0
- package/docs/README.md +50 -0
- package/docs/SKILLS.md +132 -0
- package/docs/TROUBLESHOOTING.md +376 -0
- package/docs/WORKSPACE.md +673 -0
- package/docs/agent-auth.md +14 -0
- package/docs/api/authentication.md +79 -0
- package/docs/api/secrets/api-keys.md +28 -0
- package/docs/api/secrets/credentials.md +80 -0
- package/docs/api/secrets/sharing.md +48 -0
- package/docs/api/system.md +41 -0
- package/docs/api/wallets/apps-strategies.md +66 -0
- package/docs/api/wallets/core.md +46 -0
- package/docs/api/wallets/data-portfolio.md +42 -0
- package/docs/aura-file.md +48 -0
- package/docs/core-concepts/FEATURES.md +114 -0
- package/docs/credentials.md +120 -0
- package/docs/external/HOW_TO_AURAMAXX/GETTING_SECRETS.md +33 -0
- package/docs/external/HOW_TO_AURAMAXX/README.md +45 -0
- package/docs/external/getting-started.md +10 -0
- package/docs/external/overview.md +19 -0
- package/docs/external/persona-paths.md +7 -0
- package/docs/external/share-secret.md +76 -0
- package/docs/external/why-aura.md +7 -0
- package/docs/security.md +227 -0
- package/docs/templates/RELEASE_NOTES_TEMPLATE.md +22 -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 +28 -0
- package/package.json +167 -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/20260222090000_update_admin_ttl_default/migration.sql +10 -0
- package/prisma/migrations/migration_lock.toml +3 -0
- package/prisma/schema.prisma +447 -0
- package/public/logo.webp +0 -0
- package/scripts/add-app.js +245 -0
- package/server/abi/SwapHelper.json +438 -0
- package/server/cli/approval.ts +447 -0
- package/server/cli/commands/actions.ts +474 -0
- package/server/cli/commands/api.ts +220 -0
- package/server/cli/commands/apikey.ts +277 -0
- package/server/cli/commands/app.ts +204 -0
- package/server/cli/commands/auth.ts +464 -0
- package/server/cli/commands/cron.ts +24 -0
- package/server/cli/commands/diary.ts +274 -0
- package/server/cli/commands/doctor.ts +1247 -0
- package/server/cli/commands/env.ts +476 -0
- package/server/cli/commands/experimental.ts +69 -0
- package/server/cli/commands/init.ts +798 -0
- package/server/cli/commands/lock.ts +157 -0
- package/server/cli/commands/mcp.ts +285 -0
- package/server/cli/commands/quickhack.ts +86 -0
- package/server/cli/commands/release-check.ts +231 -0
- package/server/cli/commands/restore.ts +314 -0
- package/server/cli/commands/service.ts +320 -0
- package/server/cli/commands/shell-hook.ts +512 -0
- package/server/cli/commands/skill.ts +216 -0
- package/server/cli/commands/start.ts +139 -0
- package/server/cli/commands/status.ts +59 -0
- package/server/cli/commands/stop.ts +36 -0
- package/server/cli/commands/token.ts +180 -0
- package/server/cli/commands/unlock.ts +50 -0
- package/server/cli/commands/vault.ts +1323 -0
- package/server/cli/commands/wallet.ts +209 -0
- package/server/cli/index.ts +280 -0
- package/server/cli/lib/approval-poll.ts +94 -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 +280 -0
- package/server/cli/lib/dotenv-migrate.ts +116 -0
- package/server/cli/lib/dotenv-parser.ts +146 -0
- package/server/cli/lib/escalation.ts +57 -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/lock-unlock-helper.ts +71 -0
- package/server/cli/lib/process.ts +162 -0
- package/server/cli/lib/prompt.ts +294 -0
- package/server/cli/lib/theme.ts +240 -0
- package/server/cli/socket.ts +579 -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 +420 -0
- package/server/lib/adapters/factory.ts +119 -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 +419 -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 +258 -0
- package/server/lib/app-installer.ts +505 -0
- package/server/lib/app-tokens.ts +247 -0
- package/server/lib/approval-link.ts +27 -0
- package/server/lib/auth.ts +314 -0
- package/server/lib/auto-execute.ts +160 -0
- package/server/lib/batch.ts +242 -0
- package/server/lib/cold.ts +1048 -0
- package/server/lib/config.ts +408 -0
- package/server/lib/credential-access-audit.ts +85 -0
- package/server/lib/credential-access-policy.ts +111 -0
- package/server/lib/credential-health.ts +343 -0
- package/server/lib/credential-import.ts +608 -0
- package/server/lib/credential-scope.ts +102 -0
- package/server/lib/credential-shares.ts +190 -0
- package/server/lib/credential-transport.ts +533 -0
- package/server/lib/credential-vault.ts +77 -0
- package/server/lib/credentials.ts +422 -0
- package/server/lib/crypto.ts +8 -0
- package/server/lib/db.ts +58 -0
- package/server/lib/defaults.ts +386 -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/diary.ts +34 -0
- package/server/lib/dont-ask-again-policy.ts +41 -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 +114 -0
- package/server/lib/error.ts +20 -0
- package/server/lib/events.ts +217 -0
- package/server/lib/feature-flags.ts +93 -0
- package/server/lib/hot.ts +357 -0
- package/server/lib/human-action-summary.ts +80 -0
- package/server/lib/key-fingerprint.ts +28 -0
- package/server/lib/logger.ts +340 -0
- package/server/lib/network.ts +137 -0
- package/server/lib/notifications.ts +230 -0
- package/server/lib/oauth2-refresh.ts +241 -0
- package/server/lib/oursecret.ts +71 -0
- package/server/lib/passkey-credential.ts +360 -0
- package/server/lib/passkey.ts +68 -0
- package/server/lib/permissions.ts +299 -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 +297 -0
- package/server/lib/resolve-action.ts +328 -0
- package/server/lib/resolve.ts +36 -0
- package/server/lib/secret-gist-share.ts +296 -0
- package/server/lib/sessions.ts +634 -0
- package/server/lib/socket-path.ts +56 -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 +159 -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 +237 -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 +84 -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/update-check.ts +35 -0
- package/server/lib/verified-summary.ts +414 -0
- package/server/lib/view-registry.ts +80 -0
- package/server/mcp/profile-policy.ts +30 -0
- package/server/mcp/server.ts +1589 -0
- package/server/mcp/tools.ts +276 -0
- package/server/middleware/auth.ts +119 -0
- package/server/middleware/requestLogger.ts +84 -0
- package/server/routes/actions.ts +539 -0
- package/server/routes/adapters.ts +711 -0
- package/server/routes/addressbook.ts +113 -0
- package/server/routes/ai.ts +34 -0
- package/server/routes/apikeys.ts +343 -0
- package/server/routes/apps.ts +601 -0
- package/server/routes/auth.ts +406 -0
- package/server/routes/backup.ts +404 -0
- package/server/routes/batch.ts +270 -0
- package/server/routes/bookmarks.ts +162 -0
- package/server/routes/credential-shares.ts +380 -0
- package/server/routes/credential-vaults.ts +159 -0
- package/server/routes/credentials.ts +1782 -0
- package/server/routes/dashboard.ts +97 -0
- package/server/routes/defaults.ts +124 -0
- package/server/routes/flags.ts +11 -0
- package/server/routes/fund.ts +225 -0
- package/server/routes/heartbeat.ts +375 -0
- package/server/routes/import.ts +364 -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 +366 -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 +352 -0
- package/server/routes/swap-solana.ts +176 -0
- package/server/routes/swap.ts +356 -0
- package/server/routes/token.ts +247 -0
- package/server/routes/unlock.ts +467 -0
- package/server/routes/views.ts +41 -0
- package/server/routes/wallet-assets.ts +361 -0
- package/server/routes/wallet-transactions.ts +515 -0
- package/server/routes/wallet.ts +709 -0
- package/server/types.ts +146 -0
- package/shared/credential-field-schema.ts +248 -0
- package/skills/auramaxx/HEARTBEAT.md +78 -0
- package/skills/auramaxx/SKILL.md +745 -0
- package/skills/auramaxx/docs/AGENT_SETUP.md +155 -0
- package/skills/auramaxx/docs/API.md +127 -0
- package/skills/auramaxx/docs/AUTH.md +318 -0
- package/skills/auramaxx/docs/CLI.md +130 -0
- package/skills/auramaxx/docs/MCP.md +122 -0
- package/skills/auramaxx/docs/TROUBLESHOOTING.md +357 -0
- package/skills/auramaxx/docs/WORKSPACE.md +673 -0
- package/skills/auramaxx/docs/security.md +227 -0
- package/skills/task-lifecycle/SKILL.md +378 -0
- package/src/app/api/[...doc]/page.tsx +36 -0
- package/src/app/api/agent-requests/route.ts +30 -0
- package/src/app/api/apps/install/route.ts +132 -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/docs/plain/route.ts +74 -0
- package/src/app/api/events/route.ts +92 -0
- package/src/app/api/page.tsx +290 -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 +40 -0
- package/src/app/api/workspace/config/route.ts +121 -0
- package/src/app/api/workspace/import/route.ts +127 -0
- package/src/app/api/workspace/route.ts +116 -0
- package/src/app/app-legacy-do-not-use/page.tsx +2245 -0
- package/src/app/apple-icon.png +0 -0
- package/src/app/approve/[actionId]/page.tsx +409 -0
- package/src/app/docs/DocsPageContent.tsx +269 -0
- package/src/app/docs/[...doc]/page.tsx +41 -0
- package/src/app/docs/page.tsx +38 -0
- package/src/app/favicon.ico +0 -0
- package/src/app/globals.css +819 -0
- package/src/app/health/page.tsx +5 -0
- package/src/app/hello/page.tsx +102 -0
- package/src/app/icon.png +0 -0
- package/src/app/layout.tsx +39 -0
- package/src/app/page.tsx +1964 -0
- package/src/app/privacy/page.tsx +63 -0
- package/src/app/providers.tsx +87 -0
- package/src/app/share/[token]/page.tsx +295 -0
- package/src/app/terms/page.tsx +80 -0
- package/src/components/ChainSelector.tsx +44 -0
- package/src/components/HumanActionBar.tsx +697 -0
- package/src/components/NotificationDrawer.tsx +387 -0
- package/src/components/PasskeyEnrollmentPrompt.tsx +235 -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 +88 -0
- package/src/components/design-system/ChainIndicator.tsx +65 -0
- package/src/components/design-system/ChainSelector.tsx +147 -0
- package/src/components/design-system/ConfirmationModal.tsx +107 -0
- package/src/components/design-system/ConfirmationPopover.tsx +81 -0
- package/src/components/design-system/DownloadButton.tsx +149 -0
- package/src/components/design-system/Drawer.tsx +133 -0
- package/src/components/design-system/FilterDropdown.tsx +183 -0
- package/src/components/design-system/ItemPicker.tsx +157 -0
- package/src/components/design-system/Modal.tsx +296 -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 +65 -0
- package/src/components/design-system/TyvekCollapsibleSection.tsx +55 -0
- package/src/components/design-system/index.ts +14 -0
- package/src/components/docs/ClientSideMarkdown.tsx +51 -0
- package/src/components/docs/DocsSearchBar.tsx +118 -0
- package/src/components/docs/DocsThemeToggle.tsx +38 -0
- package/src/components/docs/PersistentDocGroup.tsx +91 -0
- package/src/components/docs/ShareUrlButton.tsx +33 -0
- package/src/components/docs/SidebarScrollMemory.tsx +56 -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/CreateViewModal.tsx +88 -0
- package/src/components/layout/LeftRail.tsx +114 -0
- package/src/components/layout/TabBar.tsx +284 -0
- package/src/components/layout/WalletSidebar.tsx +1030 -0
- package/src/components/layout/index.ts +6 -0
- package/src/components/marketing/AuraMaxxSpecOverlay.tsx +653 -0
- package/src/components/marketing/DeviceMorphExperience.tsx +216 -0
- package/src/components/vault/ApiKeysConsole.tsx +1272 -0
- package/src/components/vault/AuditConsole.tsx +600 -0
- package/src/components/vault/CredentialDetail.tsx +625 -0
- package/src/components/vault/CredentialEmpty.tsx +55 -0
- package/src/components/vault/CredentialField.tsx +583 -0
- package/src/components/vault/CredentialForm.tsx +1484 -0
- package/src/components/vault/CredentialList.tsx +265 -0
- package/src/components/vault/CredentialRow.tsx +130 -0
- package/src/components/vault/CredentialShareModal.tsx +273 -0
- package/src/components/vault/CredentialVault.tsx +1662 -0
- package/src/components/vault/CredentialWalletWidget.tsx +103 -0
- package/src/components/vault/DocsConsole.tsx +113 -0
- package/src/components/vault/ImportCredentialsModal.tsx +578 -0
- package/src/components/vault/LargeTypeModal.tsx +88 -0
- package/src/components/vault/PasswordGenerator.tsx +232 -0
- package/src/components/vault/TOTPDisplay.tsx +108 -0
- package/src/components/vault/TotpSetupPanel.tsx +198 -0
- package/src/components/vault/VaultSidebar.tsx +881 -0
- package/src/components/vault/credentialFormName.ts +91 -0
- package/src/components/vault/hooks/useVaultKeyboardShortcuts.ts +69 -0
- package/src/components/vault/types.ts +56 -0
- package/src/context/AuthContext.tsx +365 -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 +4 -0
- package/src/hooks/useAgentActions.ts +552 -0
- package/src/hooks/useBalance.ts +103 -0
- package/src/hooks/useBalances.ts +129 -0
- package/src/hooks/useTheme.ts +156 -0
- package/src/instrumentation.ts +12 -0
- package/src/lib/api-docs.ts +154 -0
- package/src/lib/api.ts +474 -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/credential-field-schema.ts +11 -0
- package/src/lib/crypto.ts +112 -0
- package/src/lib/db.ts +21 -0
- package/src/lib/docs.ts +544 -0
- package/src/lib/events.ts +363 -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/totp-import.ts +57 -0
- package/src/lib/vault-crypto.ts +129 -0
- package/src/lib/view-registry.ts +57 -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 +170 -0
- package/tailwind.config.ts +99 -0
- package/tsconfig.json +42 -0
package/docs/AUTH.md
ADDED
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
# Authentication & Permissions
|
|
2
|
+
|
|
3
|
+
This document is the practical entry point for onboarding and using AuraMaxx auth safely.
|
|
4
|
+
|
|
5
|
+
## Quick Start (read this first)
|
|
6
|
+
|
|
7
|
+
### Who is this for?
|
|
8
|
+
|
|
9
|
+
- 🤖 **Agents/CI tooling**: prefer `POST /auth` and token polling flows.
|
|
10
|
+
- 🧑 **Humans**: open the approval link (`/approve/<requestId>`) to review and approve/deny requests.
|
|
11
|
+
- 🛠️ **Developers running local MCP/CLI**: use MCP/socket defaults only when local trust is intentionally configured.
|
|
12
|
+
|
|
13
|
+
### Fastest path (recommended)
|
|
14
|
+
|
|
15
|
+
#### 1) Agent onboarding (least privilege, human approval)
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Request an agent token under a named profile.
|
|
19
|
+
auramaxx auth request --agent-id my-agent --profile strict
|
|
20
|
+
|
|
21
|
+
# Wait for approval in dashboard, then poll locally (or use --no-wait and poll manually)
|
|
22
|
+
auramaxx auth poll <requestId> --secret <secret> --private-key-file /tmp/aura-agent-private.pem
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
#### 2) Human unlock (admin session)
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
auramaxx unlock
|
|
29
|
+
# (or: curl POST /unlock for script-driven unlock with encrypted password)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
#### 3) Validate and troubleshoot
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
curl -sS http://localhost:4242/auth/validate \
|
|
36
|
+
-H "Authorization: Bearer <token>"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
- `200` = token is currently valid for permission checks.
|
|
40
|
+
- non-200 = expired/revoked/syntax mismatch, re-run onboarding.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Decision Matrix (pick the right path)
|
|
45
|
+
|
|
46
|
+
| Use case | Best flow | Why | Typical command/endpoint |
|
|
47
|
+
|---|---|---|---|
|
|
48
|
+
| Standard agent needs ongoing access | **Profile onboarding** | Bound by profile defaults + tighten-only overrides | `POST /auth` (via `auramaxx auth request`) |
|
|
49
|
+
| One-off escalation for one action | **Auth + action** | Token + auto-execute in one approval | `POST /auth` with `action` field |
|
|
50
|
+
| Trusted admin automation / headless tool | **Direct issue (admin only)** | Explicit admin-controlled issuance | `POST /actions/token` |
|
|
51
|
+
| Local MCP/CLI bootstrap on same host | **Socket bootstrap** | Fast path for trusted local callers | Unix socket + trust defaults |
|
|
52
|
+
| Validate active token before use | **Token check** | Detect expiration/revocation before a failing call | `POST /auth/validate` |
|
|
53
|
+
| Revoke compromised token | **Revoke token** | Immediate disable for one token | `POST /actions/tokens/revoke` |
|
|
54
|
+
|
|
55
|
+
If uncertain, default to **profile onboarding** and keep it strict.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Auth Flow Summary
|
|
60
|
+
|
|
61
|
+
- `POST /auth` is **profile-based** and requires human approval. Supports an optional `action` field for auto-execute on approval.
|
|
62
|
+
- `POST /actions` is **internal** (used by the strategy engine). Agents should use `POST /auth` with `action` instead.
|
|
63
|
+
- `POST /actions/token` is **admin-only** and supports profile-mode or permissions-mode (never both).
|
|
64
|
+
- `POST /auth/validate` checks token validity at runtime.
|
|
65
|
+
- `POST /actions/tokens/revoke` invalidates issued tokens.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## For Agents
|
|
70
|
+
|
|
71
|
+
> **IMPORTANT**: Agents should request tokens via `POST /auth` and use the approval flow. Human approval is still the security boundary, even when local trust is enabled.
|
|
72
|
+
|
|
73
|
+
## CLI (recommended)
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Create auth request (profile flow)
|
|
77
|
+
auramaxx auth request --agent-id my-agent --profile strict
|
|
78
|
+
|
|
79
|
+
# Poll with CLI helper (agent private key decrypts response)
|
|
80
|
+
auramaxx auth poll <requestId> --secret <secret> --private-key-file /tmp/aura-agent-private.pem
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Advanced option (no interactive poll):
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
auramaxx auth request --agent-id my-agent --profile strict --no-wait
|
|
87
|
+
auramaxx auth poll <requestId> --secret <secret> --private-key-file /tmp/aura-agent-private.pem --once
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## MCP / socket bootstrap
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# Start runtime
|
|
94
|
+
auramaxx
|
|
95
|
+
|
|
96
|
+
# Optional one-time IDE setup
|
|
97
|
+
auramaxx mcp --install
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
MCP bootstrap path:
|
|
101
|
+
1. Unix socket auto-approve (if local trust permits)
|
|
102
|
+
2. `AURA_TOKEN` env fallback
|
|
103
|
+
|
|
104
|
+
If socket bootstrap is blocked, fall back to normal token flow:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
AURA_TOKEN=<token> auramaxx mcp
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Raw HTTP / cURL examples
|
|
111
|
+
|
|
112
|
+
### `POST /auth` (profile flow)
|
|
113
|
+
|
|
114
|
+
`POST /auth` is profile-based. Raw permission payloads and raw TTL are rejected.
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# 1) Generate ephemeral RSA keypair for token transport
|
|
118
|
+
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out /tmp/aura-agent-private.pem
|
|
119
|
+
openssl rsa -in /tmp/aura-agent-private.pem -pubout -out /tmp/aura-agent-public.pem
|
|
120
|
+
PUBKEY_B64="$(base64 < /tmp/aura-agent-public.pem | tr -d '\n')"
|
|
121
|
+
|
|
122
|
+
# 2) Request token issuance
|
|
123
|
+
curl -sS -X POST http://localhost:4242/auth \
|
|
124
|
+
-H "Content-Type: application/json" \
|
|
125
|
+
-d "{\"agentId\":\"my-agent\",\"profile\":\"strict\",\"profileVersion\":\"v1\",\"pubkey\":\"$PUBKEY_B64\"}"
|
|
126
|
+
|
|
127
|
+
# 3) Poll request status
|
|
128
|
+
curl -sS "http://localhost:4242/auth/<requestId>?secret=<secret>"
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### `POST /auth/validate`
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
curl -sS -X POST http://localhost:4242/auth/validate \
|
|
135
|
+
-H "Authorization: Bearer <token>"
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### `POST /actions/token`
|
|
139
|
+
|
|
140
|
+
`/actions/token` supports **exactly one** issue mode:
|
|
141
|
+
|
|
142
|
+
- `profile` mode: `profile`, `profileVersion`, optional tighten-only overrides
|
|
143
|
+
- `permissions` mode: explicit permission grant
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
curl -sS -X POST http://localhost:4242/actions/token \
|
|
147
|
+
-H "Authorization: Bearer <admin_token>" \
|
|
148
|
+
-H "Content-Type: application/json" \
|
|
149
|
+
-d '{"profile":"strict","profileVersion":"v1","pubkey":"'$PUBKEY_B64'"}'
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Revoke a token
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
curl -sS -X POST http://localhost:4242/actions/tokens/revoke \
|
|
156
|
+
-H "Authorization: Bearer <admin_token>" \
|
|
157
|
+
-H "Content-Type: application/json" \
|
|
158
|
+
-d '{"jti":"<token_id>","reason":"Compromised agent key"}'
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Auth Flow Comparison
|
|
162
|
+
|
|
163
|
+
| Flow | Endpoint | Human gate? | Intended for |
|
|
164
|
+
|---|---|---|---|
|
|
165
|
+
| Agent Request | `POST /auth` + claim | Yes | Standard agent onboarding |
|
|
166
|
+
| Auth + Action | `POST /auth` with `action` field | Yes | One-off action-scoped escalation (auto-executes on approval) |
|
|
167
|
+
| Direct Admin Issue | `POST /actions/token` | Yes (admin required) | Headless/admin orchestration |
|
|
168
|
+
| Local Socket | Unix socket bootstrap | Trust-dependent | Fast local MCP bootstrap |
|
|
169
|
+
| Unlock/session | `POST /unlock` | Yes | Local machine setup/bootstrap |
|
|
170
|
+
|
|
171
|
+
## Profile-Based Issuance
|
|
172
|
+
|
|
173
|
+
### `/auth` is profile-only
|
|
174
|
+
|
|
175
|
+
`POST /auth` requires:
|
|
176
|
+
- `agentId`
|
|
177
|
+
- `profile`
|
|
178
|
+
- `pubkey`
|
|
179
|
+
|
|
180
|
+
Optional:
|
|
181
|
+
- `profileVersion` (defaults to `v1`)
|
|
182
|
+
- `profileOverrides` (tighten-only)
|
|
183
|
+
- `limit` / `limits.fund`
|
|
184
|
+
- `action` — pre-computed action to auto-execute on approval: `{ endpoint, method, body? }`
|
|
185
|
+
|
|
186
|
+
Rejected:
|
|
187
|
+
- raw `permissions`
|
|
188
|
+
- raw `ttl`
|
|
189
|
+
- raw `credentialAccess`
|
|
190
|
+
|
|
191
|
+
### `/actions/token` strict mode
|
|
192
|
+
|
|
193
|
+
`POST /actions/token` accepts **exactly one** issuance strategy:
|
|
194
|
+
|
|
195
|
+
- profile mode (`profile`, `profileVersion`, `profileOverrides`)
|
|
196
|
+
- permissions mode (`permissions`)
|
|
197
|
+
|
|
198
|
+
### Built-in Profiles (v1)
|
|
199
|
+
|
|
200
|
+
| Profile | Permissions | Read Scopes | Write Scopes | Excluded Fields | TTL | Max Reads |
|
|
201
|
+
|---------|------------|-------------|-------------|-----------------|-----|-----------|
|
|
202
|
+
| `strict` | `secret:read` | `vault:agent` | none | `password, cvv, privateKey, seedPhrase, refresh_token` | 15 min | 50 |
|
|
203
|
+
| `dev` | `wallet:list, secret:read, secret:write, action:create, action:read, action:resolve` | `vault:*` | `vault:*` | `cvv, seedPhrase, privateKey, refresh_token` | 1 hour | 500 |
|
|
204
|
+
| `admin` | `admin:*` | `*` | `*` | none | 1 hour | unlimited |
|
|
205
|
+
|
|
206
|
+
### Credential Scope Selectors
|
|
207
|
+
|
|
208
|
+
Use selectors to bound what an agent can see or edit:
|
|
209
|
+
|
|
210
|
+
- `vault:agent` — agent vault only
|
|
211
|
+
- `vault:primary` — primary vault only
|
|
212
|
+
- `vault:*` — all vaults
|
|
213
|
+
- `*` — all credentials
|
|
214
|
+
- `tag:<label>` — credentials with a specific tag
|
|
215
|
+
- `cred-xxxxx` — a specific credential by ID
|
|
216
|
+
|
|
217
|
+
### Profile Overrides (`profileOverrides`)
|
|
218
|
+
|
|
219
|
+
Overrides are **tighten-only** — they can only reduce privilege, never broaden it.
|
|
220
|
+
|
|
221
|
+
| Override Key | Type | Tighten-only Rule |
|
|
222
|
+
|---|---|---|
|
|
223
|
+
| `ttlSeconds` | number | Must be shorter than profile default |
|
|
224
|
+
| `maxReads` | number | Must be ≤ profile default |
|
|
225
|
+
| `scope` | string[] | Must be subset of profile permissions |
|
|
226
|
+
| `readScopes` | string[] | Must be subset of profile read scopes |
|
|
227
|
+
| `writeScopes` | string[] | Must be subset of profile write scopes |
|
|
228
|
+
| `excludeFields` | string[] | Can only add exclusions, never remove profile-required ones |
|
|
229
|
+
|
|
230
|
+
Example — request a `dev` profile but restrict to agent vault and shorten TTL:
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
curl -sS -X POST http://localhost:4242/auth \
|
|
234
|
+
-H "Content-Type: application/json" \
|
|
235
|
+
-d '{
|
|
236
|
+
"agentId": "my-agent",
|
|
237
|
+
"profile": "dev",
|
|
238
|
+
"pubkey": "'$PUBKEY_B64'",
|
|
239
|
+
"profileOverrides": {
|
|
240
|
+
"ttlSeconds": 600,
|
|
241
|
+
"readScopes": ["vault:agent"],
|
|
242
|
+
"writeScopes": ["vault:agent"],
|
|
243
|
+
"excludeFields": ["cvv", "seedPhrase", "privateKey", "refresh_token", "password"]
|
|
244
|
+
}
|
|
245
|
+
}'
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Use `POST /actions/token/preview` to inspect the effective policy before issuing:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
curl -sS -X POST http://localhost:4242/actions/token/preview \
|
|
252
|
+
-H "Authorization: Bearer <admin_token>" \
|
|
253
|
+
-H "Content-Type: application/json" \
|
|
254
|
+
-d '{"profile": "dev", "profileOverrides": {"ttlSeconds": 600}}'
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## Socket defaults and trust
|
|
258
|
+
|
|
259
|
+
Defaults:
|
|
260
|
+
|
|
261
|
+
- API server: `http://localhost:4242`
|
|
262
|
+
- Socket path: `/tmp/aura-cli-<uid>.sock`
|
|
263
|
+
- Local socket perms: `0600`
|
|
264
|
+
- Default trust profile: `dev`
|
|
265
|
+
- `trust.localAutoApprove = false`
|
|
266
|
+
|
|
267
|
+
Use admin auth for trust tuning:
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
curl -sS -X PATCH http://localhost:4242/defaults/trust.localAutoApprove \
|
|
271
|
+
-H "Authorization: Bearer <admin_token>" \
|
|
272
|
+
-H "Content-Type: application/json" \
|
|
273
|
+
-d '{"value": true}'
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
## Approving Requests (for humans)
|
|
277
|
+
|
|
278
|
+
When an agent requests access, a human must approve it. Every request gets a dedicated approval page:
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
http://localhost:4747/approve/<requestId>
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
The page shows the action summary, requested permissions, risk level, and spending limits. Review the details, then click **Approve** or **Deny**.
|
|
285
|
+
|
|
286
|
+
**Where to find the link:**
|
|
287
|
+
- The `POST /auth` response includes an `approveUrl` field — agents should surface this to the human
|
|
288
|
+
- MCP `auth` tool returns `approveUrl` — give this link to the human
|
|
289
|
+
- CLI `auramaxx auth request` prints the approval URL
|
|
290
|
+
- The dashboard at `http://localhost:4747` also shows pending requests
|
|
291
|
+
|
|
292
|
+
**For agents:** Always give the human the approval URL. Do not just say "approve in the dashboard" — provide the direct link so they can review and approve with one click.
|
|
293
|
+
|
|
294
|
+
## Token lifecycle and claim behavior
|
|
295
|
+
|
|
296
|
+
1) Agent requests token → returns `requestId` + `secret` + `approveUrl`.
|
|
297
|
+
2) Human opens approval URL, reviews permissions, and approves.
|
|
298
|
+
3) Agent polls `GET /auth/:requestId?secret=...` → one-time claim semantics.
|
|
299
|
+
4) On approval returns `encryptedToken` + metadata.
|
|
300
|
+
5) On restart: in-memory state rotates, tokens may be invalidated.
|
|
301
|
+
6) On revoke: `POST /actions/tokens/revoke` removes active token from trust boundary immediately.
|
|
302
|
+
|
|
303
|
+
## Encrypted password transport
|
|
304
|
+
|
|
305
|
+
Passwords for `/unlock` and `/setup` are RSA-OAEP encrypted before transmission.
|
|
306
|
+
|
|
307
|
+
- RSA keypair generated on server startup
|
|
308
|
+
- Frontend fetches `/auth/connect` pubkey and encrypts password
|
|
309
|
+
- Password decrypts server-side; token returns only to validated clients
|
|
310
|
+
- Private key stays in process memory
|
|
311
|
+
|
|
312
|
+
## Related references
|
|
313
|
+
|
|
314
|
+
- [MCP](./MCP.md)
|
|
315
|
+
- [CLI](./CLI.md)
|
|
316
|
+
- [Security](./security.md)
|
|
317
|
+
- [Authentication API](./api/authentication.md)
|
|
318
|
+
- [Troubleshooting](./TROUBLESHOOTING.md)
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Best Practices
|
|
2
|
+
|
|
3
|
+
Guidance for humans, agents, and developers working with AuraMaxx.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## For Humans
|
|
8
|
+
|
|
9
|
+
### Password Management
|
|
10
|
+
|
|
11
|
+
- Use a strong, unique password for each vault (min 8 characters, passphrase recommended)
|
|
12
|
+
- Never share your vault password - it unlocks all child vaults
|
|
13
|
+
- Never store your vault password digitally — treat it like a seed phrase
|
|
14
|
+
- If you forget your password, the seed phrase is your only recovery path
|
|
15
|
+
|
|
16
|
+
### Multi-Vault Usage
|
|
17
|
+
|
|
18
|
+
- Use separate vaults for separate purposes (e.g., trading vault, savings vault)
|
|
19
|
+
- Child vaults can auto-unlock when the parent vault is unlocked; independent vaults stay separate
|
|
20
|
+
- Hot wallets are bound to their vault and cannot be moved between vaults
|
|
21
|
+
|
|
22
|
+
### Backup Schedule
|
|
23
|
+
|
|
24
|
+
- Back up your seed phrase on paper immediately after vault creation
|
|
25
|
+
- Store it offline in a secure location (safe, safety deposit box)
|
|
26
|
+
- Never photograph, screenshot, or digitally copy your seed phrase
|
|
27
|
+
- Test your backup by verifying the cold wallet address matches
|
|
28
|
+
|
|
29
|
+
### Token Hygiene
|
|
30
|
+
|
|
31
|
+
- Revoke tokens you're no longer using — don't leave stale tokens active
|
|
32
|
+
- Each agent should have its own token with its own limits
|
|
33
|
+
- Review active tokens periodically in the dashboard
|
|
34
|
+
- Server restart invalidates all tokens — this is intentional security, not a bug
|
|
35
|
+
|
|
36
|
+
### Secret Input Safety
|
|
37
|
+
|
|
38
|
+
- Never give your agent a plaintext secret directly in chat/prompt text — model providers may see prompt content.
|
|
39
|
+
- Only set secrets manually via AuraMaxx CLI or UI.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## For Agents
|
|
44
|
+
|
|
45
|
+
### Permission Scoping
|
|
46
|
+
|
|
47
|
+
- Request the minimum permissions needed for your task
|
|
48
|
+
- Use `trade:all` for trading operations instead of listing individual permissions
|
|
49
|
+
- `trade:all` does NOT include `apikey:set` or `adapter:manage` — request those explicitly if needed for onboarding
|
|
50
|
+
- Never request `admin:*` unless you genuinely need full access
|
|
51
|
+
|
|
52
|
+
### Token Lifecycle
|
|
53
|
+
|
|
54
|
+
- Tokens live only in server memory — expect them to vanish on restart
|
|
55
|
+
- Always implement re-authentication logic: catch 401 → re-request via `POST /auth`
|
|
56
|
+
- Don't persist tokens to disk — request fresh ones each session
|
|
57
|
+
- The token from `GET /auth/:id?secret=...` can only be read once — save it immediately
|
|
58
|
+
|
|
59
|
+
### Error Handling Patterns
|
|
60
|
+
|
|
61
|
+
| Error | Pattern |
|
|
62
|
+
|-------|---------|
|
|
63
|
+
| 401 `Invalid or expired token` | Re-request token via `POST /auth`, wait for human approval |
|
|
64
|
+
| 401 `Cold wallet must be unlocked` | Tell human to unlock at dashboard or `http://localhost:4242/unlock` |
|
|
65
|
+
| 403 `Insufficient permissions` | Use `request_human_action` for one-time approval, or request a new token via `POST /auth` with the needed profile/scope |
|
|
66
|
+
| 403 `Amount exceeds spending limit` | Use `request_human_action` with the specific amount needed |
|
|
67
|
+
| Connection refused | Server not running — tell human to run `auramaxx` |
|
|
68
|
+
|
|
69
|
+
### Credential Access
|
|
70
|
+
|
|
71
|
+
- Use `secret:read` with narrow `credentialAccess.read` scopes — don't request wildcard access unless needed
|
|
72
|
+
- Use `excludeFields` to strip fields you don't need (e.g., exclude `refresh_token` if you only need `access_token`)
|
|
73
|
+
- For OAuth2 credentials, just read the credential — auto-refresh handles expired tokens transparently
|
|
74
|
+
- For TOTP, use `POST /credentials/:id/totp` to get the current code rather than reading the raw secret
|
|
75
|
+
- Check credential health badges — flag compromised credentials to the user proactively
|
|
76
|
+
|
|
77
|
+
### Multi-Step Operations
|
|
78
|
+
|
|
79
|
+
- Check `GET /setup` before starting any workflow — know what's configured
|
|
80
|
+
- For operations that require multiple endpoints (e.g., create wallet → fund → swap), verify each step succeeded before proceeding
|
|
81
|
+
- If a multi-step operation fails partway through, report what completed and what didn't — don't silently retry
|
|
82
|
+
|
package/docs/CLI.md
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# CLI
|
|
2
|
+
|
|
3
|
+
## Commands
|
|
4
|
+
|
|
5
|
+
The most common commands. All use the `aura` alias (or `npx auramaxx`).
|
|
6
|
+
|
|
7
|
+
| Command | Description |
|
|
8
|
+
|---------|-------------|
|
|
9
|
+
| `aura get <name>` | Read a credential (`--json` for full payload) |
|
|
10
|
+
| `aura set <name> <value>` | Create or update a secret |
|
|
11
|
+
| `aura list` | List credential names |
|
|
12
|
+
| `aura diary write --entry "<text>"` | Append an authenticated daily diary entry |
|
|
13
|
+
| `aura share <name>` | Create a shareable secret gist link |
|
|
14
|
+
| `aura inject <name> [-- <cmd>]` | Save to env var and optionally run command |
|
|
15
|
+
| `aura del <name>` | Delete a credential |
|
|
16
|
+
|
|
17
|
+
> **Note:** `aura get` returns encrypted ciphertext by default — this is a protected route.
|
|
18
|
+
> To decrypt and print a value, use `aura inject <name> -- printenv AURA_SECRET`.
|
|
19
|
+
> To pass a secret to a command under a custom env var: `aura inject <name> --env MY_VAR -- <your-command>`.
|
|
20
|
+
|
|
21
|
+
## Fast Path
|
|
22
|
+
|
|
23
|
+
If your vault is unlocked, secret reads work immediately via CLI or MCP:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
aura get OURSECRET
|
|
27
|
+
# or
|
|
28
|
+
npx auramaxx get OURSECRET
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## First Success (Run In Order)
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
aura status
|
|
35
|
+
aura list
|
|
36
|
+
aura set OURSECRET 123
|
|
37
|
+
aura get OURSECRET
|
|
38
|
+
aura share OURSECRET --expires-after 24h
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
If `status` fails, see [TROUBLESHOOTING.md](./TROUBLESHOOTING.md).
|
|
42
|
+
`status` checks both services: API server (`http://localhost:4242`) and dashboard UI (`http://localhost:4747`).
|
|
43
|
+
|
|
44
|
+
## Admin Commands
|
|
45
|
+
|
|
46
|
+
Essential admin commands for setup and maintenance.
|
|
47
|
+
|
|
48
|
+
| Command | Description |
|
|
49
|
+
|---------|-------------|
|
|
50
|
+
| `aura start` | Start Aura services (includes first-run bootstrap) |
|
|
51
|
+
| `aura status` | Check runtime health |
|
|
52
|
+
| `aura init` | Advanced/recovery setup flow (most users should run `start`) |
|
|
53
|
+
| `aura mcp` | Start MCP server for Claude Code, Cursor, etc. |
|
|
54
|
+
| `aura skill` | Install AuraMaxx skills for Claude/Codex/OpenClaw |
|
|
55
|
+
| `aura auth` | Request/poll agent auth approvals |
|
|
56
|
+
|
|
57
|
+
Run `aura --help --all` to see all commands including advanced admin (stop, lock, unlock, doctor, restore, etc.).
|
|
58
|
+
|
|
59
|
+
## Stopping Servers
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
aura stop
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Stops all running AuraMaxx processes:
|
|
66
|
+
|
|
67
|
+
- **Wallet server** (`server/index.ts` on port 4242)
|
|
68
|
+
- **Cron server** (`server/cron/index.ts` — balance sync, price sync)
|
|
69
|
+
- **Dashboard** (`next dev` on port 4747)
|
|
70
|
+
|
|
71
|
+
Also cleans up temp files (CLI lock file, Unix socket).
|
|
72
|
+
|
|
73
|
+
This does **not** affect the MCP server — that runs in its own stdio process managed by the client (Claude Code, Cursor, etc.) that started it.
|
|
74
|
+
|
|
75
|
+
## Examples
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# Check services
|
|
79
|
+
aura status
|
|
80
|
+
|
|
81
|
+
# Credentials
|
|
82
|
+
aura list # List credential names
|
|
83
|
+
aura get OURSECRET # Read a credential
|
|
84
|
+
aura set OURSECRET 123 # Create or update a credential value
|
|
85
|
+
aura set GITHUB_LOGIN hunter2 --type login # Store as login credential (password field)
|
|
86
|
+
aura share OURSECRET --expires-after 24h # Create a shareable secret gist link
|
|
87
|
+
aura del OURSECRET # Delete a credential
|
|
88
|
+
|
|
89
|
+
# Inject secret into a command
|
|
90
|
+
aura inject DONTLOOK --env HIDETHIS -- printenv HIDETHIS # Execute command with injected secret env var
|
|
91
|
+
|
|
92
|
+
# Auth and approvals
|
|
93
|
+
aura auth request --agent-id codex --profile strict
|
|
94
|
+
aura auth request --profile strict --action '{"endpoint":"/send","method":"POST","body":{"to":"0x...","amount":"0.01"}}'
|
|
95
|
+
aura auth poll <requestId> --secret <secret>
|
|
96
|
+
aura diary write --entry "Heartbeat: no pending requests, sync ok"
|
|
97
|
+
|
|
98
|
+
# Advanced
|
|
99
|
+
aura api GET /health --no-auth # Call any API endpoint
|
|
100
|
+
aura doctor # Run diagnostics
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Sensitive output defaults:
|
|
104
|
+
|
|
105
|
+
- Sensitive fields return encrypted output by default.
|
|
106
|
+
- To auto-decrypt sensitive output, set `AUTO_DECRYPT=true` and `AURA_VAULT_PASSWORD=<password>`.
|
|
107
|
+
|
|
108
|
+
## All Commands
|
|
109
|
+
|
|
110
|
+
Full list visible via `aura --help --all`. Summary:
|
|
111
|
+
|
|
112
|
+
| Command | Description |
|
|
113
|
+
|---------|-------------|
|
|
114
|
+
| `start` | Start Aura services (includes bootstrap/setup) |
|
|
115
|
+
| `stop` | Stop running servers |
|
|
116
|
+
| `status` | Check runtime health |
|
|
117
|
+
| `init` | Advanced/recovery setup flow |
|
|
118
|
+
| `unlock` / `lock` | Unlock or lock vaults |
|
|
119
|
+
| `mcp` | Start MCP server for Claude Code, Cursor, etc. |
|
|
120
|
+
| `skill` | Install AuraMaxx skills for agents |
|
|
121
|
+
| `auth` | Request/poll agent auth approvals |
|
|
122
|
+
| `diary` | Append daily diary entries (auth-aware) |
|
|
123
|
+
| `actions` | Internal: human actions and token management (use `auth` instead) |
|
|
124
|
+
| `api` | Call any wallet API endpoint from CLI |
|
|
125
|
+
| `doctor` | Run diagnostics |
|
|
126
|
+
| `restore` | Restore backup + run migrations |
|
|
127
|
+
| `app` | Manage installed apps |
|
|
128
|
+
| `apikey` | List/validate/set/delete API keys |
|
|
129
|
+
| `env` | Load env vars from vault via .aura file |
|
|
130
|
+
| `shell-hook` | Auto-load .aura env vars on cd (like direnv) |
|
|
131
|
+
| `experimental` | Toggle dev feature flags |
|
|
132
|
+
| `cron` | Run cron server standalone |
|
|
133
|
+
| `secret` | Run commands with injected secret env vars |
|
|
134
|
+
| `release-check` | Run pre-release checklist (diff audit, sanity, privacy scan, security routes) |
|
|
135
|
+
| `token` | Preview profile-based token policy |
|
|
136
|
+
| `wallet` | Wallet API wrappers (status, assets, swap, send, fund) |
|
|
137
|
+
|
|
138
|
+
## Next Steps
|
|
139
|
+
|
|
140
|
+
- Builder / AI integration -> [MCP.md](./MCP.md)
|
|
141
|
+
- Operator / Security -> [security.md](./security.md)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Aura Desktop (Electron)
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Aura Desktop wraps the existing Aura web app in an Electron shell (no duplicate UI fork).
|
|
5
|
+
|
|
6
|
+
## Security defaults
|
|
7
|
+
- `contextIsolation: true`
|
|
8
|
+
- `nodeIntegration: false`
|
|
9
|
+
- `sandbox: true`
|
|
10
|
+
- preload-only API bridge (`window.auraDesktop`)
|
|
11
|
+
|
|
12
|
+
## Run (dev)
|
|
13
|
+
1. Install deps: `npm install`
|
|
14
|
+
2. Start desktop shell: `AURA_ELECTRON_DEV=1 electron apps/desktop-electron/main.js`
|
|
15
|
+
|
|
16
|
+
This launches the web runtime and opens Electron against `http://localhost:4747`.
|
|
17
|
+
|
|
18
|
+
## Build + package (local artifact)
|
|
19
|
+
1. Build web app: `npx prisma generate && npx next build`
|
|
20
|
+
2. Package desktop app: `npx electron-builder --config apps/desktop-electron/electron-builder.yml`
|
|
21
|
+
|
|
22
|
+
Artifacts are generated under `dist/electron/`.
|
|
23
|
+
|
|
24
|
+
## Signing notes
|
|
25
|
+
- macOS notarization / Windows code signing are environment-specific and not enabled by default in this baseline.
|
|
26
|
+
- Configure signing credentials in CI/local env before publishing distributables.
|