auramaxx 0.0.12 → 0.0.13

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 (334) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +244 -227
  3. package/.next/app-path-routes-manifest.json +11 -10
  4. package/.next/build-manifest.json +14 -14
  5. package/.next/prerender-manifest.json +49 -25
  6. package/.next/react-loadable-manifest.json +41 -41
  7. package/.next/routes-manifest.json +6 -0
  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 +12 -12
  11. package/.next/server/app/api/[...doc]/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/agent-requests/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/apps/install/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/apps/manifests/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/apps/static/[...path]/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/docs/plain/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/events/route.js +1 -19
  18. package/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/import-from-openclaw/[channel]/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/import-from-openclaw/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/import-from-openclaw/validate/[channel]/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/update/route.js +63 -1
  25. package/.next/server/app/api/update/route.js.nft.json +1 -1
  26. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/workspace/[id]/apps/[wid]/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/workspace/[id]/apps/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/workspace/[id]/export/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/workspace/[id]/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/workspace/config/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/workspace/import/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/workspace/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/app-legacy-do-not-use/page.js +1 -1
  36. package/.next/server/app/app-legacy-do-not-use/page.js.nft.json +1 -1
  37. package/.next/server/app/app-legacy-do-not-use/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/app-legacy-do-not-use.html +1 -1
  39. package/.next/server/app/app-legacy-do-not-use.rsc +14 -14
  40. package/.next/server/app/approve/[actionId]/page.js +1 -1
  41. package/.next/server/app/approve/[actionId]/page_client-reference-manifest.js +1 -1
  42. package/.next/server/app/docs/[...doc]/page_client-reference-manifest.js +1 -1
  43. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/health/page_client-reference-manifest.js +1 -1
  45. package/.next/server/app/health.html +1 -1
  46. package/.next/server/app/health.rsc +13 -13
  47. package/.next/server/app/hello/page_client-reference-manifest.js +1 -1
  48. package/.next/server/app/hello.html +1 -1
  49. package/.next/server/app/hello.rsc +14 -14
  50. package/.next/server/app/index.html +1 -1
  51. package/.next/server/app/index.rsc +18 -21
  52. package/.next/server/app/page.js +3 -3
  53. package/.next/server/app/page.js.nft.json +1 -1
  54. package/.next/server/app/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/privacy.html +1 -1
  57. package/.next/server/app/privacy.rsc +13 -13
  58. package/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
  59. package/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  60. package/.next/server/app/terms.html +1 -1
  61. package/.next/server/app/terms.rsc +13 -13
  62. package/.next/server/app/yo/page.js +2 -0
  63. package/.next/server/app/yo/page.js.nft.json +1 -0
  64. package/.next/server/app/yo/page_client-reference-manifest.js +1 -0
  65. package/.next/server/app/yo.html +1 -0
  66. package/.next/server/app/yo.meta +7 -0
  67. package/.next/server/app/yo.rsc +23 -0
  68. package/.next/server/app-paths-manifest.json +11 -10
  69. package/.next/server/chunks/2145.js +1 -1
  70. package/.next/server/chunks/2460.js +1 -1
  71. package/.next/server/chunks/5246.js +1 -1
  72. package/.next/server/chunks/5678.js +1 -1
  73. package/.next/server/chunks/5784.js +1 -1
  74. package/.next/server/chunks/6086.js +2 -20
  75. package/.next/server/chunks/{5553.js → 6415.js} +2 -2
  76. package/.next/server/chunks/7935.js +2 -2
  77. package/.next/server/functions-config-manifest.json +1 -1
  78. package/.next/server/instrumentation.js +1 -1
  79. package/.next/server/middleware-build-manifest.js +1 -1
  80. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  81. package/.next/server/pages/404.html +1 -1
  82. package/.next/server/pages/500.html +1 -1
  83. package/.next/server/server-reference-manifest.json +1 -1
  84. package/.next/server/webpack-runtime.js +1 -1
  85. package/.next/static/WshFGr6RxGYP6AbWuT9OG/_buildManifest.js +1 -0
  86. package/.next/static/chunks/1168.aaac1edbb597fe5a.js +1 -0
  87. package/.next/static/chunks/1255-7999eac54f80a49f.js +1 -0
  88. package/.next/static/chunks/142-fa9752f53a551f63.js +1 -0
  89. package/.next/static/chunks/2505.d54ccadc42f4e3d1.js +1 -0
  90. package/.next/static/chunks/2619-04bc32f026a0d946.js +1 -0
  91. package/.next/static/chunks/2927.7e00cc878d9a3f52.js +1 -0
  92. package/.next/static/chunks/3573-1b41d7b8a000d015.js +1 -0
  93. package/.next/static/chunks/3609.ded5a5306e18af9c.js +1 -0
  94. package/.next/static/chunks/3667-1db7bd03948e60df.js +1 -0
  95. package/.next/static/chunks/3826.a73d4a88d8c09030.js +1 -0
  96. package/.next/static/chunks/{3a91511d-648a2ba3dad7df0c.js → 3a91511d-ba215c0b5dc21ba9.js} +1 -1
  97. package/.next/static/chunks/4256.48407d9abad5ea33.js +1 -0
  98. package/.next/static/chunks/4685-7f53bbfc4a9845eb.js +1 -0
  99. package/.next/static/chunks/4901-ba6a32818662e70a.js +1 -0
  100. package/.next/static/chunks/4919-7e7cdd5efc9f2110.js +1 -0
  101. package/.next/static/chunks/4bd1b696-100b9d70ed4e49c1.js +1 -0
  102. package/.next/static/chunks/5336-233ec7ab3807267c.js +1 -0
  103. package/.next/static/chunks/5442-b5bb869e832e8967.js +1 -0
  104. package/.next/static/chunks/6233-97a810aa272af547.js +1 -0
  105. package/.next/static/chunks/626.a5109d16f9eca1f6.js +1 -0
  106. package/.next/static/chunks/6872-faea0f088ab2d450.js +1 -0
  107. package/.next/static/chunks/7338-3ce17a93614f1d77.js +59 -0
  108. package/.next/static/chunks/7394-4bdb1feefad1a74a.js +1 -0
  109. package/.next/static/chunks/7616-1129bcb3eee8d315.js +1 -0
  110. package/.next/static/chunks/786-26deffb41572cbb3.js +1 -0
  111. package/.next/static/chunks/8273-8e92d34180669ca9.js +1 -0
  112. package/.next/static/chunks/8357.5dee1e0c4e5bb091.js +1 -0
  113. package/.next/static/chunks/9062-2bc2d089f9c9c6ba.js +1 -0
  114. package/.next/static/chunks/9380.f198afbf0c6b5369.js +1 -0
  115. package/.next/static/chunks/app/_not-found/page-5a8c6a29f762fa58.js +1 -0
  116. package/.next/static/chunks/app/api/[...doc]/page-f0852f35f0fd1d44.js +1 -0
  117. package/.next/static/chunks/app/api/agent-requests/route-cf84f975aad4c719.js +1 -0
  118. package/.next/static/chunks/app/api/apps/install/route-cf84f975aad4c719.js +1 -0
  119. package/.next/static/chunks/app/api/apps/manifests/route-cf84f975aad4c719.js +1 -0
  120. package/.next/static/chunks/app/api/apps/static/[...path]/route-cf84f975aad4c719.js +1 -0
  121. package/.next/static/chunks/app/api/docs/plain/route-cf84f975aad4c719.js +1 -0
  122. package/.next/static/chunks/app/api/events/route-cf84f975aad4c719.js +1 -0
  123. package/.next/static/chunks/app/api/import-from-openclaw/[channel]/route-cf84f975aad4c719.js +1 -0
  124. package/.next/static/chunks/app/api/import-from-openclaw/route-cf84f975aad4c719.js +1 -0
  125. package/.next/static/chunks/app/api/import-from-openclaw/validate/[channel]/route-cf84f975aad4c719.js +1 -0
  126. package/.next/static/chunks/app/api/page-cc59bebcc0d2c01d.js +1 -0
  127. package/.next/static/chunks/app/api/restart/route-cf84f975aad4c719.js +1 -0
  128. package/.next/static/chunks/app/api/update/route-cf84f975aad4c719.js +1 -0
  129. package/.next/static/chunks/app/api/version/route-cf84f975aad4c719.js +1 -0
  130. package/.next/static/chunks/app/api/workspace/[id]/apps/[wid]/route-cf84f975aad4c719.js +1 -0
  131. package/.next/static/chunks/app/api/workspace/[id]/apps/route-cf84f975aad4c719.js +1 -0
  132. package/.next/static/chunks/app/api/workspace/[id]/export/route-cf84f975aad4c719.js +1 -0
  133. package/.next/static/chunks/app/api/workspace/[id]/route-cf84f975aad4c719.js +1 -0
  134. package/.next/static/chunks/app/api/workspace/config/route-cf84f975aad4c719.js +1 -0
  135. package/.next/static/chunks/app/api/workspace/import/route-cf84f975aad4c719.js +1 -0
  136. package/.next/static/chunks/app/api/workspace/route-cf84f975aad4c719.js +1 -0
  137. package/.next/static/chunks/app/app-legacy-do-not-use/page-e5dc864e92d90ca7.js +1 -0
  138. package/.next/static/chunks/app/approve/[actionId]/page-2acca1f490424f21.js +1 -0
  139. package/.next/static/chunks/app/docs/[...doc]/page-8e2a2d036caab242.js +1 -0
  140. package/.next/static/chunks/app/docs/page-acf872a03ff79893.js +1 -0
  141. package/.next/static/chunks/app/error-66f983b7769dabfa.js +1 -0
  142. package/.next/static/chunks/app/health/page-c9185854ed9c86d0.js +1 -0
  143. package/.next/static/chunks/app/hello/page-74c9f4deaa4b03dd.js +1 -0
  144. package/.next/static/chunks/app/layout-af8d9969c7aeb758.js +1 -0
  145. package/.next/static/chunks/app/page-16dfcd1c7cc88bcc.js +1 -0
  146. package/.next/static/chunks/app/privacy/page-8e2d17079355c2cc.js +1 -0
  147. package/.next/static/chunks/app/share/[token]/page-5dd9b0418eee411f.js +1 -0
  148. package/.next/static/chunks/app/terms/page-8e2d17079355c2cc.js +1 -0
  149. package/.next/static/chunks/app/yo/layout-cf84f975aad4c719.js +1 -0
  150. package/.next/static/chunks/app/yo/page-719dc5f213fdfb30.js +1 -0
  151. package/.next/static/chunks/framework-a32a2a465584c0bc.js +1 -0
  152. package/.next/static/chunks/main-0f0f9142f74e7215.js +1 -0
  153. package/.next/static/chunks/main-app-24f0c92ba10af457.js +1 -0
  154. package/.next/static/chunks/pages/_app-4b3fb5e477a0267f.js +1 -0
  155. package/.next/static/chunks/pages/_error-c970d8b55ace1b48.js +1 -0
  156. package/.next/static/chunks/{webpack-768de8b7d6a7a27a.js → webpack-79ad58260e9b10b4.js} +1 -1
  157. package/.next/static/css/83cd401584ab787f.css +3 -0
  158. package/.next/trace +28 -28
  159. package/.next/types/app/yo/layout.ts +84 -0
  160. package/.next/types/app/yo/page.ts +84 -0
  161. package/.next/types/routes.d.ts +4 -2
  162. package/.next/types/validator.ts +18 -0
  163. package/bin/auramaxx.js +9 -24
  164. package/docs/ARCHITECTURE.md +1 -1
  165. package/docs/AUTH.md +6 -3
  166. package/docs/CLI.md +2 -0
  167. package/docs/MCP.md +2 -0
  168. package/docs/credentials.md +2 -0
  169. package/package.json +1 -1
  170. package/prisma/migrations/20260227214000_update_agent_action_ttl_defaults/migration.sql +19 -0
  171. package/public/0a167e5e-4f52-4715-ae23-bf63d259a6b1.png +0 -0
  172. package/public/141ec92c-6780-4b23-838f-9a7bf1e91bb8.png +0 -0
  173. package/public/3afc4935-92cb-42af-9624-0b1341c12a5e.png +0 -0
  174. package/public/43947df5-dbcf-4e49-ab8b-41b9162c0410.png +0 -0
  175. package/public/5aeae9ce-0d38-49ea-8fd1-167892a04a85.png +0 -0
  176. package/public/660e4ea3-a3a6-4be4-a8ca-2cb74c51dfb5.png +0 -0
  177. package/public/733f02d7-6b58-4ba6-a5c8-d062cd205e1d.png +0 -0
  178. package/public/a32d65cb-95b0-4977-be6b-cf69f515afbe.png +0 -0
  179. package/public/agent1.png +0 -0
  180. package/public/agent10.png +0 -0
  181. package/public/agent2.png +0 -0
  182. package/public/agent3.png +0 -0
  183. package/public/agent4.png +0 -0
  184. package/public/agent5.png +0 -0
  185. package/public/agent6.png +0 -0
  186. package/public/agent7.png +0 -0
  187. package/public/agent8.png +0 -0
  188. package/public/agent9.png +0 -0
  189. package/public/c4938305-b811-4ccc-91db-94d309734827.png +0 -0
  190. package/public/f2ca6825-a4f3-4107-815c-51ee740dfc09.png +0 -0
  191. package/public/llm.txt +2 -0
  192. package/public/llms.txt +39 -0
  193. package/public/ss-dark1.png +0 -0
  194. package/public/ss-dark1.webp +0 -0
  195. package/public/ss-dark2.png +0 -0
  196. package/public/ss-dark2.webp +0 -0
  197. package/public/ss-dark3.png +0 -0
  198. package/public/ss-dark3.webp +0 -0
  199. package/public/ss-light1.png +0 -0
  200. package/public/ss-light1.webp +0 -0
  201. package/public/ss-light2.png +0 -0
  202. package/public/ss-light2.webp +0 -0
  203. package/public/ss-light3.png +0 -0
  204. package/public/ss-light3.webp +0 -0
  205. package/shared/agent-profile-schema.ts +81 -0
  206. package/shared/credential-field-schema.ts +12 -0
  207. package/skills/auramaxx/SKILL.md +71 -691
  208. package/src/app/UnlockPageClient.tsx +1939 -0
  209. package/src/app/api/page.tsx +8 -9
  210. package/src/app/api/update/route.ts +105 -36
  211. package/src/app/approve/[actionId]/page.tsx +4 -1
  212. package/src/app/docs/DocsPageContent.tsx +3 -3
  213. package/src/app/globals.css +94 -0
  214. package/src/app/layout.tsx +1 -0
  215. package/src/app/page.tsx +25 -1935
  216. package/src/app/yo/layout.tsx +29 -0
  217. package/src/app/yo/page.tsx +528 -0
  218. package/src/components/HumanActionBar.tsx +34 -8
  219. package/src/components/agent/AgentSidebar.tsx +3 -1
  220. package/src/components/agent/CredentialAgent.tsx +5 -1
  221. package/src/components/agent/CredentialDetail.tsx +32 -1
  222. package/src/components/agent/CredentialForm.tsx +94 -7
  223. package/src/components/agent/CredentialRow.tsx +8 -1
  224. package/src/components/agent/credentialFormName.ts +22 -1
  225. package/src/components/agent/types.ts +2 -2
  226. package/src/components/design-system/Modal.tsx +14 -1
  227. package/src/hooks/useUpdateChecker.ts +17 -1
  228. package/src/lib/pino.ts +77 -8
  229. package/src/server/cli/commands/actions.ts +1 -1
  230. package/src/server/cli/commands/agent.ts +110 -65
  231. package/src/server/cli/commands/approve.ts +1 -1
  232. package/src/server/cli/commands/auth.ts +81 -20
  233. package/src/server/cli/commands/token.ts +2 -2
  234. package/src/server/cli/lib/escalation.ts +109 -24
  235. package/src/server/cli/lib/process.ts +2 -1
  236. package/src/server/cli/socket.ts +1 -1
  237. package/src/server/index.ts +2 -0
  238. package/src/server/lib/agent-profile-records.ts +72 -0
  239. package/src/server/lib/credential-transport.ts +27 -11
  240. package/src/server/lib/defaults.ts +3 -3
  241. package/src/server/lib/escalation-responder.ts +1 -1
  242. package/src/server/lib/resolve-action.ts +2 -2
  243. package/src/server/mcp/server.ts +6 -1
  244. package/src/server/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  245. package/src/server/routes/actions.ts +2 -2
  246. package/src/server/routes/agent-profiles.ts +82 -0
  247. package/src/server/routes/auth.ts +39 -4
  248. package/src/server/routes/credentials.ts +18 -0
  249. package/src/server/tests/cli/agent-auth.test.ts +20 -39
  250. package/src/server/tests/cli/agent.test.ts +18 -0
  251. package/src/server/tests/cli/auth-action-flag.test.ts +3 -2
  252. package/src/server/tests/cli/bin-entrypoint.test.ts +35 -11
  253. package/src/server/tests/cli/escalation.test.ts +7 -3
  254. package/src/server/tests/cli/process.test.ts +3 -3
  255. package/src/server/tests/cli/socket.test.ts +2 -2
  256. package/src/server/tests/endpoints/actions.test.ts +2 -2
  257. package/src/server/tests/endpoints/agent-profiles.test.ts +117 -0
  258. package/src/server/tests/endpoints/auth.test.ts +34 -0
  259. package/src/server/tests/lib/credential-transport.test.ts +68 -2
  260. package/src/server/tests/lib/defaults.test.ts +2 -2
  261. package/src/server/tests/lib/escalation-responder.test.ts +2 -2
  262. package/src/server/tests/setup.ts +7 -0
  263. package/src/server/tsconfig.tsbuildinfo +1 -1
  264. package/src/server/types.ts +1 -1
  265. package/.next/static/chunks/1168.63dbb444a33b1867.js +0 -1
  266. package/.next/static/chunks/1255-e8718b02724690dd.js +0 -1
  267. package/.next/static/chunks/142-aeaf7ffa9c53516d.js +0 -1
  268. package/.next/static/chunks/2505.22aaa333fd65908f.js +0 -1
  269. package/.next/static/chunks/2619-3c9e02e22d10480a.js +0 -1
  270. package/.next/static/chunks/2927.e7e9e2a1b8d2dc61.js +0 -1
  271. package/.next/static/chunks/3573-27e17f4ff2dd86ed.js +0 -1
  272. package/.next/static/chunks/3609.6f8e0ecd6de9566c.js +0 -1
  273. package/.next/static/chunks/3667-d6770121629db38b.js +0 -1
  274. package/.next/static/chunks/3826.7dfe96467cd74e45.js +0 -1
  275. package/.next/static/chunks/4256.50cb375c979ffd5a.js +0 -1
  276. package/.next/static/chunks/4685-3f8d92f574366fec.js +0 -1
  277. package/.next/static/chunks/4901-54c1ac380b7b43bb.js +0 -1
  278. package/.next/static/chunks/4919-fe6f1553abfc9420.js +0 -1
  279. package/.next/static/chunks/4bd1b696-f785427dddbba9fb.js +0 -1
  280. package/.next/static/chunks/5336-bd251f91235f7c11.js +0 -1
  281. package/.next/static/chunks/5442-be197c885bf12079.js +0 -1
  282. package/.next/static/chunks/5553-c8b86fe3513fce04.js +0 -59
  283. package/.next/static/chunks/6233-44e6fe57a552a816.js +0 -1
  284. package/.next/static/chunks/626.2583673a0386a81b.js +0 -1
  285. package/.next/static/chunks/6872-6442f2f5cce36ce5.js +0 -1
  286. package/.next/static/chunks/7411-3ca797c21b722ccd.js +0 -1
  287. package/.next/static/chunks/7616-b8bd37ce1f735d6f.js +0 -1
  288. package/.next/static/chunks/786-9ed39f96091b2be4.js +0 -1
  289. package/.next/static/chunks/8273-922091226ba84a94.js +0 -1
  290. package/.next/static/chunks/8357.6159472717ff7d11.js +0 -1
  291. package/.next/static/chunks/9062-3eb1607c96486f88.js +0 -1
  292. package/.next/static/chunks/9380.93f361baab2eefdf.js +0 -1
  293. package/.next/static/chunks/app/_not-found/page-c3b87025baf0a9c2.js +0 -1
  294. package/.next/static/chunks/app/api/[...doc]/page-790c4b33ba1fde4a.js +0 -1
  295. package/.next/static/chunks/app/api/agent-requests/route-e83b12cbab2e8707.js +0 -1
  296. package/.next/static/chunks/app/api/apps/install/route-e83b12cbab2e8707.js +0 -1
  297. package/.next/static/chunks/app/api/apps/manifests/route-e83b12cbab2e8707.js +0 -1
  298. package/.next/static/chunks/app/api/apps/static/[...path]/route-e83b12cbab2e8707.js +0 -1
  299. package/.next/static/chunks/app/api/docs/plain/route-e83b12cbab2e8707.js +0 -1
  300. package/.next/static/chunks/app/api/events/route-e83b12cbab2e8707.js +0 -1
  301. package/.next/static/chunks/app/api/import-from-openclaw/[channel]/route-e83b12cbab2e8707.js +0 -1
  302. package/.next/static/chunks/app/api/import-from-openclaw/route-e83b12cbab2e8707.js +0 -1
  303. package/.next/static/chunks/app/api/import-from-openclaw/validate/[channel]/route-e83b12cbab2e8707.js +0 -1
  304. package/.next/static/chunks/app/api/page-b53f9aa17a4c5201.js +0 -1
  305. package/.next/static/chunks/app/api/restart/route-e83b12cbab2e8707.js +0 -1
  306. package/.next/static/chunks/app/api/update/route-e83b12cbab2e8707.js +0 -1
  307. package/.next/static/chunks/app/api/version/route-e83b12cbab2e8707.js +0 -1
  308. package/.next/static/chunks/app/api/workspace/[id]/apps/[wid]/route-e83b12cbab2e8707.js +0 -1
  309. package/.next/static/chunks/app/api/workspace/[id]/apps/route-e83b12cbab2e8707.js +0 -1
  310. package/.next/static/chunks/app/api/workspace/[id]/export/route-e83b12cbab2e8707.js +0 -1
  311. package/.next/static/chunks/app/api/workspace/[id]/route-e83b12cbab2e8707.js +0 -1
  312. package/.next/static/chunks/app/api/workspace/config/route-e83b12cbab2e8707.js +0 -1
  313. package/.next/static/chunks/app/api/workspace/import/route-e83b12cbab2e8707.js +0 -1
  314. package/.next/static/chunks/app/api/workspace/route-e83b12cbab2e8707.js +0 -1
  315. package/.next/static/chunks/app/app-legacy-do-not-use/page-0052191daef60036.js +0 -1
  316. package/.next/static/chunks/app/approve/[actionId]/page-45cd3b8fa062d5e5.js +0 -1
  317. package/.next/static/chunks/app/docs/[...doc]/page-632ac406200b66fe.js +0 -1
  318. package/.next/static/chunks/app/docs/page-b7556394709b43df.js +0 -1
  319. package/.next/static/chunks/app/error-3d6057da512253d8.js +0 -1
  320. package/.next/static/chunks/app/health/page-80c985cd72328b74.js +0 -1
  321. package/.next/static/chunks/app/hello/page-fd71babcd192729b.js +0 -1
  322. package/.next/static/chunks/app/layout-285c6ef3f16bae63.js +0 -1
  323. package/.next/static/chunks/app/page-85017185df14c37b.js +0 -1
  324. package/.next/static/chunks/app/privacy/page-faf36cd0dde6dfa3.js +0 -1
  325. package/.next/static/chunks/app/share/[token]/page-22d51d6c5a47bb75.js +0 -1
  326. package/.next/static/chunks/app/terms/page-faf36cd0dde6dfa3.js +0 -1
  327. package/.next/static/chunks/framework-e60c938074ff7136.js +0 -1
  328. package/.next/static/chunks/main-447abf206d7ebd2f.js +0 -1
  329. package/.next/static/chunks/main-app-f63b86bdbf5b7b88.js +0 -1
  330. package/.next/static/chunks/pages/_app-6c8c2371b16a04b8.js +0 -1
  331. package/.next/static/chunks/pages/_error-94812ad32cad7365.js +0 -1
  332. package/.next/static/css/eb25c6452113486f.css +0 -3
  333. package/.next/static/zCR6u3S4dIjlCtV80nNsp/_buildManifest.js +0 -1
  334. /package/.next/static/{zCR6u3S4dIjlCtV80nNsp → WshFGr6RxGYP6AbWuT9OG}/_ssgManifest.js +0 -0
