auramaxx 0.0.17 → 0.0.19

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 (296) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +70 -70
  3. package/.next/app-path-routes-manifest.json +2 -2
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +30 -30
  6. package/.next/react-loadable-manifest.json +16 -16
  7. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_not-found.html +1 -1
  10. package/.next/server/app/_not-found.rsc +5 -5
  11. package/.next/server/app/api/[...doc]/page.js.nft.json +1 -1
  12. package/.next/server/app/api/[...doc]/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/agent-requests/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/apps/install/route.js.nft.json +1 -1
  15. package/.next/server/app/api/apps/install/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/apps/manifests/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/apps/static/[...path]/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/docs/plain/route.js.nft.json +1 -1
  19. package/.next/server/app/api/docs/plain/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/import-from-openclaw/[channel]/route.js.nft.json +1 -1
  22. package/.next/server/app/api/import-from-openclaw/[channel]/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/import-from-openclaw/route.js.nft.json +1 -1
  24. package/.next/server/app/api/import-from-openclaw/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/import-from-openclaw/validate/[channel]/route.js.nft.json +1 -1
  26. package/.next/server/app/api/import-from-openclaw/validate/[channel]/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/page.js.nft.json +1 -1
  28. package/.next/server/app/api/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/workspace/[id]/apps/[wid]/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/workspace/[id]/apps/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/workspace/[id]/export/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/workspace/[id]/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/workspace/config/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/workspace/import/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/workspace/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/app-legacy-do-not-use/page.js +3 -3
  40. package/.next/server/app/app-legacy-do-not-use/page.js.nft.json +1 -1
  41. package/.next/server/app/app-legacy-do-not-use/page_client-reference-manifest.js +1 -1
  42. package/.next/server/app/app-legacy-do-not-use.html +1 -1
  43. package/.next/server/app/app-legacy-do-not-use.rsc +6 -6
  44. package/.next/server/app/approve/[actionId]/page.js.nft.json +1 -1
  45. package/.next/server/app/approve/[actionId]/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/docs/[...doc]/page.js.nft.json +1 -1
  47. package/.next/server/app/docs/[...doc]/page_client-reference-manifest.js +1 -1
  48. package/.next/server/app/docs/page.js.nft.json +1 -1
  49. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/health/page.js.nft.json +1 -1
  51. package/.next/server/app/health/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app/health.html +1 -1
  53. package/.next/server/app/health.rsc +5 -5
  54. package/.next/server/app/hello/page.js.nft.json +1 -1
  55. package/.next/server/app/hello/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/hello.html +1 -1
  57. package/.next/server/app/hello.rsc +5 -5
  58. package/.next/server/app/index.html +1 -1
  59. package/.next/server/app/index.rsc +6 -6
  60. package/.next/server/app/page.js +9 -3
  61. package/.next/server/app/page.js.nft.json +1 -1
  62. package/.next/server/app/page_client-reference-manifest.js +1 -1
  63. package/.next/server/app/privacy/page.js.nft.json +1 -1
  64. package/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/privacy.html +1 -1
  66. package/.next/server/app/privacy.rsc +5 -5
  67. package/.next/server/app/share/[token]/page.js.nft.json +1 -1
  68. package/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
  69. package/.next/server/app/terms/page.js.nft.json +1 -1
  70. package/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  71. package/.next/server/app/terms.html +1 -1
  72. package/.next/server/app/terms.rsc +5 -5
  73. package/.next/server/app/yo/page.js +1 -1
  74. package/.next/server/app/yo/page.js.nft.json +1 -1
  75. package/.next/server/app/yo/page_client-reference-manifest.js +1 -1
  76. package/.next/server/app/yo.html +1 -1
  77. package/.next/server/app/yo.rsc +6 -6
  78. package/.next/server/app-paths-manifest.json +2 -2
  79. package/.next/server/chunks/1196.js +1 -1
  80. package/.next/server/chunks/{6415.js → 2123.js} +2 -2
  81. package/.next/server/chunks/2234.js +1 -1
  82. package/.next/server/chunks/4224.js +1 -0
  83. package/.next/server/chunks/4600.js +1 -1
  84. package/.next/server/chunks/5678.js +1 -1
  85. package/.next/server/chunks/5991.js +7 -0
  86. package/.next/server/chunks/6470.js +1 -1
  87. package/.next/server/chunks/7585.js +1 -1
  88. package/.next/server/chunks/7935.js +19 -11
  89. package/.next/server/chunks/8468.js +1 -1
  90. package/.next/server/chunks/{1350.js → 9323.js} +3 -3
  91. package/.next/server/chunks/9971.js +1 -1
  92. package/.next/server/functions-config-manifest.json +1 -1
  93. package/.next/server/middleware-build-manifest.js +1 -1
  94. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  95. package/.next/server/pages/404.html +1 -1
  96. package/.next/server/pages/500.html +1 -1
  97. package/.next/server/server-reference-manifest.json +1 -1
  98. package/.next/static/chunks/{1168.aaac1edbb597fe5a.js → 1168.bb1c93965872e980.js} +1 -1
  99. package/.next/static/chunks/2891-bf010357841c9ce9.js +1 -0
  100. package/.next/static/chunks/{2927.7e00cc878d9a3f52.js → 2927.3976471e61df966e.js} +1 -1
  101. package/.next/static/chunks/{3573-1b41d7b8a000d015.js → 3573-667bc4c8f56afcff.js} +1 -1
  102. package/.next/static/chunks/{3a91511d-ba215c0b5dc21ba9.js → 3a91511d-da2c74cad6c6fc33.js} +2 -2
  103. package/.next/static/chunks/4114-a375178fd94c4d8a.js +1 -0
  104. package/.next/static/chunks/{4256.48407d9abad5ea33.js → 4256.aa831e4d8c3f65bc.js} +1 -1
  105. package/.next/static/chunks/{4919-7e7cdd5efc9f2110.js → 4919-0e698cd95504e355.js} +1 -1
  106. package/.next/static/chunks/{5336-233ec7ab3807267c.js → 5336-b775f449d7433604.js} +1 -1
  107. package/.next/static/chunks/{7338-3ce17a93614f1d77.js → 5362-2e8fcdd0bc6273ca.js} +4 -4
  108. package/.next/static/chunks/67-cb9bbb430499e803.js +1 -0
  109. package/.next/static/chunks/{8273-8e92d34180669ca9.js → 8273-3b9d882c5dd6a9a8.js} +1 -1
  110. package/.next/static/chunks/8291-8f6fb6554e692552.js +1 -0
  111. package/.next/static/chunks/8370-6537b6b27df58b23.js +1 -0
  112. package/.next/static/chunks/app/app-legacy-do-not-use/page-efa348da049c5873.js +1 -0
  113. package/.next/static/chunks/app/{error-63cbe72522239cff.js → error-04a18fd49a89ee17.js} +1 -1
  114. package/.next/static/chunks/app/layout-7093dda0d106f34d.js +1 -0
  115. package/.next/static/chunks/app/page-0ec7cf48550f71e6.js +1 -0
  116. package/.next/static/chunks/app/yo/{page-cf5d6540ea31c31c.js → page-48930746b135037e.js} +1 -1
  117. package/.next/static/chunks/{webpack-79ad58260e9b10b4.js → webpack-15ec0114c9d658c2.js} +1 -1
  118. package/.next/static/css/35991998d1b5eff0.css +3 -0
  119. package/.next/trace +28 -28
  120. package/README.md +2 -2
  121. package/bin/auramaxx.js +87 -3
  122. package/package.json +8 -4
  123. package/prisma/migrations/20260301225214_social_tables/migration.sql +81 -0
  124. package/prisma/migrations/20260302120000_add_notification_hash/migration.sql +8 -0
  125. package/prisma/migrations/20260302160000_add_public_key_hex/migration.sql +5 -0
  126. package/prisma/migrations/20260302170000_add_inbound_author_public_key/migration.sql +5 -0
  127. package/prisma/schema.prisma +272 -177
  128. package/shared/credential-field-schema.ts +10 -0
  129. package/skills/auramaxx/SKILL.md +33 -4
  130. package/skills/auramaxx/docs/AGENT_SETUP.md +7 -2
  131. package/src/app/UnlockPageClient.tsx +448 -43
  132. package/src/app/app-legacy-do-not-use/page.tsx +5 -3
  133. package/src/app/globals.css +1 -1
  134. package/src/components/AgentPicker.tsx +278 -0
  135. package/src/components/CreateAgentModal.tsx +192 -0
  136. package/src/components/NotificationDrawer.tsx +15 -13
  137. package/src/components/agent/AgentSidebar.tsx +2 -19
  138. package/src/components/agent/CredentialAgent.tsx +70 -37
  139. package/src/components/agent/CredentialForm.tsx +32 -7
  140. package/src/components/agent/CredentialList.tsx +149 -72
  141. package/src/components/agents/AgentsView.tsx +1035 -0
  142. package/src/components/design-system/TextAreaInput.tsx +78 -0
  143. package/src/components/design-system/index.ts +1 -0
  144. package/src/components/hub/HubView.tsx +58 -0
  145. package/src/components/layout/LeftRail.tsx +333 -40
  146. package/src/components/layout/ViewShell.tsx +125 -0
  147. package/src/components/layout/index.ts +1 -0
  148. package/src/components/social/PrimaryHubRegistrationGate.tsx +260 -0
  149. package/src/components/social/SocialView.tsx +904 -0
  150. package/src/hooks/useSocialNotifications.ts +123 -0
  151. package/src/lib/events.ts +10 -1
  152. package/src/lib/social-client.ts +319 -0
  153. package/src/lib/view-registry.ts +22 -4
  154. package/src/server/cli/commands/agent.ts +33 -7
  155. package/src/server/cli/commands/create.ts +209 -0
  156. package/src/server/cli/commands/onboard.ts +39 -0
  157. package/src/server/cli/commands/play.ts +68 -0
  158. package/src/server/cli/commands/register-agent.ts +181 -0
  159. package/src/server/cli/commands/social.ts +648 -0
  160. package/src/server/cli/commands/start.ts +4 -3
  161. package/src/server/cron/index.ts +5 -9
  162. package/src/server/cron/jobs/social-inbound.ts +596 -0
  163. package/src/server/cron/jobs/social-outbound.ts +70 -0
  164. package/src/server/index.ts +14 -0
  165. package/src/server/lib/agent-profiles.ts +10 -1
  166. package/src/server/lib/cold.ts +0 -45
  167. package/src/server/lib/credential-import.ts +53 -47
  168. package/src/server/lib/defaults.ts +11 -0
  169. package/src/server/lib/feature-flags.ts +3 -0
  170. package/src/server/lib/hub-auth.ts +159 -0
  171. package/src/server/lib/migrate-agent-profiles.ts +96 -0
  172. package/src/server/lib/notifications.ts +12 -1
  173. package/src/server/lib/permissions.ts +10 -0
  174. package/src/server/lib/project-scope.ts +33 -5
  175. package/src/server/lib/social/create.ts +176 -0
  176. package/src/server/lib/social/global-aura-id.ts +115 -0
  177. package/src/server/lib/social/hub-rpc-client.ts +99 -0
  178. package/src/server/lib/social/hub-session.ts +6 -0
  179. package/src/server/lib/social/public-key.ts +32 -0
  180. package/src/server/lib/social/register.ts +162 -0
  181. package/src/server/lib/social/sign.ts +95 -0
  182. package/src/server/lib/social/sync.ts +301 -0
  183. package/src/server/mcp/server.ts +142 -18
  184. package/src/server/mcp/tools.ts +552 -0
  185. package/src/server/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  186. package/src/server/routes/agent-hub.ts +276 -0
  187. package/src/server/routes/agent-profiles.ts +145 -19
  188. package/src/server/routes/credentials.ts +49 -15
  189. package/src/server/routes/heartbeat.ts +3 -7
  190. package/src/server/routes/passkey.ts +7 -1
  191. package/src/server/routes/social.ts +869 -0
  192. package/src/server/routes/unlock.ts +17 -1
  193. package/src/server/routes/verified-credentials.ts +312 -0
  194. package/src/server/test-data/template.db +0 -0
  195. package/src/server/test-data/worker-1/agent-primary.json +12 -0
  196. package/src/server/test-data/worker-1/auramaxx.db +0 -0
  197. package/src/server/test-data/worker-1/backups/auramaxx.db.20260305_011404.bak +0 -0
  198. package/src/server/test-data/worker-1/backups/credentials.20260305_011404.cred-00ntf5h3.json +24 -0
  199. package/src/server/test-data/worker-1/backups/credentials.20260305_011404.cred-dh8fa9k3.json +24 -0
  200. package/src/server/test-data/worker-1/backups/credentials.20260305_011404.cred-prfhlyow.json +25 -0
  201. package/src/server/test-data/worker-1/backups/credentials.20260305_011404.cred-w26jd6zi.json +22 -0
  202. package/src/server/test-data/worker-1/config.json +33 -0
  203. package/src/server/test-data/worker-1/test.db +0 -0
  204. package/src/server/test-data/worker-10/agent-primary.json +12 -0
  205. package/src/server/test-data/worker-10/config.json +33 -0
  206. package/src/server/test-data/worker-10/test.db +0 -0
  207. package/src/server/test-data/worker-11/agent-primary.json +12 -0
  208. package/src/server/test-data/worker-11/config.json +33 -0
  209. package/src/server/test-data/worker-11/test.db +0 -0
  210. package/src/server/test-data/worker-12/agent-primary.json +12 -0
  211. package/src/server/test-data/worker-12/config.json +33 -0
  212. package/src/server/test-data/worker-12/credentials/cred-hboagned.json +25 -0
  213. package/src/server/test-data/worker-12/credentials/cred-nt14xd9t.json +24 -0
  214. package/src/server/test-data/worker-12/credentials/cred-qn59xefc.json +24 -0
  215. package/src/server/test-data/worker-12/test.db +0 -0
  216. package/src/server/test-data/worker-13/agent-primary.json +12 -0
  217. package/src/server/test-data/worker-13/approval-context.json +56 -0
  218. package/src/server/test-data/worker-13/approval-context.key +1 -0
  219. package/src/server/test-data/worker-13/config.json +33 -0
  220. package/src/server/test-data/worker-13/credentials-recently-deleted/cred-jn9yqy2m.json +20 -0
  221. package/src/server/test-data/worker-13/test.db +0 -0
  222. package/src/server/test-data/worker-14/agent-primary.json +12 -0
  223. package/src/server/test-data/worker-14/config.json +33 -0
  224. package/src/server/test-data/worker-14/test.db +0 -0
  225. package/src/server/test-data/worker-15/agent-primary.json +12 -0
  226. package/src/server/test-data/worker-15/config.json +33 -0
  227. package/src/server/test-data/worker-15/test.db +0 -0
  228. package/src/server/test-data/worker-15/update-check-4b305e76.json +5 -0
  229. package/src/server/test-data/worker-2/agent-primary.json +12 -0
  230. package/src/server/test-data/worker-2/config.json +33 -0
  231. package/src/server/test-data/worker-2/test.db +0 -0
  232. package/src/server/test-data/worker-3/agent-primary.json +12 -0
  233. package/src/server/test-data/worker-3/config.json +33 -0
  234. package/src/server/test-data/worker-3/test.db +0 -0
  235. package/src/server/test-data/worker-4/agent-primary.json +12 -0
  236. package/src/server/test-data/worker-4/config.json +33 -0
  237. package/src/server/test-data/worker-4/credentials/cred-bm6p74u5.json +24 -0
  238. package/src/server/test-data/worker-4/credentials/cred-r8eqb07i.json +25 -0
  239. package/src/server/test-data/worker-4/credentials/cred-ziv49y9h.json +24 -0
  240. package/src/server/test-data/worker-4/test.db +0 -0
  241. package/src/server/test-data/worker-5/agent-primary.json +12 -0
  242. package/src/server/test-data/worker-5/config.json +33 -0
  243. package/src/server/test-data/worker-5/credentials/cred-15gyfeht.json +25 -0
  244. package/src/server/test-data/worker-5/credentials/cred-lp0ocnfc.json +24 -0
  245. package/src/server/test-data/worker-5/credentials/cred-zfbwfxw0.json +24 -0
  246. package/src/server/test-data/worker-5/test.db +0 -0
  247. package/src/server/test-data/worker-6/agent-primary.json +12 -0
  248. package/src/server/test-data/worker-6/config.json +33 -0
  249. package/src/server/test-data/worker-6/credentials/cred-dx8li3ue.json +24 -0
  250. package/src/server/test-data/worker-6/credentials/cred-myeskqky.json +24 -0
  251. package/src/server/test-data/worker-6/credentials/cred-tam01qdt.json +25 -0
  252. package/src/server/test-data/worker-6/credentials/cred-wdh6rslw.json +22 -0
  253. package/src/server/test-data/worker-6/credentials-archive/cred-4wg53v1y.json +25 -0
  254. package/src/server/test-data/worker-6/test.db +0 -0
  255. package/src/server/test-data/worker-7/agent-primary.json +12 -0
  256. package/src/server/test-data/worker-7/config.json +33 -0
  257. package/src/server/test-data/worker-7/credentials/cred-ji7ec57d.json +25 -0
  258. package/src/server/test-data/worker-7/credentials/cred-mmgj0ypo.json +24 -0
  259. package/src/server/test-data/worker-7/credentials/cred-nb0ic93x.json +24 -0
  260. package/src/server/test-data/worker-7/test.db +0 -0
  261. package/src/server/test-data/worker-8/agent-primary.json +12 -0
  262. package/src/server/test-data/worker-8/config.json +33 -0
  263. package/src/server/test-data/worker-8/test.db +0 -0
  264. package/src/server/test-data/worker-9/agent-primary.json +12 -0
  265. package/src/server/test-data/worker-9/test.db +0 -0
  266. package/src/server/tests/cli/bin-entrypoint.test.ts +99 -0
  267. package/src/server/tests/cli/social.test.ts +83 -0
  268. package/src/server/tests/cron/social-inbound-followers.unit.test.ts +164 -0
  269. package/src/server/tests/cron/social-inbound-staleness.test.ts +193 -0
  270. package/src/server/tests/cron/social-outbound.test.ts +252 -0
  271. package/src/server/tests/endpoints/agent.test.ts +0 -16
  272. package/src/server/tests/lib/credential-field-schema.test.ts +448 -0
  273. package/src/server/tests/lib/project-scope.test.ts +49 -0
  274. package/src/server/tests/lib/social/create.test.ts +207 -0
  275. package/src/server/tests/lib/social/sign.test.ts +163 -0
  276. package/src/server/tests/lib/social/sync.test.ts +198 -0
  277. package/src/server/tests/mcp/server.test.ts +1 -3
  278. package/src/server/tests/mcp/tools.test.ts +219 -7
  279. package/src/server/tsconfig.tsbuildinfo +1 -1
  280. package/tsconfig.json +1 -0
  281. package/.next/server/chunks/2460.js +0 -7
  282. package/.next/server/chunks/5246.js +0 -1
  283. package/.next/static/chunks/3667-1db7bd03948e60df.js +0 -1
  284. package/.next/static/chunks/5442-b5bb869e832e8967.js +0 -1
  285. package/.next/static/chunks/6872-a8f1ad5fc35a1c35.js +0 -1
  286. package/.next/static/chunks/7394-4bdb1feefad1a74a.js +0 -1
  287. package/.next/static/chunks/7587-8542eae6e5139d27.js +0 -1
  288. package/.next/static/chunks/app/app-legacy-do-not-use/page-569fed5d1a2bfe79.js +0 -1
  289. package/.next/static/chunks/app/layout-af8d9969c7aeb758.js +0 -1
  290. package/.next/static/chunks/app/page-9bd0ec3ba4aa6cea.js +0 -1
  291. package/.next/static/css/88f92e1578b1e5d9.css +0 -3
  292. package/shared/agent-profile-schema.ts +0 -81
  293. package/src/internal/security/frontend-api-authorization-audit.md +0 -206
  294. package/src/server/lib/agent-profile-records.ts +0 -72
  295. /package/.next/static/{QPzVnl7GToqgYBq14V_iC → yEruVJH_cuht5hu5_1R00}/_buildManifest.js +0 -0
  296. /package/.next/static/{QPzVnl7GToqgYBq14V_iC → yEruVJH_cuht5hu5_1R00}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # AURAMAXX.SH 🗿🖤
