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.
Files changed (418) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +77 -0
  3. package/apps/desktop-electron/main.js +428 -0
  4. package/bin/auramaxx.js +1063 -0
  5. package/docs/ADAPTERS.md +466 -0
  6. package/docs/AGENT_SETUP.md +159 -0
  7. package/docs/API.md +127 -0
  8. package/docs/APPS.md +199 -0
  9. package/docs/ARCHITECTURE.md +235 -0
  10. package/docs/AUTH.md +318 -0
  11. package/docs/BEST-PRACTICES.md +82 -0
  12. package/docs/CLI.md +141 -0
  13. package/docs/DESKTOP_ELECTRON.md +26 -0
  14. package/docs/DEVELOPING-APPS.md +453 -0
  15. package/docs/MCP.md +122 -0
  16. package/docs/PACKAGING_POLICY.md +19 -0
  17. package/docs/PERMISSION.md +137 -0
  18. package/docs/PROTOCOL.md +142 -0
  19. package/docs/README.md +50 -0
  20. package/docs/SKILLS.md +132 -0
  21. package/docs/TROUBLESHOOTING.md +376 -0
  22. package/docs/WORKSPACE.md +673 -0
  23. package/docs/agent-auth.md +14 -0
  24. package/docs/api/authentication.md +79 -0
  25. package/docs/api/secrets/api-keys.md +28 -0
  26. package/docs/api/secrets/credentials.md +80 -0
  27. package/docs/api/secrets/sharing.md +48 -0
  28. package/docs/api/system.md +41 -0
  29. package/docs/api/wallets/apps-strategies.md +66 -0
  30. package/docs/api/wallets/core.md +46 -0
  31. package/docs/api/wallets/data-portfolio.md +42 -0
  32. package/docs/aura-file.md +48 -0
  33. package/docs/core-concepts/FEATURES.md +114 -0
  34. package/docs/credentials.md +120 -0
  35. package/docs/external/HOW_TO_AURAMAXX/GETTING_SECRETS.md +33 -0
  36. package/docs/external/HOW_TO_AURAMAXX/README.md +45 -0
  37. package/docs/external/getting-started.md +10 -0
  38. package/docs/external/overview.md +19 -0
  39. package/docs/external/persona-paths.md +7 -0
  40. package/docs/external/share-secret.md +76 -0
  41. package/docs/external/why-aura.md +7 -0
  42. package/docs/security.md +227 -0
  43. package/docs/templates/RELEASE_NOTES_TEMPLATE.md +22 -0
  44. package/docs/wallet/AI.md +508 -0
  45. package/docs/wallet/DEVELOPING-STRATEGIES.md +713 -0
  46. package/docs/wallet/README.md +47 -0
  47. package/docs/wallet/STRATEGY.md +89 -0
  48. package/next.config.ts +28 -0
  49. package/package.json +167 -0
  50. package/postcss.config.mjs +8 -0
  51. package/prisma/migrations/20260214170000_baseline/migration.sql +511 -0
  52. package/prisma/migrations/20260216214537_add_passkey_model/migration.sql +18 -0
  53. package/prisma/migrations/20260217150500_add_credential_access_audit/migration.sql +31 -0
  54. package/prisma/migrations/20260222090000_update_admin_ttl_default/migration.sql +10 -0
  55. package/prisma/migrations/migration_lock.toml +3 -0
  56. package/prisma/schema.prisma +447 -0
  57. package/public/logo.webp +0 -0
  58. package/scripts/add-app.js +245 -0
  59. package/server/abi/SwapHelper.json +438 -0
  60. package/server/cli/approval.ts +447 -0
  61. package/server/cli/commands/actions.ts +474 -0
  62. package/server/cli/commands/api.ts +220 -0
  63. package/server/cli/commands/apikey.ts +277 -0
  64. package/server/cli/commands/app.ts +204 -0
  65. package/server/cli/commands/auth.ts +464 -0
  66. package/server/cli/commands/cron.ts +24 -0
  67. package/server/cli/commands/diary.ts +274 -0
  68. package/server/cli/commands/doctor.ts +1247 -0
  69. package/server/cli/commands/env.ts +476 -0
  70. package/server/cli/commands/experimental.ts +69 -0
  71. package/server/cli/commands/init.ts +798 -0
  72. package/server/cli/commands/lock.ts +157 -0
  73. package/server/cli/commands/mcp.ts +285 -0
  74. package/server/cli/commands/quickhack.ts +86 -0
  75. package/server/cli/commands/release-check.ts +231 -0
  76. package/server/cli/commands/restore.ts +314 -0
  77. package/server/cli/commands/service.ts +320 -0
  78. package/server/cli/commands/shell-hook.ts +512 -0
  79. package/server/cli/commands/skill.ts +216 -0
  80. package/server/cli/commands/start.ts +139 -0
  81. package/server/cli/commands/status.ts +59 -0
  82. package/server/cli/commands/stop.ts +36 -0
  83. package/server/cli/commands/token.ts +180 -0
  84. package/server/cli/commands/unlock.ts +50 -0
  85. package/server/cli/commands/vault.ts +1323 -0
  86. package/server/cli/commands/wallet.ts +209 -0
  87. package/server/cli/index.ts +280 -0
  88. package/server/cli/lib/approval-poll.ts +94 -0
  89. package/server/cli/lib/aura-parser.ts +64 -0
  90. package/server/cli/lib/credential-create.ts +74 -0
  91. package/server/cli/lib/credential-resolve.ts +280 -0
  92. package/server/cli/lib/dotenv-migrate.ts +116 -0
  93. package/server/cli/lib/dotenv-parser.ts +146 -0
  94. package/server/cli/lib/escalation.ts +57 -0
  95. package/server/cli/lib/http.ts +91 -0
  96. package/server/cli/lib/init-steps.ts +76 -0
  97. package/server/cli/lib/local-agent-trust.ts +45 -0
  98. package/server/cli/lib/lock-unlock-helper.ts +71 -0
  99. package/server/cli/lib/process.ts +162 -0
  100. package/server/cli/lib/prompt.ts +294 -0
  101. package/server/cli/lib/theme.ts +240 -0
  102. package/server/cli/socket.ts +579 -0
  103. package/server/cli/transport-client.ts +50 -0
  104. package/server/cron/index.ts +137 -0
  105. package/server/cron/job.ts +31 -0
  106. package/server/cron/jobs/balance-sync.ts +436 -0
  107. package/server/cron/jobs/incoming-scan.ts +506 -0
  108. package/server/cron/jobs/native-price.ts +70 -0
  109. package/server/cron/jobs/orphan-cleanup.ts +40 -0
  110. package/server/cron/jobs/strategy-runner.ts +175 -0
  111. package/server/cron/scheduler.ts +125 -0
  112. package/server/index.ts +420 -0
  113. package/server/lib/adapters/factory.ts +119 -0
  114. package/server/lib/adapters/index.ts +19 -0
  115. package/server/lib/adapters/router.ts +297 -0
  116. package/server/lib/adapters/telegram.ts +645 -0
  117. package/server/lib/adapters/types.ts +89 -0
  118. package/server/lib/adapters/webhook.ts +95 -0
  119. package/server/lib/address.ts +49 -0
  120. package/server/lib/agent-auth/contracts.ts +1194 -0
  121. package/server/lib/agent-profiles.ts +419 -0
  122. package/server/lib/ai.ts +285 -0
  123. package/server/lib/api-registry/contracts.ts +86 -0
  124. package/server/lib/api-registry/validation.ts +172 -0
  125. package/server/lib/apikey-migration.ts +258 -0
  126. package/server/lib/app-installer.ts +505 -0
  127. package/server/lib/app-tokens.ts +247 -0
  128. package/server/lib/approval-link.ts +27 -0
  129. package/server/lib/auth.ts +314 -0
  130. package/server/lib/auto-execute.ts +160 -0
  131. package/server/lib/batch.ts +242 -0
  132. package/server/lib/cold.ts +1048 -0
  133. package/server/lib/config.ts +408 -0
  134. package/server/lib/credential-access-audit.ts +85 -0
  135. package/server/lib/credential-access-policy.ts +111 -0
  136. package/server/lib/credential-health.ts +343 -0
  137. package/server/lib/credential-import.ts +608 -0
  138. package/server/lib/credential-scope.ts +102 -0
  139. package/server/lib/credential-shares.ts +190 -0
  140. package/server/lib/credential-transport.ts +533 -0
  141. package/server/lib/credential-vault.ts +77 -0
  142. package/server/lib/credentials.ts +422 -0
  143. package/server/lib/crypto.ts +8 -0
  144. package/server/lib/db.ts +58 -0
  145. package/server/lib/defaults.ts +386 -0
  146. package/server/lib/dex/index.ts +80 -0
  147. package/server/lib/dex/relay.ts +235 -0
  148. package/server/lib/dex/types.ts +59 -0
  149. package/server/lib/dex/uniswap.ts +370 -0
  150. package/server/lib/diary.ts +34 -0
  151. package/server/lib/dont-ask-again-policy.ts +41 -0
  152. package/server/lib/e2e-agent/artifacts.ts +36 -0
  153. package/server/lib/e2e-agent/contracts.ts +112 -0
  154. package/server/lib/e2e-agent/validation.ts +135 -0
  155. package/server/lib/encrypt.ts +114 -0
  156. package/server/lib/error.ts +20 -0
  157. package/server/lib/events.ts +217 -0
  158. package/server/lib/feature-flags.ts +93 -0
  159. package/server/lib/hot.ts +357 -0
  160. package/server/lib/human-action-summary.ts +80 -0
  161. package/server/lib/key-fingerprint.ts +28 -0
  162. package/server/lib/logger.ts +340 -0
  163. package/server/lib/network.ts +137 -0
  164. package/server/lib/notifications.ts +230 -0
  165. package/server/lib/oauth2-refresh.ts +241 -0
  166. package/server/lib/oursecret.ts +71 -0
  167. package/server/lib/passkey-credential.ts +360 -0
  168. package/server/lib/passkey.ts +68 -0
  169. package/server/lib/permissions.ts +299 -0
  170. package/server/lib/pino.ts +24 -0
  171. package/server/lib/policy-preview.ts +138 -0
  172. package/server/lib/price.ts +338 -0
  173. package/server/lib/prices.ts +34 -0
  174. package/server/lib/project-scope.ts +297 -0
  175. package/server/lib/resolve-action.ts +328 -0
  176. package/server/lib/resolve.ts +36 -0
  177. package/server/lib/secret-gist-share.ts +296 -0
  178. package/server/lib/sessions.ts +634 -0
  179. package/server/lib/socket-path.ts +56 -0
  180. package/server/lib/solana/connection.ts +26 -0
  181. package/server/lib/solana/jupiter.ts +128 -0
  182. package/server/lib/solana/transfer.ts +108 -0
  183. package/server/lib/solana/wallet.ts +136 -0
  184. package/server/lib/strategy/emits.ts +21 -0
  185. package/server/lib/strategy/engine.ts +1305 -0
  186. package/server/lib/strategy/executor.ts +115 -0
  187. package/server/lib/strategy/hook-context.ts +159 -0
  188. package/server/lib/strategy/hooks.ts +990 -0
  189. package/server/lib/strategy/index.ts +28 -0
  190. package/server/lib/strategy/installer.ts +305 -0
  191. package/server/lib/strategy/loader.ts +256 -0
  192. package/server/lib/strategy/message.ts +237 -0
  193. package/server/lib/strategy/repository.ts +218 -0
  194. package/server/lib/strategy/session-logger.ts +693 -0
  195. package/server/lib/strategy/sources.ts +288 -0
  196. package/server/lib/strategy/state.ts +189 -0
  197. package/server/lib/strategy/templates.ts +403 -0
  198. package/server/lib/strategy/tick.ts +404 -0
  199. package/server/lib/strategy/types.ts +230 -0
  200. package/server/lib/swap.ts +3 -0
  201. package/server/lib/temp.ts +86 -0
  202. package/server/lib/token-metadata.ts +86 -0
  203. package/server/lib/token-safety.ts +200 -0
  204. package/server/lib/token-search.ts +444 -0
  205. package/server/lib/totp.ts +194 -0
  206. package/server/lib/transactions.ts +123 -0
  207. package/server/lib/transport.ts +84 -0
  208. package/server/lib/txhistory/decoder.ts +262 -0
  209. package/server/lib/txhistory/enricher.ts +652 -0
  210. package/server/lib/txhistory/index.ts +391 -0
  211. package/server/lib/txhistory/signatures.ts +59 -0
  212. package/server/lib/update-check.ts +35 -0
  213. package/server/lib/verified-summary.ts +414 -0
  214. package/server/lib/view-registry.ts +80 -0
  215. package/server/mcp/profile-policy.ts +30 -0
  216. package/server/mcp/server.ts +1589 -0
  217. package/server/mcp/tools.ts +276 -0
  218. package/server/middleware/auth.ts +119 -0
  219. package/server/middleware/requestLogger.ts +84 -0
  220. package/server/routes/actions.ts +539 -0
  221. package/server/routes/adapters.ts +711 -0
  222. package/server/routes/addressbook.ts +113 -0
  223. package/server/routes/ai.ts +34 -0
  224. package/server/routes/apikeys.ts +343 -0
  225. package/server/routes/apps.ts +601 -0
  226. package/server/routes/auth.ts +406 -0
  227. package/server/routes/backup.ts +404 -0
  228. package/server/routes/batch.ts +270 -0
  229. package/server/routes/bookmarks.ts +162 -0
  230. package/server/routes/credential-shares.ts +380 -0
  231. package/server/routes/credential-vaults.ts +159 -0
  232. package/server/routes/credentials.ts +1782 -0
  233. package/server/routes/dashboard.ts +97 -0
  234. package/server/routes/defaults.ts +124 -0
  235. package/server/routes/flags.ts +11 -0
  236. package/server/routes/fund.ts +225 -0
  237. package/server/routes/heartbeat.ts +375 -0
  238. package/server/routes/import.ts +364 -0
  239. package/server/routes/launch.ts +665 -0
  240. package/server/routes/lock.ts +54 -0
  241. package/server/routes/logs.ts +68 -0
  242. package/server/routes/nuke.ts +111 -0
  243. package/server/routes/passkey-credentials.ts +99 -0
  244. package/server/routes/passkey.ts +366 -0
  245. package/server/routes/portfolio.ts +217 -0
  246. package/server/routes/price.ts +63 -0
  247. package/server/routes/resolve.ts +31 -0
  248. package/server/routes/security.ts +45 -0
  249. package/server/routes/send-evm.ts +241 -0
  250. package/server/routes/send-solana.ts +281 -0
  251. package/server/routes/send.ts +178 -0
  252. package/server/routes/setup.ts +210 -0
  253. package/server/routes/strategy.ts +894 -0
  254. package/server/routes/swap-evm.ts +352 -0
  255. package/server/routes/swap-solana.ts +176 -0
  256. package/server/routes/swap.ts +356 -0
  257. package/server/routes/token.ts +247 -0
  258. package/server/routes/unlock.ts +467 -0
  259. package/server/routes/views.ts +41 -0
  260. package/server/routes/wallet-assets.ts +361 -0
  261. package/server/routes/wallet-transactions.ts +515 -0
  262. package/server/routes/wallet.ts +709 -0
  263. package/server/types.ts +146 -0
  264. package/shared/credential-field-schema.ts +248 -0
  265. package/skills/auramaxx/HEARTBEAT.md +78 -0
  266. package/skills/auramaxx/SKILL.md +745 -0
  267. package/skills/auramaxx/docs/AGENT_SETUP.md +155 -0
  268. package/skills/auramaxx/docs/API.md +127 -0
  269. package/skills/auramaxx/docs/AUTH.md +318 -0
  270. package/skills/auramaxx/docs/CLI.md +130 -0
  271. package/skills/auramaxx/docs/MCP.md +122 -0
  272. package/skills/auramaxx/docs/TROUBLESHOOTING.md +357 -0
  273. package/skills/auramaxx/docs/WORKSPACE.md +673 -0
  274. package/skills/auramaxx/docs/security.md +227 -0
  275. package/skills/task-lifecycle/SKILL.md +378 -0
  276. package/src/app/api/[...doc]/page.tsx +36 -0
  277. package/src/app/api/agent-requests/route.ts +30 -0
  278. package/src/app/api/apps/install/route.ts +132 -0
  279. package/src/app/api/apps/manifests/route.ts +16 -0
  280. package/src/app/api/apps/static/[...path]/route.ts +57 -0
  281. package/src/app/api/docs/plain/route.ts +74 -0
  282. package/src/app/api/events/route.ts +92 -0
  283. package/src/app/api/page.tsx +290 -0
  284. package/src/app/api/workspace/[id]/apps/[wid]/route.ts +119 -0
  285. package/src/app/api/workspace/[id]/apps/route.ts +81 -0
  286. package/src/app/api/workspace/[id]/export/route.ts +67 -0
  287. package/src/app/api/workspace/[id]/route.ts +168 -0
  288. package/src/app/api/workspace/auth.ts +40 -0
  289. package/src/app/api/workspace/config/route.ts +121 -0
  290. package/src/app/api/workspace/import/route.ts +127 -0
  291. package/src/app/api/workspace/route.ts +116 -0
  292. package/src/app/app-legacy-do-not-use/page.tsx +2245 -0
  293. package/src/app/apple-icon.png +0 -0
  294. package/src/app/approve/[actionId]/page.tsx +409 -0
  295. package/src/app/docs/DocsPageContent.tsx +269 -0
  296. package/src/app/docs/[...doc]/page.tsx +41 -0
  297. package/src/app/docs/page.tsx +38 -0
  298. package/src/app/favicon.ico +0 -0
  299. package/src/app/globals.css +819 -0
  300. package/src/app/health/page.tsx +5 -0
  301. package/src/app/hello/page.tsx +102 -0
  302. package/src/app/icon.png +0 -0
  303. package/src/app/layout.tsx +39 -0
  304. package/src/app/page.tsx +1964 -0
  305. package/src/app/privacy/page.tsx +63 -0
  306. package/src/app/providers.tsx +87 -0
  307. package/src/app/share/[token]/page.tsx +295 -0
  308. package/src/app/terms/page.tsx +80 -0
  309. package/src/components/ChainSelector.tsx +44 -0
  310. package/src/components/HumanActionBar.tsx +697 -0
  311. package/src/components/NotificationDrawer.tsx +387 -0
  312. package/src/components/PasskeyEnrollmentPrompt.tsx +235 -0
  313. package/src/components/apps/AgentKeysApp.tsx +490 -0
  314. package/src/components/apps/App.tsx +153 -0
  315. package/src/components/apps/AppGrid.tsx +15 -0
  316. package/src/components/apps/DetailedAddressDrawer.tsx +325 -0
  317. package/src/components/apps/DraggableApp.tsx +562 -0
  318. package/src/components/apps/IFrameApp.tsx +73 -0
  319. package/src/components/apps/LogsApp.tsx +360 -0
  320. package/src/components/apps/SendApp.tsx +394 -0
  321. package/src/components/apps/SetupWizardApp.tsx +1004 -0
  322. package/src/components/apps/SystemDefaultsApp.tsx +845 -0
  323. package/src/components/apps/ThirdPartyApp.tsx +428 -0
  324. package/src/components/apps/TokenApp.tsx +319 -0
  325. package/src/components/apps/TransactionsApp.tsx +438 -0
  326. package/src/components/apps/WalletDetailApp.tsx +1505 -0
  327. package/src/components/apps/index.ts +13 -0
  328. package/src/components/design-system/Button.tsx +88 -0
  329. package/src/components/design-system/ChainIndicator.tsx +65 -0
  330. package/src/components/design-system/ChainSelector.tsx +147 -0
  331. package/src/components/design-system/ConfirmationModal.tsx +107 -0
  332. package/src/components/design-system/ConfirmationPopover.tsx +81 -0
  333. package/src/components/design-system/DownloadButton.tsx +149 -0
  334. package/src/components/design-system/Drawer.tsx +133 -0
  335. package/src/components/design-system/FilterDropdown.tsx +183 -0
  336. package/src/components/design-system/ItemPicker.tsx +157 -0
  337. package/src/components/design-system/Modal.tsx +296 -0
  338. package/src/components/design-system/Popover.tsx +142 -0
  339. package/src/components/design-system/TextInput.tsx +85 -0
  340. package/src/components/design-system/Toggle.tsx +65 -0
  341. package/src/components/design-system/TyvekCollapsibleSection.tsx +55 -0
  342. package/src/components/design-system/index.ts +14 -0
  343. package/src/components/docs/ClientSideMarkdown.tsx +51 -0
  344. package/src/components/docs/DocsSearchBar.tsx +118 -0
  345. package/src/components/docs/DocsThemeToggle.tsx +38 -0
  346. package/src/components/docs/PersistentDocGroup.tsx +91 -0
  347. package/src/components/docs/ShareUrlButton.tsx +33 -0
  348. package/src/components/docs/SidebarScrollMemory.tsx +56 -0
  349. package/src/components/health/CredentialHealthDashboard.tsx +214 -0
  350. package/src/components/icons/ChainIcons.tsx +72 -0
  351. package/src/components/layout/AppStoreDrawer.tsx +369 -0
  352. package/src/components/layout/ContentArea.tsx +21 -0
  353. package/src/components/layout/CreateViewModal.tsx +88 -0
  354. package/src/components/layout/LeftRail.tsx +114 -0
  355. package/src/components/layout/TabBar.tsx +284 -0
  356. package/src/components/layout/WalletSidebar.tsx +1030 -0
  357. package/src/components/layout/index.ts +6 -0
  358. package/src/components/marketing/AuraMaxxSpecOverlay.tsx +653 -0
  359. package/src/components/marketing/DeviceMorphExperience.tsx +216 -0
  360. package/src/components/vault/ApiKeysConsole.tsx +1272 -0
  361. package/src/components/vault/AuditConsole.tsx +600 -0
  362. package/src/components/vault/CredentialDetail.tsx +625 -0
  363. package/src/components/vault/CredentialEmpty.tsx +55 -0
  364. package/src/components/vault/CredentialField.tsx +583 -0
  365. package/src/components/vault/CredentialForm.tsx +1484 -0
  366. package/src/components/vault/CredentialList.tsx +265 -0
  367. package/src/components/vault/CredentialRow.tsx +130 -0
  368. package/src/components/vault/CredentialShareModal.tsx +273 -0
  369. package/src/components/vault/CredentialVault.tsx +1662 -0
  370. package/src/components/vault/CredentialWalletWidget.tsx +103 -0
  371. package/src/components/vault/DocsConsole.tsx +113 -0
  372. package/src/components/vault/ImportCredentialsModal.tsx +578 -0
  373. package/src/components/vault/LargeTypeModal.tsx +88 -0
  374. package/src/components/vault/PasswordGenerator.tsx +232 -0
  375. package/src/components/vault/TOTPDisplay.tsx +108 -0
  376. package/src/components/vault/TotpSetupPanel.tsx +198 -0
  377. package/src/components/vault/VaultSidebar.tsx +881 -0
  378. package/src/components/vault/credentialFormName.ts +91 -0
  379. package/src/components/vault/hooks/useVaultKeyboardShortcuts.ts +69 -0
  380. package/src/components/vault/types.ts +56 -0
  381. package/src/context/AuthContext.tsx +365 -0
  382. package/src/context/PriceContext.tsx +113 -0
  383. package/src/context/ThemeContext.tsx +164 -0
  384. package/src/context/WebSocketContext.tsx +269 -0
  385. package/src/context/WorkspaceContext.tsx +668 -0
  386. package/src/hooks/index.ts +4 -0
  387. package/src/hooks/useAgentActions.ts +552 -0
  388. package/src/hooks/useBalance.ts +103 -0
  389. package/src/hooks/useBalances.ts +129 -0
  390. package/src/hooks/useTheme.ts +156 -0
  391. package/src/instrumentation.ts +12 -0
  392. package/src/lib/api-docs.ts +154 -0
  393. package/src/lib/api.ts +474 -0
  394. package/src/lib/app-loader.ts +148 -0
  395. package/src/lib/app-registry.ts +178 -0
  396. package/src/lib/app-sdk.ts +157 -0
  397. package/src/lib/audit-console-adapter.ts +151 -0
  398. package/src/lib/auth-client.ts +75 -0
  399. package/src/lib/config.ts +74 -0
  400. package/src/lib/credential-field-schema.ts +11 -0
  401. package/src/lib/crypto.ts +112 -0
  402. package/src/lib/db.ts +21 -0
  403. package/src/lib/docs.ts +544 -0
  404. package/src/lib/events.ts +363 -0
  405. package/src/lib/pino.ts +24 -0
  406. package/src/lib/theme-handlers.ts +168 -0
  407. package/src/lib/theme.ts +351 -0
  408. package/src/lib/tokenData.ts +378 -0
  409. package/src/lib/totp-import.ts +57 -0
  410. package/src/lib/vault-crypto.ts +129 -0
  411. package/src/lib/view-registry.ts +57 -0
  412. package/src/lib/websocket-server.ts +302 -0
  413. package/src/lib/websocket-setup.ts +79 -0
  414. package/src/lib/wordlist.ts +2050 -0
  415. package/src/lib/workspace-handlers.ts +285 -0
  416. package/start.sh +170 -0
  417. package/tailwind.config.ts +99 -0
  418. package/tsconfig.json +42 -0