@@ -214,7 +214,7 @@ describe('SocketServer auto-approve (in-process mode)', () => {
214
214
  );
215
215
  });
216
216
 
217
- it('blocks auto-approve when disabled by default fallback', async () => {
217
+ it('enables auto-approve with default fallback and then fails on lock', async () => {
218
218
  vi.spyOn(defaults, 'getDefaultSync').mockImplementation(<T>(_key: string, fallback: T): T => fallback);
219
219
 
220
220
  const fetchSpy = vi.spyOn(globalThis, 'fetch');
@@ -238,7 +238,7 @@ describe('SocketServer auto-approve (in-process mode)', () => {
238
238
  const payload = JSON.parse((socket.write as unknown as ReturnType<typeof vi.fn>).mock.calls[0][0]);
239
239
  expect(payload).toMatchObject({
240
240
  type: 'error',
241
- message: 'Auto-approve is disabled. Use standard approval flow.',
241
+ message: 'Wallet is locked. Unlock first.',
242
242
  });
243
243
  });
244
244
 
@@ -853,7 +853,7 @@ describe('Actions Endpoints', () => {
853
853
  expect(pollRes.body.status).toBe('rejected');
854
854
  });
855
855
 
856
- it('should default TTL to 600 when not specified', async () => {
856
+ it('should default TTL to 3600 when not specified', async () => {
857
857
  const createRes = await request(app)
858
858
  .post('/actions')
859
859
  .set('Authorization', `Bearer ${agentToken}`)
@@ -871,7 +871,7 @@ describe('Actions Endpoints', () => {
871
871
  .set('Authorization', `Bearer ${adminToken}`)
872
872
  .send({ approved: true });
873
873
 
874
- expect(approveRes.body.expiresIn).toBe(600);
874
+ expect(approveRes.body.expiresIn).toBe(3600);
875
875
  });
876
876
 
877
877
  it('should store pre-computed action in metadata', async () => {
@@ -0,0 +1,117 @@
1
+ import { afterAll, beforeEach, describe, expect, it } from 'vitest';
2
+ import request from 'supertest';
3
+ import { cleanDatabase, createTestApp, setupAndUnlockWallet, testPrisma } from '../setup';
4
+
5
+ const app = createTestApp();
6
+
7
+ describe('Agent Profile Endpoints', () => {
8
+ let adminToken: string;
9
+
10
+ beforeEach(async () => {
11
+ await cleanDatabase();
12
+ const setup = await setupAndUnlockWallet();
13
+ adminToken = setup.adminToken;
14
+ });
15
+
16
+ afterAll(async () => {
17
+ await testPrisma.$disconnect();
18
+ });
19
+
20
+ it('creates and retrieves an agent profile keyed by path agentId', async () => {
21
+ const putRes = await request(app)
22
+ .put('/agent-profiles/primary')
23
+ .set('Authorization', `Bearer ${adminToken}`)
24
+ .send({
25
+ email: 'ops@example.com',
26
+ phone: '+1 555 0100',
27
+ address: 'New York, US',
28
+ profileImage: 'https://cdn.example.com/avatar.png',
29
+ attributes: {
30
+ team: 'ops',
31
+ region: 'us-east',
32
+ },
33
+ });
34
+
35
+ expect(putRes.status).toBe(200);
36
+ expect(putRes.body.success).toBe(true);
37
+ expect(putRes.body.profile.agentId).toBe('primary');
38
+ expect(putRes.body.profile.email).toBe('ops@example.com');
39
+ expect(putRes.body.profile.attributes).toEqual({
40
+ team: 'ops',
41
+ region: 'us-east',
42
+ });
43
+
44
+ const getRes = await request(app)
45
+ .get('/agent-profiles/primary')
46
+ .set('Authorization', `Bearer ${adminToken}`);
47
+ expect(getRes.status).toBe(200);
48
+ expect(getRes.body.profile.agentId).toBe('primary');
49
+ expect(getRes.body.profile.profileImage).toBe('https://cdn.example.com/avatar.png');
50
+
51
+ const listRes = await request(app)
52
+ .get('/agent-profiles')
53
+ .set('Authorization', `Bearer ${adminToken}`);
54
+ expect(listRes.status).toBe(200);
55
+ expect(Array.isArray(listRes.body.profiles)).toBe(true);
56
+ expect(listRes.body.profiles).toEqual(
57
+ expect.arrayContaining([
58
+ expect.objectContaining({
59
+ agentId: 'primary',
60
+ email: 'ops@example.com',
61
+ }),
62
+ ]),
63
+ );
64
+ });
65
+
66
+ it('rejects mismatched body agentId', async () => {
67
+ const res = await request(app)
68
+ .put('/agent-profiles/primary')
69
+ .set('Authorization', `Bearer ${adminToken}`)
70
+ .send({
71
+ agentId: 'different-agent',
72
+ email: 'ops@example.com',
73
+ });
74
+
75
+ expect(res.status).toBe(400);
76
+ expect(String(res.body.error || '')).toContain('must match');
77
+ });
78
+
79
+ it('rejects invalid wildcard attribute keys', async () => {
80
+ const res = await request(app)
81
+ .put('/agent-profiles/primary')
82
+ .set('Authorization', `Bearer ${adminToken}`)
83
+ .send({
84
+ attributes: {
85
+ ' ': 'ops',
86
+ },
87
+ });
88
+
89
+ expect(res.status).toBe(400);
90
+ expect(String(res.body.error || '')).toContain('attribute keys');
91
+ });
92
+
93
+ it('supports underscore aliases and deletion', async () => {
94
+ const createRes = await request(app)
95
+ .put('/agent-profiles/primary')
96
+ .set('Authorization', `Bearer ${adminToken}`)
97
+ .send({
98
+ profile_image: 'https://cdn.example.com/avatar.png',
99
+ custom_attributes: { team: 'core' },
100
+ });
101
+
102
+ expect(createRes.status).toBe(200);
103
+ expect(createRes.body.profile.profileImage).toBe('https://cdn.example.com/avatar.png');
104
+ expect(createRes.body.profile.attributes).toEqual({ team: 'core' });
105
+
106
+ const deleteRes = await request(app)
107
+ .delete('/agent-profiles/primary')
108
+ .set('Authorization', `Bearer ${adminToken}`);
109
+ expect(deleteRes.status).toBe(200);
110
+ expect(deleteRes.body.deleted).toBe(true);
111
+
112
+ const missingRes = await request(app)
113
+ .get('/agent-profiles/primary')
114
+ .set('Authorization', `Bearer ${adminToken}`);
115
+ expect(missingRes.status).toBe(404);
116
+ });
117
+ });
@@ -337,6 +337,40 @@ describe('Auth Endpoints', () => {
337
337
  expect(res.body.compilerVersion).toBe('profile.v1');
338
338
  });
339
339
 
340
+ it('should include exact retryCommand derived from stored original command', async () => {
341
+ const authRes = await request(app)
342
+ .post('/auth')
343
+ .send({ agentId: TEST_AGENT_ID, profile: 'strict', pubkey: AUTH_TEST_PUBKEY });
344
+
345
+ const created = await testPrisma.humanAction.findUnique({
346
+ where: { id: authRes.body.requestId },
347
+ });
348
+ expect(created).toBeTruthy();
349
+
350
+ const metadata = JSON.parse(created!.metadata || '{}');
351
+ metadata.originalCommand = 'npx auramaxx get github';
352
+ await testPrisma.humanAction.update({
353
+ where: { id: authRes.body.requestId },
354
+ data: { metadata: JSON.stringify(metadata) },
355
+ });
356
+
357
+ await request(app)
358
+ .post(`/actions/${authRes.body.requestId}/resolve`)
359
+ .set('Authorization', `Bearer ${adminToken}`)
360
+ .send({ approved: true });
361
+
362
+ const claim = await request(app)
363
+ .get(`/auth/${authRes.body.requestId}?secret=${authRes.body.secret}`);
364
+
365
+ expect(claim.status).toBe(200);
366
+ expect(claim.body.status).toBe('approved');
367
+ expect(claim.body.retryCommand).toBe(`npx auramaxx get github --reqId ${authRes.body.requestId}`);
368
+ expect(Array.isArray(claim.body.instructions)).toBe(true);
369
+ expect(claim.body.instructions[0]).toBe(
370
+ `Run this exact command now: npx auramaxx get github --reqId ${authRes.body.requestId}`,
371
+ );
372
+ });
373
+
340
374
  it('should allow only one successful claim when claimed concurrently', async () => {
341
375
  const authRes = await request(app)
342
376
  .post('/auth')
@@ -4,8 +4,9 @@ import {
4
4
  generateKeyPairSync,
5
5
  privateDecrypt,
6
6
  } from 'crypto';
7
- import { describe, expect, it, vi } from 'vitest';
7
+ import { afterEach, describe, expect, it, vi } from 'vitest';
8
8
  import {
9
+ bootstrapViaAuthRequest,
9
10
  createReadToken,
10
11
  encryptToAgentPubkey,
11
12
  buildScopedReadTokenIssueRequest,
@@ -13,6 +14,7 @@ import {
13
14
  isValidAgentPubkey,
14
15
  normalizeAgentPubkey,
15
16
  } from '../../lib/credential-transport';
17
+ import * as defaults from '../../lib/defaults';
16
18
 
17
19
  interface HybridEnvelope {
18
20
  v: number;
@@ -63,6 +65,12 @@ function decryptWithPrivateKey(encryptedBase64: string, privateKeyPem: string):
63
65
  }
64
66
 
65
67
  describe('credential-transport', () => {
68
+ afterEach(() => {
69
+ vi.restoreAllMocks();
70
+ delete process.env.AURA_AUTH_PROFILE;
71
+ delete process.env.AURA_AGENT_PROFILE;
72
+ });
73
+
66
74
  const { publicKey, privateKey } = generateKeyPairSync('rsa', {
67
75
  modulusLength: 2048,
68
76
  publicKeyEncoding: { type: 'spki', format: 'pem' },
@@ -188,7 +196,65 @@ describe('credential-transport', () => {
188
196
 
189
197
  fetchSpy.mockRestore();
190
198
  });
191
- it('createReadToken should fail when encryptedToken is missing', async () => {
199
+
200
+ it('bootstrapViaAuthRequest defaults to trust.localProfile when unset', async () => {
201
+ const keypair = generateEphemeralKeypair();
202
+ vi.spyOn(defaults, 'getDefault').mockImplementation(async (key: string) => {
203
+ if (key === 'trust.localProfile') return 'admin';
204
+ if (key === 'trust.localProfileVersion') return 'v1';
205
+ return null;
206
+ });
207
+ const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValue(
208
+ new Response(JSON.stringify({
209
+ success: true,
210
+ requestId: 'req_123',
211
+ secret: 'secret_123',
212
+ }), {
213
+ status: 200,
214
+ headers: { 'Content-Type': 'application/json' },
215
+ }),
216
+ );
217
+
218
+ const result = await bootstrapViaAuthRequest('https://wallet.local', 'cli-test-auth', keypair, {
219
+ noWait: true,
220
+ });
221
+
222
+ expect(result).toEqual({
223
+ requestId: 'req_123',
224
+ secret: 'secret_123',
225
+ approveUrl: undefined,
226
+ });
227
+ const call = fetchSpy.mock.calls[0]?.[1] as RequestInit;
228
+ const body = JSON.parse(String(call.body));
229
+ expect(body.profile).toBe('admin');
230
+ expect(body.profileVersion).toBe('v1');
231
+ });
232
+
233
+ it('bootstrapViaAuthRequest falls back to defaults.ts seeds when local trust defaults are empty', async () => {
234
+ const keypair = generateEphemeralKeypair();
235
+ vi.spyOn(defaults, 'getDefault').mockResolvedValue('');
236
+ const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValue(
237
+ new Response(JSON.stringify({
238
+ success: true,
239
+ requestId: 'req_123',
240
+ secret: 'secret_123',
241
+ }), {
242
+ status: 200,
243
+ headers: { 'Content-Type': 'application/json' },
244
+ }),
245
+ );
246
+
247
+ await bootstrapViaAuthRequest('https://wallet.local', 'cli-test-auth', keypair, {
248
+ noWait: true,
249
+ });
250
+
251
+ const call = fetchSpy.mock.calls[0]?.[1] as RequestInit;
252
+ const body = JSON.parse(String(call.body));
253
+ expect(body.profile).toBe('admin');
254
+ expect(body.profileVersion).toBe('v1');
255
+ });
256
+
257
+ it('createReadToken should fail when encryptedToken is missing', async () => {
192
258
  const keypair = generateEphemeralKeypair();
193
259
  const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValue(
194
260
  new Response(JSON.stringify({ token: 'plaintext-token' }), {
@@ -26,9 +26,9 @@ describe('defaults helper', () => {
26
26
  expect(value).toBe(0);
27
27
  });
28
28
 
29
- it('defaults local socket auto-approve to off', async () => {
29
+ it('defaults local socket auto-approve to on', async () => {
30
30
  const value = await getDefault('trust.localAutoApprove', true);
31
- expect(value).toBe(false);
31
+ expect(value).toBe(true);
32
32
  });
33
33
 
34
34
  it('setDefault persists value and cache serves sync reads', async () => {
@@ -214,8 +214,8 @@ describe('escalation hard-deny schema', () => {
214
214
  });
215
215
 
216
216
  describe('escalation profile resolver', () => {
217
- it('uses strict when required permissions fit strict profile', () => {
218
- expect(_testOnly.resolveEscalationProfile(['secret:read'])).toBe('strict');
217
+ it('uses dev when required permissions fit dev profile', () => {
218
+ expect(_testOnly.resolveEscalationProfile(['secret:read'])).toBe('dev');
219
219
  });
220
220
 
221
221
  it('uses dev when strict cannot satisfy but dev can', () => {
@@ -32,6 +32,7 @@ import strategyRoutes from '../routes/strategy';
32
32
  import actionsRoutes from '../routes/actions';
33
33
  import credentialAgentRoutes from '../routes/credential-agents';
34
34
  import credentialsRoutes from '../routes/credentials';
35
+ import agentProfilesRoutes from '../routes/agent-profiles';
35
36
  import credentialSharesRoutes from '../routes/credential-shares';
36
37
  import importRoutes from '../routes/import';
37
38
  import adaptersRoutes from '../routes/adapters';
@@ -73,6 +74,7 @@ export function createTestApp() {
73
74
  app.use('/actions', actionsRoutes);
74
75
  app.use('/agents/credential', credentialAgentRoutes);
75
76
  app.use('/credentials', credentialsRoutes);
77
+ app.use('/agent-profiles', agentProfilesRoutes);
76
78
  app.use('/credential-shares', credentialSharesRoutes);
77
79
  app.use('/credentials/import', importRoutes);
78
80
  app.use('/adapters', adaptersRoutes);
@@ -165,6 +167,11 @@ export async function cleanDatabase() {
165
167
  }
166
168
  }
167
169
  }
170
+
171
+ const agentProfilesPath = path.join(DATA_PATHS.wallets, 'agent-profiles.json');
172
+ if (fs.existsSync(agentProfilesPath)) {
173
+ fs.unlinkSync(agentProfilesPath);
174
+ }
168
175
  }
169
176
 
170
177
  // Test constants