2
2
 
3
- **The open-source Apple Keychain for your agent. Securely share passwords, cards, and API keys with any AI agents.**
3
+ **The open-source Apple Keychain for your agent. Securely share passwords, API keys, and credit cards with any AI agents.**
4
4
 
5
5
  ![AuraMaxx](./public/README.png)
6
6
 
7
- [View on auramaxx.sh](https://auramaxx.sh)
7
+ [X](https://x.com/npxauramaxx) · [Website](https://auramaxx.sh) · [Docs](https://auramaxx.sh/docs) · [Help](https://x.com/nicoletteduclar) · [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
8
8
 
9
9
  ## Features
10
10
 
package/bin/auramaxx.js CHANGED
@@ -34,6 +34,7 @@ const COMMANDS = {
34
34
  api: 'Call any wallet API endpoint from CLI (auth + JSON wrapper)',
35
35
  auth: 'Request/poll agent auth approvals from CLI',
36
36
  diary: 'Append daily diary entries via authenticated CLI path',
37
+ 'register-agent': 'Create/register a subsequent local agent (non-primary)',
37
38
  actions: 'Create/list/resolve human actions and manage action tokens',
38
39
  approve: 'Approve a pending human action by ID (admin only)',
39
40
  apikey: 'List/validate/set/delete API keys',
@@ -43,6 +44,7 @@ const COMMANDS = {
43
44
  experimental: 'Toggle dev feature flags (list, enable, disable)',
44
45
  skill: 'Install AuraMaxx skills for Claude/Codex/OpenClaw and run install doctor',
45
46
  wallet: 'Wallet API wrappers (status, assets, transactions, swap, send, fund, launch)',
47
+ // social: 'Social API wrappers (register, unregister, post, feed, follow, notifications, status)', // Temporarily disabled at root CLI.
46
48
  quickhack: 'Generate random tutorial secret, run set+inject, and print copyable commands',
47
49
  agent: 'Retrieve/manage credentials (get, set, share via secret gist, delete, list)',
48
50
  service: 'Manage background service (install, uninstall, status)',
@@ -50,6 +52,8 @@ const COMMANDS = {
50
52
  token: 'Preview profile-based token policy before issuance',
51
53
  env: 'Load env vars from agent via .aura file (run, inject, check, list, init)',
52
54
  'shell-hook': 'Auto-load .aura env vars on cd (like direnv)',
55
+ play: 'Play an AuraJS game from npm (auramaxx play <game>)',
56
+ create: 'Scaffold a new AuraJS game project ready for npm publish',
53
57
  };
54
58
 
55
59
  const AGENT_ALIASES = {
@@ -75,6 +79,32 @@ const AGENT_ALIASES = {
75
79
  use: 'inject',
76
80
  };
77
81
 
82
+ // Temporarily disabled at root CLI.
83
+ // const SOCIAL_ALIASES = {
84
+ // register: 'register',
85
+ // unregister: 'unregister',
86
+ // 'hub-register': 'register',
87
+ // 'register-hub': 'register',
88
+ // 'social-register': 'register',
89
+ // 'hub-unregister': 'unregister',
90
+ // 'unregister-hub': 'unregister',
91
+ // 'social-unregister': 'unregister',
92
+ // post: 'post',
93
+ // feed: 'feed',
94
+ // follow: 'follow',
95
+ // unfollow: 'unfollow',
96
+ // react: 'react',
97
+ // followers: 'followers',
98
+ // following: 'following',
99
+ // notifications: 'notifications',
100
+ // 'social-status': 'status',
101
+ // };
102
+
103
+ const COMMAND_ALIASES = {
104
+ 'create-agent': 'register-agent',
105
+ 'agent-register': 'register-agent',
106
+ };
107
+
78
108
  const SHORTCUT_COMMANDS = [
79
109
  { name: 'get <name>', desc: 'Read primary credential value (--json for full payload)' },
80
110
  { name: 'set <name> <value>', desc: 'Create or update a secret (default type: api key)' },
@@ -652,6 +682,16 @@ function normalizeVersionString(value) {
652
682
  return String(value).trim().replace(/^v/i, '');
653
683
  }
654
684
 
685
+ function formatUpdateAvailableLine(current, latest) {
686
+ const normalizedCurrent = normalizeVersionString(current) || 'unknown';
687
+ const normalizedLatest = normalizeVersionString(latest);
688
+ if (!normalizedLatest) return '';
689
+ if (normalizedCurrent === 'unknown') {
690
+ return `⚠️ Update available: aura${normalizedLatest}`;
691
+ }
692
+ return `⚠️ Update available: aura${normalizedCurrent} → aura${normalizedLatest}`;
693
+ }
694
+
655
695
  function maybePrintUpdateNotice() {
656
696
  if (process.env.AURA_NO_UPDATE_CHECK === '1' || process.env.CI === 'true') return;
657
697
 
@@ -683,7 +723,7 @@ function maybePrintUpdateNotice() {
683
723
  }
684
724
 
685
725
  if (cachedLatest && compareVersions(cachedLatest, effectiveCurrent || '') > 0) {
686
- console.log(`\n⚠️ Update available: aura${effectiveCurrent} → aura${cachedLatest}`);
726
+ console.log(`\n${formatUpdateAvailableLine(effectiveCurrent, cachedLatest)}`);
687
727
  console.log(' Run: npm i -g auramaxx --foreground-scripts (fallback: npx --yes auramaxx@latest start)\n');
688
728
  }
689
729
  return;
@@ -713,7 +753,7 @@ function maybePrintUpdateNotice() {
713
753
  } catch {}
714
754
 
715
755
  if (latest && compareVersions(latest, current) > 0) {
716
- console.log(`\n⚠️ Update available: aura${current} → aura${latest}`);
756
+ console.log(`\n${formatUpdateAvailableLine(current, latest)}`);
717
757
  console.log(' Run: npm i -g auramaxx --foreground-scripts (fallback: npx --yes auramaxx@latest start)\n');
718
758
  }
719
759
  }
@@ -801,6 +841,34 @@ function isTransientPathEntry(entry) {
801
841
  return false;
802
842
  }
803
843
 
844
+ function isGloballyInstalled() {
845
+ try {
846
+ const bin = process.platform === 'win32' ? 'where' : 'which';
847
+ const result = execFileSync(bin, ['auramaxx'], {
848
+ stdio: ['ignore', 'pipe', 'ignore'],
849
+ timeout: 2000,
850
+ }).toString('utf8').trim();
851
+ // Ignore npx/transient paths — only count stable global installs
852
+ return result && !isTransientPathEntry(result);
853
+ } catch {
854
+ return false;
855
+ }
856
+ }
857
+
858
+ // npx onboarding: route to TS command via buildRunner (same as start/init/etc.)
859
+ function runOnboardingFlow() {
860
+ const runner = buildRunner('onboard', []);
861
+ try {
862
+ execFileSync(runner.command, runner.args, {
863
+ cwd: root,
864
+ stdio: 'inherit',
865
+ env: process.env,
866
+ });
867
+ } catch (error) {
868
+ process.exit(error.status || 1);
869
+ }
870
+ }
871
+
804
872
  function getStablePathEntries() {
805
873
  return getPathEntries().filter((entry) => !isTransientPathEntry(entry));
806
874
  }
@@ -1211,6 +1279,12 @@ function maybeAutoInstallMcp() {
1211
1279
 
1212
1280
  async function main() {
1213
1281
  if (!cmd) {
1282
+ // npx onboarding: if not globally installed and no command, show install flow
1283
+ if (!isGloballyInstalled()) {
1284
+ runOnboardingFlow();
1285
+ return;
1286
+ }
1287
+
1214
1288
  inferredCommand = true;
1215
1289
  cmd = resolveDefaultCommand();
1216
1290
  if (cmd === 'start') {
@@ -1222,7 +1296,7 @@ async function main() {
1222
1296
  }
1223
1297
  }
1224
1298
 
1225
- const inferredStartFlags = new Set(['--debug', '--headless', '--background', '--daemon', '-d']);
1299
+ const inferredStartFlags = new Set(['--debug', '--terminal', '--headless', '--background', '--daemon', '-d']);
1226
1300
  if (cmd && inferredStartFlags.has(cmd)) {
1227
1301
  const defaultCommand = resolveDefaultCommand();
1228
1302
  if (defaultCommand === 'start') {
@@ -1251,6 +1325,16 @@ async function main() {
1251
1325
  cmd = 'agent';
1252
1326
  }
1253
1327
 
1328
+ // Temporarily disabled at root CLI.
1329
+ // if (cmd && SOCIAL_ALIASES[cmd]) {
1330
+ // args.unshift(SOCIAL_ALIASES[cmd]);
1331
+ // cmd = 'social';
1332
+ // }
1333
+
1334
+ if (cmd && COMMAND_ALIASES[cmd]) {
1335
+ cmd = COMMAND_ALIASES[cmd];
1336
+ }
1337
+
1254
1338
  if (!COMMANDS[cmd]) {
1255
1339
  console.error(`Unknown command: ${cmd}\n`);
1256
1340
  console.error(`Run 'aura --help' or 'npx auramaxx --help' to see available commands.`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "auramaxx",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "description": "Securely share passwords, API keys and wallets with your agent.",
5
5
  "keywords": [
6
6
  "onepassword",
@@ -36,6 +36,8 @@
36
36
  "shared/",
37
37
  "src/",
38
38
  "!src/__tests__/",
39
+ "!src/internal/",
40
+ "!src/internal/**",
39
41
  "!src/node_modules/",
40
42
  "public/",
41
43
  "!public/*.dmg",
@@ -113,6 +115,8 @@
113
115
  "@anthropic-ai/sdk": "^0.73.0",
114
116
  "@eslint/eslintrc": "^3.3.3",
115
117
  "@modelcontextprotocol/sdk": "^1.26.0",
118
+ "@noble/curves": "^2.0.1",
119
+ "@noble/hashes": "^2.0.1",
116
120
  "@prisma/client": "^5.22.0",
117
121
  "@simplewebauthn/server": "^11.0.0",
118
122
  "@solana/spl-token": "^0.4.14",
@@ -166,13 +170,13 @@
166
170
  "@types/uuid": "^10.0.0",
167
171
  "@types/ws": "^8.18.1",
168
172
  "@vitejs/plugin-react": "^5.1.3",
173
+ "electron": "^31.7.7",
174
+ "electron-builder": "^24.13.3",
169
175
  "eslint": "^9.17.0",
170
176
  "eslint-config-next": "15.1.4",
171
177
  "jsdom": "^28.0.0",
172
178
  "supertest": "^7.2.2",
173
179
  "vite": "^6.4.1",
174
- "vitest": "^4.0.18",
175
- "electron": "^31.7.7",
176
- "electron-builder": "^24.13.3"
180
+ "vitest": "^4.0.18"
177
181
  }
178
182
  }
@@ -0,0 +1,81 @@
1
+ -- CreateTable
2
+ CREATE TABLE "AgentProfile" (
3
+ "id" TEXT NOT NULL PRIMARY KEY,
4
+ "agentId" TEXT NOT NULL,
5
+ "auraId" INTEGER,
6
+ "email" TEXT,
7
+ "phone" TEXT,
8
+ "address" TEXT,
9
+ "profileImage" TEXT,
10
+ "attributes" TEXT,
11
+ "inboundSeq" INTEGER,
12
+ "inboundMode" TEXT,
13
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
14
+ "updatedAt" DATETIME NOT NULL
15
+ );
16
+
17
+ -- CreateTable
18
+ CREATE TABLE "SocialMessage" (
19
+ "id" TEXT NOT NULL PRIMARY KEY,
20
+ "agentId" TEXT NOT NULL,
21
+ "hash" TEXT NOT NULL,
22
+ "type" TEXT NOT NULL,
23
+ "body" TEXT NOT NULL,
24
+ "timestamp" INTEGER NOT NULL,
25
+ "network" TEXT NOT NULL DEFAULT 'mainnet',
26
+ "signature" TEXT NOT NULL,
27
+ "signer" TEXT NOT NULL,
28
+ "syncStatus" TEXT NOT NULL DEFAULT 'pending',
29
+ "syncCode" TEXT,
30
+ "syncDetail" TEXT,
31
+ "syncedAt" DATETIME,
32
+ "attempts" INTEGER NOT NULL DEFAULT 0,
33
+ "nextRetryAt" DATETIME,
34
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
35
+ "updatedAt" DATETIME NOT NULL
36
+ );
37
+
38
+ -- CreateTable
39
+ CREATE TABLE "InboundMessage" (
40
+ "id" TEXT NOT NULL PRIMARY KEY,
41
+ "agentId" TEXT NOT NULL,
42
+ "hash" TEXT NOT NULL,
43
+ "authorAuraId" INTEGER NOT NULL,
44
+ "type" TEXT NOT NULL,
45
+ "body" TEXT NOT NULL,
46
+ "timestamp" INTEGER NOT NULL,
47
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
48
+ );
49
+
50
+ -- CreateIndex
51
+ CREATE UNIQUE INDEX "AgentProfile_agentId_key" ON "AgentProfile"("agentId");
52
+
53
+ -- CreateIndex
54
+ CREATE UNIQUE INDEX "AgentProfile_auraId_key" ON "AgentProfile"("auraId");
55
+
56
+ -- CreateIndex
57
+ CREATE UNIQUE INDEX "SocialMessage_hash_key" ON "SocialMessage"("hash");
58
+
59
+ -- CreateIndex
60
+ CREATE INDEX "SocialMessage_agentId_createdAt_idx" ON "SocialMessage"("agentId", "createdAt");
61
+
62
+ -- CreateIndex
63
+ CREATE INDEX "SocialMessage_agentId_type_idx" ON "SocialMessage"("agentId", "type");
64
+
65
+ -- CreateIndex
66
+ CREATE INDEX "SocialMessage_syncStatus_nextRetryAt_idx" ON "SocialMessage"("syncStatus", "nextRetryAt");
67
+
68
+ -- CreateIndex
69
+ CREATE INDEX "SocialMessage_type_createdAt_idx" ON "SocialMessage"("type", "createdAt");
70
+
71
+ -- CreateIndex
72
+ CREATE UNIQUE INDEX "InboundMessage_hash_key" ON "InboundMessage"("hash");
73
+
74
+ -- CreateIndex
75
+ CREATE INDEX "InboundMessage_agentId_type_idx" ON "InboundMessage"("agentId", "type");
76
+
77
+ -- CreateIndex
78
+ CREATE INDEX "InboundMessage_agentId_timestamp_idx" ON "InboundMessage"("agentId", "timestamp");
79
+
80
+ -- CreateIndex
81
+ CREATE INDEX "InboundMessage_authorAuraId_idx" ON "InboundMessage"("authorAuraId");
@@ -0,0 +1,8 @@
1
+ -- AlterTable: add hash column to Notification for dedup
2
+ ALTER TABLE "Notification" ADD COLUMN "hash" TEXT;
3
+
4
+ -- CreateIndex
5
+ CREATE UNIQUE INDEX "Notification_hash_key" ON "Notification"("hash");
6
+
7
+ -- CreateIndex
8
+ CREATE INDEX "Notification_category_agentId_idx" ON "Notification"("category", "agentId");
@@ -0,0 +1,5 @@
1
+ -- AlterTable
2
+ ALTER TABLE "AgentProfile" ADD COLUMN "publicKeyHex" TEXT;
3
+
4
+ -- CreateIndex
5
+ CREATE UNIQUE INDEX "AgentProfile_publicKeyHex_key" ON "AgentProfile"("publicKeyHex");
@@ -0,0 +1,5 @@
1
+ -- AlterTable
2
+ ALTER TABLE "InboundMessage" ADD COLUMN "authorPublicKey" TEXT NOT NULL DEFAULT '';
3
+
4
+ -- CreateIndex
5
+ CREATE INDEX "InboundMessage_authorPublicKey_idx" ON "InboundMessage"("authorPublicKey");