auramaxx 0.0.11 → 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 (342) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +240 -223
  3. package/.next/app-path-routes-manifest.json +8 -7
  4. package/.next/build-manifest.json +14 -14
  5. package/.next/prerender-manifest.json +53 -29
  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.js +1 -1
  24. package/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/update/route.js +63 -1
  26. package/.next/server/app/api/update/route.js.nft.json +1 -1
  27. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/version/route.js +1 -1
  29. package/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/workspace/[id]/apps/[wid]/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/workspace/[id]/apps/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/workspace/[id]/export/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/workspace/[id]/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/workspace/config/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/workspace/import/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/workspace/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/app-legacy-do-not-use/page.js +1 -1
  38. package/.next/server/app/app-legacy-do-not-use/page.js.nft.json +1 -1
  39. package/.next/server/app/app-legacy-do-not-use/page_client-reference-manifest.js +1 -1
  40. package/.next/server/app/app-legacy-do-not-use.html +1 -1
  41. package/.next/server/app/app-legacy-do-not-use.rsc +14 -14
  42. package/.next/server/app/approve/[actionId]/page.js +1 -1
  43. package/.next/server/app/approve/[actionId]/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/docs/[...doc]/page_client-reference-manifest.js +1 -1
  45. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/health/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/health.html +1 -1
  48. package/.next/server/app/health.rsc +13 -13
  49. package/.next/server/app/hello/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/hello.html +1 -1
  51. package/.next/server/app/hello.rsc +14 -14
  52. package/.next/server/app/index.html +1 -1
  53. package/.next/server/app/index.rsc +18 -21
  54. package/.next/server/app/page.js +3 -3
  55. package/.next/server/app/page.js.nft.json +1 -1
  56. package/.next/server/app/page_client-reference-manifest.js +1 -1
  57. package/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/privacy.html +1 -1
  59. package/.next/server/app/privacy.rsc +13 -13
  60. package/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  62. package/.next/server/app/terms.html +1 -1
  63. package/.next/server/app/terms.rsc +13 -13
  64. package/.next/server/app/yo/page.js +2 -0
  65. package/.next/server/app/yo/page.js.nft.json +1 -0
  66. package/.next/server/app/yo/page_client-reference-manifest.js +1 -0
  67. package/.next/server/app/yo.html +1 -0
  68. package/.next/server/app/yo.meta +7 -0
  69. package/.next/server/app/yo.rsc +23 -0
  70. package/.next/server/app-paths-manifest.json +8 -7
  71. package/.next/server/chunks/2145.js +1 -1
  72. package/.next/server/chunks/2460.js +1 -1
  73. package/.next/server/chunks/5246.js +1 -1
  74. package/.next/server/chunks/5678.js +1 -1
  75. package/.next/server/chunks/5784.js +1 -1
  76. package/.next/server/chunks/6086.js +2 -20
  77. package/.next/server/chunks/{5553.js → 6415.js} +2 -2
  78. package/.next/server/chunks/7935.js +2 -2
  79. package/.next/server/functions-config-manifest.json +1 -1
  80. package/.next/server/instrumentation.js +1 -1
  81. package/.next/server/middleware-build-manifest.js +1 -1
  82. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  83. package/.next/server/pages/404.html +1 -1
  84. package/.next/server/pages/500.html +1 -1
  85. package/.next/server/server-reference-manifest.json +1 -1
  86. package/.next/server/webpack-runtime.js +1 -1
  87. package/.next/static/WshFGr6RxGYP6AbWuT9OG/_buildManifest.js +1 -0
  88. package/.next/static/chunks/1168.aaac1edbb597fe5a.js +1 -0
  89. package/.next/static/chunks/1255-7999eac54f80a49f.js +1 -0
  90. package/.next/static/chunks/142-fa9752f53a551f63.js +1 -0
  91. package/.next/static/chunks/2505.d54ccadc42f4e3d1.js +1 -0
  92. package/.next/static/chunks/2619-04bc32f026a0d946.js +1 -0
  93. package/.next/static/chunks/2927.7e00cc878d9a3f52.js +1 -0
  94. package/.next/static/chunks/3573-1b41d7b8a000d015.js +1 -0
  95. package/.next/static/chunks/3609.ded5a5306e18af9c.js +1 -0
  96. package/.next/static/chunks/3667-1db7bd03948e60df.js +1 -0
  97. package/.next/static/chunks/3826.a73d4a88d8c09030.js +1 -0
  98. package/.next/static/chunks/{3a91511d-648a2ba3dad7df0c.js → 3a91511d-ba215c0b5dc21ba9.js} +1 -1
  99. package/.next/static/chunks/4256.48407d9abad5ea33.js +1 -0
  100. package/.next/static/chunks/4685-7f53bbfc4a9845eb.js +1 -0
  101. package/.next/static/chunks/4901-ba6a32818662e70a.js +1 -0
  102. package/.next/static/chunks/4919-7e7cdd5efc9f2110.js +1 -0
  103. package/.next/static/chunks/4bd1b696-100b9d70ed4e49c1.js +1 -0
  104. package/.next/static/chunks/5336-233ec7ab3807267c.js +1 -0
  105. package/.next/static/chunks/5442-b5bb869e832e8967.js +1 -0
  106. package/.next/static/chunks/6233-97a810aa272af547.js +1 -0
  107. package/.next/static/chunks/626.a5109d16f9eca1f6.js +1 -0
  108. package/.next/static/chunks/6872-faea0f088ab2d450.js +1 -0
  109. package/.next/static/chunks/7338-3ce17a93614f1d77.js +59 -0
  110. package/.next/static/chunks/7394-4bdb1feefad1a74a.js +1 -0
  111. package/.next/static/chunks/7616-1129bcb3eee8d315.js +1 -0
  112. package/.next/static/chunks/786-26deffb41572cbb3.js +1 -0
  113. package/.next/static/chunks/8273-8e92d34180669ca9.js +1 -0
  114. package/.next/static/chunks/8357.5dee1e0c4e5bb091.js +1 -0
  115. package/.next/static/chunks/9062-2bc2d089f9c9c6ba.js +1 -0
  116. package/.next/static/chunks/9380.f198afbf0c6b5369.js +1 -0
  117. package/.next/static/chunks/app/_not-found/page-5a8c6a29f762fa58.js +1 -0
  118. package/.next/static/chunks/app/api/[...doc]/page-f0852f35f0fd1d44.js +1 -0
  119. package/.next/static/chunks/app/api/agent-requests/route-cf84f975aad4c719.js +1 -0
  120. package/.next/static/chunks/app/api/apps/install/route-cf84f975aad4c719.js +1 -0
  121. package/.next/static/chunks/app/api/apps/manifests/route-cf84f975aad4c719.js +1 -0
  122. package/.next/static/chunks/app/api/apps/static/[...path]/route-cf84f975aad4c719.js +1 -0
  123. package/.next/static/chunks/app/api/docs/plain/route-cf84f975aad4c719.js +1 -0
  124. package/.next/static/chunks/app/api/events/route-cf84f975aad4c719.js +1 -0
  125. package/.next/static/chunks/app/api/import-from-openclaw/[channel]/route-cf84f975aad4c719.js +1 -0
  126. package/.next/static/chunks/app/api/import-from-openclaw/route-cf84f975aad4c719.js +1 -0
  127. package/.next/static/chunks/app/api/import-from-openclaw/validate/[channel]/route-cf84f975aad4c719.js +1 -0
  128. package/.next/static/chunks/app/api/page-cc59bebcc0d2c01d.js +1 -0
  129. package/.next/static/chunks/app/api/restart/route-cf84f975aad4c719.js +1 -0
  130. package/.next/static/chunks/app/api/update/route-cf84f975aad4c719.js +1 -0
  131. package/.next/static/chunks/app/api/version/route-cf84f975aad4c719.js +1 -0
  132. package/.next/static/chunks/app/api/workspace/[id]/apps/[wid]/route-cf84f975aad4c719.js +1 -0
  133. package/.next/static/chunks/app/api/workspace/[id]/apps/route-cf84f975aad4c719.js +1 -0
  134. package/.next/static/chunks/app/api/workspace/[id]/export/route-cf84f975aad4c719.js +1 -0
  135. package/.next/static/chunks/app/api/workspace/[id]/route-cf84f975aad4c719.js +1 -0
  136. package/.next/static/chunks/app/api/workspace/config/route-cf84f975aad4c719.js +1 -0
  137. package/.next/static/chunks/app/api/workspace/import/route-cf84f975aad4c719.js +1 -0
  138. package/.next/static/chunks/app/api/workspace/route-cf84f975aad4c719.js +1 -0
  139. package/.next/static/chunks/app/app-legacy-do-not-use/page-e5dc864e92d90ca7.js +1 -0
  140. package/.next/static/chunks/app/approve/[actionId]/page-2acca1f490424f21.js +1 -0
  141. package/.next/static/chunks/app/docs/[...doc]/page-8e2a2d036caab242.js +1 -0
  142. package/.next/static/chunks/app/docs/page-acf872a03ff79893.js +1 -0
  143. package/.next/static/chunks/app/error-66f983b7769dabfa.js +1 -0
  144. package/.next/static/chunks/app/health/page-c9185854ed9c86d0.js +1 -0
  145. package/.next/static/chunks/app/hello/page-74c9f4deaa4b03dd.js +1 -0
  146. package/.next/static/chunks/app/layout-af8d9969c7aeb758.js +1 -0
  147. package/.next/static/chunks/app/page-16dfcd1c7cc88bcc.js +1 -0
  148. package/.next/static/chunks/app/privacy/page-8e2d17079355c2cc.js +1 -0
  149. package/.next/static/chunks/app/share/[token]/page-5dd9b0418eee411f.js +1 -0
  150. package/.next/static/chunks/app/terms/page-8e2d17079355c2cc.js +1 -0
  151. package/.next/static/chunks/app/yo/layout-cf84f975aad4c719.js +1 -0
  152. package/.next/static/chunks/app/yo/page-719dc5f213fdfb30.js +1 -0
  153. package/.next/static/chunks/framework-a32a2a465584c0bc.js +1 -0
  154. package/.next/static/chunks/main-0f0f9142f74e7215.js +1 -0
  155. package/.next/static/chunks/main-app-24f0c92ba10af457.js +1 -0
  156. package/.next/static/chunks/pages/_app-4b3fb5e477a0267f.js +1 -0
  157. package/.next/static/chunks/pages/_error-c970d8b55ace1b48.js +1 -0
  158. package/.next/static/chunks/{webpack-768de8b7d6a7a27a.js → webpack-79ad58260e9b10b4.js} +1 -1
  159. package/.next/static/css/83cd401584ab787f.css +3 -0
  160. package/.next/trace +28 -28
  161. package/.next/types/app/yo/layout.ts +84 -0
  162. package/.next/types/app/yo/page.ts +84 -0
  163. package/.next/types/routes.d.ts +4 -2
  164. package/.next/types/validator.ts +18 -0
  165. package/bin/auramaxx.js +11 -26
  166. package/docs/ARCHITECTURE.md +1 -1
  167. package/docs/AUTH.md +6 -3
  168. package/docs/CLI.md +2 -0
  169. package/docs/MCP.md +2 -0
  170. package/docs/TROUBLESHOOTING.md +24 -0
  171. package/docs/credentials.md +2 -0
  172. package/package.json +2 -1
  173. package/prisma/migrations/20260227214000_update_agent_action_ttl_defaults/migration.sql +19 -0
  174. package/public/0a167e5e-4f52-4715-ae23-bf63d259a6b1.png +0 -0
  175. package/public/141ec92c-6780-4b23-838f-9a7bf1e91bb8.png +0 -0
  176. package/public/3afc4935-92cb-42af-9624-0b1341c12a5e.png +0 -0
  177. package/public/43947df5-dbcf-4e49-ab8b-41b9162c0410.png +0 -0
  178. package/public/5aeae9ce-0d38-49ea-8fd1-167892a04a85.png +0 -0
  179. package/public/660e4ea3-a3a6-4be4-a8ca-2cb74c51dfb5.png +0 -0
  180. package/public/733f02d7-6b58-4ba6-a5c8-d062cd205e1d.png +0 -0
  181. package/public/a32d65cb-95b0-4977-be6b-cf69f515afbe.png +0 -0
  182. package/public/agent1.png +0 -0
  183. package/public/agent10.png +0 -0
  184. package/public/agent2.png +0 -0
  185. package/public/agent3.png +0 -0
  186. package/public/agent4.png +0 -0
  187. package/public/agent5.png +0 -0
  188. package/public/agent6.png +0 -0
  189. package/public/agent7.png +0 -0
  190. package/public/agent8.png +0 -0
  191. package/public/agent9.png +0 -0
  192. package/public/c4938305-b811-4ccc-91db-94d309734827.png +0 -0
  193. package/public/f2ca6825-a4f3-4107-815c-51ee740dfc09.png +0 -0
  194. package/public/llm.txt +2 -0
  195. package/public/llms.txt +39 -0
  196. package/public/ss-dark1.png +0 -0
  197. package/public/ss-dark1.webp +0 -0
  198. package/public/ss-dark2.png +0 -0
  199. package/public/ss-dark2.webp +0 -0
  200. package/public/ss-dark3.png +0 -0
  201. package/public/ss-dark3.webp +0 -0
  202. package/public/ss-light1.png +0 -0
  203. package/public/ss-light1.webp +0 -0
  204. package/public/ss-light2.png +0 -0
  205. package/public/ss-light2.webp +0 -0
  206. package/public/ss-light3.png +0 -0
  207. package/public/ss-light3.webp +0 -0
  208. package/shared/agent-profile-schema.ts +81 -0
  209. package/shared/credential-field-schema.ts +12 -0
  210. package/skills/auramaxx/SKILL.md +71 -691
  211. package/src/app/UnlockPageClient.tsx +1939 -0
  212. package/src/app/api/page.tsx +8 -9
  213. package/src/app/api/restart/route.ts +2 -18
  214. package/src/app/api/update/route.ts +104 -51
  215. package/src/app/approve/[actionId]/page.tsx +4 -1
  216. package/src/app/docs/DocsPageContent.tsx +3 -3
  217. package/src/app/globals.css +94 -0
  218. package/src/app/layout.tsx +1 -0
  219. package/src/app/page.tsx +25 -1935
  220. package/src/app/yo/layout.tsx +29 -0
  221. package/src/app/yo/page.tsx +528 -0
  222. package/src/components/HumanActionBar.tsx +34 -8
  223. package/src/components/agent/AgentSidebar.tsx +3 -1
  224. package/src/components/agent/CredentialAgent.tsx +5 -1
  225. package/src/components/agent/CredentialDetail.tsx +32 -1
  226. package/src/components/agent/CredentialForm.tsx +94 -7
  227. package/src/components/agent/CredentialRow.tsx +8 -1
  228. package/src/components/agent/credentialFormName.ts +22 -1
  229. package/src/components/agent/types.ts +2 -2
  230. package/src/components/design-system/Modal.tsx +14 -1
  231. package/src/hooks/useUpdateChecker.ts +17 -1
  232. package/src/lib/pino.ts +77 -8
  233. package/src/server/cli/commands/actions.ts +1 -1
  234. package/src/server/cli/commands/agent.ts +110 -65
  235. package/src/server/cli/commands/approve.ts +1 -1
  236. package/src/server/cli/commands/auth.ts +81 -20
  237. package/src/server/cli/commands/start.ts +42 -3
  238. package/src/server/cli/commands/token.ts +2 -2
  239. package/src/server/cli/lib/escalation.ts +109 -24
  240. package/src/server/cli/lib/process.ts +54 -1
  241. package/src/server/cli/socket.ts +1 -1
  242. package/src/server/index.ts +2 -0
  243. package/src/server/lib/agent-profile-records.ts +72 -0
  244. package/src/server/lib/credential-transport.ts +27 -11
  245. package/src/server/lib/defaults.ts +3 -3
  246. package/src/server/lib/escalation-responder.ts +1 -1
  247. package/src/server/lib/resolve-action.ts +2 -2
  248. package/src/server/lib/update-check.ts +1 -1
  249. package/src/server/mcp/server.ts +6 -1
  250. package/src/server/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  251. package/src/server/routes/actions.ts +2 -2
  252. package/src/server/routes/agent-profiles.ts +82 -0
  253. package/src/server/routes/auth.ts +39 -4
  254. package/src/server/routes/credentials.ts +18 -0
  255. package/src/server/tests/cli/agent-auth.test.ts +20 -39
  256. package/src/server/tests/cli/agent.test.ts +18 -0
  257. package/src/server/tests/cli/auth-action-flag.test.ts +3 -2
  258. package/src/server/tests/cli/bin-entrypoint.test.ts +35 -11
  259. package/src/server/tests/cli/escalation.test.ts +7 -3
  260. package/src/server/tests/cli/process.test.ts +3 -3
  261. package/src/server/tests/cli/socket.test.ts +2 -2
  262. package/src/server/tests/cli/start-run.test.ts +24 -1
  263. package/src/server/tests/endpoints/actions.test.ts +2 -2
  264. package/src/server/tests/endpoints/agent-profiles.test.ts +117 -0
  265. package/src/server/tests/endpoints/auth.test.ts +34 -0
  266. package/src/server/tests/lib/credential-transport.test.ts +68 -2
  267. package/src/server/tests/lib/defaults.test.ts +2 -2
  268. package/src/server/tests/lib/escalation-responder.test.ts +2 -2
  269. package/src/server/tests/lib/update-check.test.ts +1 -1
  270. package/src/server/tests/setup.ts +7 -0
  271. package/src/server/tsconfig.tsbuildinfo +1 -1
  272. package/src/server/types.ts +1 -1
  273. package/.next/static/AcaCjQ4akovHBUnVGPpfN/_buildManifest.js +0 -1
  274. package/.next/static/chunks/1168.63dbb444a33b1867.js +0 -1
  275. package/.next/static/chunks/1255-e8718b02724690dd.js +0 -1
  276. package/.next/static/chunks/142-aeaf7ffa9c53516d.js +0 -1
  277. package/.next/static/chunks/2505.22aaa333fd65908f.js +0 -1
  278. package/.next/static/chunks/2619-3c9e02e22d10480a.js +0 -1
  279. package/.next/static/chunks/2927.e7e9e2a1b8d2dc61.js +0 -1
  280. package/.next/static/chunks/3573-27e17f4ff2dd86ed.js +0 -1
  281. package/.next/static/chunks/3609.6f8e0ecd6de9566c.js +0 -1
  282. package/.next/static/chunks/3667-d6770121629db38b.js +0 -1
  283. package/.next/static/chunks/3826.7dfe96467cd74e45.js +0 -1
  284. package/.next/static/chunks/4256.50cb375c979ffd5a.js +0 -1
  285. package/.next/static/chunks/4685-3f8d92f574366fec.js +0 -1
  286. package/.next/static/chunks/4901-54c1ac380b7b43bb.js +0 -1
  287. package/.next/static/chunks/4919-fe6f1553abfc9420.js +0 -1
  288. package/.next/static/chunks/4bd1b696-f785427dddbba9fb.js +0 -1
  289. package/.next/static/chunks/5336-bd251f91235f7c11.js +0 -1
  290. package/.next/static/chunks/5442-be197c885bf12079.js +0 -1
  291. package/.next/static/chunks/5553-c8b86fe3513fce04.js +0 -59
  292. package/.next/static/chunks/6233-44e6fe57a552a816.js +0 -1
  293. package/.next/static/chunks/626.2583673a0386a81b.js +0 -1
  294. package/.next/static/chunks/6872-6442f2f5cce36ce5.js +0 -1
  295. package/.next/static/chunks/7411-3ca797c21b722ccd.js +0 -1
  296. package/.next/static/chunks/7616-b8bd37ce1f735d6f.js +0 -1
  297. package/.next/static/chunks/786-9ed39f96091b2be4.js +0 -1
  298. package/.next/static/chunks/8273-922091226ba84a94.js +0 -1
  299. package/.next/static/chunks/8357.6159472717ff7d11.js +0 -1
  300. package/.next/static/chunks/9062-3eb1607c96486f88.js +0 -1
  301. package/.next/static/chunks/9380.93f361baab2eefdf.js +0 -1
  302. package/.next/static/chunks/app/_not-found/page-c3b87025baf0a9c2.js +0 -1
  303. package/.next/static/chunks/app/api/[...doc]/page-790c4b33ba1fde4a.js +0 -1
  304. package/.next/static/chunks/app/api/agent-requests/route-e83b12cbab2e8707.js +0 -1
  305. package/.next/static/chunks/app/api/apps/install/route-e83b12cbab2e8707.js +0 -1
  306. package/.next/static/chunks/app/api/apps/manifests/route-e83b12cbab2e8707.js +0 -1
  307. package/.next/static/chunks/app/api/apps/static/[...path]/route-e83b12cbab2e8707.js +0 -1
  308. package/.next/static/chunks/app/api/docs/plain/route-e83b12cbab2e8707.js +0 -1
  309. package/.next/static/chunks/app/api/events/route-e83b12cbab2e8707.js +0 -1
  310. package/.next/static/chunks/app/api/import-from-openclaw/[channel]/route-e83b12cbab2e8707.js +0 -1
  311. package/.next/static/chunks/app/api/import-from-openclaw/route-e83b12cbab2e8707.js +0 -1
  312. package/.next/static/chunks/app/api/import-from-openclaw/validate/[channel]/route-e83b12cbab2e8707.js +0 -1
  313. package/.next/static/chunks/app/api/page-b53f9aa17a4c5201.js +0 -1
  314. package/.next/static/chunks/app/api/restart/route-e83b12cbab2e8707.js +0 -1
  315. package/.next/static/chunks/app/api/update/route-e83b12cbab2e8707.js +0 -1
  316. package/.next/static/chunks/app/api/version/route-e83b12cbab2e8707.js +0 -1
  317. package/.next/static/chunks/app/api/workspace/[id]/apps/[wid]/route-e83b12cbab2e8707.js +0 -1
  318. package/.next/static/chunks/app/api/workspace/[id]/apps/route-e83b12cbab2e8707.js +0 -1
  319. package/.next/static/chunks/app/api/workspace/[id]/export/route-e83b12cbab2e8707.js +0 -1
  320. package/.next/static/chunks/app/api/workspace/[id]/route-e83b12cbab2e8707.js +0 -1
  321. package/.next/static/chunks/app/api/workspace/config/route-e83b12cbab2e8707.js +0 -1
  322. package/.next/static/chunks/app/api/workspace/import/route-e83b12cbab2e8707.js +0 -1
  323. package/.next/static/chunks/app/api/workspace/route-e83b12cbab2e8707.js +0 -1
  324. package/.next/static/chunks/app/app-legacy-do-not-use/page-0052191daef60036.js +0 -1
  325. package/.next/static/chunks/app/approve/[actionId]/page-45cd3b8fa062d5e5.js +0 -1
  326. package/.next/static/chunks/app/docs/[...doc]/page-632ac406200b66fe.js +0 -1
  327. package/.next/static/chunks/app/docs/page-b7556394709b43df.js +0 -1
  328. package/.next/static/chunks/app/error-3d6057da512253d8.js +0 -1
  329. package/.next/static/chunks/app/health/page-80c985cd72328b74.js +0 -1
  330. package/.next/static/chunks/app/hello/page-fd71babcd192729b.js +0 -1
  331. package/.next/static/chunks/app/layout-285c6ef3f16bae63.js +0 -1
  332. package/.next/static/chunks/app/page-85017185df14c37b.js +0 -1
  333. package/.next/static/chunks/app/privacy/page-faf36cd0dde6dfa3.js +0 -1
  334. package/.next/static/chunks/app/share/[token]/page-22d51d6c5a47bb75.js +0 -1
  335. package/.next/static/chunks/app/terms/page-faf36cd0dde6dfa3.js +0 -1
  336. package/.next/static/chunks/framework-e60c938074ff7136.js +0 -1
  337. package/.next/static/chunks/main-447abf206d7ebd2f.js +0 -1
  338. package/.next/static/chunks/main-app-f63b86bdbf5b7b88.js +0 -1
  339. package/.next/static/chunks/pages/_app-6c8c2371b16a04b8.js +0 -1
  340. package/.next/static/chunks/pages/_error-94812ad32cad7365.js +0 -1
  341. package/.next/static/css/eb25c6452113486f.css +0 -3
  342. /package/.next/static/{AcaCjQ4akovHBUnVGPpfN → WshFGr6RxGYP6AbWuT9OG}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6872],{6345:(e,t,a)=>{a.d(t,{p:()=>m});var r=a(95155),s=a(12115),n=a(48314),o=a(53667);let l=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","agent","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"],i=[{value:"random",label:"Random"},{value:"memorable",label:"Memorable"},{value:"pin",label:"PIN"}],c={random:20,memorable:4,pin:6},d={random:8,memorable:3,pin:4},u={random:128,memorable:10,pin:12};function p(e){let t=new Uint32Array(1);return crypto.getRandomValues(t),t[0]%e}let m=e=>{let{isOpen:t,onClose:a,onUse:m}=e,[x,h]=(0,s.useState)("random"),[f,v]=(0,s.useState)(c.random),[b,g]=(0,s.useState)({numbers:!0,symbols:!0,uppercase:!0,avoidAmbiguous:!1}),[y,k]=(0,s.useState)(""),[w,j]=(0,s.useState)(!1),N=(0,s.useCallback)(()=>{switch(x){case"random":k(function(e,t){let a="abcdefghijklmnopqrstuvwxyz";t.numbers&&(a+="0123456789"),t.symbols&&(a+="!@#$%^&*()_+-=[]{}|;:,.<>?"),t.uppercase&&(a+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),t.avoidAmbiguous&&(a=a.replace(/[0OoIl1]/g,"")),0===a.length&&(a="abcdefghijklmnopqrstuvwxyz");let r=[];for(let t=0;t<e;t++)r.push(a[p(a.length)]);return r.join("")}(f,b));break;case"memorable":k(function(e){let t=[];for(let a=0;a<e;a++)t.push(l[p(l.length)]);return t.join("-")}(f));break;case"pin":k(function(e){let t=[];for(let a=0;a<e;a++)t.push(String(p(10)));return t.join("")}(f))}j(!1)},[x,f,b]);(0,s.useEffect)(()=>{t&&N()},[t,N]),(0,s.useEffect)(()=>{v(c[x])},[x]);let S=async()=>{try{await navigator.clipboard.writeText(y),j(!0),setTimeout(()=>j(!1),2e3)}catch(e){}};return(0,r.jsx)(o.aF,{isOpen:t,onClose:a,title:"Password Generator",size:"sm",footer:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(o.$n,{variant:"ghost",size:"sm",onClick:N,icon:(0,r.jsx)(n.A,{size:10}),children:"Refresh"}),(0,r.jsx)(o.$n,{variant:"secondary",size:"sm",onClick:a,children:"Cancel"}),(0,r.jsx)(o.$n,{variant:"primary",size:"sm",onClick:()=>m(y),children:"Use"})]}),children:(0,r.jsxs)("div",{className:"space-y-4 min-h-[280px]",children:[(0,r.jsxs)("div",{onClick:S,className:"bg-[var(--color-background-alt,#f4f4f5)] border border-[var(--color-border,#d4d4d8)] p-3 cursor-pointer transition-colors hover:border-[var(--color-border-focus,#0a0a0a)] relative group",children:[(0,r.jsx)("div",{className:"font-mono text-lg font-bold text-[var(--color-text,#0a0a0a)] break-all select-all pr-12",children:y}),(0,r.jsx)("div",{className:"absolute top-1 right-2 font-mono text-[8px] uppercase tracking-widest font-bold transition-opacity ".concat(w?"opacity-100":"opacity-0"," bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)] px-1.5 py-0.5"),children:"Copied"}),!w&&(0,r.jsx)("div",{className:"absolute top-1 right-2 font-mono text-[8px] uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] opacity-0 group-hover:opacity-100 transition-opacity",children:"Click to copy"})]}),(0,r.jsx)(o.UM,{options:i,value:x,onChange:e=>h(e),label:"Type",compact:!0}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] mb-1.5 px-1",children:"Length"}),(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("input",{type:"range",min:d[x],max:u[x],value:f,onChange:e=>v(parseInt(e.target.value,10)),className:"flex-1 h-1 appearance-none bg-[var(--color-border,#d4d4d8)] outline-none",style:{accentColor:"var(--color-accent, #ccff00)"}}),(0,r.jsx)("div",{className:"w-16",children:(0,r.jsx)(o.ks,{compact:!0,type:"number",min:d[x],max:u[x],value:f,onChange:e=>(e=>{let t=parseInt(e,10);isNaN(t)||v(Math.max(d[x],Math.min(u[x],t)))})(e.target.value)})})]})]}),"random"===x&&(0,r.jsxs)("div",{className:"space-y-2.5",children:[(0,r.jsx)(o.lM,{size:"sm",checked:b.numbers,onChange:e=>g(t=>({...t,numbers:e})),label:"Numbers"}),(0,r.jsx)(o.lM,{size:"sm",checked:b.symbols,onChange:e=>g(t=>({...t,symbols:e})),label:"Symbols"}),(0,r.jsx)(o.lM,{size:"sm",checked:b.uppercase,onChange:e=>g(t=>({...t,uppercase:e})),label:"Uppercase"}),(0,r.jsx)(o.lM,{size:"sm",checked:b.avoidAmbiguous,onChange:e=>g(t=>({...t,avoidAmbiguous:e})),label:"Avoid ambiguous"})]})]})})}},13361:(e,t,a)=>{a.d(t,{Z:()=>j});var r=a(95155),s=a(12115),n=a(6132),o=a(42529),l=a(21786),i=a(5917),c=a(89715),d=a(55867),u=a(53667),p=a(90960),m=a(53020);let x="aura:passkey:dismissed",h="aura:onboarding:done",f=["1password-csv","bitwarden-csv","chrome-csv"],v=["aura to maxx","maxx to aura"],b=[{label:"1Password",format:"1password-csv"},{label:"Bitwarden",format:"bitwarden-csv"},{label:"Chrome",format:"chrome-csv"},{label:"Firefox",format:"firefox-csv"},{label:"iCloud Keychain",format:"icloud-csv"},{label:"LastPass",format:"lastpass-csv"}],g={skip:"Skip",rename:"Rename",overwrite:"Create Anyway"};function y(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");for(;t.length%4;)t+="=";let a=atob(t),r=new Uint8Array(a.length);for(let e=0;e<a.length;e++)r[e]=a.charCodeAt(e);return r.buffer}function k(e){let t=new Uint8Array(e),a="";for(let e=0;e<t.length;e++)a+=String.fromCharCode(t[e]);return btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function w(){let e=localStorage.getItem("auramaxx_admin_token");return e||sessionStorage.getItem("auramaxx_admin_token")}function j(e){let{isUnlocked:t}=e,a=(0,s.useMemo)(()=>(0,p.au)(),[]),j=(0,s.useMemo)(()=>v[Math.floor(Math.random()*v.length)],[]),[N,S]=(0,s.useState)("hidden"),[C,A]=(0,s.useState)("import-source"),[E,P]=(0,s.useState)(!1),[T,I]=(0,s.useState)(!1),[O,z]=(0,s.useState)(f[0]),[_,R]=(0,s.useState)("upload"),[D,M]=(0,s.useState)(null),[L,q]=(0,s.useState)("skip"),[K,H]=(0,s.useState)(null),[F,W]=(0,s.useState)(null),[U,B]=(0,s.useState)(!1),[V,G]=(0,s.useState)(null),[$,J]=(0,s.useState)([]),[Q,Y]=(0,s.useState)("primary"),[Z,X]=(0,s.useState)(!1),[ee,et]=(0,s.useState)(!1),[ea,er]=(0,s.useState)(null),es=(0,s.useRef)(null),en=(0,s.useMemo)(()=>T?b:b.filter(e=>f.includes(e.format)),[T]),eo=(0,s.useMemo)(()=>$.map(e=>({value:e.id,label:e.name||(e.isPrimary?"Primary":"Agent ".concat(e.id.slice(0,6)))})),[$]),el=(0,s.useMemo)(()=>$.find(e=>e.id===Q)||null,[$,Q]),ei=(0,s.useCallback)(()=>{R("upload"),M(null),q("skip"),H(null),W(null),B(!1),G(null),es.current&&(es.current.value="")},[]),ec=(0,s.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];localStorage.setItem(h,"true"),e&&localStorage.setItem(x,"true"),S("hidden"),A("import-source"),I(!1),z(f[0]),er(null),et(!1),ei()},[ei]),ed=(0,s.useCallback)(()=>{A("retrieve-note"),X(!0)},[]),eu=(0,s.useCallback)(()=>{localStorage.setItem(x,"true"),S("hidden"),er(null),et(!1)},[]),ep=(0,s.useCallback)(async()=>{try{var e,t;let a=await p.FH.get(p.jI.Wallet,"/agents/credential");if(!a.success||!Array.isArray(a.agents))return;J(a.agents);let r=(null==(e=a.agents.find(e=>e.isPrimary))?void 0:e.id)||(null==(t=a.agents[0])?void 0:t.id)||"primary";Y(e=>e&&a.agents.some(t=>t.id===e)?e:r)}catch(e){}},[]);(0,s.useEffect)(()=>{if(!t)return void S("hidden");let e=!1;return(async()=>{let t="true"===localStorage.getItem(h),a="true"===localStorage.getItem(x),r=!!window.auraDesktop,s=!!window.PublicKeyCredential&&!r;P(s);let n=!1;if(s)try{let e=await p.FH.get(p.jI.Wallet,"/auth/passkey/status");n=!0===e.registered}catch(e){n=!1}if(!e){if(!t){if(await ep(),e)return;S("onboarding"),A("import-source");return}if(s&&!n&&!a){S("passkey"),A("passkey");return}S("hidden")}})(),()=>{e=!0}},[ep,t]);let em=(0,s.useCallback)(e=>{if(!D)return null;let t=new FormData;return t.append("file",D),t.append("format",O),t.append("agentId",Q||"primary"),e&&t.append("dryRun","true"),t.append("duplicateStrategy",L),t},[L,D,O,Q]),ex=(0,s.useCallback)(async()=>{if(D){B(!0),G(null);try{let e=em(!0);if(!e)return;let t=w(),r=await fetch("".concat(a,"/credentials/import"),{method:"POST",headers:t?{Authorization:"Bearer ".concat(t)}:{},body:e});if(!(r.headers.get("content-type")||"").includes("application/json"))return void G("Server error: ".concat(r.status," ").concat(r.statusText));let s=await r.json();if(!r.ok||!s.success)return void G(s.error||"Request failed: ".concat(r.status));H(s),R("preview")}catch(e){G(e instanceof Error?e.message:"Preview failed")}finally{B(!1)}}},[em,D,a]),eh=(0,s.useCallback)(async()=>{B(!0),G(null);try{let e=em(!1);if(!e)return;let t=w(),r=await fetch("".concat(a,"/credentials/import"),{method:"POST",headers:t?{Authorization:"Bearer ".concat(t)}:{},body:e});if(!(r.headers.get("content-type")||"").includes("application/json"))return void G("Server error: ".concat(r.status," ").concat(r.statusText));let s=await r.json();if(!r.ok)return void G(s.error||"Request failed: ".concat(r.status));W(s),R("result")}catch(e){G(e instanceof Error?e.message:"Import failed")}finally{B(!1)}},[em,a]),ef=(0,s.useCallback)(async()=>{if(!E)return void er("Passkey is not available in this environment.");et(!0),er(null);try{var e,t,a,r;let s=await p.FH.post(p.jI.Wallet,"/auth/passkey/register/options",{}),n={challenge:y(s.challenge),rp:{name:s.rp.name,id:s.rp.id},user:{id:y(s.user.id),name:s.user.name,displayName:s.user.displayName},pubKeyCredParams:s.pubKeyCredParams.map(e=>({type:e.type,alg:e.alg})),timeout:s.timeout,attestation:s.attestation||"none",excludeCredentials:(s.excludeCredentials||[]).map(e=>({type:"public-key",id:y(e.id),transports:e.transports})),authenticatorSelection:{authenticatorAttachment:null==(e=s.authenticatorSelection)?void 0:e.authenticatorAttachment,residentKey:null==(t=s.authenticatorSelection)?void 0:t.residentKey,userVerification:null==(a=s.authenticatorSelection)?void 0:a.userVerification}},o=await navigator.credentials.create({publicKey:n});if(!o)return void et(!1);let l=o.response,i={credential:{id:k(o.rawId),rawId:k(o.rawId),type:o.type,response:{clientDataJSON:k(l.clientDataJSON),attestationObject:k(l.attestationObject),transports:(null==(r=l.getTransports)?void 0:r.call(l))||[]}}},c=await p.FH.post(p.jI.Wallet,"/auth/passkey/register/verify",i);if(!c.success)return void er(c.error||"Passkey registration failed.");"onboarding"===N?(A("passkey-success"),setTimeout(()=>ec(!1),1200)):S("hidden")}catch(e){if(e instanceof Error&&"NotAllowedError"===e.name)return void et(!1);er(e instanceof Error?e.message:"Passkey registration failed.")}finally{et(!1)}},[ec,N,E]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(u.aF,{isOpen:"hidden"!==N,onClose:()=>{},dismissible:!1,title:"onboarding"===N?"passkey"===C||"passkey-success"===C?"Passkey Setup":"Onboarding":"Passkey Setup",subtitle:"Security",icon:(0,r.jsx)(d.A,{size:16,className:"text-[var(--color-accent,#ccff00)]"}),size:"md",children:"onboarding"===N?(()=>{if("passkey-success"===C)return(0,r.jsxs)("div",{className:"flex flex-col items-center gap-3 py-4",children:[(0,r.jsx)("div",{className:"w-10 h-10 bg-[var(--color-text,#0a0a0a)] flex items-center justify-center",children:(0,r.jsx)(i.A,{size:20,className:"text-[var(--color-accent,#ccff00)]"})}),(0,r.jsx)("div",{className:"font-mono text-xs tracking-widest text-[var(--color-text,#0a0a0a)] uppercase",children:"Passkey enabled!"}),(0,r.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Onboarding complete."})]});if("import-source"===C)return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)("div",{className:"font-mono text-xs text-[var(--color-text,#0a0a0a)] leading-relaxed",children:"Import credentials from another manager before you continue."}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Import Source"}),(0,r.jsx)(u.O6,{ariaLabel:"Onboarding import source",value:O,onChange:e=>z(e),options:en.map(e=>({value:e.format,label:e.label,icon:(0,r.jsx)(c.A,{size:12})}))})]}),(0,r.jsx)("button",{type:"button",onClick:()=>I(e=>!e),className:"font-mono text-[10px] tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:T?"SHOW LESS":"SHOW MORE"}),(0,r.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,r.jsx)(u.$n,{variant:"secondary",size:"sm",onClick:()=>{ei(),ed()},children:"SKIP"}),(0,r.jsx)(u.$n,{size:"sm",onClick:()=>{ei(),A("import-upload")},children:"CONFIRM"})]})]});if("import-upload"===C){var e;if("preview"===_&&K){let e="skip"===L?K.total-K.duplicates:K.total;return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"flex gap-4",children:[(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"text-[18px] font-bold font-mono text-[var(--color-text,#0a0a0a)]",children:K.total}),(0,r.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Total"})]}),K.duplicates>0&&(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"text-[18px] font-bold font-mono text-amber-600",children:K.duplicates}),(0,r.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Duplicates"})]})]}),(0,r.jsxs)("div",{className:"max-h-[220px] overflow-y-auto border border-[var(--color-border,#d4d4d8)]",children:[0===K.credentials.length?(0,r.jsx)("div",{className:"px-4 py-8 text-center text-[10px] font-mono text-[var(--color-text-muted,#6b7280)]",children:"No credentials found in file."}):K.credentials.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-[var(--color-border,#d4d4d8)] last:border-b-0 ".concat(e.isDuplicate?"bg-amber-50/50":""),children:[(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("div",{className:"text-[10px] font-mono text-[var(--color-text,#0a0a0a)] truncate",children:e.name}),e.url&&(0,r.jsx)("div",{className:"text-[8px] font-mono text-[var(--color-text-faint,#9ca3af)] truncate",children:e.url})]}),(0,r.jsx)("span",{className:"text-[8px] font-mono tracking-wider uppercase text-[var(--color-text-faint,#9ca3af)] flex-shrink-0",children:e.type}),e.isDuplicate&&(0,r.jsx)("span",{className:"text-[8px] font-mono tracking-wider uppercase text-amber-600 flex-shrink-0",children:"DUP"})]},"".concat(e.name,"-").concat(t))),K.total>K.credentials.length&&(0,r.jsxs)("div",{className:"px-3 py-1.5 text-[9px] font-mono text-[var(--color-text-faint,#9ca3af)] text-center",children:["+ ",K.total-K.credentials.length," more"]})]}),K.duplicates>0&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)] mb-1.5",children:"Duplicate handling"}),(0,r.jsx)("div",{className:"flex gap-1.5",children:["skip","rename","overwrite"].map(e=>(0,r.jsx)("button",{onClick:()=>q(e),className:"px-3 py-1.5 text-[9px] font-mono tracking-wider uppercase border transition-colors ".concat(L===e?"border-[var(--color-accent,#ccff00)] bg-[var(--color-accent,#ccff00)]/10 text-[var(--color-text,#0a0a0a)]":"border-[var(--color-border,#d4d4d8)] text-[var(--color-text-muted,#6b7280)] hover:bg-[var(--color-background-alt,#f4f4f5)]"),children:g[e]},e))})]}),V&&(0,r.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 bg-red-50 border border-red-200",children:[(0,r.jsx)(n.A,{size:12,className:"text-red-500 flex-shrink-0 mt-0.5"}),(0,r.jsx)("span",{className:"text-[10px] font-mono text-red-700",children:V})]}),(0,r.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,r.jsx)(u.$n,{variant:"secondary",size:"sm",onClick:()=>{ei(),ed()},children:"SKIP"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(u.$n,{variant:"secondary",size:"sm",onClick:()=>{R("upload"),G(null),es.current&&(es.current.value="")},children:"BACK"}),(0,r.jsxs)(u.$n,{size:"sm",onClick:()=>{eh()},loading:U,disabled:0===K.credentials.length,children:["IMPORT ",e," CREDENTIAL",1!==e?"S":""]})]})]})]})}if("result"===_&&F){let e=F.errors.length>0;return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[F.success?(0,r.jsx)(o.A,{size:20,className:"text-green-600"}):(0,r.jsx)(n.A,{size:20,className:"text-red-500"}),(0,r.jsx)("div",{children:(0,r.jsx)("div",{className:"text-[11px] font-mono font-bold text-[var(--color-text,#0a0a0a)]",children:F.success?"Import Complete":"Import Failed"})})]}),(0,r.jsxs)("div",{className:"flex gap-6",children:[(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"text-[18px] font-bold font-mono text-green-600",children:F.imported}),(0,r.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Imported"})]}),F.skipped>0&&(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"text-[18px] font-bold font-mono text-[var(--color-text-muted,#6b7280)]",children:F.skipped}),(0,r.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Skipped"})]}),e&&(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"text-[18px] font-bold font-mono text-red-500",children:F.errors.length}),(0,r.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Errors"})]})]}),e&&(0,r.jsx)("div",{className:"max-h-[120px] overflow-y-auto border border-red-200 bg-red-50",children:F.errors.map((e,t)=>(0,r.jsxs)("div",{className:"px-3 py-1 text-[9px] font-mono text-red-700 border-b border-red-100 last:border-b-0",children:["Row ",e.row,": ",e.reason]},"".concat(e.row,"-").concat(t)))}),(0,r.jsx)("div",{className:"flex justify-end",children:(0,r.jsx)(u.$n,{size:"sm",onClick:()=>{ei(),A("retrieve-note")},children:"CONTINUE"})})]})}return(0,r.jsxs)("div",{className:"space-y-5",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)] mb-2",children:"Source"}),(0,r.jsx)("div",{className:"text-[10px] font-mono text-[var(--color-text,#0a0a0a)] px-3 py-2 border border-[var(--color-border,#d4d4d8)]",children:(null==(e=b.find(e=>e.format===O))?void 0:e.label)||O})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)] mb-2",children:"File"}),(0,r.jsx)("input",{ref:es,type:"file",accept:".csv",onChange:e=>{var t,a;let r=null!=(a=null==(t=e.target.files)?void 0:t[0])?a:null;if(r&&r.size>0xa00000){G("File too large (".concat((r.size/1024/1024).toFixed(1),"MB). Maximum is 10MB.")),M(null),es.current&&(es.current.value="");return}M(r),G(null)},className:"hidden"}),(0,r.jsxs)("button",{onClick:()=>{var e;return null==(e=es.current)?void 0:e.click()},className:"w-full flex items-center justify-center gap-2 px-4 py-4 border-2 border-dashed border-[var(--color-border,#d4d4d8)] hover:border-[var(--color-text-muted,#6b7280)] transition-colors",children:[(0,r.jsx)(l.A,{size:14,className:"text-[var(--color-text-muted,#6b7280)]"}),(0,r.jsx)("span",{className:"text-[10px] font-mono tracking-wider text-[var(--color-text-muted,#6b7280)]",children:D?D.name:"Choose CSV file"})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(u.UM,{label:"Target Agent",ariaLabel:"TARGET AGENT",options:eo,value:Q,onChange:Y,compact:!0,searchable:!0,menuPosition:"top",searchPlaceholder:"Search agent...",emptyMessage:"No agent matches",disabled:0===eo.length}),el&&!el.isUnlocked&&(0,r.jsx)("div",{className:"mt-2 text-[9px] text-[var(--color-warning,#ff4d00)] border border-[var(--color-warning,#ff4d00)]/30 bg-[var(--color-warning,#ff4d00)]/10 px-3 py-2",children:"Selected agent is locked. Unlock it before preview/import."})]}),V&&(0,r.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 bg-red-50 border border-red-200",children:[(0,r.jsx)(n.A,{size:12,className:"text-red-500 flex-shrink-0 mt-0.5"}),(0,r.jsx)("span",{className:"text-[10px] font-mono text-red-700",children:V})]}),(0,r.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,r.jsx)(u.$n,{variant:"secondary",size:"sm",onClick:()=>{ei(),ed()},children:"SKIP"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(u.$n,{variant:"secondary",size:"sm",onClick:()=>{ei(),A("import-source")},children:"BACK"}),(0,r.jsx)(u.$n,{size:"sm",onClick:()=>{ex()},loading:U,disabled:!D,children:"PREVIEW"})]})]})]})}return"retrieve-note"===C?(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)("div",{className:"font-mono text-xs text-[var(--color-text,#0a0a0a)] leading-relaxed",children:"Retrieve your note before passkey setup."}),(0,r.jsxs)("div",{className:"space-y-2 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-background-alt,#f4f4f5)] px-3 py-2",children:[(0,r.jsx)("div",{className:"font-mono text-[9px] tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Dev Command"}),(0,r.jsx)("div",{className:"font-mono text-[11px] text-[var(--color-text,#0a0a0a)] break-all",children:"$ npx auramaxx get FIRSTAURA"})]}),(0,r.jsxs)("div",{className:"space-y-2 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)] px-3 py-2",children:[(0,r.jsx)("div",{className:"font-mono text-[9px] tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Agent Prompt"}),(0,r.jsx)("div",{className:"font-mono text-[11px] text-[var(--color-text,#0a0a0a)]",children:"ayo get my FIRSTAURA using auramaxx"})]}),(0,r.jsx)("div",{className:"flex justify-end",children:(0,r.jsx)(u.$n,{size:"sm",onClick:()=>A("passkey"),children:"CONTINUE"})})]}):(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)("div",{className:"font-mono text-xs text-[var(--color-text,#0a0a0a)] leading-relaxed",children:"Enable Face ID / Passkey to unlock your agent without typing a password."}),!E&&(0,r.jsx)("div",{className:"p-2 border border-[var(--color-warning,#ff4d00)]/30 bg-[var(--color-warning,#ff4d00)]/5",children:(0,r.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-warning,#ff4d00)]",children:"Passkey is unavailable in this environment."})}),ea&&(0,r.jsx)("div",{className:"p-2 border border-[var(--color-warning,#ff4d00)]/30 bg-[var(--color-warning,#ff4d00)]/5",children:(0,r.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-warning,#ff4d00)]",children:ea})}),(0,r.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,r.jsx)(u.$n,{variant:"secondary",size:"sm",onClick:()=>ec(!0),children:"NOT NOW"}),(0,r.jsx)(u.$n,{variant:"primary",size:"sm",loading:ee,onClick:()=>{ef()},disabled:!E,icon:(0,r.jsx)(d.A,{size:14}),children:ee?"REGISTERING...":"CREATE PASSKEY"})]})]})})():(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)("div",{className:"font-mono text-xs text-[var(--color-text,#0a0a0a)] leading-relaxed",children:"Enable Face ID / Passkey to unlock your agent without typing a password."}),ea&&(0,r.jsx)("div",{className:"p-2 border border-[var(--color-warning,#ff4d00)]/30 bg-[var(--color-warning,#ff4d00)]/5",children:(0,r.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-warning,#ff4d00)]",children:ea})}),(0,r.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,r.jsx)(u.$n,{variant:"secondary",size:"sm",onClick:eu,children:"NOT NOW"}),(0,r.jsx)(u.$n,{variant:"primary",size:"sm",loading:ee,onClick:()=>{ef()},icon:(0,r.jsx)(d.A,{size:14}),children:ee?"REGISTERING...":"CREATE PASSKEY"})]})]})}),(0,r.jsx)(m.i,{isOpen:Z,onClose:()=>{X(!1),A("retrieve-note")},onSaved:()=>{X(!1),A("retrieve-note"),ep()},agents:$,createStartStep:"form",createStartType:"plain_note",createPrefill:{type:"plain_note",name:"FIRSTAURA",noteContent:j,agentId:"primary"!==Q?Q:void 0}})]})}},16673:(e,t,a)=>{a.d(t,{Z:()=>T});var r=a(95155),s=a(12115),n=a(55867),o=a(7013),l=a(56154),i=a(17910),c=a(52056),d=a(23327),u=a(99708),p=a(65229),m=a(26983),x=a(12108),h=a(24033),f=a(5917),v=a(53667);function b(e){if(!e.metadata)return{};try{return JSON.parse(e.metadata)}catch(e){return{}}}function g(e){var t,a;if(null==(t=e.humanSummary)?void 0:t.oneLiner)return e.humanSummary.oneLiner;let r=b(e);if(r.summary)return r.summary;if(null==(a=r.verifiedSummary)?void 0:a.oneLiner)return r.verifiedSummary.oneLiner;let s=r.agentId||"agent",n=e.type.replace(/_/g," ");return e.amount?"".concat(s," requesting ").concat(e.amount," ETH"):"".concat(s," — ").concat(n)}function y(e){var t,a,r;return(null!=(r=null==(a=b(e).verifiedSummary)||null==(t=a.discrepancies)?void 0:t.length)?r:0)>0}function k(e,t){var a,r,s,n,o,l,i,c,d,u,p;let m=null!=(i=null!=(l=null==(r=e.verifiedSummary)||null==(a=r.permissionLabels)?void 0:a.length)?l:null==(s=e.permissions)?void 0:s.length)?i:0,x=null!=(c=null==(o=e.verifiedSummary)||null==(n=o.discrepancies)?void 0:n.length)?c:0,h=(null!=(d=null==t?void 0:t.can.length)?d:0)+(null!=(u=null==t?void 0:t.scope.length)?u:0)+(null!=(p=null==t?void 0:t.cannot.length)?p:0);return!!(e.summary||m>0||x>0||h>0)}function w(e){switch(e){case"agent_access":return(0,r.jsx)(n.A,{size:10});case"fund":return(0,r.jsx)(o.A,{size:10});case"send":default:return(0,r.jsx)(l.A,{size:10});case"action":return(0,r.jsx)(i.A,{size:10})}}function j(e){switch(e){case"agent_access":return"ACCESS";case"fund":return"FUND";case"send":return"SEND";case"action":return"ACTION";default:return e.toUpperCase().replace(/_/g," ")}}function N(e,t){var a,r;let s="one_shot_read"===(r=t.approvalScope)||"session_token"===r?r:null;return s||("DENY_EXCLUDED_FIELD"===t.escalationReason||"number"==typeof(null==(a=t.credentialAccess)?void 0:a.maxReads)&&1===t.credentialAccess.maxReads?"one_shot_read":"auth"===e.type||"agent_access"===e.type||"action"===e.type?"session_token":null)}function S(e){return"one_shot_read"===e?"temp":""}function C(){return{background:"var(--color-surface, #ffffff)",color:"var(--color-text, #0a0a0a)",border:"1px solid var(--color-border, #d4d4d8)"}}function A(e){let{icon:t,label:a,children:s,muted:n}=e;return(0,r.jsxs)("div",{className:"flex gap-2 py-1.5",style:{opacity:n?.7:1},children:[(0,r.jsx)("div",{className:"shrink-0 mt-0.5",style:{color:"var(--color-text-muted, #6b7280)"},children:t}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"font-mono text-[8px] font-bold tracking-[0.15em] uppercase mb-1",style:{color:"var(--color-text-faint, #9ca3af)"},children:a}),(0,r.jsx)("div",{className:"font-mono text-[10px]",style:{color:"var(--color-text, #0a0a0a)",fontStyle:n?"italic":void 0},children:s})]})]})}function E(e){var t,a,s,n,o;let{meta:l,readable:x}=e,h=l.verifiedSummary,f=(null!=(o=null==h||null==(t=h.discrepancies)?void 0:t.length)?o:0)>0,v=(null==h||null==(a=h.permissionLabels)?void 0:a.length)?h.permissionLabels:l.permissions||[];return(0,r.jsxs)("div",{className:"px-4 py-3",style:{background:"var(--color-background-alt, #f4f4f5)",borderTop:"1px solid var(--color-border, #e5e5e5)"},children:[f&&(null==h?void 0:h.discrepancies)&&(0,r.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 mb-3",style:{background:"color-mix(in srgb, var(--color-warning, #f59e0b) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--color-warning, #f59e0b) 30%, transparent)"},children:[(0,r.jsx)(c.A,{size:12,className:"shrink-0 mt-0.5",style:{color:"var(--color-warning, #f59e0b)"}}),(0,r.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text, #0a0a0a)"},children:h.discrepancies.map((e,t)=>(0,r.jsxs)("div",{className:"mb-1 last:mb-0",children:[(0,r.jsx)("span",{className:"font-bold uppercase text-[8px] mr-1",style:{color:"critical"===e.severity?"var(--color-danger, #ef4444)":"warning"===e.severity?"var(--color-warning, #f59e0b)":"var(--color-text-muted, #6b7280)"},children:e.severity}),e.field,": agent says “",e.agentClaim,"”, actual: ",e.actual]},t))})]}),l.summary&&(0,r.jsxs)(A,{icon:(0,r.jsx)(d.A,{size:10}),label:"AGENT SAYS",muted:!0,children:["“",l.summary,"”"]}),(l.profile||(null==x?void 0:x.profileLabel))&&(0,r.jsxs)(A,{icon:(0,r.jsx)(i.A,{size:10}),label:"PROFILE",children:[(0,r.jsx)("span",{className:"font-bold",children:(null==(s=l.profile)?void 0:s.displayName)||(null==x?void 0:x.profileLabel)}),(null==(n=l.profile)?void 0:n.rationale)&&(0,r.jsxs)("span",{className:"ml-1",style:{color:"var(--color-text-muted, #6b7280)"},children:["— ",l.profile.rationale]})]}),v.length>0&&(0,r.jsx)(A,{icon:(0,r.jsx)(u.A,{size:10}),label:"PERMISSIONS",children:(0,r.jsx)("div",{className:"flex flex-wrap gap-1",children:v.map((e,t)=>(0,r.jsx)("span",{className:"px-1.5 py-0.5 text-[8px] font-bold",style:{background:"var(--color-border, #e5e5e5)",color:"var(--color-text-muted, #6b7280)"},children:e},t))})}),x&&(0,r.jsxs)(r.Fragment,{children:[x.can.length>0&&(0,r.jsx)(A,{icon:(0,r.jsx)(i.A,{size:10}),label:"CAN",children:x.can.join(", ")}),x.cannot.length>0&&(0,r.jsx)(A,{icon:(0,r.jsx)(p.A,{size:10}),label:"CANNOT",children:x.cannot.join("; ")}),x.scope.length>0&&(0,r.jsx)(A,{icon:(0,r.jsx)(d.A,{size:10}),label:"SCOPE",children:x.scope.join(", ")}),(0,r.jsxs)(A,{icon:(0,r.jsx)(m.A,{size:10}),label:"EXPIRY / RISK",children:[x.expiresIn," \xb7 ",x.riskHint]})]})]})}function P(e){let{request:t,resolveAction:a,actionLoading:n,showBorder:o,bulkLocked:l=!1}=e,[i,c]=(0,s.useState)(!1),[u,A]=(0,s.useState)(!1),P=n==="resolve-".concat(t.id)||n==="approve-".concat(t.id),T=n==="reject-".concat(t.id),I=P||T||l,O=b(t),z=N(t,O),_=y(t),R=_?"var(--color-warning, #f59e0b)":"var(--color-danger, #ef4444)";return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3",style:{borderBottom:o&&!i?"1px solid var(--color-border, #e5e5e5)":void 0,borderLeft:"3px solid ".concat(R),background:"var(--color-surface, #ffffff)"},children:[(0,r.jsxs)("div",{className:"flex items-center gap-1 px-1.5 py-0.5 shrink-0",style:{background:"var(--color-background-alt, #f4f4f5)",border:"1px solid var(--color-border, #e5e5e5)",color:"var(--color-text-muted, #6b7280)"},children:[w(t.type),(0,r.jsx)("span",{className:"font-mono text-[8px] font-bold tracking-wider uppercase",children:j(t.type)})]}),"one_shot_read"===z&&(0,r.jsx)("span",{className:"px-1.5 py-0.5 font-mono text-[8px] font-bold tracking-[0.12em] shrink-0",style:C(),children:S(z)}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"font-mono text-[10px] truncate flex items-center gap-1.5",style:{color:"var(--color-text, #0a0a0a)"},children:[g(t),_&&(0,r.jsx)("span",{className:"shrink-0 px-1 py-0 text-[7px] font-bold tracking-wider uppercase",style:{background:"color-mix(in srgb, var(--color-warning, #f59e0b) 15%, transparent)",color:"var(--color-warning, #f59e0b)",border:"1px solid color-mix(in srgb, var(--color-warning, #f59e0b) 30%, transparent)"},children:"MISMATCH"})]}),(0,r.jsxs)("div",{className:"font-mono text-[8px] mt-0.5 flex items-center gap-1",style:{color:"var(--color-text-faint, #9ca3af)"},children:[(0,r.jsx)(m.A,{size:7}),function(e){let t=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(t<1)return"just now";if(t<60)return"".concat(t,"m ago");let a=Math.floor(t/60);return a<24?"".concat(a,"h ago"):"".concat(Math.floor(a/24),"d ago")}(t.createdAt)]})]}),k(O,t.humanSummary)&&(0,r.jsxs)("button",{onClick:()=>c(!i),className:"flex items-center gap-1 shrink-0 hover:opacity-70",style:{background:"none",border:"none",cursor:"pointer",color:"var(--color-text-muted, #6b7280)",padding:"2px 4px"},children:[(0,r.jsx)(d.A,{size:10}),i?(0,r.jsx)(x.A,{size:10}):(0,r.jsx)(h.A,{size:10})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[(0,r.jsx)(v.$n,{variant:"primary",size:"sm",onClick:()=>a(t.id,!0),disabled:I,loading:P,icon:P?void 0:(0,r.jsx)(f.A,{size:10}),className:"h-7 px-2",children:"APPROVE"}),(0,r.jsx)(v.$n,{variant:"danger",size:"sm",onClick:()=>a(t.id,!1),disabled:I,loading:T,icon:T?void 0:(0,r.jsx)(p.A,{size:10}),className:"h-7 px-2",children:"REJECT"})]})]}),(0,r.jsx)("div",{style:{display:"grid",gridTemplateRows:i?"1fr":"0fr",transition:"grid-template-rows 150ms ease",borderLeft:"3px solid ".concat(R),borderBottom:o&&i?"1px solid var(--color-border, #e5e5e5)":void 0},children:(0,r.jsx)("div",{style:{overflow:"hidden"},children:i&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(E,{meta:O,readable:t.humanSummary}),(0,r.jsxs)("div",{className:"px-4 pb-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,r.jsx)("button",{onClick:()=>A(e=>!e),className:"font-mono text-[9px] underline text-[var(--color-text-muted,#6b7280)]",children:u?"Hide raw details":"Show raw details"}),u&&(0,r.jsx)("pre",{className:"mt-2 p-2 text-[9px] overflow-x-auto border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)]",children:t.rawPayload||t.metadata||"{}"})]})]})})})]})}let T=e=>{let{requests:t,resolveAction:a,actionLoading:n}=e,[o,l]=(0,s.useState)(!1),[i,c]=(0,s.useState)(!1),[u,m]=(0,s.useState)(!1),[A,T]=(0,s.useState)(!1),[I,O]=(0,s.useState)(!1),[z,_]=(0,s.useState)(null),R=t.filter(e=>"pending"===e.status&&"notify"!==e.type),D=(0,s.useRef)(null);if((0,s.useEffect)(()=>{if(!o)return;let e=e=>{D.current&&!D.current.contains(e.target)&&l(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[o]),(0,s.useEffect)(()=>{R.length<=1&&l(!1)},[R.length]),(0,s.useEffect)(()=>{0===R.length&&_(null)},[R.length]),0===R.length)return null;let M=R[0],L=b(M),q=N(M,L),K=n==="resolve-".concat(M.id)||n==="approve-".concat(M.id),H=n==="reject-".concat(M.id),F=K||H||A||I,W=y(M),U=W?"var(--color-warning, #f59e0b)":"var(--color-danger, #ef4444)",B=async e=>{if(A||I)return;let t=R.map(e=>e.id);if(0===t.length)return;let r=e?"APPROVE ALL":"REJECT ALL";_(null),e?T(!0):O(!0),l(!1);let s=[];for(let r of t)try{let t=await a(r,e),n=function(e){return e&&"object"==typeof e?!1!==e.success?null:"string"==typeof e.message&&e.message.trim().length>0?e.message.trim():"string"==typeof e.error&&e.error.trim().length>0?e.error.trim():"request failed":null}(t);n&&s.push({id:r,message:n})}catch(e){s.push({id:r,message:e instanceof Error?e.message:"request failed"})}if(s.length>0){let e=s.slice(0,3).map(e=>"".concat(e.id," (").concat(e.message,")")).join(", "),t=s.length>3?" +".concat(s.length-3," more"):"";_("".concat(r," completed with ").concat(s.length," failed: ").concat(e).concat(t))}e?T(!1):O(!1)},V=async()=>B(!0),G=async()=>B(!1);return(0,r.jsxs)("div",{className:"relative z-30",ref:D,children:[o&&R.length>1&&(0,r.jsxs)("div",{className:"absolute bottom-full left-0 right-0",style:{maxHeight:"320px",overflowY:"auto",border:"1px solid var(--color-border, #e5e5e5)",borderBottom:"none"},children:[(0,r.jsx)("div",{className:"px-4 py-2 sticky top-0 z-10",style:{background:"var(--color-background-alt, #f4f4f5)",borderBottom:"1px solid var(--color-border, #e5e5e5)"},children:(0,r.jsxs)("span",{className:"font-mono text-[8px] font-bold tracking-[0.2em] uppercase",style:{color:"var(--color-text-faint, #9ca3af)"},children:["QUEUED ACTIONS (",R.length-1,")"]})}),R.slice(1).map((e,t)=>(0,r.jsx)(P,{request:e,resolveAction:a,actionLoading:n,showBorder:t<R.length-2,bulkLocked:A||I},e.id))]}),(0,r.jsxs)("div",{style:{background:"var(--color-surface, #ffffff)",borderTop:"1px solid var(--color-border, #e5e5e5)",borderBottom:"1px solid var(--color-border, #e5e5e5)"},children:[(0,r.jsxs)("div",{className:"flex items-center h-14 px-2 gap-2 sm:px-4 sm:gap-3 max-w-full overflow-hidden",style:{borderLeft:"3px solid ".concat(U)},children:[(0,r.jsx)("div",{className:"flex items-center justify-center shrink-0",style:{minWidth:"24px",height:"22px",padding:"0 6px",background:"var(--color-danger, #ef4444)",color:"#ffffff",fontFamily:"monospace",fontSize:"11px",fontWeight:700,letterSpacing:"0.05em"},children:R.length}),(0,r.jsx)("span",{className:"font-mono text-[10px] font-bold tracking-[0.2em] uppercase shrink-0 hidden sm:inline",style:{color:"var(--color-danger, #ef4444)"},children:"PENDING"}),(0,r.jsx)("div",{className:"w-px h-6 shrink-0 hidden sm:block",style:{background:"var(--color-border, #e5e5e5)"}}),(0,r.jsxs)("div",{className:"hidden sm:flex items-center gap-1 px-1.5 py-0.5 shrink-0",style:{background:"var(--color-background-alt, #f4f4f5)",border:"1px solid var(--color-border, #e5e5e5)",color:"var(--color-text-muted, #6b7280)"},children:[w(M.type),(0,r.jsx)("span",{className:"font-mono text-[8px] font-bold tracking-[0.15em] uppercase",children:j(M.type)})]}),"one_shot_read"===q&&(0,r.jsx)("span",{className:"hidden sm:inline px-1.5 py-0.5 font-mono text-[8px] font-bold tracking-[0.12em] shrink-0",style:C(),children:S(q)}),(0,r.jsxs)("div",{className:"font-mono text-[11px] truncate min-w-0 flex-1 flex items-center gap-1.5",style:{color:"var(--color-text, #0a0a0a)"},children:[g(M),W&&(0,r.jsx)("span",{className:"shrink-0 px-1 py-0 text-[7px] font-bold tracking-wider uppercase",style:{background:"color-mix(in srgb, var(--color-warning, #f59e0b) 15%, transparent)",color:"var(--color-warning, #f59e0b)",border:"1px solid color-mix(in srgb, var(--color-warning, #f59e0b) 30%, transparent)"},children:"MISMATCH"})]}),k(L,M.humanSummary)&&(0,r.jsxs)("button",{onClick:()=>c(!i),className:"flex items-center gap-1 shrink-0 hover:opacity-70",style:{background:"none",border:"none",cursor:"pointer",color:"var(--color-text-muted, #6b7280)",padding:"2px 4px"},children:[(0,r.jsx)(d.A,{size:10}),i?(0,r.jsx)(x.A,{size:10}):(0,r.jsx)(h.A,{size:10})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[R.length>1&&(0,r.jsx)(v.$n,{variant:"secondary",size:"sm",onClick:()=>void V(),disabled:F,loading:A,icon:A?void 0:(0,r.jsx)(f.A,{size:10}),className:"h-7 px-2",children:"APPROVE ALL"}),R.length>1&&(0,r.jsx)(v.$n,{variant:"danger",size:"sm",onClick:()=>void G(),disabled:F,loading:I,icon:I?void 0:(0,r.jsx)(p.A,{size:10}),className:"h-7 px-2",children:"REJECT ALL"}),(0,r.jsx)(v.$n,{variant:"primary",size:"sm",onClick:()=>a(M.id,!0),disabled:F,loading:K,icon:K?void 0:(0,r.jsx)(f.A,{size:10}),className:"h-7 px-2",children:"APPROVE"}),(0,r.jsx)(v.$n,{variant:"danger",size:"sm",onClick:()=>a(M.id,!1),disabled:F,loading:H,icon:H?void 0:(0,r.jsx)(p.A,{size:10}),className:"h-7 px-2",children:"REJECT"})]}),R.length>1&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"w-px h-6 shrink-0",style:{background:"var(--color-border, #e5e5e5)"}}),(0,r.jsxs)("button",{onClick:()=>l(!o),className:"flex items-center gap-1.5 shrink-0 hover:opacity-70",style:{background:"none",border:"none",cursor:"pointer",color:"var(--color-text-muted, #6b7280)",padding:"4px 8px"},children:[(0,r.jsxs)("span",{className:"font-mono text-[8px] font-bold tracking-[0.15em] uppercase",children:["+",R.length-1," MORE"]}),o?(0,r.jsx)(h.A,{size:12}):(0,r.jsx)(x.A,{size:12})]})]})]}),z&&(0,r.jsx)("div",{className:"px-4 py-2 font-mono text-[9px]",style:{color:"var(--color-danger, #ef4444)",background:"color-mix(in srgb, var(--color-danger, #ef4444) 8%, transparent)",borderTop:"1px solid color-mix(in srgb, var(--color-danger, #ef4444) 30%, transparent)"},children:z}),(0,r.jsx)("div",{style:{display:"grid",gridTemplateRows:i?"1fr":"0fr",transition:"grid-template-rows 150ms ease",borderLeft:"3px solid ".concat(U)},children:(0,r.jsx)("div",{style:{overflow:"hidden"},children:i&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(E,{meta:L,readable:M.humanSummary}),(0,r.jsxs)("div",{className:"px-4 pb-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,r.jsx)("button",{onClick:()=>m(e=>!e),className:"font-mono text-[9px] underline text-[var(--color-text-muted,#6b7280)]",children:u?"Hide raw details":"Show raw details"}),u&&(0,r.jsx)("pre",{className:"mt-2 p-2 text-[9px] overflow-x-auto border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)]",children:M.rawPayload||M.metadata||"{}"})]})]})})})]})]})}},17369:(e,t,a)=>{a.d(t,{Q:()=>s});var r=a(64558);let s=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=new r.xI.Renderer,s=a.link;return a.heading=e=>{let{text:t,depth:a}=e,r=t.replace(/<[^>]*>/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");return"<h".concat(a,' id="').concat(r,'">').concat(t,"</h").concat(a,">")},t.rewriteLinkHref&&(a.link=function(e){var a;let r=null==(a=t.rewriteLinkHref)?void 0:a.call(t,e.href);return r?s.call(this,{...e,href:r}):s.call(this,e)}),r.xI.parse(e,{async:!1,renderer:a})}},26399:(e,t,a)=>{a.d(t,{v:()=>g});var r=a(95155),s=a(12115),n=a(47650),o=a(85998),l=a(26983),i=a(65229),c=a(53667);function d(e){return"string"==typeof e?e.trim():"number"==typeof e?String(e):""}function u(e){let t=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(t<1)return"just now";if(t<60)return"".concat(t,"m ago");let a=Math.floor(t/60);return a<24?"".concat(a,"h ago"):"".concat(Math.floor(a/24),"d ago")}function p(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t?t:{}}catch(e){return{}}}function m(e){var t,a;let r=p(e.metadata),s="one_shot_read"===(a=r.approvalScope)||"session_token"===a?a:null;return s||("DENY_EXCLUDED_FIELD"===r.escalationReason||"number"==typeof(null==(t=r.credentialAccess)?void 0:t.maxReads)&&1===r.credentialAccess.maxReads?"one_shot_read":"auth"===e.type||"agent_access"===e.type||"action"===e.type?"session_token":null)}function x(e){return"one_shot_read"===e?"temp":""}function h(){return{background:"var(--color-surface, #ffffff)",color:"var(--color-text, #0a0a0a)",border:"1px solid var(--color-border, #d4d4d8)"}}function f(e){var t;let a=p(e.metadata);if(null==(t=a.verifiedSummary)?void 0:t.oneLiner)return a.verifiedSummary.oneLiner;if(a.summary)return a.summary;if(("auth"===e.type||"agent_access"===e.type)&&"number"==typeof a.limit){let e=a.agentId||"agent";return!1===a.requestedLimitExplicit?"".concat(e," requesting access"):"".concat(e," requesting ").concat(a.limit," ETH access")}return e.type}function v(e){return"pending"===e.status?"PENDING":"approved"===e.status?"APPROVED":"rejected"===e.status?"REJECTED":"notify"===e.type?"ALERT":"INFO"}function b(e){return"pending"===e.status?{bg:"color-mix(in srgb, var(--color-warning,#ff4d00) 15%, transparent)",fg:"var(--color-warning,#ff4d00)",border:"color-mix(in srgb, var(--color-warning,#ff4d00) 35%, transparent)"}:"approved"===e.status?{bg:"color-mix(in srgb, var(--color-success,#10b981) 15%, transparent)",fg:"var(--color-success,#10b981)",border:"color-mix(in srgb, var(--color-success,#10b981) 35%, transparent)"}:"rejected"===e.status?{bg:"color-mix(in srgb, var(--color-danger,#ef4444) 15%, transparent)",fg:"var(--color-danger,#ef4444)",border:"color-mix(in srgb, var(--color-danger,#ef4444) 35%, transparent)"}:{bg:"var(--color-background-alt,#f4f4f5)",fg:"var(--color-text-muted,#6b7280)",border:"var(--color-border,#d4d4d8)"}}let g=e=>{let{notifications:t,onDismiss:a,compact:p=!1}=e,[g,k]=(0,s.useState)(!1),[w,j]=(0,s.useState)(!1),[N,S]=(0,s.useState)(new Set),[C,A]=(0,s.useState)(null),E=e=>{let t=d(e.id);return t?"id:".concat(t):"fallback:".concat(e.type,":").concat(e.createdAt,":").concat(f(e))},P=(0,s.useMemo)(()=>t.filter(e=>!N.has(E(e))),[t,N]),T=(0,s.useMemo)(()=>P.filter(e=>"pending"===e.status&&"notify"!==e.type).length,[P]);return(0,s.useEffect)(()=>(j(!0),()=>j(!1)),[]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("button",{type:"button",onClick:()=>k(e=>!e),className:"".concat(p?"p-0":"p-1.5"," text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-surface,#ffffff)]/50 transition-colors rounded"),title:"Notifications","aria-label":"Notifications",children:(0,r.jsx)(o.A,{size:p?10:14})}),T>0&&(0,r.jsx)("span",{className:"absolute -top-0.5 -right-0.5 min-w-[14px] h-[14px] bg-[var(--color-warning,#ff4d00)] text-white font-mono text-[7px] font-bold flex items-center justify-center px-0.5",children:T>9?"9+":T})]}),w&&(0,n.createPortal)((0,r.jsxs)(r.Fragment,{children:[g&&(0,r.jsx)("button",{type:"button","aria-label":"Close notifications",onClick:()=>k(!1),className:"fixed inset-0 z-30 bg-[var(--color-text,#0a0a0a)]/20"}),(0,r.jsx)("div",{className:"fixed inset-y-0 right-0 z-40",children:(0,r.jsx)(c._s,{isOpen:g,onClose:()=>k(!1),title:"NOTIFICATIONS",subtitle:"Approvals + alerts",width:"sm",children:0===P.length?(0,r.jsxs)("div",{className:"py-8 text-center tyvek-label corner-marks mx-2",children:[(0,r.jsx)(o.A,{size:24,className:"mx-auto mb-2 text-[var(--color-text-faint,#9ca3af)]"}),(0,r.jsx)("div",{className:"label-specimen text-[var(--color-text-muted,#6b7280)]",children:"NO ALERTS"})]}):(0,r.jsx)("div",{className:"space-y-2",children:P.map(e=>{let t=m(e);return(0,r.jsxs)("div",{className:"w-full text-left flex items-start gap-2 p-3 clip-specimen-sm border-mech bg-[var(--color-surface-alt,#fafafa)] group cursor-pointer corner-marks transition-all hover:shadow-mech-hover",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>A(e),className:"flex-1 min-w-0 text-left",title:"View details",children:[(0,r.jsxs)("div",{className:"mb-1.5 flex items-center gap-1",children:[(0,r.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 font-mono text-[7px] font-bold tracking-[0.15em] uppercase",style:{background:b(e).bg,color:b(e).fg,border:"1px solid ".concat(b(e).border)},children:v(e)}),"one_shot_read"===t&&(0,r.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 font-mono text-[7px] font-bold tracking-[0.15em]",style:h(),children:x(t)})]}),(0,r.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-text,#0a0a0a)]",children:f(e)}),(0,r.jsxs)("div",{className:"font-mono text-[8px] text-[var(--color-text-faint,#9ca3af)] flex items-center gap-1 mt-1",children:[(0,r.jsx)(l.A,{size:7}),u(e.createdAt)]})]}),(0,r.jsx)("button",{type:"button",onClick:()=>{let t=E(e);S(e=>{let a=new Set(e);return a.add(t),a});let r=d(e.id);r&&a(r)},className:"p-1 hover:bg-[var(--color-background-alt,#e5e5e5)] transition-colors shrink-0",title:"Dismiss",children:(0,r.jsx)(i.A,{size:10,className:"text-[var(--color-text-muted,#6b7280)]"})})]},E(e))})})})})]}),document.body),(0,r.jsx)(y,{notification:C,onClose:()=>A(null)})]})};function y(e){let{notification:t,onClose:a}=e,[n,o]=s.useState(null);s.useEffect(()=>{t&&o(t)},[t]);let i=t||n,d=i?p(i.metadata):{},f=null==i?void 0:i.humanSummary,g=i?b(i):{bg:"",fg:"",border:""},y=i?m(i):null,k=d.agentId||"unknown";return(0,r.jsx)(c.aF,{isOpen:!!t,onClose:a,title:(null==f?void 0:f.actionLabel)||(null==i?void 0:i.type.toUpperCase())||"DETAILS",size:"sm",children:(0,r.jsxs)("div",{className:"space-y-4",children:[i&&(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 font-mono text-[7px] font-bold tracking-[0.15em] uppercase",style:{background:g.bg,color:g.fg,border:"1px solid ".concat(g.border)},children:v(i)}),"one_shot_read"===y&&(0,r.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 font-mono text-[7px] font-bold tracking-[0.15em]",style:h(),children:x(y)})]}),(0,r.jsxs)("span",{className:"font-mono text-[8px] text-[var(--color-text-faint,#9ca3af)] flex items-center gap-1",children:[(0,r.jsx)(l.A,{size:7}),u(i.createdAt)]})]}),(null==f?void 0:f.oneLiner)&&(0,r.jsx)("div",{className:"text-[10px] text-[var(--color-text-muted,#6b7280)] tracking-wider",children:f.oneLiner}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,r.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Agent"}),(0,r.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider text-right",children:k})]}),(0,r.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,r.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Type"}),(0,r.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] font-bold tracking-wider text-right",children:null==i?void 0:i.type})]}),"one_shot_read"===y&&(0,r.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,r.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Token"}),(0,r.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] font-bold tracking-wider text-right",children:x(y)})]}),(null==f?void 0:f.profileLabel)&&(0,r.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,r.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Profile"}),(0,r.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider text-right",children:f.profileLabel})]}),(null==f?void 0:f.riskHint)&&(0,r.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,r.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Risk"}),(0,r.jsx)("span",{className:"text-[10px] font-bold tracking-wider ".concat(f.riskHint.toLowerCase().includes("high")?"text-[var(--color-danger,#ef4444)]":f.riskHint.toLowerCase().includes("medium")?"text-[var(--color-warning,#ff4d00)]":"text-[var(--color-text,#0a0a0a)]"),children:f.riskHint})]}),(null==f?void 0:f.expiresIn)&&(0,r.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,r.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Expires"}),(0,r.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider text-right",children:f.expiresIn})]}),"number"==typeof d.limit&&(0,r.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,r.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Limit"}),(0,r.jsxs)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] font-bold tracking-wider text-right",children:[d.limit," ETH"]})]}),(0,r.jsxs)("div",{className:"text-[7px] text-[var(--color-text-faint,#9ca3af)] tracking-widest break-all",children:["ID: ",null==i?void 0:i.id]})]}),(null==f?void 0:f.can)&&f.can.length>0&&(0,r.jsxs)("div",{className:"border-t border-[var(--color-border,#d4d4d8)] pt-3",children:[(0,r.jsx)("div",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase mb-1.5",children:"Permissions"}),(0,r.jsx)("div",{className:"space-y-1",children:f.can.map(e=>(0,r.jsx)("div",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider pl-2 border-l-2 border-[var(--color-border,#d4d4d8)]",children:e},e))})]}),(null==f?void 0:f.cannot)&&f.cannot.length>0&&(0,r.jsxs)("div",{className:"border-t border-[var(--color-border,#d4d4d8)] pt-3",children:[(0,r.jsx)("div",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase mb-1.5",children:"Restrictions"}),(0,r.jsx)("div",{className:"space-y-1",children:f.cannot.map(e=>(0,r.jsx)("div",{className:"text-[10px] text-[var(--color-danger,#ef4444)] tracking-wider pl-2 border-l-2 border-[var(--color-danger,#ef4444)]/30",children:e},e))})]}),(null==f?void 0:f.scope)&&f.scope.length>0&&(0,r.jsxs)("div",{className:"border-t border-[var(--color-border,#d4d4d8)] pt-3",children:[(0,r.jsx)("div",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase mb-1.5",children:"Scope"}),(0,r.jsx)("div",{className:"space-y-1",children:f.scope.map(e=>(0,r.jsx)("div",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider pl-2 border-l-2 border-[var(--color-border,#d4d4d8)]",children:e},e))})]})]})})}},43721:(e,t,a)=>{a.d(t,{Cw:()=>n,md:()=>s,uX:()=>r});let r={WORKSPACE_CREATED:"workspace:created",WORKSPACE_DELETED:"workspace:deleted",WORKSPACE_UPDATED:"workspace:updated",APP_ADDED:"app:added",APP_REMOVED:"app:removed",APP_UPDATED:"app:updated",STATE_REQUEST:"workspace:state:request",STATE_RESPONSE:"workspace:state:response",WORKSPACE_SAVE:"workspace:save",WORKSPACE_LOAD:"workspace:load",WORKSPACE_EXPORT:"workspace:export",WORKSPACE_IMPORT:"workspace:import"};function s(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"ui";return{type:e,timestamp:Date.now(),source:a,data:t}}let n={TOKEN_CREATED:"token:created",TOKEN_REVOKED:"token:revoked",TOKEN_SPENT:"token:spent",WALLET_CREATED:"wallet:created",WALLET_CHANGED:"wallet:changed",ASSET_CHANGED:"asset:changed",BALANCE_UPDATED:"balance:updated",TX_CREATED:"tx:created",ACTION_CREATED:"action:created",ACTION_RESOLVED:"action:resolved",CREDENTIAL_CHANGED:"credential:changed",CREDENTIAL_ACCESSED:"credential:accessed",SECRET_ACCESSED:"secret:accessed"}},47993:(e,t,a)=>{a.d(t,{u:()=>r,Rn:()=>s,l3:()=>n,Dw:()=>u,VB:()=>l,zo:()=>i});let r={login:{url:"url",username:"username",password:"password",notes:"notes",totp:"totp"},card:{cardholder:"cardholder",brand:"brand",billingZip:"billing_zip",last4:"last4",number:"number",cvv:"cvv",expiry:"expiry",notes:"notes"},sso:{website:"website",provider:"provider",identifier:"identifier"},note:{content:"content"},plain_note:{content:"content"},hot_wallet:{address:"address",privateKey:"private_key",chain:"chain"},apikey:{key:"key",value:"value"},oauth2:{accessToken:"access_token",refreshToken:"refresh_token",clientId:"client_id",clientSecret:"client_secret",tokenEndpoint:"token_endpoint",scopes:"scopes",authMethod:"auth_method",expiresAt:"expires_at"},ssh:{privateKey:"private_key",passphrase:"passphrase",publicKey:"public_key",fingerprint:"fingerprint",keyType:"key_type",hosts:"hosts"},gpg:{privateKey:"private_key",publicKey:"public_key",fingerprint:"fingerprint",keyId:"key_id",uidEmail:"uid_email",expiresAt:"expires_at"},custom:{value:"value"}},s={login:[{key:r.login.url,label:"URL",type:"text",sensitive:!1},{key:r.login.username,label:"Username",type:"text",sensitive:!1,requiredOnCreate:!0},{key:r.login.password,label:"Password",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:r.login.notes,label:"Notes",type:"text",sensitive:!0},{key:r.login.totp,label:"TOTP",type:"secret",sensitive:!0,aliases:["otp"]}],card:[{key:r.card.cardholder,label:"Cardholder",type:"text",sensitive:!1,requiredOnCreate:!0},{key:r.card.brand,label:"Brand",type:"text",sensitive:!1},{key:r.card.billingZip,label:"Billing ZIP",type:"text",sensitive:!1},{key:r.card.last4,label:"Last 4",type:"text",sensitive:!1},{key:r.card.number,label:"Number",type:"text",sensitive:!0,requiredOnCreate:!0},{key:r.card.cvv,label:"CVV",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:r.card.expiry,label:"Expiry",type:"text",sensitive:!0,requiredOnCreate:!0},{key:r.card.notes,label:"Notes",type:"text",sensitive:!0}],sso:[{key:r.sso.website,label:"Website",type:"text",sensitive:!1,requiredOnCreate:!0},{key:r.sso.provider,label:"Provider",type:"text",sensitive:!1,requiredOnCreate:!0},{key:r.sso.identifier,label:"Identifier",type:"text",sensitive:!1}],note:[{key:r.note.content,label:"Content",type:"text",sensitive:!0,requiredOnCreate:!0,aliases:["value"]}],plain_note:[{key:r.plain_note.content,label:"Content",type:"text",sensitive:!1,requiredOnCreate:!0,aliases:["value"]}],hot_wallet:[{key:r.hot_wallet.address,label:"Address",type:"text",sensitive:!1,requiredOnCreate:!0},{key:r.hot_wallet.chain,label:"Chain",type:"text",sensitive:!1,requiredOnCreate:!0},{key:r.hot_wallet.privateKey,label:"Private Key",type:"secret",sensitive:!0,requiredOnCreate:!0}],api:[],apikey:[{key:r.apikey.key,label:"Key",type:"text",sensitive:!1,requiredOnCreate:!0},{key:r.apikey.value,label:"Value",type:"secret",sensitive:!0,requiredOnCreate:!0}],custom:[],passkey:[],oauth2:[{key:r.oauth2.tokenEndpoint,label:"Token Endpoint",type:"url",sensitive:!1,requiredOnCreate:!0},{key:r.oauth2.scopes,label:"Scopes",type:"text",sensitive:!1},{key:r.oauth2.authMethod,label:"Auth Method",type:"text",sensitive:!1},{key:r.oauth2.expiresAt,label:"Expires At",type:"number",sensitive:!1,requiredOnCreate:!0},{key:r.oauth2.accessToken,label:"Access Token",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:r.oauth2.refreshToken,label:"Refresh Token",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:r.oauth2.clientId,label:"Client ID",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:r.oauth2.clientSecret,label:"Client Secret",type:"secret",sensitive:!0,requiredOnCreate:!0}],ssh:[{key:r.ssh.fingerprint,label:"Fingerprint",type:"text",sensitive:!1},{key:r.ssh.keyType,label:"Key Type",type:"text",sensitive:!1},{key:r.ssh.hosts,label:"Hosts",type:"text",sensitive:!1},{key:r.ssh.privateKey,label:"Private Key",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:r.ssh.passphrase,label:"Passphrase",type:"secret",sensitive:!0},{key:r.ssh.publicKey,label:"Public Key",type:"text",sensitive:!1}],gpg:[{key:r.gpg.fingerprint,label:"Fingerprint",type:"text",sensitive:!1},{key:r.gpg.keyId,label:"Key ID",type:"text",sensitive:!1},{key:r.gpg.uidEmail,label:"UID Email",type:"email",sensitive:!1},{key:r.gpg.expiresAt,label:"Expires At",type:"text",sensitive:!1},{key:r.gpg.privateKey,label:"Private Key",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:r.gpg.publicKey,label:"Public Key",type:"text",sensitive:!1}]},n=r.note.content,o={login:r.login.password,card:r.card.number,sso:r.sso.website,note:r.note.content,plain_note:r.plain_note.content,hot_wallet:r.hot_wallet.privateKey,api:r.apikey.value,apikey:r.apikey.value,custom:r.custom.value,passkey:r.ssh.privateKey,oauth2:r.oauth2.accessToken,ssh:r.ssh.privateKey,gpg:r.gpg.privateKey};function l(e){return d(e)&&o[e]||"value"}function i(e){if(!d(e))return;let t=l(e);return s[e].find(e=>e.key===t)}let c=Object.fromEntries(Object.entries(s).map(e=>{let[t,a]=e,r=new Map;for(let e of a)for(let t of(r.set(e.key.toLowerCase(),e.key),e.aliases||[]))r.set(t.toLowerCase(),e.key);return[t,r]}));function d(e){return Object.prototype.hasOwnProperty.call(s,e)}function u(e,t){let a=t.trim();return a&&d(e)&&c[e].get(a.toLowerCase())||a}},53020:(e,t,a)=>{a.d(t,{i:()=>U});var r=a(95155),s=a(12115),n=a(75882),o=a(89715),l=a(5370),i=a(89559),c=a(78519),d=a(34661),u=a(73155),p=a(66721),m=a(35626),x=a(35299),h=a(57828),f=a(21786),v=a(53667),b=a(90960),g=a(66509),y=a(17369),k=a(47993),w=a(6345);let j=new Set(["SHA1","SHA256","SHA512"]);function N(e){let t=e.replace(/\s+/g,"").toUpperCase();if(t.length<8||!/^[A-Z2-7]+$/.test(t))throw Error("Invalid TOTP secret");return t}function S(e){let t=e.trim().toLowerCase();return t.startsWith("otpauth://totp/")?"otpauth":t.startsWith("otpauth-migration://")?"otpauth-migration":"unknown"}let C=e=>{let{isEdit:t,hasExistingTotp:a,onIntentChange:n,onSecretChange:o}=e,[l,i]=(0,s.useState)("manual"),[c,d]=(0,s.useState)(""),[u,p]=(0,s.useState)(""),[m,x]=(0,s.useState)(null),[h,f]=(0,s.useState)(null),[b,g]=(0,s.useState)(!1),y=(0,s.useRef)(0),k=(0,s.useMemo)(()=>"otpauth-migration"===S(u),[u]),w=e=>{if(!e.trim()){x(null),f(null),o("",!1);return}let t=S(e);if("otpauth-migration"===t){x(null),f(null),o("",!1);return}if("otpauth"!==t){x(null),f("Unsupported QR/setup payload. Use an otpauth://totp link."),o("",!1);return}try{(e=>{x(e),f(null),n("replace"),o(e.secret,!0)})(function(e){let t=new URL(e.trim());if("otpauth:"!==t.protocol)throw Error("Not an otpauth URI");if("totp"!==t.hostname)throw Error("Only TOTP is supported");let a=t.searchParams.get("secret");if(!a)throw Error("Missing secret parameter");let r=t.searchParams.has("digits")?Number.parseInt(t.searchParams.get("digits")||"",10):6,s=t.searchParams.has("period")?Number.parseInt(t.searchParams.get("period")||"",10):30,n=(t.searchParams.get("algorithm")||"SHA1").toUpperCase();if(!j.has(n))throw Error("Unsupported TOTP algorithm: ".concat(n));if(!Number.isInteger(r)||r<6||r>8)throw Error("Invalid TOTP digits: ".concat(r));if(!Number.isInteger(s)||s<15||s>60)throw Error("Invalid TOTP period: ".concat(s));let o=decodeURIComponent(t.pathname.replace(/^\//,""))||void 0,[l,i]=(o||"").includes(":")?(o||"").split(":",2):[void 0,o];return{secret:N(a),issuer:t.searchParams.get("issuer")||l||void 0,account:i||void 0,algorithm:n,digits:r,period:s,label:o}}(e))}catch(e){x(null),f(e instanceof Error?e.message:"Invalid TOTP setup link"),o("",!1)}},C=async e=>{if(!e)return;if(e.size>5242880)return void f("QR image must be 5MB or smaller");let t=++y.current;g(!0),f(null);try{if(!("BarcodeDetector"in window))throw Error("QR decoding not supported in this browser. Paste setup link manually.");let r=new window.BarcodeDetector({formats:["qr_code"]}),s=await createImageBitmap(e);try{var a;if(s.width>4096||s.height>4096)throw Error("QR image dimensions exceed 4096x4096 limit");let e=await r.detect(s);if(y.current!==t)return;let n=(null==(a=e[0])?void 0:a.rawValue)||"";p(n),w(n)}finally{s.close()}}catch(e){if(y.current!==t)return;x(null),f(e instanceof Error?e.message:"Failed to decode QR image")}finally{y.current===t&&g(!1)}};return(0,r.jsxs)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]","data-testid":"totp-setup-panel",children:[t&&a&&(0,r.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,r.jsx)("button",{type:"button",className:"font-mono text-[9px] px-2 py-1 border",onClick:()=>{n("keep"),f(null),o("",!1)},children:"Keep Existing"}),(0,r.jsx)("button",{type:"button",className:"font-mono text-[9px] px-2 py-1 border",onClick:()=>n("replace"),children:"Replace TOTP"}),(0,r.jsx)("button",{type:"button",className:"font-mono text-[9px] px-2 py-1 border",onClick:()=>{n("remove"),x(null),f(null),o("",!0)},children:"Remove TOTP"})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{type:"button",className:"font-mono text-[9px] uppercase px-2 py-1 border",onClick:()=>i("manual"),children:"Manual"}),(0,r.jsx)("button",{type:"button",className:"font-mono text-[9px] uppercase px-2 py-1 border",onClick:()=>i("uri"),children:"Paste Link"}),(0,r.jsx)("button",{type:"button",className:"font-mono text-[9px] uppercase px-2 py-1 border",onClick:()=>i("qr"),children:"Import QR"})]}),"manual"===l&&(0,r.jsx)(v.ks,{label:"TOTP Secret (2FA)",value:c,onChange:e=>(e=>{if(d(e),!e.trim()){x(null),o("",!1);return}try{let t=N(e);f(null),x({secret:t,algorithm:"SHA1",digits:6,period:30}),n("replace"),o(t,!0)}catch(e){x(null),f("Invalid TOTP secret"),o("",!1)}})(e.target.value),placeholder:"Base32 secret (e.g. JBSWY3DPEHPK3PXP)",type:"password"}),"uri"===l&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Setup Link"}),(0,r.jsx)("textarea",{className:"w-full h-24 bg-[var(--color-background-alt,#f4f4f5)] border border-[var(--color-border,#d4d4d8)] font-mono text-sm p-3 resize-none",value:u,onChange:e=>{p(e.target.value),w(e.target.value)},placeholder:"otpauth://totp/...","data-testid":"totp-uri-input"})]}),"qr"===l&&(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("input",{type:"file",accept:"image/png,image/jpeg,image/webp",onChange:e=>{var t;C((null==(t=e.target.files)?void 0:t[0])||null)},"data-testid":"totp-qr-file"}),b&&(0,r.jsx)("p",{className:"font-mono text-[10px]","data-testid":"totp-qr-decoding",children:"Decoding QR…"})]}),k&&(0,r.jsx)("div",{className:"font-mono text-[10px] border p-2","data-testid":"totp-migration-fallback",children:"Google Authenticator migration QR detected. v1 supports standard otpauth:// links only. Use manual setup or account-level QR when available."}),m&&(0,r.jsxs)("div",{className:"font-mono text-[10px] border p-2","data-testid":"totp-preview",children:[(0,r.jsxs)("div",{children:["Issuer: ",m.issuer||"—"]}),(0,r.jsxs)("div",{children:["Account: ",m.account||"—"]}),(0,r.jsxs)("div",{children:["Digits: ",m.digits]}),(0,r.jsxs)("div",{children:["Period: ",m.period,"s"]}),(0,r.jsxs)("div",{children:["Algorithm: ",m.algorithm]})]}),h&&(0,r.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-danger,#ef4444)]","data-testid":"totp-error",children:h})]})},A=e=>(e.split(/\r?\n/).map(e=>e.trim()).find(Boolean)||"").slice(0,48);function E(e){let{type:t,apiKeyName:a,username:r,url:s,noteContent:n,customFieldKey:o,hotWalletChain:l,cardholder:i,cardNumber:c,cardLast4:d,ssoWebsite:u,ssoProvider:p,oauth2TokenEndpoint:m,sshHostsInput:x,gpgKeyId:h,gpgUidEmail:f}=e;return"apikey"===t&&!!a.trim()||"plain_note"===t&&!!n.trim()||"login"===t&&(!!r.trim()||!!s.trim())||"note"===t&&!!n.trim()||"hot_wallet"===t&&(!!l.trim()||!0)||"custom"===t&&!!o.trim()||"card"===t&&(!!(null==i?void 0:i.trim())||!!(null==c?void 0:c.trim())||!!(null==d?void 0:d.trim()))||"sso"===t&&(!!(null==u?void 0:u.trim())||!!(null==p?void 0:p.trim()))||"oauth2"===t&&!!(null==m?void 0:m.trim())||"ssh"===t&&!!(null==x?void 0:x.trim())||"gpg"===t&&(!!(null==h?void 0:h.trim())||!!(null==f?void 0:f.trim()))}let P=k.u.login,T=k.u.card,I=k.u.sso,O=k.u.hot_wallet,z=k.u.apikey,_=k.u.oauth2,R=k.u.ssh,D=k.u.gpg,M={hot_wallet:{label:"Hot Wallet",description:"Generate wallet address + encrypted private key",icon:n.A},plain_note:{label:"Plain Note",description:"Readable note content stored without encryption",icon:o.A},apikey:{label:"API Key",description:"Simple key/value secret",icon:l.A},login:{label:"Login",description:"Websites and app accounts",icon:l.A},sso:{label:"SSO Login",description:"Website + identity provider references",icon:i.A},note:{label:"Secure Note",description:"Private notes and secrets",icon:o.A},card:{label:"Credit Card",description:"Payment cards and details",icon:c.A},oauth2:{label:"OAuth2",description:"Auto-refreshing OAuth2 tokens",icon:i.A},ssh:{label:"SSH Key",description:"Private/public keypair for SSH",icon:l.A},gpg:{label:"GPG Key",description:"Armored key material and metadata",icon:o.A},custom:{label:"Key / Value",description:"Define a custom key/value secret field",icon:o.A}},L=["apikey","login","plain_note"],q=["custom","card","hot_wallet","sso","note","oauth2","ssh","gpg"],K=[{value:"visa",label:"Visa"},{value:"mastercard",label:"Mastercard"},{value:"amex",label:"Amex"},{value:"discover",label:"Discover"},{value:"other",label:"Other"}],H=[{value:"apple",label:"Apple",icon:(0,r.jsx)(d.A,{size:14})},{value:"facebook",label:"Facebook",icon:(0,r.jsx)(u.A,{size:14})},{value:"google",label:"Google",icon:(0,r.jsx)(p.A,{size:14})}],F=e=>e.trim().toLowerCase(),W=(e,t)=>{let a=e?Date.parse(e):NaN;if(Number.isFinite(a))return a;let r=t?Date.parse(t):NaN;return Number.isFinite(r)?r:0},U=e=>{var t;let{isOpen:a,onClose:n,onSaved:o,editCredentialId:l,agents:i,createStartStep:c="form",createStartType:d,createPrefill:u}=e,[p,j]=(0,s.useState)("apikey"),[N,S]=(0,s.useState)("form"),[U,B]=(0,s.useState)(""),[V,G]=(0,s.useState)(""),[$,J]=(0,s.useState)(!1),[Q,Y]=(0,s.useState)([]),[Z,X]=(0,s.useState)(""),[ee,et]=(0,s.useState)(""),[ea,er]=(0,s.useState)(""),[es,en]=(0,s.useState)(""),[eo,el]=(0,s.useState)(""),[ei,ec]=(0,s.useState)(""),[ed,eu]=(0,s.useState)("keep"),[ep,em]=(0,s.useState)(!1),[ex,eh]=(0,s.useState)(""),[ef,ev]=(0,s.useState)("visa"),[eb,eg]=(0,s.useState)(""),[ey,ek]=(0,s.useState)(""),[ew,ej]=(0,s.useState)(""),[eN,eS]=(0,s.useState)(""),[eC,eA]=(0,s.useState)(""),[eE,eP]=(0,s.useState)(""),[eT,eI]=(0,s.useState)(""),[eO,ez]=(0,s.useState)(""),[e_,eR]=(0,s.useState)(""),[eD,eM]=(0,s.useState)(""),[eL,eq]=(0,s.useState)("base"),[eK,eH]=(0,s.useState)(""),[eF,eW]=(0,s.useState)(""),[eU,eB]=(0,s.useState)(""),[eV,eG]=(0,s.useState)("value"),[e$,eJ]=(0,s.useState)(""),[eQ,eY]=(0,s.useState)(""),[eZ,eX]=(0,s.useState)(""),[e0,e1]=(0,s.useState)(""),[e2,e4]=(0,s.useState)(""),[e5,e8]=(0,s.useState)(""),[e3,e6]=(0,s.useState)(""),[e7,e9]=(0,s.useState)("client_secret_post"),[te,tt]=(0,s.useState)(""),[ta,tr]=(0,s.useState)(""),[ts,tn]=(0,s.useState)(""),[to,tl]=(0,s.useState)(""),[ti,tc]=(0,s.useState)(""),[td,tu]=(0,s.useState)(""),[tp,tm]=(0,s.useState)(""),[tx,th]=(0,s.useState)(""),[tf,tv]=(0,s.useState)(""),[tb,tg]=(0,s.useState)(""),[ty,tk]=(0,s.useState)(""),[tw,tj]=(0,s.useState)(null),[tN,tS]=(0,s.useState)(!1),[tC,tA]=(0,s.useState)(null),[tE,tP]=(0,s.useState)(!1),[tT,tI]=(0,s.useState)(!1),[tO,tz]=(0,s.useState)(!1),[t_,tR]=(0,s.useState)(!1),[tD,tM]=(0,s.useState)([]),[tL,tq]=(0,s.useState)([]),[tK,tH]=(0,s.useState)(null),[tF,tW]=(0,s.useState)(null),[tU,tB]=(0,s.useState)({}),[tV,tG]=(0,s.useState)({}),t$=(0,s.useRef)(null),tJ=(0,s.useRef)(null),[tQ,tY]=(0,s.useState)("write"),tZ=!!l,tX=(0,s.useCallback)((e,t,a)=>{switch((0,k.Dw)(a,e)){case P.password:en(t);break;case P.notes:"login"===a&&el(t),"card"===a&&eP(t);break;case T.number:ek(t),eg(t.replace(/\D/g,"").slice(-4));break;case T.expiry:ej(t);break;case T.cvv:eS(t);break;case k.l3:eM(t);break;case z.value:eB(t);break;case _.accessToken:e4(t);break;case _.refreshToken:e8(t);break;case _.clientId:eX(t);break;case _.clientSecret:e1(t);break;case R.privateKey:"ssh"===a&&tn(t),"gpg"===a&&th(t);break;case R.passphrase:tl(t);break;default:"custom"===a&&eJ(t)}},[]),t0=(0,s.useCallback)(e=>{tB(t=>({...t,[e]:!0}))},[]);(0,s.useEffect)(()=>{if(i.length>0&&!V){let e=i.find(e=>e.isPrimary);G((null==e?void 0:e.id)||i[0].id)}},[i,V]);let t1=(0,s.useCallback)(async()=>{if(l)try{let e=(await b.FH.get(b.jI.Wallet,"/credentials/".concat(l))).credential,t=e.type;B(e.name),j(t),G(e.agentId),J(e.meta.favorite||!1),Y(e.meta.tags||[]);let a=e.meta.walletLink;tj((null==a?void 0:a.walletAddress)&&("hot"===a.tier||"cold"===a.tier)?a:null),"login"===e.type?(et(e.meta[P.url]||""),er(e.meta[P.username]||""),em(!!e.meta.has_totp)):"card"===e.type?(eh(e.meta[T.cardholder]||""),ev(e.meta[T.brand]||"visa"),eg(e.meta[T.last4]||""),eA(e.meta[T.billingZip]||"")):"sso"===e.type?(eI(e.meta[I.website]||""),ez(e.meta[I.provider]||""),eR(e.meta[I.identifier]||"")):"apikey"===e.type?(eW(e.meta[z.key]||""),eB(e.meta[z.value]||"")):"plain_note"===e.type?eM(e.meta[k.l3]||e.meta[z.value]||""):"oauth2"===e.type?(eY(e.meta[_.tokenEndpoint]||""),e6(e.meta[_.scopes]||""),e9(e.meta[_.authMethod]||"client_secret_post"),tt("number"==typeof e.meta[_.expiresAt]?String(e.meta[_.expiresAt]):"string"==typeof e.meta[_.expiresAt]?e.meta[_.expiresAt]:"")):"hot_wallet"===e.type?(eH(e.meta[O.address]||(null==a?void 0:a.walletAddress)||""),eq(function(e){let t=(e||"").trim().toLowerCase();return"solana"===t||"solana-devnet"===t?"solana":"base"}(e.meta[O.chain]||(null==a?void 0:a.chain)))):"ssh"===e.type?(tr(e.meta[R.publicKey]||""),tc(Array.isArray(e.meta[R.hosts])?e.meta[R.hosts].join("\n"):""),tu(e.meta[R.keyType]||"")):"gpg"===e.type&&(tm(e.meta[D.publicKey]||""),tv(e.meta[D.keyId]||""),tg(e.meta[D.uidEmail]||""),tk(e.meta[D.expiresAt]||""));let r=k.Rn[t];if("custom"===t||"hot_wallet"!==t&&(r||[]).some(e=>e.sensitive))try{let e=await b.FH.post(b.jI.Wallet,"/credentials/".concat(l,"/read")),a=await (0,g.DC)(e.encrypted),r=JSON.parse(a),s={};(r.fields||[]).forEach(e=>{s[(0,k.Dw)(t,e.key)]=e.value}),tW(s),Object.entries(s).forEach(e=>{let[a,r]=e;tX(a,r,t)})}catch(e){}}catch(e){tA(e instanceof Error?e.message:"Failed to load credential")}},[l,tX]),t2=(0,s.useCallback)(async()=>{if(!tZ||!l)return{};if(tF)return tF;let e=await b.FH.post(b.jI.Wallet,"/credentials/".concat(l,"/read")),t=JSON.parse(await (0,g.DC)(e.encrypted)),a={};return(t.fields||[]).forEach(e=>{a[(0,k.Dw)(p,e.key)]=e.value}),tW(a),a},[tZ,l,tF,p]),t4=(0,s.useCallback)(async e=>{if(tZ){tH(e),tA(null);try{let t=await t2(),a=(0,k.Dw)(p,e);tX(e,t[a]||t[e]||"",p)}catch(e){tA(e instanceof Error?e.message:"Decryption failed -- try re-unlocking")}finally{tH(null)}}},[t2,tZ,tX]),t5=(0,s.useCallback)(e=>{switch((0,k.Dw)(p,e)){case P.password:return es;case z.value:return eU;case k.u.custom.value:return e$;default:return"custom"===p?e$:""}},[eU,e$,es,p]),t8=(0,s.useCallback)(e=>!!tV[(0,k.Dw)(p,e)],[p,tV]),t3=(0,s.useCallback)(async e=>{let t=(0,k.Dw)(p,e);if(tV[t])return void tG(e=>({...e,[t]:!1}));tZ&&!t5(e).trim()&&await t4(e),tG(e=>({...e,[t]:!0}))},[t5,t4,tZ,p,tV]);(0,s.useEffect)(()=>{a&&(tZ?S("form"):(S(c),d&&j(d),(null==u?void 0:u.type)&&j(u.type),(null==u?void 0:u.agentId)&&G(u.agentId),(null==u?void 0:u.tags)&&u.tags.length>0&&Y(u.tags),(null==u?void 0:u.name)&&B(u.name),(null==u?void 0:u.noteContent)&&eM(u.noteContent)),tz(!1),tI(!1),tG({}),eu(tZ?"keep":"replace"))},[a,tZ,c,d,u]),(0,s.useEffect)(()=>{!a||tZ||"oauth2"!==p||te||tt(String(Math.floor(Date.now()/1e3)+3600))},[a,tZ,p,te]),(0,s.useEffect)(()=>{a&&(async()=>{try{let e=(await b.FH.get(b.jI.Wallet,"/credentials")).credentials||[],t=e.filter(e=>"login"===e.type),a=new Map;t.forEach(e=>{let t=String(e.meta.username||"").trim();if(!t)return;let r=F(t),s=W(e.updatedAt,e.createdAt),n=a.get(r);if(!n)return void a.set(r,{raw:t,frequency:1,recent:s});n.frequency+=1,s>n.recent&&(n.recent=s,n.raw=t)});let r=Array.from(a.entries()).sort((e,t)=>t[1].recent!==e[1].recent?t[1].recent-e[1].recent:t[1].frequency!==e[1].frequency?t[1].frequency-e[1].frequency:e[0].localeCompare(t[0])).map(e=>{let[,t]=e;return t.raw}).slice(0,20),s=new Map;e.forEach(e=>{let t=W(e.updatedAt,e.createdAt);new Set((Array.isArray(e.meta.tags)?e.meta.tags:[]).map(e=>String(e).trim()).filter(Boolean)).forEach(e=>{let a=F(e),r=s.get(a);if(!r)return void s.set(a,{frequency:1,recent:t});r.frequency+=1,t>r.recent&&(r.recent=t)})});let n=Array.from(s.entries()).sort((e,t)=>t[1].recent!==e[1].recent?t[1].recent-e[1].recent:t[1].frequency!==e[1].frequency?t[1].frequency-e[1].frequency:e[0].localeCompare(t[0])).map(e=>{let[t]=e;return t}).slice(0,30);tM(r),tq(n)}catch(e){tM([]),tq([])}})()},[a]),(0,s.useEffect)(()=>{a&&l&&(tW(null),tB({}),t1())},[a,l,t1]),(0,s.useEffect)(()=>{a||(B(""),G(""),J(!1),Y([]),X(""),et(""),er(""),en(""),el(""),ec(""),eu("keep"),em(!1),eh(""),ev("visa"),eg(""),ek(""),ej(""),eS(""),eA(""),eP(""),eI(""),ez(""),eR(""),eM(""),eq("base"),eH(""),eW(""),eB(""),eG("value"),eJ(""),eY(""),eX(""),e1(""),e4(""),e8(""),e6(""),e9("client_secret_post"),tt(""),tr(""),tn(""),tl(""),tc(""),tu(""),tm(""),th(""),tv(""),tg(""),tk(""),tj(null),tA(null),tS(!1),tI(!1),tH(null),tW(null),tB({}),tG({}),tz(!1),tR(!1),tY("write"))},[a]),(0,s.useEffect)(()=>{"login"!==p&&tI(!1)},[p]);let t6=i.map(e=>({value:e.id,label:e.name||(e.isPrimary?"Primary":e.id.slice(0,8))})),t7=(0,s.useCallback)(()=>{var e;null==(e=tJ.current)||e.click()},[]),t9=(0,s.useCallback)(e=>"function"==typeof e.text?e.text():new Promise((t,a)=>{let r=new FileReader;r.onerror=()=>a(Error("Failed to read markdown file")),r.onload=()=>t("string"==typeof r.result?r.result:""),r.readAsText(e)}),[]),ae=(0,s.useCallback)(async e=>{if(!e)return;tA(null);let t=e.name.toLowerCase();if(!(t.endsWith(".md")||t.endsWith(".markdown")))return void tA("Please choose a Markdown (.md) file.");try{let t=await t9(e);if(!t.trim())return void tA("The selected markdown file is empty.");eM(t),tZ&&"note"===p&&t0(k.l3)}catch(e){tA(e instanceof Error?e.message:"Failed to import markdown file")}},[tZ,t0,t9,p]),at=(0,s.useCallback)(e=>{var t,a;ae(null!=(a=null==(t=e.target.files)?void 0:t[0])?a:null),e.currentTarget.value=""},[ae]),aa=tL.filter(e=>!Q.includes(e)).filter(e=>!Z.trim()||e.toLowerCase().includes(Z.trim().toLowerCase())).slice(0,6),ar=(0,s.useMemo)(()=>eD.trim()?(0,y.Q)(eD.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")):"",[eD]),as=(0,s.useCallback)(()=>{let e=E({type:p,apiKeyName:eF,username:ea,url:ee,noteContent:eD,customFieldKey:eV,hotWalletChain:eL,cardholder:ex,cardNumber:ey,cardLast4:eb,ssoWebsite:eT,ssoProvider:eO,oauth2TokenEndpoint:eQ,sshHostsInput:ti,gpgKeyId:tf,gpgUidEmail:tb});if(!U.trim()&&!e||"login"===p&&!tZ&&!es.trim()||"login"===p&&tZ&&"replace"===ed&&!ei.trim()||"plain_note"===p&&!eD.trim()||"apikey"===p&&(!eF.trim()||!eU.trim())||"custom"===p&&(!eV.trim()||!e$.trim())||"sso"===p&&(!eT.trim()||!eO.trim())||"ssh"===p&&!ts.trim()&&!tZ||"gpg"===p&&!tx.trim()&&!tZ)return!1;if("oauth2"===p){if(!eQ.trim())return!1;let e=Number.parseInt(te,10);if(!Number.isFinite(e)||e<=0||!tZ&&(!e2.trim()||!e5.trim()||!eZ.trim()||!e0.trim()))return!1}return!0},[eF,eU,ey,eb,ex,eV,e$,tf,tx,tb,eL,tZ,U,eD,e2,eZ,e0,te,e5,eQ,es,eO,eT,ti,ts,ed,ei,p,ee,ea]),an=async()=>{let e=E({type:p,apiKeyName:eF,username:ea,url:ee,noteContent:eD,customFieldKey:eV,hotWalletChain:eL,cardholder:ex,cardNumber:ey,cardLast4:eb,ssoWebsite:eT,ssoProvider:eO,oauth2TokenEndpoint:eQ,sshHostsInput:ti,gpgKeyId:tf,gpgUidEmail:tb});if("login"===p&&!tZ&&!es.trim())return void tA("Password is required for login");if("login"===p&&tZ&&"replace"===ed&&!ei.trim())return void tA("TOTP replace requires a valid secret or setup link");if("plain_note"===p&&!eD.trim())return void tA("Content is required for plain note");if("apikey"===p&&(!eF.trim()||!eU.trim()))return void tA("Key and value are required for API key");if("custom"===p&&(!eV.trim()||!e$.trim()))return void tA("Primary key and value are required for custom type");if("sso"===p&&!eT.trim())return void tA("Website is required for SSO login");if("sso"===p&&!eO.trim())return void tA("Provider is required for SSO login");if("ssh"===p&&!ts.trim()&&!tZ)return void tA("SSH private key is required");if("gpg"===p&&!tx.trim()&&!tZ)return void tA("GPG private key is required");if("oauth2"===p){if(!eQ.trim())return void tA("OAuth2 requires a token endpoint. Add a valid token endpoint URL.");let e=Number.parseInt(te,10);if(!Number.isFinite(e)||e<=0)return void tA("OAuth2 expiry is invalid. Enter a positive unix timestamp in seconds.");if(!tZ){if(!e2.trim())return void tA("OAuth2 requires an access token.");if(!e5.trim())return void tA("OAuth2 requires a refresh token.");if(!eZ.trim())return void tA("OAuth2 requires a client ID.");if(!e0.trim())return void tA("OAuth2 requires a client secret.")}}if(!U.trim()&&!e)return void tA("Name is required");tS(!0),tA(null);try{let e,a=(()=>{let e=ey.replace(/\D/g,""),t=e.length>=4?e.slice(-4):eb.trim(),a=function(e){let{type:t,name:a,apiKeyName:r,username:s,url:n,noteContent:o,customFieldKey:l,hotWalletChain:i,cardNumber:c,cardBrand:d,cardLast4:u,ssoWebsite:p,ssoProvider:m,oauth2TokenEndpoint:x,sshHostsInput:h,gpgKeyId:f,gpgUidEmail:v}=e,b=(e=>{let t=e.trim().toLowerCase();return t&&"other"!==t&&t.replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"card"})(d||""),g=((e,t)=>{let a=e.replace(/\D/g,"");return a.length>=4?a.slice(-4):t.replace(/\D/g,"").slice(-4)})(c||"",u||""),y=g?"".concat(b,"_").concat(g):b,k=(h||"").split(/\n|,/).map(e=>e.trim()).filter(Boolean),w=(e=>{let t=e.trim().toLowerCase();return t?t.charAt(0).toUpperCase()+t.slice(1):""})(m||""),j=(p||"").trim(),N=w&&j?"".concat(w," (").concat(j,")"):j||(w?"".concat(w," SSO"):"SSO Login"),S={plain_note:A(o),apikey:r.trim(),login:s.trim()||n.trim()||"Login",note:A(o),hot_wallet:i.trim()?"Hot Wallet (".concat(i.trim().toUpperCase(),")"):"Hot Wallet",custom:l.trim(),card:y,sso:N,oauth2:(x||"").trim()||"OAuth2",ssh:k[0]||"SSH Key",gpg:(f||"").trim()||(v||"").trim()||"GPG Key"};return"card"===t?S.card||"card":"note"===t||"plain_note"===t?S[t]||a.trim():a.trim()||S[t]||""}({type:p,name:U,apiKeyName:eF,username:ea,url:ee,noteContent:eD,customFieldKey:eV,hotWalletChain:eL,cardholder:ex,cardNumber:ey,cardBrand:ef,cardLast4:t,ssoWebsite:eT,ssoProvider:eO,oauth2TokenEndpoint:eQ,sshHostsInput:ti,gpgKeyId:tf,gpgUidEmail:tb}),r=eV.trim()||(0,k.VB)(p),s=[],n={tags:Q,favorite:$};switch(p){case"login":ee&&s.push({key:P.url,value:ee,type:"text",sensitive:!1}),s.push({key:P.username,value:ea,type:"text",sensitive:!1}),s.push({key:P.password,value:es,type:"secret",sensitive:!0}),(eo.trim()||tZ&&tU[P.notes])&&s.push({key:P.notes,value:eo,type:"text",sensitive:!0}),tZ?("replace"===ed&&ei.trim()&&s.push({key:P.totp,value:ei.trim().replace(/\s+/g,"").toUpperCase(),type:"secret",sensitive:!0}),"remove"===ed&&s.push({key:P.totp,value:"",type:"secret",sensitive:!0})):ei.trim()&&s.push({key:P.totp,value:ei.trim().replace(/\s+/g,"").toUpperCase(),type:"secret",sensitive:!0}),n={...n,[P.url]:ee,[P.username]:ea};break;case"card":s.push({key:T.cardholder,value:ex,type:"text",sensitive:!1}),s.push({key:T.number,value:ey,type:"text",sensitive:!0}),s.push({key:T.cvv,value:eN,type:"secret",sensitive:!0}),s.push({key:T.expiry,value:ew,type:"text",sensitive:!0}),(eE.trim()||tZ&&tU[T.notes])&&s.push({key:T.notes,value:eE,type:"text",sensitive:!0}),n={...n,[T.brand]:ef,[T.cardholder]:ex,[T.last4]:t,[T.billingZip]:eC};break;case"sso":s.push({key:I.website,value:eT.trim(),type:"text",sensitive:!1}),s.push({key:I.provider,value:eO.trim().toLowerCase(),type:"text",sensitive:!1}),s.push({key:I.identifier,value:e_.trim(),type:"text",sensitive:!1}),n={...n,[I.website]:eT.trim(),[I.provider]:eO.trim().toLowerCase(),[I.identifier]:e_.trim()};break;case"note":s.push({key:k.l3,value:eD,type:"text",sensitive:!0});break;case"hot_wallet":tZ&&eK.trim()&&s.push({key:O.address,value:eK.trim(),type:"text",sensitive:!1}),n={...n,[O.chain]:eL,...eK.trim()?{[O.address]:eK.trim()}:{}};break;case"plain_note":s.push({key:k.l3,value:eD,type:"text",sensitive:!1}),n={...n,[k.l3]:eD};break;case"apikey":s.push({key:z.key,value:eF,type:"text",sensitive:!1}),s.push({key:z.value,value:eU,type:"secret",sensitive:!0}),n={...n,[z.key]:eF};break;case"custom":s.push({key:r,value:e$,type:"secret",sensitive:!0}),n={...n,primaryKey:r};break;case"oauth2":{let e=Number.parseInt(te,10);s.push({key:_.accessToken,value:e2,type:"secret",sensitive:!0}),s.push({key:_.refreshToken,value:e5,type:"secret",sensitive:!0}),s.push({key:_.clientId,value:eZ,type:"secret",sensitive:!0}),s.push({key:_.clientSecret,value:e0,type:"secret",sensitive:!0}),n={...n,[_.tokenEndpoint]:eQ,[_.scopes]:e3,[_.authMethod]:e7,[_.expiresAt]:Number.isFinite(e)?e:null};break}case"ssh":{let e=ti.split(/\n|,/).map(e=>e.trim()).filter(Boolean);s.push({key:R.privateKey,value:ts,type:"secret",sensitive:!0}),to.trim()&&s.push({key:R.passphrase,value:to,type:"secret",sensitive:!0}),ta.trim()&&s.push({key:R.publicKey,value:ta,type:"text",sensitive:!1}),n={...n,[R.publicKey]:ta,[R.hosts]:e,[R.keyType]:td||void 0};break}case"gpg":s.push({key:D.privateKey,value:tx,type:"secret",sensitive:!0}),tp.trim()&&s.push({key:D.publicKey,value:tp,type:"text",sensitive:!1}),n={...n,[D.publicKey]:tp,[D.keyId]:tf,[D.uidEmail]:tb,[D.expiresAt]:ty||void 0}}return tw&&(n={...n,walletLink:tw}),{agentId:V,type:p,name:a,fields:s,meta:n}})();if(tZ){let t=a.fields.filter(e=>!e.sensitive||!!tU[e.key]);await b.FH.put(b.jI.Wallet,"/credentials/".concat(l),{...a,fields:t}),e=l}else{var t;let r=await b.FH.post(b.jI.Wallet,"/credentials",a);e=null==r||null==(t=r.credential)?void 0:t.id}await o(e),n()}catch(e){tA(e instanceof Error?e.message:"Failed to save credential")}finally{tS(!1)}};(0,s.useEffect)(()=>{if(!a||tZ||"form"!==N)return;let e=e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&!e.altKey&&!e.shiftKey&&!tN&&as()&&(e.preventDefault(),e.stopPropagation(),an())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[as,N,an,tZ,a,tN]);let ao="w-full h-24 bg-[var(--color-background-alt,#f4f4f5)] border border-[var(--color-border,#d4d4d8)] font-mono text-sm p-3 resize-none focus:border-[var(--color-border-focus,#0a0a0a)] outline-none text-[var(--color-text,#0a0a0a)] placeholder-[var(--color-text-muted,#6b7280)]",al=(null==(t=M[p])?void 0:t.label)||"Credential",ai=(0,k.VB)(p),ac=(0,k.zo)(p),ad=(null==ac?void 0:ac.label)||"Primary Value",au="form"===N?"Create ".concat(al):"Create";return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(v.aF,{isOpen:a,onClose:n,title:tZ?"Edit Credential":au,size:"lg",headerActionPosition:"left",headerAction:tZ||"form"!==N?void 0:(0,r.jsx)("button",{type:"button","data-testid":"back-to-type-picker",onClick:()=>S("type"),className:"inline-flex items-center justify-center w-6 h-6 text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors","aria-label":"Back to type picker",children:(0,r.jsx)(m.A,{size:12})}),footer:(0,r.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,r.jsx)(v.$n,{variant:"secondary",size:"sm",onClick:n,children:"Cancel"}),tZ||"type"!==N?(0,r.jsx)(v.$n,{variant:"primary",size:"sm",onClick:an,loading:tN,children:"Save"}):null]}),children:tZ||"type"!==N?(0,r.jsxs)("div",{"data-testid":"credential-form-layout",className:"space-y-4 gap-4",children:[(0,r.jsx)("input",{ref:tJ,type:"file",accept:".md,.markdown,text/markdown",onChange:at,className:"hidden","data-testid":"note-markdown-file-input"}),(0,r.jsx)("div",{className:"space-y-2",children:(0,r.jsx)("div",{className:"flex items-center justify-between px-1",children:(0,r.jsxs)("span",{className:"font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:["Type: ",al]})})}),"login"===p&&(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(v.ks,{label:"Username",value:ea,onChange:e=>er(e.target.value),onFocus:()=>tR(!0),onBlur:()=>setTimeout(()=>tR(!1),50),placeholder:"user@example.com",list:"login-username-suggestions"}),t_&&tD.length>0&&(0,r.jsx)("datalist",{id:"login-username-suggestions",children:tD.map(e=>(0,r.jsx)("option",{value:e},e))}),(0,r.jsx)(v.ks,{label:"Website",value:ee,onChange:e=>et(e.target.value),placeholder:"https://example.com"}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(v.ks,{label:"Password",type:t8(P.password)?"text":"password",value:es,onChange:e=>{en(e.target.value),tZ&&t0(P.password)},onFocus:()=>tI(!0),onClick:()=>tI(!0),onBlur:e=>{var t;let a=e.relatedTarget;a&&(null==(t=t$.current)?void 0:t.contains(a))||tI(!1)},placeholder:tZ?"••••••••":"",rightElement:(0,r.jsx)("button",{type:"button",onClick:()=>{t3(P.password)},"aria-label":t8(P.password)?"Hide Password":"Reveal Password",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:tK===P.password?(0,r.jsx)(x.A,{size:11,className:"animate-spin"}):(0,r.jsx)(h.A,{size:12})})}),tT&&(0,r.jsx)("div",{ref:t$,className:"absolute right-0 top-full mt-1 z-20 min-w-[13rem] border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)] shadow-[2px_2px_0_rgba(10,10,10,0.08)]",children:(0,r.jsx)("button",{type:"button",onMouseDown:e=>e.preventDefault(),onClick:()=>{tP(!0),tI(!1)},className:"w-full text-left px-3 py-2 font-mono text-[9px] uppercase tracking-widest text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]",children:"Generate New Password"})})]}),tO&&(0,r.jsxs)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-1.5 px-1",children:[(0,r.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Notes"}),tZ&&(0,r.jsxs)("button",{type:"button",onClick:()=>{t4(P.notes)},"aria-label":"Reveal Notes",className:"font-mono text-[8px] uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors inline-flex items-center gap-1",children:[tK===P.notes?(0,r.jsx)(x.A,{size:9,className:"animate-spin"}):(0,r.jsx)(h.A,{size:9}),"Reveal"]})]}),(0,r.jsx)("textarea",{className:ao,value:eo,onChange:e=>{el(e.target.value),tZ&&t0(P.notes)},placeholder:tZ?"••••••••":""})]}),(0,r.jsx)(C,{isEdit:tZ,hasExistingTotp:ep,onIntentChange:e=>{eu(e),tZ&&"remove"===e&&t0(P.totp)},onSecretChange:(e,t)=>{ec(e),tZ&&(t?(t0(P.totp),e.trim()&&eu("replace")):"remove"!==ed&&eu(ep?"keep":"replace"))}})]})]}),"card"===p&&(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(v.ks,{label:"Cardholder",value:ex,onChange:e=>eh(e.target.value),placeholder:"John Doe"}),(0,r.jsx)(v.ks,{label:"Card Number",value:ey,onChange:e=>{let t=e.target.value;ek(t),eg(t.replace(/\D/g,"").slice(-4)),tZ&&t0(T.number)},placeholder:tZ?"••••••••":""}),(0,r.jsxs)("div",{className:"flex gap-3",children:[(0,r.jsx)("div",{className:"flex-1",children:(0,r.jsx)(v.ks,{label:"Expiry",value:ew,onChange:e=>{ej(e.target.value),tZ&&t0(T.expiry)},placeholder:"MM/YY"})}),(0,r.jsx)("div",{className:"flex-1",children:(0,r.jsx)(v.ks,{label:"CVV",type:"password",value:eN,onChange:e=>{eS(e.target.value),tZ&&t0(T.cvv)},placeholder:tZ?"••••":""})})]}),tO&&(0,r.jsxs)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,r.jsx)(v.UM,{options:K,value:ef,onChange:ev,label:"Brand"}),(0,r.jsx)(v.ks,{label:"Billing ZIP",value:eC,onChange:e=>eA(e.target.value),placeholder:"12345"})]})]}),"sso"===p&&(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(v.ks,{label:"Website",value:eT,onChange:e=>eI(e.target.value),placeholder:"https://example.com"}),(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Provider"}),(0,r.jsx)("div",{"data-testid":"sso-provider-select",children:(0,r.jsx)(v.O6,{ariaLabel:"SSO Provider",options:H.map(e=>({value:e.value,label:e.label,description:"Sign in with ".concat(e.label),icon:e.icon})),value:eO,onChange:e=>ez(String(e))})})]}),tO&&(0,r.jsx)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:(0,r.jsx)(v.ks,{label:"Identifier (email/phone/username)",value:e_,onChange:e=>eR(e.target.value),placeholder:"alice@example.com"})})]}),"note"===p&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-1.5 px-1",children:[(0,r.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Content"}),tZ&&(0,r.jsxs)("button",{type:"button",onClick:()=>{t4(k.l3)},"aria-label":"Reveal Content",className:"font-mono text-[8px] uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors inline-flex items-center gap-1",children:[tK===k.l3?(0,r.jsx)(x.A,{size:9,className:"animate-spin"}):(0,r.jsx)(h.A,{size:9}),"Reveal"]})]}),(0,r.jsx)("div",{className:"mb-2 px-1",children:(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2","data-testid":"note-editor-toolbar",children:[(0,r.jsxs)("div",{className:"inline-flex border border-[var(--color-border,#d4d4d8)]",children:[(0,r.jsx)("button",{type:"button","data-testid":"note-mode-write",onClick:()=>tY("write"),className:"px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ".concat("write"===tQ?"bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)]":"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]"),children:"Write"}),(0,r.jsx)("button",{type:"button","data-testid":"note-mode-preview",onClick:()=>tY("preview"),className:"px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ".concat("preview"===tQ?"bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)]":"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]"),children:"Preview"})]}),(0,r.jsxs)("button",{type:"button",onClick:t7,className:"font-mono text-[8px] uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors inline-flex items-center gap-1","data-testid":"note-import-markdown-button",children:[(0,r.jsx)(f.A,{size:9}),"Import .md"]})]})}),"preview"===tQ?(0,r.jsx)("div",{"data-testid":"note-markdown-preview",className:"w-full h-48 overflow-y-auto bg-[var(--color-background-alt,#f4f4f5)] border border-[var(--color-border,#d4d4d8)] p-3",children:ar?(0,r.jsx)("div",{className:"prose-mono max-w-none [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",dangerouslySetInnerHTML:{__html:ar}}):(0,r.jsx)("span",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Nothing to preview yet."})}):(0,r.jsx)("textarea",{className:ao.replace("h-24","h-48"),value:eD,onChange:e=>{eM(e.target.value),tZ&&t0(k.l3)},placeholder:tZ?"••••••••":""})]}),"plain_note"===p&&(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)("p",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Plain Note stores readable content in metadata (not encrypted)."}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"flex items-center justify-between mb-1.5 px-1",children:(0,r.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Content"})}),(0,r.jsx)("div",{className:"mb-2",children:(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2","data-testid":"plain-note-editor-toolbar",children:[(0,r.jsxs)("div",{className:"inline-flex border border-[var(--color-border,#d4d4d8)]",children:[(0,r.jsx)("button",{type:"button","data-testid":"plain-note-mode-write",onClick:()=>tY("write"),className:"px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ".concat("write"===tQ?"bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)]":"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]"),children:"Write"}),(0,r.jsx)("button",{type:"button","data-testid":"plain-note-mode-preview",onClick:()=>tY("preview"),className:"px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ".concat("preview"===tQ?"bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)]":"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]"),children:"Preview"})]}),(0,r.jsxs)("button",{type:"button",onClick:t7,className:"font-mono text-[8px] uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors inline-flex items-center gap-1","data-testid":"plain-note-import-markdown-button",children:[(0,r.jsx)(f.A,{size:9}),"Import .md"]})]})}),"preview"===tQ?(0,r.jsx)("div",{"data-testid":"plain-note-markdown-preview",className:"w-full h-48 overflow-y-auto bg-[var(--color-background-alt,#f4f4f5)] border border-[var(--color-border,#d4d4d8)] p-3",children:ar?(0,r.jsx)("div",{className:"prose-mono max-w-none [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",dangerouslySetInnerHTML:{__html:ar}}):(0,r.jsx)("span",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Nothing to preview yet."})}):(0,r.jsx)("textarea",{className:ao.replace("h-24","h-48"),value:eD,onChange:e=>eM(e.target.value),placeholder:""})]})]}),"hot_wallet"===p&&(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)("p",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Generates a hot wallet via backend wallet creation logic and stores the private key as encrypted primary secret."}),(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Chain"}),(0,r.jsx)("div",{"data-testid":"hot-wallet-chain-select",children:(0,r.jsx)(v.O6,{ariaLabel:"Chain",options:[{value:"base",label:"Base / EVM",description:"EVM-compatible chains"},{value:"solana",label:"Solana",description:"Solana network wallets"}],value:eL,onChange:e=>eq(e)})})]}),tZ&&(0,r.jsx)(v.ks,{label:"Address",value:eK,onChange:e=>eH(e.target.value),placeholder:"Generated wallet address"})]}),"apikey"===p&&(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)("p",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Minimal flow: key name + key value. If Name is blank, key name becomes the credential title."}),(0,r.jsx)(v.ks,{label:"Key",value:eF,onChange:e=>eW(e.target.value),placeholder:"Service key name"}),(0,r.jsx)(v.ks,{label:"Value",type:t8(z.value)?"text":"password",value:eU,onChange:e=>{eB(e.target.value),tZ&&t0(z.value)},placeholder:tZ?"••••••••":"",rightElement:(0,r.jsx)("button",{type:"button",onClick:()=>{t3(z.value)},"aria-label":t8(z.value)?"Hide Value":"Reveal Value",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:tK===z.value?(0,r.jsx)(x.A,{size:11,className:"animate-spin"}):(0,r.jsx)(h.A,{size:12})})})]}),"custom"===p&&(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("p",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:["Canonical primary key: ",ai]}),(0,r.jsx)(v.ks,{label:"Primary Key",value:eV,onChange:e=>eG(e.target.value),placeholder:"value"}),(0,r.jsx)(v.ks,{label:ad,type:t8(k.u.custom.value)?"text":"password",value:e$,onChange:e=>eJ(e.target.value),placeholder:tZ?"••••••••":"",rightElement:(0,r.jsx)("button",{type:"button",onClick:()=>{t3(k.u.custom.value)},"aria-label":t8(k.u.custom.value)?"Hide Value":"Reveal Value",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:tK===k.u.custom.value?(0,r.jsx)(x.A,{size:11,className:"animate-spin"}):(0,r.jsx)(h.A,{size:12})})})]}),"oauth2"===p&&(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(v.ks,{label:"Token Endpoint",value:eQ,onChange:e=>eY(e.target.value),placeholder:"https://accounts.google.com/o/oauth2/token"}),(0,r.jsx)(v.ks,{label:"Access Token",type:"password",value:e2,onChange:e=>{e4(e.target.value),tZ&&t0(_.accessToken)},placeholder:tZ?"••••••••":"Optional — will be fetched on first use"}),(0,r.jsx)(v.ks,{label:"Expires At (unix seconds)",type:"text",value:te,onChange:e=>tt(e.target.value),placeholder:String(Math.floor(Date.now()/1e3)+3600)}),tO&&(0,r.jsxs)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,r.jsx)(v.ks,{label:"Client ID",value:eZ,onChange:e=>{eX(e.target.value),tZ&&t0(_.clientId)},placeholder:"your-client-id"}),(0,r.jsx)(v.ks,{label:"Client Secret",type:"password",value:e0,onChange:e=>{e1(e.target.value),tZ&&t0(_.clientSecret)},placeholder:tZ?"••••••••":""}),(0,r.jsx)(v.ks,{label:"Refresh Token",type:"password",value:e5,onChange:e=>{e8(e.target.value),tZ&&t0(_.refreshToken)},placeholder:tZ?"••••••••":""}),(0,r.jsx)(v.ks,{label:"Scopes",value:e3,onChange:e=>e6(e.target.value),placeholder:"read write (space-separated)"}),(0,r.jsx)(v.UM,{options:[{value:"client_secret_post",label:"Client Secret (POST body)"},{value:"client_secret_basic",label:"Client Secret (Basic Auth)"}],value:e7,onChange:e9,label:"Auth Method"})]})]}),"ssh"===p&&(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(v.ks,{label:"Public Key (optional)",value:ta,onChange:e=>tr(e.target.value),placeholder:"ssh-ed25519 AAAA..."}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Private Key"}),(0,r.jsx)("textarea",{className:ao.replace("h-24","h-40"),value:ts,onChange:e=>{tn(e.target.value),tZ&&t0(R.privateKey)},placeholder:tZ?"••••••••":"-----BEGIN OPENSSH PRIVATE KEY-----"})]}),(0,r.jsx)(v.ks,{label:"Passphrase (optional)",type:"password",value:to,onChange:e=>{tl(e.target.value),tZ&&t0(R.passphrase)}}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Associated Hosts (comma or newline)"}),(0,r.jsx)("textarea",{className:ao,value:ti,onChange:e=>tc(e.target.value),placeholder:"github.com prod.example.com"})]})]}),"gpg"===p&&(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Private Key (armored)"}),(0,r.jsx)("textarea",{className:ao.replace("h-24","h-40"),value:tx,onChange:e=>{th(e.target.value),tZ&&t0(D.privateKey)},placeholder:tZ?"••••••••":"-----BEGIN PGP PRIVATE KEY BLOCK-----"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Public Key (optional)"}),(0,r.jsx)("textarea",{className:ao,value:tp,onChange:e=>tm(e.target.value),placeholder:"-----BEGIN PGP PUBLIC KEY BLOCK-----"})]}),(0,r.jsx)(v.ks,{label:"Key ID (optional)",value:tf,onChange:e=>tv(e.target.value)}),(0,r.jsx)(v.ks,{label:"UID Email (optional)",value:tb,onChange:e=>tg(e.target.value)}),(0,r.jsx)(v.ks,{label:"Expires At (optional)",value:ty,onChange:e=>tk(e.target.value),placeholder:"2027-01-01"})]}),(0,r.jsx)("button",{type:"button",onClick:()=>tz(e=>!e),className:"font-mono text-[9px] uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] text-left",children:tO?"Hide Advanced":"Show Advanced"}),tO&&(0,r.jsxs)("div",{className:"space-y-4 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[!tZ&&t6.length>0&&(0,r.jsx)(v.UM,{options:t6,value:V,onChange:G,label:"Agent"}),(0,r.jsxs)("div",{children:[(0,r.jsx)(v.ks,{label:"Tags",value:Z,onChange:e=>X(e.target.value),onKeyDown:e=>{if("Enter"===e.key){e.preventDefault();let t=Z.trim();t&&!Q.includes(t)&&Y([...Q,t]),X("")}},placeholder:"Add tag and press Enter"}),aa.length>0&&(0,r.jsx)("div",{className:"flex flex-wrap gap-1 mt-1",children:aa.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>{Q.includes(e)||Y([...Q,e]),X("")},className:"font-mono text-[9px] px-2 py-0.5 border border-[var(--color-border,#d4d4d8)] hover:border-[var(--color-border-focus,#0a0a0a)]",children:["+ ",e]},e))}),Q.length>0&&(0,r.jsx)("div",{className:"flex flex-wrap gap-1 mt-2",children:Q.map(e=>(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 bg-[var(--color-accent,#ccff00)]/10 text-[var(--color-text,#0a0a0a)] text-[9px] font-mono px-2 py-0.5",children:[e,(0,r.jsx)("button",{type:"button",onClick:()=>{Y(Q.filter(t=>t!==e))},className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] ml-0.5",children:"x"})]},e))})]}),(0,r.jsx)(v.lM,{size:"sm",checked:$,onChange:J,label:"Favorite"})]}),tC&&(0,r.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-danger,#ef4444)] bg-[var(--color-danger,#ef4444)]/5 border border-[var(--color-danger,#ef4444)]/20 px-3 py-2",children:tC})]}):(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{"data-testid":"featured-types-section",className:"space-y-2",children:[(0,r.jsx)("p",{className:"font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Common"}),(0,r.jsx)(v.O6,{ariaLabel:"Common types",options:L.map(e=>{let t=M[e].icon;return{value:e,label:M[e].label,description:M[e].description,icon:(0,r.jsx)(t,{size:16}),quickActionLabel:"Quick create ".concat(M[e].label),onQuickAction:()=>{j(e),tA(null),S("form")}}}),value:p,onChange:e=>{j(e),tA(null),S("form")}})]}),(0,r.jsxs)("div",{"data-testid":"other-types-section",className:"space-y-2",children:[(0,r.jsx)("p",{className:"font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Other Types"}),(0,r.jsx)(v.O6,{ariaLabel:"Other types",options:q.map(e=>{let t=M[e].icon;return{value:e,label:M[e].label,description:M[e].description,icon:(0,r.jsx)(t,{size:16}),quickActionLabel:"Quick create ".concat(M[e].label),onQuickAction:()=>{j(e),tA(null),S("form")}}}),value:p,onChange:e=>{j(e),tA(null),S("form")}})]})]})}),(0,r.jsx)(w.p,{isOpen:tE,onClose:()=>tP(!1),onUse:e=>{en(e),tZ&&t0(P.password),tP(!1)}})]})}},62520:(e,t,a)=>{a.d(t,{f:()=>o,h:()=>l});var r=a(95155),s=a(12115);let n=(0,s.createContext)(null);function o(e){let{children:t,url:a=["localhost","127.0.0.1","::1"].includes(window.location.hostname)?"ws://127.0.0.1:".concat(parseInt(window.location.port||"4747",10)+1):"wss://wallet-ws.".concat(window.location.hostname.split(".").slice(1).join(".")),token:o}=e,[l,i]=(0,s.useState)(!1),[c,d]=(0,s.useState)(!1),[u,p]=(0,s.useState)(null),m=(0,s.useRef)(null),x=(0,s.useRef)(new Map),h=(0,s.useRef)(1e3),f=(0,s.useRef)(null),v=(0,s.useRef)(!0),b=(0,s.useRef)(!1),g=(0,s.useRef)(!1),y=(0,s.useRef)(a),k=(0,s.useRef)(o),w=(0,s.useRef)(0);(0,s.useEffect)(()=>{y.current=a},[a]);let j=(0,s.useCallback)(e=>{var t;(null==(t=m.current)?void 0:t.readyState)===WebSocket.OPEN&&m.current.send(JSON.stringify(e))},[]),N=(0,s.useCallback)((e,t)=>(x.current.has(e)||x.current.set(e,new Set),x.current.get(e).add(t),()=>{let a=x.current.get(e);a&&(a.delete(t),0===a.size&&x.current.delete(e))}),[]),S=(0,s.useCallback)(e=>{let t=x.current.get(e.type);t&&t.forEach(t=>t(e));let a=x.current.get("*");a&&a.forEach(t=>t(e))},[]),C=(0,s.useCallback)(()=>{if(!v.current)return;if(f.current&&(clearTimeout(f.current),f.current=null),m.current){let e=m.current.readyState;(e===WebSocket.OPEN||e===WebSocket.CONNECTING)&&(m.current.close(),m.current=null)}w.current+=1;let e=w.current,t=y.current,a=k.current;try{let r=new WebSocket(t);m.current=r,r.onopen=()=>{v.current&&w.current===e&&(a&&r.send(JSON.stringify({type:"auth",token:a})),b.current&&g.current&&d(!0),b.current=!0,g.current=!1,i(!0),h.current=1e3)},r.onmessage=e=>{if(v.current)try{let t=JSON.parse(e.data);if("connected"===t.type)return;p(t),S(t)}catch(e){console.error("[WS] Failed to parse message:",e)}},r.onclose=()=>{if(w.current!==e||!v.current)return;g.current=!0,i(!1),m.current=null;let t=h.current;h.current=Math.min(1.5*t,3e4),f.current=setTimeout(C,t)},r.onerror=()=>{}}catch(t){console.error("[WS] Failed to connect:",t);let e=h.current;h.current=Math.min(1.5*e,3e4),f.current=setTimeout(C,e)}},[S]);(0,s.useEffect)(()=>{let e=k.current;k.current=o,e!==o&&setTimeout(()=>{v.current&&C()},100)},[o,C]),(0,s.useEffect)(()=>(v.current=!0,k.current=o,C(),()=>{v.current=!1,f.current&&clearTimeout(f.current),m.current&&(m.current.close(),m.current=null)}),[]);let A=(0,s.useCallback)(()=>{d(!1)},[]);return(0,r.jsx)(n.Provider,{value:{connected:l,reconnected:c,dismissReconnected:A,subscribe:N,send:j,lastEvent:u},children:t})}function l(){let e=(0,s.useContext)(n);if(!e)throw Error("useWebSocket must be used within a WebSocketProvider");return e}},65144:(e,t,a)=>{a.d(t,{S:()=>u});var r=a(12115),s=a(62520),n=a(43721),o=a(90960);let l="auramaxx:dismissed-notification-ids";function i(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:80;return[t,...e.filter(e=>e.id!==t.id)].slice(0,a)}function c(e){return[...e].sort((e,t)=>{let a=new Date(e.createdAt).getTime();return new Date(t.createdAt).getTime()-a})}function d(e){return"string"==typeof e?e:"number"==typeof e?String(e):""}function u(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{autoFetch:t=!0}=e,[a,u]=(0,r.useState)([]),[p,m]=(0,r.useState)([]),[x,h]=(0,r.useState)([]),[f,v]=(0,r.useState)(()=>(function(){try{let e=window.localStorage.getItem(l);if(!e)return new Set;let t=JSON.parse(e);if(!Array.isArray(t))return new Set;return new Set(t.filter(e=>"string"==typeof e&&e.length>0))}catch(e){return new Set}})()),[b,g]=(0,r.useState)([]),[y,k]=(0,r.useState)([]),[w,j]=(0,r.useState)(!0),[N,S]=(0,r.useState)(null),[C,A]=(0,r.useState)(null),[E,P]=(0,r.useState)({pendingActions:0,activeTokens:0}),[T,I]=(0,r.useState)(null),{subscribe:O,connected:z}=(0,s.h)(),_=(0,r.useRef)(!0),R=(0,r.useRef)([]),D=(0,r.useCallback)(()=>{I(null)},[]),M=(0,r.useCallback)(e=>{let t=d(e);t&&(v(e=>{let a=new Set(e);return a.add(t),a}),h(e=>e.filter(e=>d(e.id)!==t)))},[]);(0,r.useEffect)(()=>{R.current=a},[a]),(0,r.useEffect)(()=>{try{if(0===f.size)return void window.localStorage.removeItem(l);window.localStorage.setItem(l,JSON.stringify(Array.from(f)))}catch(e){}},[f]);let L=(0,r.useCallback)(async()=>{try{let s=await o.FH.get(o.jI.Wallet,"/dashboard");if(!_.current)return;if(s.success){var e,t,a,r;u(e=>(function(e,t){let a=Date.now(),r=new Map;return e.filter(e=>"pending"===e.status).forEach(e=>r.set(e.id,e)),t.filter(e=>"pending"===e.status).filter(e=>!r.has(e.id)).filter(e=>a-new Date(e.createdAt).getTime()<=15e3).forEach(e=>r.set(e.id,e)),c(Array.from(r.values()))})(s.requests||[],e)),m(e=>(function(e,t){let a=Date.now(),r=new Map;return e.filter(e=>"pending"!==e.status).forEach(e=>r.set(e.id,e)),t.filter(e=>"pending"!==e.status).filter(e=>!r.has(e.id)).filter(e=>a-new Date(e.createdAt).getTime()<=15e3).forEach(e=>r.set(e.id,e)),c(Array.from(r.values())).slice(0,80)})(s.history||[],e)),g((null==(e=s.tokens)?void 0:e.active)||[]),k((null==(t=s.tokens)?void 0:t.inactive)||[]),P({pendingActions:(null==(a=s.counts)?void 0:a.pendingActions)||0,activeTokens:(null==(r=s.counts)?void 0:r.activeTokens)||0}),S(null)}else S(s.error||"Failed to fetch dashboard")}catch(e){_.current&&S(e instanceof Error?e.message:"Failed to fetch dashboard")}finally{_.current&&j(!1)}},[]),q=(0,r.useCallback)(async()=>{j(!0),await L()},[L]),K=(0,r.useCallback)(async(e,t)=>{A("resolve-".concat(e));try{let a=await o.FH.post(o.jI.Wallet,"/actions/".concat(e,"/resolve"),{approved:t});if(!a.success)return S(a.error||"Action resolution failed"),{success:!1,message:a.error};{let e={success:!0,token:a.token,agentId:a.agentId,limit:a.limit,permissions:a.permissions,expiresIn:a.expiresIn,txHash:a.txHash,message:a.message};return a.token&&I(e),await q(),e}}catch(t){let e=t instanceof Error?t.message:"Action resolution failed";return S(e),{success:!1,message:e}}finally{A(null)}},[q]),H=(0,r.useCallback)(async e=>{A("revoke-".concat(e));try{let t=await o.FH.post(o.jI.Wallet,"/actions/tokens/revoke",{tokenHash:e});if(t.success)return await q(),!0;return S(t.error||"Revoke failed"),!1}catch(e){return S(e instanceof Error?e.message:"Revoke failed"),!1}finally{A(null)}},[q]);(0,r.useEffect)(()=>(_.current=!0,t&&q(),()=>{_.current=!1}),[t,q]),(0,r.useEffect)(()=>{t&&z&&L()},[t,z,L]),(0,r.useEffect)(()=>{if(!t)return;let e=setInterval(()=>{L()},z?2e3:3e3);return()=>clearInterval(e)},[t,z,L]),(0,r.useEffect)(()=>{let e=O(n.Cw.TOKEN_CREATED,e=>{let t=e.data;g(e=>e.some(e=>e.tokenHash===t.tokenHash)?e:[{tokenHash:t.tokenHash,agentId:t.agentId,limit:t.limit,spent:0,remaining:t.limit,permissions:t.permissions,expiresAt:t.expiresAt,isExpired:!1,isRevoked:!1,isActive:!0},...e]),P(e=>({...e,activeTokens:e.activeTokens+1}))}),t=O(n.Cw.TOKEN_REVOKED,e=>{let t=e.data;g(e=>{let a=e.find(e=>e.tokenHash===t.tokenHash);return a&&k(e=>[{...a,isRevoked:!0,isActive:!1},...e]),e.filter(e=>e.tokenHash!==t.tokenHash)}),P(e=>({...e,activeTokens:Math.max(0,e.activeTokens-1)}))}),a=O(n.Cw.TOKEN_SPENT,e=>{let t=e.data;g(e=>e.map(e=>e.tokenHash===t.tokenHash?{...e,spent:t.newSpent,remaining:t.remaining}:e))}),r=O(n.Cw.ACTION_CREATED,e=>{let t=e.data,a=new Date(e.timestamp||Date.now()).toISOString();if("notify"===t.type)return void h(e=>e.some(e=>e.id===t.id)?e:i(e,{id:t.id,type:t.type,fromTier:"system",toAddress:null,amount:null,chain:"base",status:"acknowledged",createdAt:a,metadata:JSON.stringify({...t.metadata,source:t.source,summary:t.summary})}));u(e=>e.some(e=>e.id===t.id)?e:i(e,{id:t.id,type:t.type,fromTier:"system",toAddress:null,amount:null,chain:"base",status:"pending",createdAt:a,metadata:JSON.stringify({...t.metadata,source:t.source,summary:t.summary,expiresAt:t.expiresAt})})),m(e=>e.filter(e=>e.id!==t.id)),P(e=>({...e,pendingActions:e.pendingActions+1}))}),s=O(n.Cw.ACTION_RESOLVED,e=>{let t=e.data,a=R.current.find(e=>e.id===t.id);if(!a)return void L();let r=new Date(e.timestamp||Date.now()).toISOString(),s=function(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t?t:{}}catch(e){return{}}}(a.metadata),n={...a,status:t.approved?"approved":"rejected",createdAt:r,metadata:JSON.stringify({...s,approved:t.approved,resolvedBy:t.resolvedBy,resolvedAt:r})};u(e=>e.filter(e=>e.id!==t.id)),m(e=>i(e,n)),P(e=>({...e,pendingActions:Math.max(0,e.pendingActions-1)}))});return()=>{e(),t(),a(),r(),s()}},[L,O]);let F=(0,r.useMemo)(()=>{let e=new Map,t=t=>{let a=d(t.id);if(!a||f.has(a))return;let r=e.get(a);if(!r)return void e.set(a,t);"pending"!==r.status&&"pending"===t.status&&e.set(a,t)};return a.forEach(t),p.forEach(t),x.forEach(t),c(Array.from(e.values()))},[p,x,f,a]);return{requests:a,notifications:F,dismissNotification:M,activeTokens:b,inactiveTokens:y,loading:w,error:N,counts:E,refresh:q,resolveAction:K,revokeToken:H,actionLoading:C,lastApprovalResult:T,clearApprovalResult:D,connected:z}}},65685:(e,t,a)=>{a.d(t,{D:()=>p,ThemeProvider:()=>u});var r=a(12115);let s="aura-theme",n="agent-theme-preferences",o={colorMode:"light",uiScale:"normal"},l=(0,r.createContext)(null);function i(e){return"dark"===e?{colorMode:"dark",uiScale:"normal"}:"big"===e?{colorMode:"light",uiScale:"big"}:{colorMode:"light",uiScale:"normal"}}function c(e,t){return"big"===t?"big":"dark"===e?"dark":"default"}function d(e,t){if("undefined"==typeof document)return;let a=document.documentElement;"dark"===e?a.setAttribute("data-theme","dark"):a.removeAttribute("data-theme"),a.setAttribute("data-ui-scale",t);let r="big"===t?1.25:1;a.style.setProperty("--ui-scale-factor",String(r)),a.style.setProperty("--font-size-xs","".concat(Math.round(10*r),"px")),a.style.setProperty("--font-size-sm","".concat(Math.round(12*r),"px")),a.style.setProperty("--font-size-md","".concat(Math.round(14*r),"px")),a.style.setProperty("--font-size-lg","".concat(Math.round(18*r),"px")),a.style.setProperty("--space-1","".concat(Math.round(4*r),"px")),a.style.setProperty("--space-2","".concat(Math.round(8*r),"px")),a.style.setProperty("--space-3","".concat(Math.round(12*r),"px")),a.style.setProperty("--space-4","".concat(Math.round(16*r),"px")),a.style.setProperty("--space-6","".concat(Math.round(24*r),"px")),a.style.setProperty("--radius-sm","".concat(Math.round(6*r),"px")),a.style.setProperty("--radius-md","".concat(Math.round(10*r),"px")),a.style.setProperty("--radius-lg","".concat(Math.round(14*r),"px")),a.style.setProperty("--shadow-sm","big"===t?"0 2px 4px rgba(0,0,0,0.15)":"0 1px 2px rgba(0,0,0,0.12)"),a.style.setProperty("--shadow-md","big"===t?"0 8px 20px rgba(0,0,0,0.24)":"0 6px 16px rgba(0,0,0,0.18)"),a.style.setProperty("--control-height-sm","".concat(Math.round(32*r),"px")),a.style.setProperty("--control-height-md","".concat(Math.round(36*r),"px")),a.style.setProperty("--control-height-lg","".concat(Math.round(40*r),"px")),a.style.setProperty("--space-xs","var(--space-1)"),a.style.setProperty("--space-sm","var(--space-2)"),a.style.setProperty("--space-md","var(--space-3)"),a.style.setProperty("--space-lg","var(--space-4)")}function u(e){let{children:t}=e,[a,u]=(0,r.useState)(o.colorMode),[p,m]=(0,r.useState)(o.uiScale),[x,h]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=function(){try{let e=window.localStorage.getItem(n);if(e){let t=JSON.parse(e),a="dark"===t.colorMode?"dark":"light",r="big"===t.uiScale?"big":"normal";return{colorMode:a,uiScale:r}}}catch(e){}let e=window.localStorage.getItem(s);return i("dark"===e||"big"===e?e:"default")}();u(e.colorMode),m(e.uiScale),h(!0),d(e.colorMode,e.uiScale)},[]),(0,r.useEffect)(()=>{if(!x)return;d(a,p),window.localStorage.setItem(n,JSON.stringify({colorMode:a,uiScale:p}));let e=c(a,p);"default"===e?window.localStorage.removeItem(s):window.localStorage.setItem(s,e)},[x,a,p]);let f=(0,r.useCallback)(e=>u(e),[]),v=(0,r.useCallback)(e=>m(e),[]),b=(0,r.useCallback)(e=>{let t=i(e);u(t.colorMode),m(t.uiScale)},[]),g=(0,r.useMemo)(()=>c(a,p),[a,p]),y=(0,r.useMemo)(()=>({colorMode:a,uiScale:p,setColorMode:f,setUiScale:v,theme:g,setTheme:b}),[a,p,f,v,g,b]);return(0,r.createElement)(l.Provider,{value:y},t)}function p(){let e=(0,r.useContext)(l);if(!e)throw Error("useTheme must be used within a ThemeProvider");return e}}}]);