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.
Files changed (363) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +112 -0
  3. package/bin/aurawallet.js +121 -0
  4. package/docs/ADAPTERS.md +467 -0
  5. package/docs/API.md +2679 -0
  6. package/docs/APPS.md +198 -0
  7. package/docs/ARCHITECTURE.md +350 -0
  8. package/docs/AUTH.md +698 -0
  9. package/docs/BEST-PRACTICES.md +121 -0
  10. package/docs/CLI.md +61 -0
  11. package/docs/DEVELOPING-APPS.md +452 -0
  12. package/docs/EXTENSION.md +97 -0
  13. package/docs/JOBS.md +33 -0
  14. package/docs/MCP.md +76 -0
  15. package/docs/PROTOCOL.md +142 -0
  16. package/docs/SETUP.md +219 -0
  17. package/docs/WORKSPACE.md +672 -0
  18. package/docs/agent-auth.md +63 -0
  19. package/docs/aura-file.md +48 -0
  20. package/docs/credentials.md +53 -0
  21. package/docs/external/getting-started.md +65 -0
  22. package/docs/external/overview.md +45 -0
  23. package/docs/external/use-cases.md +48 -0
  24. package/docs/external/why-aura.md +35 -0
  25. package/docs/jobs/connect-agent.md +77 -0
  26. package/docs/jobs/migrate-from-dotenv.md +79 -0
  27. package/docs/jobs/recover-from-lockout.md +72 -0
  28. package/docs/jobs/secure-ci.md +63 -0
  29. package/docs/oauth2.md +42 -0
  30. package/docs/passkeys.md +60 -0
  31. package/docs/security.md +540 -0
  32. package/docs/specs/aura-open-protocol.md +61 -0
  33. package/docs/specs/aura-provider-plugin.md +24 -0
  34. package/docs/specs/aura-registry-model.md +31 -0
  35. package/docs/specs/fixtures/invalid-bad-key.aura +1 -0
  36. package/docs/specs/fixtures/invalid-bad-unicode-escape.aura +1 -0
  37. package/docs/specs/fixtures/invalid-duplicate-key.aura +2 -0
  38. package/docs/specs/fixtures/valid-basic.aura +4 -0
  39. package/docs/specs/fixtures/valid-provider-ref.aura +1 -0
  40. package/docs/specs/fixtures/valid-quoted-escapes.aura +2 -0
  41. package/docs/templates/RELEASE_NOTES_TEMPLATE.md +22 -0
  42. package/docs/totp.md +40 -0
  43. package/docs/wallet/AI.md +508 -0
  44. package/docs/wallet/DEVELOPING-STRATEGIES.md +713 -0
  45. package/docs/wallet/README.md +47 -0
  46. package/docs/wallet/STRATEGY.md +89 -0
  47. package/next.config.ts +21 -0
  48. package/package.json +151 -0
  49. package/postcss.config.mjs +8 -0
  50. package/prisma/migrations/20260214170000_baseline/migration.sql +511 -0
  51. package/prisma/migrations/20260216214537_add_passkey_model/migration.sql +18 -0
  52. package/prisma/migrations/20260217150500_add_credential_access_audit/migration.sql +31 -0
  53. package/prisma/migrations/migration_lock.toml +3 -0
  54. package/prisma/schema.prisma +447 -0
  55. package/public/logo-chevron.svg +31 -0
  56. package/public/logo-concentric.svg +31 -0
  57. package/public/logo-crosshatch.svg +39 -0
  58. package/public/logo-dashed.svg +39 -0
  59. package/public/logo-horizontal.svg +31 -0
  60. package/public/logo-m56.svg +64 -0
  61. package/public/logo.webp +0 -0
  62. package/scripts/add-app.js +245 -0
  63. package/scripts/init.sh +57 -0
  64. package/scripts/migrate-apikeys-to-credentials.ts +35 -0
  65. package/scripts/sandbox-agent-flow.sh +235 -0
  66. package/scripts/sandbox.sh +175 -0
  67. package/scripts/validate-job-docs.mjs +125 -0
  68. package/server/abi/SwapHelper.json +438 -0
  69. package/server/cli/approval.ts +447 -0
  70. package/server/cli/commands/app.ts +204 -0
  71. package/server/cli/commands/cron.ts +24 -0
  72. package/server/cli/commands/doctor.ts +1007 -0
  73. package/server/cli/commands/env.ts +456 -0
  74. package/server/cli/commands/init.ts +752 -0
  75. package/server/cli/commands/mcp.ts +125 -0
  76. package/server/cli/commands/restore.ts +314 -0
  77. package/server/cli/commands/shell-hook.ts +468 -0
  78. package/server/cli/commands/start.ts +62 -0
  79. package/server/cli/commands/status.ts +59 -0
  80. package/server/cli/commands/stop.ts +14 -0
  81. package/server/cli/commands/token.ts +180 -0
  82. package/server/cli/commands/unlock.ts +49 -0
  83. package/server/cli/commands/vault.ts +417 -0
  84. package/server/cli/index.ts +328 -0
  85. package/server/cli/lib/aura-parser.ts +64 -0
  86. package/server/cli/lib/credential-create.ts +74 -0
  87. package/server/cli/lib/credential-resolve.ts +254 -0
  88. package/server/cli/lib/dotenv-migrate.ts +116 -0
  89. package/server/cli/lib/dotenv-parser.ts +146 -0
  90. package/server/cli/lib/http.ts +91 -0
  91. package/server/cli/lib/init-steps.ts +76 -0
  92. package/server/cli/lib/local-agent-trust.ts +45 -0
  93. package/server/cli/lib/process.ts +136 -0
  94. package/server/cli/lib/prompt.ts +85 -0
  95. package/server/cli/lib/theme.ts +240 -0
  96. package/server/cli/socket.ts +570 -0
  97. package/server/cli/transport-client.ts +50 -0
  98. package/server/cron/index.ts +137 -0
  99. package/server/cron/job.ts +31 -0
  100. package/server/cron/jobs/balance-sync.ts +436 -0
  101. package/server/cron/jobs/incoming-scan.ts +506 -0
  102. package/server/cron/jobs/native-price.ts +70 -0
  103. package/server/cron/jobs/orphan-cleanup.ts +40 -0
  104. package/server/cron/jobs/strategy-runner.ts +175 -0
  105. package/server/cron/scheduler.ts +125 -0
  106. package/server/index.ts +406 -0
  107. package/server/lib/adapters/factory.ts +110 -0
  108. package/server/lib/adapters/index.ts +19 -0
  109. package/server/lib/adapters/router.ts +297 -0
  110. package/server/lib/adapters/telegram.ts +645 -0
  111. package/server/lib/adapters/types.ts +89 -0
  112. package/server/lib/adapters/webhook.ts +95 -0
  113. package/server/lib/address.ts +49 -0
  114. package/server/lib/agent-auth/contracts.ts +1194 -0
  115. package/server/lib/agent-profiles.ts +328 -0
  116. package/server/lib/ai.ts +285 -0
  117. package/server/lib/api-registry/contracts.ts +86 -0
  118. package/server/lib/api-registry/validation.ts +172 -0
  119. package/server/lib/apikey-migration.ts +189 -0
  120. package/server/lib/app-installer.ts +505 -0
  121. package/server/lib/app-tokens.ts +247 -0
  122. package/server/lib/auth.ts +314 -0
  123. package/server/lib/batch.ts +242 -0
  124. package/server/lib/cold.ts +874 -0
  125. package/server/lib/config.ts +381 -0
  126. package/server/lib/credential-access-audit.ts +85 -0
  127. package/server/lib/credential-access-policy.ts +110 -0
  128. package/server/lib/credential-health.ts +343 -0
  129. package/server/lib/credential-import.ts +487 -0
  130. package/server/lib/credential-scope.ts +87 -0
  131. package/server/lib/credential-shares.ts +190 -0
  132. package/server/lib/credential-transport.ts +342 -0
  133. package/server/lib/credential-vault.ts +77 -0
  134. package/server/lib/credentials.ts +333 -0
  135. package/server/lib/crypto.ts +8 -0
  136. package/server/lib/db.ts +15 -0
  137. package/server/lib/defaults.ts +366 -0
  138. package/server/lib/dex/index.ts +80 -0
  139. package/server/lib/dex/relay.ts +235 -0
  140. package/server/lib/dex/types.ts +59 -0
  141. package/server/lib/dex/uniswap.ts +370 -0
  142. package/server/lib/e2e-agent/artifacts.ts +36 -0
  143. package/server/lib/e2e-agent/contracts.ts +112 -0
  144. package/server/lib/e2e-agent/validation.ts +135 -0
  145. package/server/lib/encrypt.ts +128 -0
  146. package/server/lib/error.ts +20 -0
  147. package/server/lib/events.ts +205 -0
  148. package/server/lib/hot.ts +357 -0
  149. package/server/lib/key-fingerprint.ts +28 -0
  150. package/server/lib/logger.ts +331 -0
  151. package/server/lib/network.ts +137 -0
  152. package/server/lib/notifications.ts +219 -0
  153. package/server/lib/oauth2-refresh.ts +241 -0
  154. package/server/lib/oursecret.ts +54 -0
  155. package/server/lib/passkey-credential.ts +360 -0
  156. package/server/lib/passkey.ts +68 -0
  157. package/server/lib/permissions.ts +248 -0
  158. package/server/lib/pino.ts +24 -0
  159. package/server/lib/policy-preview.ts +138 -0
  160. package/server/lib/price.ts +338 -0
  161. package/server/lib/prices.ts +34 -0
  162. package/server/lib/project-scope.ts +239 -0
  163. package/server/lib/resolve-action.ts +427 -0
  164. package/server/lib/resolve.ts +36 -0
  165. package/server/lib/sessions.ts +632 -0
  166. package/server/lib/solana/connection.ts +26 -0
  167. package/server/lib/solana/jupiter.ts +128 -0
  168. package/server/lib/solana/transfer.ts +108 -0
  169. package/server/lib/solana/wallet.ts +136 -0
  170. package/server/lib/strategy/emits.ts +21 -0
  171. package/server/lib/strategy/engine.ts +1305 -0
  172. package/server/lib/strategy/executor.ts +115 -0
  173. package/server/lib/strategy/hook-context.ts +158 -0
  174. package/server/lib/strategy/hooks.ts +990 -0
  175. package/server/lib/strategy/index.ts +28 -0
  176. package/server/lib/strategy/installer.ts +305 -0
  177. package/server/lib/strategy/loader.ts +256 -0
  178. package/server/lib/strategy/message.ts +235 -0
  179. package/server/lib/strategy/repository.ts +218 -0
  180. package/server/lib/strategy/session-logger.ts +693 -0
  181. package/server/lib/strategy/sources.ts +288 -0
  182. package/server/lib/strategy/state.ts +189 -0
  183. package/server/lib/strategy/templates.ts +403 -0
  184. package/server/lib/strategy/tick.ts +404 -0
  185. package/server/lib/strategy/types.ts +230 -0
  186. package/server/lib/swap.ts +3 -0
  187. package/server/lib/temp.ts +86 -0
  188. package/server/lib/token-metadata.ts +86 -0
  189. package/server/lib/token-safety.ts +200 -0
  190. package/server/lib/token-search.ts +444 -0
  191. package/server/lib/totp.ts +194 -0
  192. package/server/lib/transactions.ts +123 -0
  193. package/server/lib/transport.ts +75 -0
  194. package/server/lib/txhistory/decoder.ts +262 -0
  195. package/server/lib/txhistory/enricher.ts +652 -0
  196. package/server/lib/txhistory/index.ts +391 -0
  197. package/server/lib/txhistory/signatures.ts +59 -0
  198. package/server/lib/verified-summary.ts +421 -0
  199. package/server/mcp/profile-policy.ts +30 -0
  200. package/server/mcp/server.ts +619 -0
  201. package/server/mcp/tools.ts +523 -0
  202. package/server/middleware/auth.ts +119 -0
  203. package/server/middleware/requestLogger.ts +84 -0
  204. package/server/routes/actions.ts +459 -0
  205. package/server/routes/adapters.ts +703 -0
  206. package/server/routes/addressbook.ts +113 -0
  207. package/server/routes/ai.ts +34 -0
  208. package/server/routes/apikeys.ts +295 -0
  209. package/server/routes/apps.ts +601 -0
  210. package/server/routes/auth.ts +457 -0
  211. package/server/routes/backup.ts +340 -0
  212. package/server/routes/batch.ts +270 -0
  213. package/server/routes/bookmarks.ts +162 -0
  214. package/server/routes/credential-shares.ts +198 -0
  215. package/server/routes/credential-vaults.ts +154 -0
  216. package/server/routes/credentials.ts +1290 -0
  217. package/server/routes/dashboard.ts +71 -0
  218. package/server/routes/defaults.ts +124 -0
  219. package/server/routes/fund.ts +229 -0
  220. package/server/routes/import.ts +352 -0
  221. package/server/routes/launch.ts +665 -0
  222. package/server/routes/lock.ts +54 -0
  223. package/server/routes/logs.ts +68 -0
  224. package/server/routes/nuke.ts +111 -0
  225. package/server/routes/passkey-credentials.ts +99 -0
  226. package/server/routes/passkey.ts +346 -0
  227. package/server/routes/portfolio.ts +217 -0
  228. package/server/routes/price.ts +63 -0
  229. package/server/routes/resolve.ts +31 -0
  230. package/server/routes/security.ts +45 -0
  231. package/server/routes/send-evm.ts +241 -0
  232. package/server/routes/send-solana.ts +281 -0
  233. package/server/routes/send.ts +178 -0
  234. package/server/routes/setup.ts +210 -0
  235. package/server/routes/strategy.ts +894 -0
  236. package/server/routes/swap-evm.ts +353 -0
  237. package/server/routes/swap-solana.ts +177 -0
  238. package/server/routes/swap.ts +356 -0
  239. package/server/routes/token.ts +247 -0
  240. package/server/routes/unlock.ts +403 -0
  241. package/server/routes/wallet-assets.ts +361 -0
  242. package/server/routes/wallet-transactions.ts +515 -0
  243. package/server/routes/wallet.ts +710 -0
  244. package/server/types.ts +146 -0
  245. package/skills/aurawallet/SKILL.md +739 -0
  246. package/skills/aurawallet-setup/SKILL.md +74 -0
  247. package/skills/security-review/SKILL.md +148 -0
  248. package/src/app/api/agent-requests/route.ts +30 -0
  249. package/src/app/api/apps/install/route.ts +126 -0
  250. package/src/app/api/apps/manifests/route.ts +16 -0
  251. package/src/app/api/apps/static/[...path]/route.ts +57 -0
  252. package/src/app/api/events/route.ts +92 -0
  253. package/src/app/api/page.tsx +212 -0
  254. package/src/app/api/workspace/[id]/apps/[wid]/route.ts +119 -0
  255. package/src/app/api/workspace/[id]/apps/route.ts +81 -0
  256. package/src/app/api/workspace/[id]/export/route.ts +67 -0
  257. package/src/app/api/workspace/[id]/route.ts +168 -0
  258. package/src/app/api/workspace/auth.ts +34 -0
  259. package/src/app/api/workspace/config/route.ts +106 -0
  260. package/src/app/api/workspace/import/route.ts +127 -0
  261. package/src/app/api/workspace/route.ts +116 -0
  262. package/src/app/app/page.tsx +2122 -0
  263. package/src/app/apple-icon.png +0 -0
  264. package/src/app/docs/page.tsx +178 -0
  265. package/src/app/favicon.ico +0 -0
  266. package/src/app/globals.css +572 -0
  267. package/src/app/health/page.tsx +5 -0
  268. package/src/app/hello/page.tsx +15 -0
  269. package/src/app/icon.png +0 -0
  270. package/src/app/layout.tsx +34 -0
  271. package/src/app/page.tsx +986 -0
  272. package/src/app/providers.tsx +90 -0
  273. package/src/app/share/[token]/page.tsx +295 -0
  274. package/src/components/ChainSelector.tsx +144 -0
  275. package/src/components/HumanActionBar.tsx +695 -0
  276. package/src/components/NotificationDrawer.tsx +129 -0
  277. package/src/components/apps/AgentKeysApp.tsx +490 -0
  278. package/src/components/apps/App.tsx +153 -0
  279. package/src/components/apps/AppGrid.tsx +15 -0
  280. package/src/components/apps/DetailedAddressDrawer.tsx +325 -0
  281. package/src/components/apps/DraggableApp.tsx +562 -0
  282. package/src/components/apps/IFrameApp.tsx +73 -0
  283. package/src/components/apps/LogsApp.tsx +360 -0
  284. package/src/components/apps/SendApp.tsx +394 -0
  285. package/src/components/apps/SetupWizardApp.tsx +1004 -0
  286. package/src/components/apps/SystemDefaultsApp.tsx +845 -0
  287. package/src/components/apps/ThirdPartyApp.tsx +428 -0
  288. package/src/components/apps/TokenApp.tsx +319 -0
  289. package/src/components/apps/TransactionsApp.tsx +438 -0
  290. package/src/components/apps/WalletDetailApp.tsx +1505 -0
  291. package/src/components/apps/index.ts +13 -0
  292. package/src/components/design-system/Button.tsx +53 -0
  293. package/src/components/design-system/ChainIndicator.tsx +65 -0
  294. package/src/components/design-system/ChainSelector.tsx +137 -0
  295. package/src/components/design-system/ConfirmationModal.tsx +106 -0
  296. package/src/components/design-system/ConfirmationPopover.tsx +81 -0
  297. package/src/components/design-system/Drawer.tsx +123 -0
  298. package/src/components/design-system/FilterDropdown.tsx +72 -0
  299. package/src/components/design-system/Modal.tsx +206 -0
  300. package/src/components/design-system/Popover.tsx +142 -0
  301. package/src/components/design-system/TextInput.tsx +85 -0
  302. package/src/components/design-system/Toggle.tsx +58 -0
  303. package/src/components/design-system/index.ts +11 -0
  304. package/src/components/docs/DocsThemeToggle.tsx +49 -0
  305. package/src/components/health/CredentialHealthDashboard.tsx +214 -0
  306. package/src/components/icons/ChainIcons.tsx +72 -0
  307. package/src/components/layout/AppStoreDrawer.tsx +369 -0
  308. package/src/components/layout/ContentArea.tsx +21 -0
  309. package/src/components/layout/TabBar.tsx +278 -0
  310. package/src/components/layout/WalletSidebar.tsx +1033 -0
  311. package/src/components/layout/index.ts +4 -0
  312. package/src/components/marketing/AuraWalletSpecOverlay.tsx +635 -0
  313. package/src/components/marketing/DeviceMorphExperience.tsx +216 -0
  314. package/src/components/vault/ApiKeysConsole.tsx +1080 -0
  315. package/src/components/vault/AuditConsole.tsx +584 -0
  316. package/src/components/vault/CredentialDetail.tsx +455 -0
  317. package/src/components/vault/CredentialEmpty.tsx +55 -0
  318. package/src/components/vault/CredentialField.tsx +361 -0
  319. package/src/components/vault/CredentialForm.tsx +1212 -0
  320. package/src/components/vault/CredentialList.tsx +165 -0
  321. package/src/components/vault/CredentialRow.tsx +97 -0
  322. package/src/components/vault/CredentialShareModal.tsx +178 -0
  323. package/src/components/vault/CredentialVault.tsx +754 -0
  324. package/src/components/vault/CredentialWalletWidget.tsx +103 -0
  325. package/src/components/vault/ImportCredentialsModal.tsx +515 -0
  326. package/src/components/vault/LargeTypeModal.tsx +64 -0
  327. package/src/components/vault/PasswordGenerator.tsx +224 -0
  328. package/src/components/vault/TOTPDisplay.tsx +123 -0
  329. package/src/components/vault/VaultSidebar.tsx +413 -0
  330. package/src/components/vault/types.ts +54 -0
  331. package/src/context/AuthContext.tsx +337 -0
  332. package/src/context/PriceContext.tsx +113 -0
  333. package/src/context/ThemeContext.tsx +164 -0
  334. package/src/context/WebSocketContext.tsx +269 -0
  335. package/src/context/WorkspaceContext.tsx +668 -0
  336. package/src/hooks/index.ts +3 -0
  337. package/src/hooks/useAgentActions.ts +368 -0
  338. package/src/hooks/useBalance.ts +103 -0
  339. package/src/hooks/useBalances.ts +129 -0
  340. package/src/instrumentation.ts +12 -0
  341. package/src/lib/api.ts +449 -0
  342. package/src/lib/app-loader.ts +148 -0
  343. package/src/lib/app-registry.ts +178 -0
  344. package/src/lib/app-sdk.ts +157 -0
  345. package/src/lib/audit-console-adapter.ts +151 -0
  346. package/src/lib/auth-client.ts +75 -0
  347. package/src/lib/config.ts +74 -0
  348. package/src/lib/crypto.ts +112 -0
  349. package/src/lib/db.ts +21 -0
  350. package/src/lib/docs.ts +390 -0
  351. package/src/lib/events.ts +361 -0
  352. package/src/lib/pino.ts +24 -0
  353. package/src/lib/theme-handlers.ts +168 -0
  354. package/src/lib/theme.ts +351 -0
  355. package/src/lib/tokenData.ts +378 -0
  356. package/src/lib/vault-crypto.ts +129 -0
  357. package/src/lib/websocket-server.ts +302 -0
  358. package/src/lib/websocket-setup.ts +79 -0
  359. package/src/lib/wordlist.ts +2050 -0
  360. package/src/lib/workspace-handlers.ts +285 -0
  361. package/start.sh +80 -0
  362. package/tailwind.config.ts +99 -0
  363. 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
+ }