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
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# PERMISSION
|
|
2
|
+
|
|
3
|
+
Canonical reference for AuraMaxx permission surfaces, request flows, and policy controls.
|
|
4
|
+
|
|
5
|
+
## 1) Permission map (runtime vocabulary)
|
|
6
|
+
|
|
7
|
+
High-impact permissions observed in code/docs surfaces:
|
|
8
|
+
|
|
9
|
+
- `admin:*` — full administrative bypass for guarded routes.
|
|
10
|
+
- `action:create` — create human-approval requests (internal `POST /actions`, or `POST /auth` with `action` field).
|
|
11
|
+
- `action:read` — list/view pending action requests.
|
|
12
|
+
- `action:resolve` — approve/reject pending actions.
|
|
13
|
+
- `secret:read` — list/read credential material (subject to token policy + field controls).
|
|
14
|
+
- `secret:write` — create/update/delete credential data.
|
|
15
|
+
- `trade:all` — broad trade operation scope (high risk).
|
|
16
|
+
- `workspace:modify` — workspace mutation capabilities.
|
|
17
|
+
- `extension:*` — extension-related broad scope.
|
|
18
|
+
|
|
19
|
+
Risk guidance:
|
|
20
|
+
- **Blocker/High:** `admin:*`, broad write/trade scopes.
|
|
21
|
+
- **Medium:** `action:resolve`, `secret:write` (without narrow selectors).
|
|
22
|
+
- **Lower (still sensitive):** narrow `secret:read` with strict selector + redaction policy.
|
|
23
|
+
|
|
24
|
+
## 2) Issuance paths and where permissions come from
|
|
25
|
+
|
|
26
|
+
### A) `POST /auth` (profile-first, human approval)
|
|
27
|
+
- Inputs: `agentId`, `profile`, `pubkey` (+ optional tighten-only overrides).
|
|
28
|
+
- Returns request + secret; after approval, agent claims encrypted token.
|
|
29
|
+
- Raw permission arrays are not the primary `/auth` contract.
|
|
30
|
+
|
|
31
|
+
### B) `POST /actions` (internal — strategy engine only)
|
|
32
|
+
- Internal route used by the strategy engine's `request_human_action` tool.
|
|
33
|
+
- Agents should use `POST /auth` with an optional `action` field instead.
|
|
34
|
+
- Requires caller permission: `action:create`.
|
|
35
|
+
- Payload includes requested permissions for temporary escalation.
|
|
36
|
+
- Human resolves via approve/reject; approved action mints scoped token.
|
|
37
|
+
|
|
38
|
+
### C) `POST /actions/token` (direct issuance)
|
|
39
|
+
- Admin-gated path.
|
|
40
|
+
- XOR mode: exactly one of `profile` or `permissions`.
|
|
41
|
+
- Supports preview via `POST /actions/token/preview`.
|
|
42
|
+
|
|
43
|
+
## 3) Runtime enforcement model
|
|
44
|
+
|
|
45
|
+
- Bearer token validated at route middleware.
|
|
46
|
+
- Route guards apply permission checks (`requirePermission`, compound expansion helpers).
|
|
47
|
+
- Additional secret-access governance is layered on top of route perms:
|
|
48
|
+
- selector scope checks
|
|
49
|
+
- TTL limits
|
|
50
|
+
- read-count limits
|
|
51
|
+
- field exclusion/redaction
|
|
52
|
+
|
|
53
|
+
## 4) Config-passable policy controls (code-scan aligned)
|
|
54
|
+
|
|
55
|
+
Common controls seen in policy/profile surfaces:
|
|
56
|
+
|
|
57
|
+
- `ttlSeconds` — token lifetime window.
|
|
58
|
+
- `maxReads` — cap on successful secret reads.
|
|
59
|
+
- `scope` — permission scope list.
|
|
60
|
+
- `readScopes` / `writeScopes` — selector constraints.
|
|
61
|
+
- `excludeFields` — redact sensitive fields from readable payloads.
|
|
62
|
+
- `profileOverrides` — tighten-only adjustments (cannot broaden base profile).
|
|
63
|
+
|
|
64
|
+
Practical examples:
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"profile": "strict",
|
|
69
|
+
"profileVersion": "v1",
|
|
70
|
+
"profileOverrides": {
|
|
71
|
+
"ttlSeconds": 900,
|
|
72
|
+
"maxReads": 25,
|
|
73
|
+
"excludeFields": ["refresh_token", "seedPhrase"]
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"permissions": ["secret:read"],
|
|
81
|
+
"credentialAccess": {
|
|
82
|
+
"read": ["vault:prod/*"],
|
|
83
|
+
"excludeFields": ["password", "privateKey"],
|
|
84
|
+
"maxReads": 10
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## 5) Request flows (quick examples)
|
|
90
|
+
|
|
91
|
+
### Agent escalation flow (recommended)
|
|
92
|
+
1. Agent calls `POST /auth` with `action` field containing the operation to execute.
|
|
93
|
+
2. Human approves in dashboard.
|
|
94
|
+
3. Token is created and the pre-computed action auto-executes on approval.
|
|
95
|
+
|
|
96
|
+
### `/actions` API flow (internal — strategy engine)
|
|
97
|
+
1. Strategy engine creates action request with needed permissions.
|
|
98
|
+
2. Human approves/rejects (`/actions/:id/resolve`).
|
|
99
|
+
3. Approved action auto-executes with scoped token.
|
|
100
|
+
|
|
101
|
+
### CLI flow
|
|
102
|
+
```bash
|
|
103
|
+
# Recommended (agents):
|
|
104
|
+
npx auramaxx auth request --profile strict --action '{"endpoint":"/send","method":"POST","body":{...}}'
|
|
105
|
+
|
|
106
|
+
# Internal (strategy engine / admin):
|
|
107
|
+
npx auramaxx actions create --summary "Read prod creds" --permissions secret:read
|
|
108
|
+
npx auramaxx actions pending
|
|
109
|
+
npx auramaxx actions resolve <actionId> --approve
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### MCP flow
|
|
113
|
+
- Start with least-privilege token.
|
|
114
|
+
- On 403, the MCP `auth` tool handles escalation via `POST /auth`.
|
|
115
|
+
- Retry only after approved token/policy is active.
|
|
116
|
+
|
|
117
|
+
## 6) Deny, revoke, and escalation implications
|
|
118
|
+
|
|
119
|
+
- **Deny:** operation remains blocked; caller must request different scope or abort.
|
|
120
|
+
- **Revoke:** use token revoke surfaces (`/actions/tokens/revoke` / console) to invalidate issued tokens.
|
|
121
|
+
- **Escalation limits:** privileged self-escalation patterns should be blocked; use human-reviewed action/token flows.
|
|
122
|
+
|
|
123
|
+
## 7) Operator defaults checklist
|
|
124
|
+
|
|
125
|
+
- Prefer profile-based issuance for normal onboarding.
|
|
126
|
+
- Keep TTL short and selectors narrow.
|
|
127
|
+
- Always set `excludeFields` when full fields are unnecessary.
|
|
128
|
+
- Use approve links/actions for one-time elevated tasks.
|
|
129
|
+
- Revoke stale/high-risk tokens after task completion.
|
|
130
|
+
|
|
131
|
+
## Related docs
|
|
132
|
+
|
|
133
|
+
- `docs/AUTH.md`
|
|
134
|
+
- `docs/security.md`
|
|
135
|
+
- `docs/api/authentication.md`
|
|
136
|
+
- `docs/CLI.md`
|
|
137
|
+
- `docs/MCP.md`
|
package/docs/PROTOCOL.md
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# The `.aura` File Format
|
|
2
|
+
|
|
3
|
+
**Version:** 0.1.0 (Draft)
|
|
4
|
+
**Status:** Draft
|
|
5
|
+
**Date:** 2026-02-16
|
|
6
|
+
|
|
7
|
+
## 1. Introduction
|
|
8
|
+
|
|
9
|
+
### 1.1 Why
|
|
10
|
+
|
|
11
|
+
Applications need secrets. Developers pass them via environment variables, typically stored in `.env` files. This creates a problem: `.env` files contain plaintext secrets and must never be committed to version control. Teams share them over Slack, email, or sticky notes. They drift. They leak.
|
|
12
|
+
|
|
13
|
+
The `.aura` format solves this by separating **what a project needs** from **the secrets themselves**. A `.aura` file maps environment variables to credential references in a vault. It contains no secrets — only pointers. It is safe to commit, review, and share.
|
|
14
|
+
|
|
15
|
+
### 1.2 Design Goals
|
|
16
|
+
|
|
17
|
+
- **Commit-safe.** No secrets, ever.
|
|
18
|
+
- **Simple.** One mapping per line. No templating, no interpolation, no nesting.
|
|
19
|
+
- **Vault-agnostic.** Any secret store can implement resolution.
|
|
20
|
+
- **Familiar.** If you've used `.env`, you already know 90% of `.aura`.
|
|
21
|
+
|
|
22
|
+
## 2. File Format
|
|
23
|
+
|
|
24
|
+
### 2.1 General
|
|
25
|
+
|
|
26
|
+
- **Filename:** `.aura` (lowercase, leading dot)
|
|
27
|
+
- **Encoding:** UTF-8
|
|
28
|
+
- **Line endings:** LF or CRLF (implementations MUST accept both)
|
|
29
|
+
|
|
30
|
+
### 2.2 Grammar
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
file = *line
|
|
34
|
+
line = blank / comment / mapping
|
|
35
|
+
blank = *WSP NEWLINE
|
|
36
|
+
comment = "#" *CHAR NEWLINE
|
|
37
|
+
mapping = key "=" reference NEWLINE
|
|
38
|
+
key = 1*( ALPHA / DIGIT / "_" )
|
|
39
|
+
reference = [ "@" vault-name "/" ] credential-name "/" field
|
|
40
|
+
vault-name = 1*( ALPHA / DIGIT / "-" / "_" )
|
|
41
|
+
credential-name = 1*( ALPHA / DIGIT / "-" / "_" / "." )
|
|
42
|
+
field = 1*( ALPHA / DIGIT / "-" / "_" / "." )
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 2.3 Mappings
|
|
46
|
+
|
|
47
|
+
Each mapping is a single line of the form:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
ENV_VAR=reference
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
- **No whitespace** around `=`. `KEY = ref` is invalid.
|
|
54
|
+
- **No quoting.** Values are never quoted.
|
|
55
|
+
- **No multiline values.**
|
|
56
|
+
- **No duplicate keys.** If a key appears more than once, implementations MUST reject the file.
|
|
57
|
+
|
|
58
|
+
### 2.4 References
|
|
59
|
+
|
|
60
|
+
A reference points to a field within a credential in a vault:
|
|
61
|
+
|
|
62
|
+
| Form | Meaning |
|
|
63
|
+
|------|---------|
|
|
64
|
+
| `credential/field` | Field `field` of credential `credential` in the primary vault |
|
|
65
|
+
| `@vault/credential/field` | Field `field` of credential `credential` in vault `vault` |
|
|
66
|
+
|
|
67
|
+
The **primary vault** is determined by the resolution environment (e.g., a CLI config or SDK default). The `.aura` file itself does not define which vault is primary.
|
|
68
|
+
|
|
69
|
+
### 2.5 Comments and Blank Lines
|
|
70
|
+
|
|
71
|
+
Lines beginning with `#` (optionally preceded by whitespace) are comments. Blank lines are ignored. Both are preserved for human readability.
|
|
72
|
+
|
|
73
|
+
## 3. Resolution Algorithm
|
|
74
|
+
|
|
75
|
+
Given a `.aura` file, a resolver MUST:
|
|
76
|
+
|
|
77
|
+
1. **Parse** the file into an ordered list of `(key, reference)` mappings.
|
|
78
|
+
2. **For each mapping**, decompose the reference into `(vault, credential, field)`. If no `@vault` prefix, use the primary vault.
|
|
79
|
+
3. **Resolve** each `(vault, credential, field)` tuple against the vault provider. Obtain the plaintext secret value.
|
|
80
|
+
4. **Fail loudly** if any credential or field does not exist. Implementations MUST NOT substitute defaults, empty strings, or fallback values. A missing secret is a fatal error.
|
|
81
|
+
5. **Inject** each `key=resolved_value` pair into the target environment.
|
|
82
|
+
|
|
83
|
+
### 3.1 Error Handling
|
|
84
|
+
|
|
85
|
+
| Condition | Behavior |
|
|
86
|
+
|-----------|----------|
|
|
87
|
+
| Credential not found | MUST fail with error identifying the missing credential |
|
|
88
|
+
| Field not found | MUST fail with error identifying the credential and missing field |
|
|
89
|
+
| Vault not reachable | MUST fail with connection error |
|
|
90
|
+
| Duplicate key | MUST fail at parse time |
|
|
91
|
+
| Malformed line | MUST fail at parse time with line number |
|
|
92
|
+
|
|
93
|
+
Implementations MUST NOT partially inject. Either all mappings resolve or none do.
|
|
94
|
+
|
|
95
|
+
## 4. Example
|
|
96
|
+
|
|
97
|
+
```aura
|
|
98
|
+
# Database
|
|
99
|
+
DATABASE_URL=database-prod/url
|
|
100
|
+
DATABASE_POOL_SIZE=database-prod/pool_size
|
|
101
|
+
|
|
102
|
+
# Payments
|
|
103
|
+
STRIPE_SECRET_KEY=stripe/secret_key
|
|
104
|
+
STRIPE_WEBHOOK_SECRET=stripe/webhook_secret
|
|
105
|
+
|
|
106
|
+
# AWS (staging vault)
|
|
107
|
+
AWS_ACCESS_KEY_ID=@staging/aws/access_key
|
|
108
|
+
AWS_SECRET_ACCESS_KEY=@staging/aws/secret_key
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## 5. Implementing a Resolver
|
|
112
|
+
|
|
113
|
+
Any tool can resolve `.aura` files. A resolver needs:
|
|
114
|
+
|
|
115
|
+
1. **A parser** — split lines, ignore comments/blanks, extract `(key, reference)` pairs.
|
|
116
|
+
2. **A vault backend** — given `(vault, credential, field)`, return the secret value. This could be AuraMaxx, 1Password, HashiCorp Vault, AWS Secrets Manager, a YAML file — anything.
|
|
117
|
+
3. **An injector** — set environment variables or write a `.env` file.
|
|
118
|
+
|
|
119
|
+
That's it. The format is intentionally trivial to parse. A working parser is ~30 lines in any language.
|
|
120
|
+
|
|
121
|
+
### 5.1 Reference CLI
|
|
122
|
+
|
|
123
|
+
The `aura` CLI provides a reference implementation:
|
|
124
|
+
|
|
125
|
+
| Command | Description |
|
|
126
|
+
|---------|-------------|
|
|
127
|
+
| `aura env -- <cmd>` | Resolve `.aura`, inject env vars, run `<cmd>` |
|
|
128
|
+
| `aura env inject` | Resolve `.aura`, write `.env` file |
|
|
129
|
+
| `aura env check` | Verify all referenced credentials exist (no values printed) |
|
|
130
|
+
| `aura env list` | Print mappings without resolving values |
|
|
131
|
+
| `aura init --from-dotenv` | Generate `.aura` from an existing `.env` file |
|
|
132
|
+
|
|
133
|
+
## 6. Security Considerations
|
|
134
|
+
|
|
135
|
+
- `.aura` files contain **no secrets** and are safe to commit to version control.
|
|
136
|
+
- Resolved `.env` files (output of `aura env inject`) MUST be gitignored.
|
|
137
|
+
- Implementations SHOULD NOT log resolved secret values.
|
|
138
|
+
- Implementations SHOULD clear resolved values from memory after injection when possible.
|
|
139
|
+
|
|
140
|
+
## 7. MIME Type
|
|
141
|
+
|
|
142
|
+
`text/x-aura` (informational, not registered).
|
package/docs/README.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Docs — What are you trying to do?
|
|
2
|
+
|
|
3
|
+
Use this file like the `/docs` homepage: pick your goal, then open the linked doc.
|
|
4
|
+
|
|
5
|
+
## CORE CONCEPTS
|
|
6
|
+
- [Features](./core-concepts/FEATURES.md)
|
|
7
|
+
|
|
8
|
+
## START HERE
|
|
9
|
+
- [Getting Started](../README.md)
|
|
10
|
+
- [Setup](./AGENT_SETUP.md)
|
|
11
|
+
- [CLI](./CLI.md)
|
|
12
|
+
- [Troubleshooting](./TROUBLESHOOTING.md)
|
|
13
|
+
- [Agent setup entrypoint](../agents/README.md)
|
|
14
|
+
|
|
15
|
+
## UNDERSTAND AURA
|
|
16
|
+
- [Overview](./external/overview.md)
|
|
17
|
+
- [Getting Started (external)](./external/getting-started.md)
|
|
18
|
+
- [HOW TO AURAMAXX](./external/HOW_TO_AURAMAXX/README.md)
|
|
19
|
+
- [GETTING_SECRETS](./external/HOW_TO_AURAMAXX/GETTING_SECRETS.md)
|
|
20
|
+
## CREDENTIAL WORKFLOWS
|
|
21
|
+
- [Credentials](./credentials.md)
|
|
22
|
+
- [Share Secret](./external/share-secret.md)
|
|
23
|
+
<!-- - [.aura File](./aura-file.md) -->
|
|
24
|
+
|
|
25
|
+
## AUTH & SAFETY
|
|
26
|
+
- [Auth](./AUTH.md)
|
|
27
|
+
- [Security](./security.md)
|
|
28
|
+
- [Best Practices](./BEST-PRACTICES.md)
|
|
29
|
+
|
|
30
|
+
## INTEGRATIONS & AUTOMATION
|
|
31
|
+
- [MCP](./MCP.md)
|
|
32
|
+
<!-- - [Desktop / Electron](./DESKTOP_ELECTRON.md) -->
|
|
33
|
+
<!-- - [Apps](./APPS.md) -->
|
|
34
|
+
<!-- - [Developing Apps](./DEVELOPING-APPS.md) -->
|
|
35
|
+
<!-- - [Adapters](./ADAPTERS.md) -->
|
|
36
|
+
<!-- - [Workspace](./WORKSPACE.md) -->
|
|
37
|
+
|
|
38
|
+
## ARCHITECTURE
|
|
39
|
+
- [Architecture](./ARCHITECTURE.md)
|
|
40
|
+
<!-- - [Protocol](./PROTOCOL.md) -->
|
|
41
|
+
|
|
42
|
+
<!-- ## WALLET (LATER)
|
|
43
|
+
- [Wallet Overview](./wallet/README.md)
|
|
44
|
+
- [Wallet Strategy](./wallet/STRATEGY.md)
|
|
45
|
+
- [Developing Strategies](./wallet/DEVELOPING-STRATEGIES.md)
|
|
46
|
+
- [Wallet + AI](./wallet/AI.md) -->
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
If you’re unsure, start at **START HERE → Getting Started**.
|
package/docs/SKILLS.md
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Skills
|
|
2
|
+
|
|
3
|
+
Skills give your agent built-in knowledge of AuraMaxx commands and workflows — no MCP server or running connection required.
|
|
4
|
+
|
|
5
|
+
Quickest path: install the skill in your workspace.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
cd <your-codebase>
|
|
9
|
+
npx -y skills add Aura-Industry/auramaxx
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Install
|
|
15
|
+
|
|
16
|
+
Install all supported clients at once:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
auramaxx skill
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Or install per client:
|
|
23
|
+
|
|
24
|
+
### Claude Code
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
auramaxx skill --claude
|
|
28
|
+
|
|
29
|
+
# Or manually, from your project:
|
|
30
|
+
mkdir -p .claude/skills
|
|
31
|
+
cd .claude/skills
|
|
32
|
+
npx -y skills add Aura-Industry/auramaxx
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Installs to `~/.claude/skills/auramaxx`.
|
|
36
|
+
|
|
37
|
+
### Codex CLI
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
auramaxx skill --codex
|
|
41
|
+
|
|
42
|
+
# Or manually, from anywhere:
|
|
43
|
+
mkdir -p ~/.codex/skills
|
|
44
|
+
cd ~/.codex/skills
|
|
45
|
+
npx -y skills add Aura-Industry/auramaxx
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Installs to `~/.codex/skills/auramaxx`.
|
|
49
|
+
|
|
50
|
+
### OpenClaw
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
auramaxx skill --openclaw
|
|
54
|
+
|
|
55
|
+
# Or manually, install globally for all OpenClaw agents:
|
|
56
|
+
mkdir -p ~/.openclaw/skills
|
|
57
|
+
cd ~/.openclaw/skills
|
|
58
|
+
npx -y skills add Aura-Industry/auramaxx
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Installs to `~/.openclaw/skills/auramaxx`.
|
|
62
|
+
OpenClaw resolves workspace-local `skills/` first; for shared skills across agents, keep this in `~/.openclaw/skills` and avoid same-name workspace copies.
|
|
63
|
+
|
|
64
|
+
### Other clients
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
cd <your-codebase>
|
|
68
|
+
npx -y skills add Aura-Industry/auramaxx
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Manual Install (download from GitHub)
|
|
74
|
+
|
|
75
|
+
If you don't want to use the CLI or `npx`, you can grab the skill folder directly from GitHub:
|
|
76
|
+
|
|
77
|
+
1. Go to [github.com/Aura-Industry/auramaxx](https://github.com/Aura-Industry/auramaxx)
|
|
78
|
+
2. Download or clone the repo
|
|
79
|
+
3. Copy the `skills/auramaxx` folder into your client's skill directory:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Claude Code
|
|
83
|
+
cp -r skills/auramaxx ~/.claude/skills/auramaxx
|
|
84
|
+
|
|
85
|
+
# Codex CLI
|
|
86
|
+
cp -r skills/auramaxx ~/.codex/skills/auramaxx
|
|
87
|
+
|
|
88
|
+
# OpenClaw
|
|
89
|
+
cp -r skills/auramaxx ~/.openclaw/skills/auramaxx
|
|
90
|
+
|
|
91
|
+
# Any other client — drop it wherever your agent reads skills from
|
|
92
|
+
cp -r skills/auramaxx /path/to/your/skills/auramaxx
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
The folder contains:
|
|
96
|
+
- `SKILL.md` — main skill file (commands, workflows, error recovery)
|
|
97
|
+
- `HEARTBEAT.md` — periodic check-in routine (vault status, secret access, human updates)
|
|
98
|
+
- `docs/` — bundled reference docs (API, auth, MCP, security, etc.)
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Verify
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
auramaxx skill --doctor
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Then test with your agent:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
auramaxx set OURSECRET "hello from the vault"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Ask your agent:
|
|
115
|
+
|
|
116
|
+
`Use auramaxx to get the secret OURSECRET.`
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## What's in the skill
|
|
121
|
+
|
|
122
|
+
| File | Purpose |
|
|
123
|
+
|------|---------|
|
|
124
|
+
| `SKILL.md` | Setup flow, wallet operations, permissions, error recovery, tool-call and intent modes |
|
|
125
|
+
| `HEARTBEAT.md` | Periodic heartbeat routine — checks vault status, reports secret access, updates human |
|
|
126
|
+
| `docs/` | Flattened copies of API.md, AUTH.md, MCP.md, security.md, and other reference docs |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Troubleshooting
|
|
131
|
+
|
|
132
|
+
See [TROUBLESHOOTING.md](./TROUBLESHOOTING.md).
|