package/docs/API.md ADDED
@@ -0,0 +1,127 @@
1
+ # AuraMaxx API
2
+
3
+ This file is the **API entrypoint** for agents.
4
+
5
+ Use this page for the common path, then jump to the deep reference docs listed below.
6
+
7
+ Server base URL:
8
+
9
+ ```text
10
+ http://localhost:4242
11
+ ```
12
+
13
+ ## Common Path (Agent First)
14
+
15
+ ### 1) Request an agent token
16
+
17
+ ```http
18
+ POST /auth
19
+ Content-Type: application/json
20
+
21
+ {
22
+ "agentId": "my-agent",
23
+ "profile": "strict",
24
+ "profileVersion": "v1",
25
+ "pubkey": "<RSA public key PEM or base64>",
26
+ "action": { // optional: auto-execute on approval
27
+ "endpoint": "/send",
28
+ "method": "POST",
29
+ "body": { "to": "0x...", "amount": "0.01" }
30
+ }
31
+ }
32
+ ```
33
+
34
+ When `action` is provided, the pre-computed action auto-executes with the newly-minted token after human approval.
35
+
36
+ Human approves in dashboard, then poll:
37
+
38
+ ```http
39
+ GET /auth/:requestId?secret=:secret
40
+ ```
41
+
42
+ ### 2) Read a secret (`get_secret`)
43
+
44
+ `get_secret` maps to credential APIs under the hood:
45
+
46
+ - find credential metadata: `GET /credentials`
47
+ - read encrypted fields: `POST /credentials/:id/read`
48
+
49
+ ### 3) Set/update a secret (`put_secret`)
50
+
51
+ Most common write path:
52
+
53
+ ```http
54
+ POST /credentials
55
+ ```
56
+
57
+ Update existing credential:
58
+
59
+ ```http
60
+ PUT /credentials/:id
61
+ ```
62
+
63
+ ### 4) Write diary (`write_diary`)
64
+
65
+ ```http
66
+ POST /what_is_happening/diary
67
+ ```
68
+
69
+ ### 5) Call broader APIs (`wallet_api`)
70
+
71
+ Common starts:
72
+
73
+ ```http
74
+ GET /wallets
75
+ GET /token/search?q=PEPE&chain=base
76
+ POST /wallet/create
77
+ POST /send
78
+ POST /swap
79
+ POST /fund
80
+ ```
81
+
82
+ If you get `403`, request human approval via `POST /auth` (include an `action` field for auto-execute on approval).
83
+
84
+ ## Quick Common Endpoints
85
+
86
+ | Endpoint | Method | Typical Use |
87
+ |---|---|---|
88
+ | `/auth` | POST | Request token (approval flow) |
89
+ | `/auth/:requestId?secret=...` | GET | Poll token request status |
90
+ | `/credentials` | GET | List credential metadata |
91
+ | `/credentials` | POST | Create credential |
92
+ | `/credentials/:id/read` | POST | Read credential (encrypted response) |
93
+ | `/credentials/:id` | PUT | Update credential |
94
+ | `/credential-shares` | POST | Create share link |
95
+ | `/credential-shares/gist` | POST | Create GitHub secret gist share |
96
+ | `/what_is_happening/diary` | POST | Append diary note |
97
+ | `/wallets` | GET | List wallets |
98
+
99
+ ## Read More In Depth (Complete API Docs Map)
100
+
101
+ All API docs files are listed here. Keep this section updated when adding/moving API docs.
102
+
103
+ ### Getting Started
104
+
105
+ - `docs/API.md` (this file)
106
+ - [`docs/api/authentication.md`](/api?doc=api/authentication.md)
107
+
108
+ ### Secrets
109
+
110
+ - [`docs/api/secrets/credentials.md`](/api?doc=api/secrets/credentials.md)
111
+ - [`docs/api/secrets/sharing.md`](/api?doc=api/secrets/sharing.md)
112
+ - [`docs/api/secrets/api-keys.md`](/api?doc=api/secrets/api-keys.md)
113
+
114
+ ### Wallets
115
+
116
+ - [`docs/api/wallets/core.md`](/api?doc=api/wallets/core.md)
117
+ - [`docs/api/wallets/data-portfolio.md`](/api?doc=api/wallets/data-portfolio.md)
118
+ - [`docs/api/wallets/apps-strategies.md`](/api?doc=api/wallets/apps-strategies.md)
119
+
120
+ ### System
121
+
122
+ - [`docs/api/system.md`](/api?doc=api/system.md)
123
+
124
+ ## Related Docs
125
+
126
+ - [AUTH.md](/docs/AUTH.md) — full auth/permission model
127
+ - [MCP.md](/docs/MCP.md) — MCP tools and usage
package/docs/APPS.md ADDED
@@ -0,0 +1,199 @@
1
+ # Apps
2
+
3
+ Overview of the AuraMaxx app system — what apps are, how to install them, and how to create a minimal one.
4
+
5
+ For the full developer reference (manifest format, SDK API, theming, security model, strategy hooks, examples), see [DEVELOPING-APPS.md](./DEVELOPING-APPS.md).
6
+
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ Apps are self-contained HTML applications that run inside sandboxed iframes on the AuraMaxx dashboard. There are two kinds:
12
+
13
+ - **Built-in apps** -- React components registered in `src/lib/app-registry.ts` (wallets, logs, send, etc.)
14
+ - **Installed apps** -- standalone HTML+JS bundles installed as folders under `apps/`
15
+
16
+ Apps can also be extended with AI capabilities by adding strategy fields (`ticker`, `hooks`, `sources`, etc.) to the manifest. This activates the AI engine, turning the app into a strategy that runs on a schedule or responds to messages. See [STRATEGY.md](./wallet/STRATEGY.md) for an overview and [DEVELOPING-STRATEGIES.md](./wallet/DEVELOPING-STRATEGIES.md) for the full reference.
17
+
18
+ Installed apps consist of two files in a folder inside `apps/`:
19
+
20
+ ```
21
+ apps/
22
+ my-app/
23
+ app.md <-- manifest (YAML frontmatter + description)
24
+ index.html <-- app entry point (HTML + inline JS/CSS)
25
+ ```
26
+
27
+ The system discovers apps at runtime by scanning `apps/*/app.md`. Each app's `index.html` is served via `/api/apps/static/<folder>/index.html`, then loaded into a sandboxed iframe as a blob URL with the SDK and theme CSS injected.
28
+
29
+ ### How It Works (Lifecycle)
30
+
31
+ ```
32
+ 1. Server starts: scans apps/ → creates scoped Bearer tokens for each app
33
+ 2. GET /api/apps/manifests returns parsed manifest data to the App Store UI
34
+ 3. User clicks "ADD" in App Store
35
+ 4. ThirdPartyApp component fetches /api/apps/static/<id>/index.html
36
+ 5. ThirdPartyApp fetches GET /apps/<id>/token to get the app's Bearer token
37
+ 6. Host injects: theme CSS + token globals + App SDK script + app HTML
38
+ 7. Combined HTML is turned into a blob URL and loaded in a sandboxed iframe
39
+ 8. SDK makes direct fetch() calls to Express :4242/apps/<id>/storage/* with Bearer token
40
+ 9. SDK makes direct fetch() calls to Express :4242/apps/<id>/message for send()
41
+ 10. SDK proxies external API requests through Express :4242/apps/<id>/fetch
42
+ 11. postMessage used only for on() subscriptions (host-bridged)
43
+ ```
44
+
45
+ ---
46
+
47
+ ## Installing Apps
48
+
49
+ Apps can be installed from git repos, tarballs, zips, or local paths using the CLI or the dashboard UI.
50
+
51
+ ### CLI
52
+
53
+ ```bash
54
+ # Install from a git repo
55
+ auramaxx app install github.com/user/my-app
56
+
57
+ # Install from a git repo subdirectory
58
+ auramaxx app install github.com/user/repo#path=apps/my-app
59
+
60
+ # Install from a local path
61
+ auramaxx app install ./path/to/app
62
+
63
+ # Install from a tarball or zip
64
+ auramaxx app install https://example.com/app.tar.gz
65
+
66
+ # Override the app folder name
67
+ auramaxx app install github.com/user/app --name custom-id
68
+
69
+ # Overwrite an existing app
70
+ auramaxx app install github.com/user/app --force
71
+
72
+ # List all installed apps
73
+ auramaxx app list
74
+
75
+ # Update an app from its original source
76
+ auramaxx app update my-app
77
+
78
+ # Remove an app
79
+ auramaxx app remove my-app
80
+
81
+ # Remove without confirmation prompt
82
+ auramaxx app remove my-app --yes
83
+ ```
84
+
85
+ ### Dashboard UI
86
+
87
+ 1. Open the App Store drawer (click the "+" button on the dashboard)
88
+ 2. Select the **ALL** or **INSTALLED** tab
89
+ 3. Paste a source URL into the "Install from URL" input at the top
90
+ 4. Click **INSTALL** (or press Enter)
91
+ 5. The app appears in the installed list immediately
92
+
93
+ ### Supported Sources
94
+
95
+ | Pattern | Type | Example |
96
+ |---------|------|---------|
97
+ | Starts with `.` or `/` | Local copy | `./apps/my-app` |
98
+ | Ends with `.tar.gz` / `.tgz` | Tarball download | `https://example.com/app.tar.gz` |
99
+ | Ends with `.zip` | Zip download | `https://example.com/app.zip` |
100
+ | Everything else | Git clone | `github.com/user/repo` |
101
+ | `#path=subdir` fragment | Subdirectory | `github.com/user/repo#path=apps/foo` |
102
+
103
+ ### Validation
104
+
105
+ The installer validates each app before copying it to `apps/`:
106
+
107
+ - `app.md` must exist with valid YAML frontmatter
108
+ - `index.html` is loaded if present (optional — headless apps use a default UI)
109
+ - No symlinks escaping the app directory
110
+ - No file larger than 5MB
111
+ - Total size under 20MB
112
+ - No ID conflict with existing apps (unless `--force`)
113
+
114
+ ### Provenance
115
+
116
+ Each installed app gets a `.source.json` file recording where it was installed from:
117
+
118
+ ```json
119
+ {
120
+ "type": "git",
121
+ "url": "https://github.com/user/my-app.git",
122
+ "ref": null,
123
+ "subdir": null,
124
+ "installedAt": "2026-02-10T12:00:00.000Z"
125
+ }
126
+ ```
127
+
128
+ This file is used by `auramaxx app update <id>` to re-install from the original source.
129
+
130
+ ---
131
+
132
+ ## Quick Start
133
+
134
+ Create a minimal app in 3 steps:
135
+
136
+ ### 1. Create the folder
137
+
138
+ ```bash
139
+ mkdir apps/hello-world
140
+ ```
141
+
142
+ ### 2. Create the manifest (`apps/hello-world/app.md`)
143
+
144
+ ```markdown
145
+ ---
146
+ name: Hello World
147
+ icon: Smile
148
+ category: general
149
+ size: 1x1
150
+ permissions:
151
+ data:
152
+ ---
153
+
154
+ A minimal example app that displays a greeting.
155
+ ```
156
+
157
+ ### 3. Create the entry point (`apps/hello-world/index.html`)
158
+
159
+ ```html
160
+ <!DOCTYPE html>
161
+ <html>
162
+ <head>
163
+ <style>
164
+ body {
165
+ font-family: ui-monospace, monospace;
166
+ background: var(--color-surface, #fff);
167
+ color: var(--color-text, #0a0a0a);
168
+ display: flex;
169
+ align-items: center;
170
+ justify-content: center;
171
+ height: 100vh;
172
+ font-size: 12px;
173
+ }
174
+ </style>
175
+ </head>
176
+ <body>
177
+ <div>Hello from an app!</div>
178
+ </body>
179
+ </html>
180
+ ```
181
+
182
+ The app will appear in the App Store under the "INSTALLED" tab. Click "ADD" to place it on your workspace.
183
+
184
+ ---
185
+
186
+ ## Built-in Apps
187
+
188
+ These apps ship with AuraMaxx and appear in the App Store under "BUILT-IN":
189
+
190
+ | Type | Title | Singleton | Description |
191
+ |------|-------|:---------:|-------------|
192
+ | `logs` | EVENT LOGS | Yes | Real-time event log viewer |
193
+ | `send` | SEND | Yes | Send transactions from hot wallets |
194
+ | `agentKeys` | AGENT KEYS | Yes | View and manage agent tokens |
195
+ | `token` | TOKEN | No | Market data for a token |
196
+ | `setup` | GETTING STARTED | Yes | First-time setup wizard |
197
+ | `transactions` | TRANSACTIONS | Yes | Transaction history log |
198
+ | `walletDetail` | WALLET | No | Detailed view of a single wallet |
199
+ | `iframe` | IFRAME | No | Embed any URL in an iframe |
@@ -0,0 +1,235 @@
1
+ # Architecture
2
+
3
+ How AuraMaxx works, from the simple version to the full security model.
4
+
5
+ ---
6
+
7
+ ## What AuraMaxx Is
8
+
9
+ AuraMaxx is a local-first credential and wallet manager designed for AI agents. It runs on your machine, stores secrets encrypted on disk, and gives agents scoped access through short-lived tokens that a human must approve.
10
+
11
+ ```
12
+ Human unlocks vault → Agent requests access → Human approves → Agent gets scoped token
13
+ ```
14
+
15
+ That's it. Everything else is enforcement.
16
+
17
+ ---
18
+
19
+ ## The Simple Version
20
+
21
+ **Three things run locally:**
22
+
23
+ 1. **Wallet server** (`:4242`) — the API. Handles auth, wallets, credentials, transactions.
24
+ 2. **Dashboard** (`:4747`) — web UI for approvals, wallet management, monitoring.
25
+ 3. **Cron** — background jobs (balance sync, price updates). No HTTP port.
26
+
27
+ **Data lives in `~/.auramaxx/`** — SQLite database, encrypted vault files, config. All local, outside the repo.
28
+
29
+ **Agents talk to the wallet server** with a Bearer token. Humans interact through the dashboard or CLI.
30
+
31
+ ---
32
+
33
+ ## How Agents Get Access
34
+
35
+ Agents cannot self-issue tokens. Every token starts with a human decision.
36
+
37
+ ### The standard flow
38
+
39
+ ```
40
+ 1. Agent sends POST /auth with { agentId, profile, pubkey }
41
+ 2. Server creates a pending request, returns requestId + secret + approveUrl
42
+ 3. Human opens approval URL, reviews permissions, approves or denies
43
+ 4. Agent polls GET /auth/:requestId?secret=... and claims the encrypted token
44
+ 5. Agent uses token as Bearer header on all subsequent API calls
45
+ ```
46
+
47
+ The token is encrypted to the agent's RSA public key during transport — the server never sends a plaintext token over the wire.
48
+
49
+ ### Why profiles instead of raw permissions
50
+
51
+ Agents request access by **profile name** (`strict`, `dev`, `admin`), not by listing individual permissions. This is intentional:
52
+
53
+ - Profiles bundle sensible defaults — permissions, vault scopes, field redactions, TTL, read limits
54
+ - Agents cannot request arbitrary permission sets on the standard path (`POST /auth` rejects raw `permissions`, `ttl`, and `credentialAccess`)
55
+ - Humans review a known profile with predictable behavior, not an ad-hoc permission list
56
+ - Overrides are **tighten-only** — an agent can ask for less access than a profile grants, never more
57
+
58
+ See [AUTH.md — Built-in Profiles](./AUTH.md#built-in-profiles-v1) for the full profile breakdown.
59
+
60
+ ---
61
+
62
+ ## Why It's Secure
63
+
64
+ ### 1. Memory-only auth state
65
+
66
+ The core security property: **auth decisions never touch the database**.
67
+
68
+ ```
69
+ IN MEMORY (drives all auth): IN DATABASE (display only):
70
+ ├── SIGNING_KEY (random 32 bytes) ├── AgentToken table
71
+ ├── sessions Map (spending tracking) │ ├── tokenHash
72
+ ├── revokedTokens Set │ ├── agentId, limit, spent
73
+ └── pendingRequests Map │ └── isRevoked, expiresAt
74
+ ```
75
+
76
+ - `SIGNING_KEY` is generated fresh on every server start — all old tokens are instantly invalid
77
+ - A stolen database is useless without the in-memory key
78
+ - Token validation checks memory signature + expiry + revocation status, never the DB
79
+ - Restart = forced re-approval = security feature, not a bug
80
+
81
+ ### 2. Three-layer enforcement
82
+
83
+ Every API call passes through three independent checks:
84
+
85
+ **Layer 1 — Profile issuance** (what the token was created with):
86
+ - Permissions, vault scopes, field exclusions, TTL, read budget
87
+ - Set at creation time, cannot be modified after
88
+
89
+ **Layer 2 — Route middleware** (checked on every request):
90
+ - Signature validation against in-memory `SIGNING_KEY`
91
+ - Expiry check
92
+ - Revocation check
93
+ - Permission check (`requirePermission` / `hasAnyPermission`)
94
+
95
+ **Layer 3 — Credential access policy** (for secret operations):
96
+ - Vault/tag/ID selector matching
97
+ - Per-token read budget tracking
98
+ - Field minimization (`excludeFields` strips sensitive data before encryption)
99
+ - Rate limiting per credential per minute
100
+
101
+ A request must pass all three layers. Issuance defines the ceiling; runtime enforcement is the live guardrail.
102
+
103
+ ### 3. Encrypted transport everywhere
104
+
105
+ - **Vault unlock**: password is RSA-OAEP encrypted before transmission (server pubkey from `GET /auth/connect`)
106
+ - **Token claim**: token is encrypted to the agent's RSA public key
107
+ - **Secret reads**: credential fields are encrypted to the caller's key material
108
+ - No plaintext secrets cross the wire in normal operation
109
+
110
+ ### 4. Human approval gate
111
+
112
+ Every token issuance path requires human involvement:
113
+
114
+ | Path | Human gate |
115
+ |------|-----------|
116
+ | `POST /auth` | Human must approve the pending request |
117
+ | `POST /actions` | Human must resolve the action (`/actions/:id/resolve`) |
118
+ | `POST /actions/token` | Caller must already have admin token |
119
+ | Socket bootstrap | Trust-dependent (configurable, default: `localAutoApprove = false`) |
120
+
121
+ Agents cannot escalate their own permissions — `admin:*` and `action:create` are blocked from self-escalation via `POST /actions`.
122
+
123
+ ---
124
+
125
+ ## Credential Vault
126
+
127
+ Credentials are the core data type. The vault provides encrypted storage with scoped access.
128
+
129
+ ### Encryption
130
+
131
+ ```
132
+ Vault Mnemonic → HKDF("credential-v1:<vaultId>") → Per-Vault Key → AES-256-GCM per credential
133
+ ```
134
+
135
+ - Each vault derives its own encryption key from its mnemonic
136
+ - Credentials are individual encrypted files under `~/.auramaxx/credentials/`
137
+ - Metadata (name, type, tags) stays plaintext for listing/search
138
+ - Sensitive fields are encrypted at rest and in transport
139
+
140
+ ### Access control
141
+
142
+ Token-level scoping via `credentialAccess`:
143
+
144
+ - **Selectors** define where: `vault:agent`, `vault:*`, `tag:<label>`, `cred-xxxxx`, `*`
145
+ - **Permissions** define what: `secret:read`, `secret:write`, `totp:read`
146
+ - **Limits** define how much: `maxReads`, `ttl`, per-credential rate limits
147
+ - **Field minimization** defines visibility: `excludeFields` strips fields before they're encrypted to the caller
148
+
149
+ Mental model: permissions say **action**, selectors say **scope**, limits say **budget**.
150
+
151
+ ---
152
+
153
+ ## Process Model
154
+
155
+ ```
156
+ ┌────────────────────┐ ┌────────────────────┐
157
+ │ Express :4242 │ │ Dashboard :4747 │
158
+ │ Wallet API │◄────│ Next.js UI │
159
+ └────────┬───────────┘ └────────┬────────────┘
160
+ │ │
161
+ ▼ ▼
162
+ ┌────────────────────┐ ┌────────────────────┐
163
+ │ WebSocket :4748 │◄────│ Cron (background) │
164
+ │ Event broadcast │ │ Balance sync │
165
+ └────────────────────┘ │ Price updates │
166
+ └────────────────────┘
167
+ ┌────────────────────┐
168
+ │ MCP Server │
169
+ │ stdio transport │──── HTTP ───► Express :4242
170
+ │ Claude/Cursor/etc │
171
+ └────────────────────┘
172
+ ```
173
+
174
+ | Process | Port | Purpose |
175
+ |---------|------|---------|
176
+ | **Express** | 4242 | Wallet API — auth, wallets, credentials, transactions |
177
+ | **Dashboard** | 4747 / 4748 (WS) | Web UI + real-time event broadcast |
178
+ | **Cron** | None | Background jobs — balance sync, price updates |
179
+ | **MCP** | None (stdio) | Tool interface for AI agents (Claude, Cursor, etc.) |
180
+
181
+ All processes communicate through WebSocket broadcasts and HTTP calls to Express.
182
+
183
+ ### Data directory (`~/.auramaxx/`)
184
+
185
+ | Path | Purpose |
186
+ |------|---------|
187
+ | `auramaxx.db` | SQLite database |
188
+ | `vault-primary.json` | Primary vault (encrypted seed phrase) |
189
+ | `vault-*.json` | Additional vaults |
190
+ | `config.json` | Chain configs, server port |
191
+
192
+ ---
193
+
194
+ ## Middleware Stack
195
+
196
+ ```
197
+ Request
198
+
199
+ ├─ CORS
200
+ ├─ JSON body parser
201
+ ├─ Rate limiters (hot-reloadable)
202
+ │ ├─ Brute-force: 5/15min → /unlock, /setup, /actions, /nuke
203
+ │ ├─ Auth: 10/min → /auth
204
+ │ ├─ Transaction: 30/min → /send, /swap, /fund, /launch
205
+ │ └─ General: 100/min → everything else
206
+ ├─ Request logging
207
+ └─ Error handler
208
+ ```
209
+
210
+ Rate limits are configurable via SystemDefaults (hot-reloadable without restart).
211
+
212
+ ---
213
+
214
+ ## Token Lifecycle
215
+
216
+ ```
217
+ Agent requests token → Pending (in memory, waiting for human)
218
+ Human approves → Token signed with SIGNING_KEY, encrypted to agent pubkey
219
+ Agent claims token → One-time claim, token cleared from escrow
220
+ Agent uses token → Every call: signature + expiry + revocation + permission check
221
+ Spending tracked in memory, synced to DB for display
222
+ Server restarts → Memory wiped, new SIGNING_KEY, all tokens invalid
223
+ Agent must re-request, human must re-approve
224
+ Token revoked → Added to revokedTokens set, immediately rejected
225
+ ```
226
+
227
+ ---
228
+
229
+ ## Related Docs
230
+
231
+ - [Auth](./AUTH.md) — practical auth guide, profile builder, CLI examples
232
+ - [Security](./security.md) — security model deep dive, enforcement details
233
+ - [MCP](./MCP.md) — MCP server configuration and tool reference
234
+ - [CLI](./CLI.md) — headless CLI mode
235
+ - [Credentials](./credentials.md) — credential types and vault reference