auramaxx 0.0.12 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +244 -227
  3. package/.next/app-path-routes-manifest.json +11 -10
  4. package/.next/build-manifest.json +14 -14
  5. package/.next/prerender-manifest.json +49 -25
  6. package/.next/react-loadable-manifest.json +41 -41
  7. package/.next/routes-manifest.json +6 -0
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_not-found.html +1 -1
  10. package/.next/server/app/_not-found.rsc +12 -12
  11. package/.next/server/app/api/[...doc]/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/agent-requests/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/apps/install/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/apps/manifests/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/apps/static/[...path]/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/docs/plain/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/events/route.js +1 -19
  18. package/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/import-from-openclaw/[channel]/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/import-from-openclaw/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/import-from-openclaw/validate/[channel]/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/update/route.js +63 -1
  25. package/.next/server/app/api/update/route.js.nft.json +1 -1
  26. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/workspace/[id]/apps/[wid]/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/workspace/[id]/apps/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/workspace/[id]/export/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/workspace/[id]/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/workspace/config/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/workspace/import/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/workspace/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/app-legacy-do-not-use/page.js +1 -1
  36. package/.next/server/app/app-legacy-do-not-use/page.js.nft.json +1 -1
  37. package/.next/server/app/app-legacy-do-not-use/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/app-legacy-do-not-use.html +1 -1
  39. package/.next/server/app/app-legacy-do-not-use.rsc +14 -14
  40. package/.next/server/app/approve/[actionId]/page.js +1 -1
  41. package/.next/server/app/approve/[actionId]/page_client-reference-manifest.js +1 -1
  42. package/.next/server/app/docs/[...doc]/page_client-reference-manifest.js +1 -1
  43. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/health/page_client-reference-manifest.js +1 -1
  45. package/.next/server/app/health.html +1 -1
  46. package/.next/server/app/health.rsc +13 -13
  47. package/.next/server/app/hello/page_client-reference-manifest.js +1 -1
  48. package/.next/server/app/hello.html +1 -1
  49. package/.next/server/app/hello.rsc +14 -14
  50. package/.next/server/app/index.html +1 -1
  51. package/.next/server/app/index.rsc +18 -21
  52. package/.next/server/app/page.js +3 -3
  53. package/.next/server/app/page.js.nft.json +1 -1
  54. package/.next/server/app/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/privacy.html +1 -1
  57. package/.next/server/app/privacy.rsc +13 -13
  58. package/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
  59. package/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  60. package/.next/server/app/terms.html +1 -1
  61. package/.next/server/app/terms.rsc +13 -13
  62. package/.next/server/app/yo/page.js +2 -0
  63. package/.next/server/app/yo/page.js.nft.json +1 -0
  64. package/.next/server/app/yo/page_client-reference-manifest.js +1 -0
  65. package/.next/server/app/yo.html +1 -0
  66. package/.next/server/app/yo.meta +7 -0
  67. package/.next/server/app/yo.rsc +23 -0
  68. package/.next/server/app-paths-manifest.json +11 -10
  69. package/.next/server/chunks/2145.js +1 -1
  70. package/.next/server/chunks/2460.js +1 -1
  71. package/.next/server/chunks/5246.js +1 -1
  72. package/.next/server/chunks/5678.js +1 -1
  73. package/.next/server/chunks/5784.js +1 -1
  74. package/.next/server/chunks/6086.js +2 -20
  75. package/.next/server/chunks/{5553.js → 6415.js} +2 -2
  76. package/.next/server/chunks/7935.js +2 -2
  77. package/.next/server/functions-config-manifest.json +1 -1
  78. package/.next/server/instrumentation.js +1 -1
  79. package/.next/server/middleware-build-manifest.js +1 -1
  80. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  81. package/.next/server/pages/404.html +1 -1
  82. package/.next/server/pages/500.html +1 -1
  83. package/.next/server/server-reference-manifest.json +1 -1
  84. package/.next/server/webpack-runtime.js +1 -1
  85. package/.next/static/WshFGr6RxGYP6AbWuT9OG/_buildManifest.js +1 -0
  86. package/.next/static/chunks/1168.aaac1edbb597fe5a.js +1 -0
  87. package/.next/static/chunks/1255-7999eac54f80a49f.js +1 -0
  88. package/.next/static/chunks/142-fa9752f53a551f63.js +1 -0
  89. package/.next/static/chunks/2505.d54ccadc42f4e3d1.js +1 -0
  90. package/.next/static/chunks/2619-04bc32f026a0d946.js +1 -0
  91. package/.next/static/chunks/2927.7e00cc878d9a3f52.js +1 -0
  92. package/.next/static/chunks/3573-1b41d7b8a000d015.js +1 -0
  93. package/.next/static/chunks/3609.ded5a5306e18af9c.js +1 -0
  94. package/.next/static/chunks/3667-1db7bd03948e60df.js +1 -0
  95. package/.next/static/chunks/3826.a73d4a88d8c09030.js +1 -0
  96. package/.next/static/chunks/{3a91511d-648a2ba3dad7df0c.js → 3a91511d-ba215c0b5dc21ba9.js} +1 -1
  97. package/.next/static/chunks/4256.48407d9abad5ea33.js +1 -0
  98. package/.next/static/chunks/4685-7f53bbfc4a9845eb.js +1 -0
  99. package/.next/static/chunks/4901-ba6a32818662e70a.js +1 -0
  100. package/.next/static/chunks/4919-7e7cdd5efc9f2110.js +1 -0
  101. package/.next/static/chunks/4bd1b696-100b9d70ed4e49c1.js +1 -0
  102. package/.next/static/chunks/5336-233ec7ab3807267c.js +1 -0
  103. package/.next/static/chunks/5442-b5bb869e832e8967.js +1 -0
  104. package/.next/static/chunks/6233-97a810aa272af547.js +1 -0
  105. package/.next/static/chunks/626.a5109d16f9eca1f6.js +1 -0
  106. package/.next/static/chunks/6872-faea0f088ab2d450.js +1 -0
  107. package/.next/static/chunks/7338-3ce17a93614f1d77.js +59 -0
  108. package/.next/static/chunks/7394-4bdb1feefad1a74a.js +1 -0
  109. package/.next/static/chunks/7616-1129bcb3eee8d315.js +1 -0
  110. package/.next/static/chunks/786-26deffb41572cbb3.js +1 -0
  111. package/.next/static/chunks/8273-8e92d34180669ca9.js +1 -0
  112. package/.next/static/chunks/8357.5dee1e0c4e5bb091.js +1 -0
  113. package/.next/static/chunks/9062-2bc2d089f9c9c6ba.js +1 -0
  114. package/.next/static/chunks/9380.f198afbf0c6b5369.js +1 -0
  115. package/.next/static/chunks/app/_not-found/page-5a8c6a29f762fa58.js +1 -0
  116. package/.next/static/chunks/app/api/[...doc]/page-f0852f35f0fd1d44.js +1 -0
  117. package/.next/static/chunks/app/api/agent-requests/route-cf84f975aad4c719.js +1 -0
  118. package/.next/static/chunks/app/api/apps/install/route-cf84f975aad4c719.js +1 -0
  119. package/.next/static/chunks/app/api/apps/manifests/route-cf84f975aad4c719.js +1 -0
  120. package/.next/static/chunks/app/api/apps/static/[...path]/route-cf84f975aad4c719.js +1 -0
  121. package/.next/static/chunks/app/api/docs/plain/route-cf84f975aad4c719.js +1 -0
  122. package/.next/static/chunks/app/api/events/route-cf84f975aad4c719.js +1 -0
  123. package/.next/static/chunks/app/api/import-from-openclaw/[channel]/route-cf84f975aad4c719.js +1 -0
  124. package/.next/static/chunks/app/api/import-from-openclaw/route-cf84f975aad4c719.js +1 -0
  125. package/.next/static/chunks/app/api/import-from-openclaw/validate/[channel]/route-cf84f975aad4c719.js +1 -0
  126. package/.next/static/chunks/app/api/page-cc59bebcc0d2c01d.js +1 -0
  127. package/.next/static/chunks/app/api/restart/route-cf84f975aad4c719.js +1 -0
  128. package/.next/static/chunks/app/api/update/route-cf84f975aad4c719.js +1 -0
  129. package/.next/static/chunks/app/api/version/route-cf84f975aad4c719.js +1 -0
  130. package/.next/static/chunks/app/api/workspace/[id]/apps/[wid]/route-cf84f975aad4c719.js +1 -0
  131. package/.next/static/chunks/app/api/workspace/[id]/apps/route-cf84f975aad4c719.js +1 -0
  132. package/.next/static/chunks/app/api/workspace/[id]/export/route-cf84f975aad4c719.js +1 -0
  133. package/.next/static/chunks/app/api/workspace/[id]/route-cf84f975aad4c719.js +1 -0
  134. package/.next/static/chunks/app/api/workspace/config/route-cf84f975aad4c719.js +1 -0
  135. package/.next/static/chunks/app/api/workspace/import/route-cf84f975aad4c719.js +1 -0
  136. package/.next/static/chunks/app/api/workspace/route-cf84f975aad4c719.js +1 -0
  137. package/.next/static/chunks/app/app-legacy-do-not-use/page-e5dc864e92d90ca7.js +1 -0
  138. package/.next/static/chunks/app/approve/[actionId]/page-2acca1f490424f21.js +1 -0
  139. package/.next/static/chunks/app/docs/[...doc]/page-8e2a2d036caab242.js +1 -0
  140. package/.next/static/chunks/app/docs/page-acf872a03ff79893.js +1 -0
  141. package/.next/static/chunks/app/error-66f983b7769dabfa.js +1 -0
  142. package/.next/static/chunks/app/health/page-c9185854ed9c86d0.js +1 -0
  143. package/.next/static/chunks/app/hello/page-74c9f4deaa4b03dd.js +1 -0
  144. package/.next/static/chunks/app/layout-af8d9969c7aeb758.js +1 -0
  145. package/.next/static/chunks/app/page-16dfcd1c7cc88bcc.js +1 -0
  146. package/.next/static/chunks/app/privacy/page-8e2d17079355c2cc.js +1 -0
  147. package/.next/static/chunks/app/share/[token]/page-5dd9b0418eee411f.js +1 -0
  148. package/.next/static/chunks/app/terms/page-8e2d17079355c2cc.js +1 -0
  149. package/.next/static/chunks/app/yo/layout-cf84f975aad4c719.js +1 -0
  150. package/.next/static/chunks/app/yo/page-719dc5f213fdfb30.js +1 -0
  151. package/.next/static/chunks/framework-a32a2a465584c0bc.js +1 -0
  152. package/.next/static/chunks/main-0f0f9142f74e7215.js +1 -0
  153. package/.next/static/chunks/main-app-24f0c92ba10af457.js +1 -0
  154. package/.next/static/chunks/pages/_app-4b3fb5e477a0267f.js +1 -0
  155. package/.next/static/chunks/pages/_error-c970d8b55ace1b48.js +1 -0
  156. package/.next/static/chunks/{webpack-768de8b7d6a7a27a.js → webpack-79ad58260e9b10b4.js} +1 -1
  157. package/.next/static/css/83cd401584ab787f.css +3 -0
  158. package/.next/trace +28 -28
  159. package/.next/types/app/yo/layout.ts +84 -0
  160. package/.next/types/app/yo/page.ts +84 -0
  161. package/.next/types/routes.d.ts +4 -2
  162. package/.next/types/validator.ts +18 -0
  163. package/bin/auramaxx.js +9 -24
  164. package/docs/ARCHITECTURE.md +1 -1
  165. package/docs/AUTH.md +6 -3
  166. package/docs/CLI.md +2 -0
  167. package/docs/MCP.md +2 -0
  168. package/docs/credentials.md +2 -0
  169. package/package.json +1 -1
  170. package/prisma/migrations/20260227214000_update_agent_action_ttl_defaults/migration.sql +19 -0
  171. package/public/0a167e5e-4f52-4715-ae23-bf63d259a6b1.png +0 -0
  172. package/public/141ec92c-6780-4b23-838f-9a7bf1e91bb8.png +0 -0
  173. package/public/3afc4935-92cb-42af-9624-0b1341c12a5e.png +0 -0
  174. package/public/43947df5-dbcf-4e49-ab8b-41b9162c0410.png +0 -0
  175. package/public/5aeae9ce-0d38-49ea-8fd1-167892a04a85.png +0 -0
  176. package/public/660e4ea3-a3a6-4be4-a8ca-2cb74c51dfb5.png +0 -0
  177. package/public/733f02d7-6b58-4ba6-a5c8-d062cd205e1d.png +0 -0
  178. package/public/a32d65cb-95b0-4977-be6b-cf69f515afbe.png +0 -0
  179. package/public/agent1.png +0 -0
  180. package/public/agent10.png +0 -0
  181. package/public/agent2.png +0 -0
  182. package/public/agent3.png +0 -0
  183. package/public/agent4.png +0 -0
  184. package/public/agent5.png +0 -0
  185. package/public/agent6.png +0 -0
  186. package/public/agent7.png +0 -0
  187. package/public/agent8.png +0 -0
  188. package/public/agent9.png +0 -0
  189. package/public/c4938305-b811-4ccc-91db-94d309734827.png +0 -0
  190. package/public/f2ca6825-a4f3-4107-815c-51ee740dfc09.png +0 -0
  191. package/public/llm.txt +2 -0
  192. package/public/llms.txt +39 -0
  193. package/public/ss-dark1.png +0 -0
  194. package/public/ss-dark1.webp +0 -0
  195. package/public/ss-dark2.png +0 -0
  196. package/public/ss-dark2.webp +0 -0
  197. package/public/ss-dark3.png +0 -0
  198. package/public/ss-dark3.webp +0 -0
  199. package/public/ss-light1.png +0 -0
  200. package/public/ss-light1.webp +0 -0
  201. package/public/ss-light2.png +0 -0
  202. package/public/ss-light2.webp +0 -0
  203. package/public/ss-light3.png +0 -0
  204. package/public/ss-light3.webp +0 -0
  205. package/shared/agent-profile-schema.ts +81 -0
  206. package/shared/credential-field-schema.ts +12 -0
  207. package/skills/auramaxx/SKILL.md +71 -691
  208. package/src/app/UnlockPageClient.tsx +1939 -0
  209. package/src/app/api/page.tsx +8 -9
  210. package/src/app/api/update/route.ts +105 -36
  211. package/src/app/approve/[actionId]/page.tsx +4 -1
  212. package/src/app/docs/DocsPageContent.tsx +3 -3
  213. package/src/app/globals.css +94 -0
  214. package/src/app/layout.tsx +1 -0
  215. package/src/app/page.tsx +25 -1935
  216. package/src/app/yo/layout.tsx +29 -0
  217. package/src/app/yo/page.tsx +528 -0
  218. package/src/components/HumanActionBar.tsx +34 -8
  219. package/src/components/agent/AgentSidebar.tsx +3 -1
  220. package/src/components/agent/CredentialAgent.tsx +5 -1
  221. package/src/components/agent/CredentialDetail.tsx +32 -1
  222. package/src/components/agent/CredentialForm.tsx +94 -7
  223. package/src/components/agent/CredentialRow.tsx +8 -1
  224. package/src/components/agent/credentialFormName.ts +22 -1
  225. package/src/components/agent/types.ts +2 -2
  226. package/src/components/design-system/Modal.tsx +14 -1
  227. package/src/hooks/useUpdateChecker.ts +17 -1
  228. package/src/lib/pino.ts +77 -8
  229. package/src/server/cli/commands/actions.ts +1 -1
  230. package/src/server/cli/commands/agent.ts +110 -65
  231. package/src/server/cli/commands/approve.ts +1 -1
  232. package/src/server/cli/commands/auth.ts +81 -20
  233. package/src/server/cli/commands/token.ts +2 -2
  234. package/src/server/cli/lib/escalation.ts +109 -24
  235. package/src/server/cli/lib/process.ts +2 -1
  236. package/src/server/cli/socket.ts +1 -1
  237. package/src/server/index.ts +2 -0
  238. package/src/server/lib/agent-profile-records.ts +72 -0
  239. package/src/server/lib/credential-transport.ts +27 -11
  240. package/src/server/lib/defaults.ts +3 -3
  241. package/src/server/lib/escalation-responder.ts +1 -1
  242. package/src/server/lib/resolve-action.ts +2 -2
  243. package/src/server/mcp/server.ts +6 -1
  244. package/src/server/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  245. package/src/server/routes/actions.ts +2 -2
  246. package/src/server/routes/agent-profiles.ts +82 -0
  247. package/src/server/routes/auth.ts +39 -4
  248. package/src/server/routes/credentials.ts +18 -0
  249. package/src/server/tests/cli/agent-auth.test.ts +20 -39
  250. package/src/server/tests/cli/agent.test.ts +18 -0
  251. package/src/server/tests/cli/auth-action-flag.test.ts +3 -2
  252. package/src/server/tests/cli/bin-entrypoint.test.ts +35 -11
  253. package/src/server/tests/cli/escalation.test.ts +7 -3
  254. package/src/server/tests/cli/process.test.ts +3 -3
  255. package/src/server/tests/cli/socket.test.ts +2 -2
  256. package/src/server/tests/endpoints/actions.test.ts +2 -2
  257. package/src/server/tests/endpoints/agent-profiles.test.ts +117 -0
  258. package/src/server/tests/endpoints/auth.test.ts +34 -0
  259. package/src/server/tests/lib/credential-transport.test.ts +68 -2
  260. package/src/server/tests/lib/defaults.test.ts +2 -2
  261. package/src/server/tests/lib/escalation-responder.test.ts +2 -2
  262. package/src/server/tests/setup.ts +7 -0
  263. package/src/server/tsconfig.tsbuildinfo +1 -1
  264. package/src/server/types.ts +1 -1
  265. package/.next/static/chunks/1168.63dbb444a33b1867.js +0 -1
  266. package/.next/static/chunks/1255-e8718b02724690dd.js +0 -1
  267. package/.next/static/chunks/142-aeaf7ffa9c53516d.js +0 -1
  268. package/.next/static/chunks/2505.22aaa333fd65908f.js +0 -1
  269. package/.next/static/chunks/2619-3c9e02e22d10480a.js +0 -1
  270. package/.next/static/chunks/2927.e7e9e2a1b8d2dc61.js +0 -1
  271. package/.next/static/chunks/3573-27e17f4ff2dd86ed.js +0 -1
  272. package/.next/static/chunks/3609.6f8e0ecd6de9566c.js +0 -1
  273. package/.next/static/chunks/3667-d6770121629db38b.js +0 -1
  274. package/.next/static/chunks/3826.7dfe96467cd74e45.js +0 -1
  275. package/.next/static/chunks/4256.50cb375c979ffd5a.js +0 -1
  276. package/.next/static/chunks/4685-3f8d92f574366fec.js +0 -1
  277. package/.next/static/chunks/4901-54c1ac380b7b43bb.js +0 -1
  278. package/.next/static/chunks/4919-fe6f1553abfc9420.js +0 -1
  279. package/.next/static/chunks/4bd1b696-f785427dddbba9fb.js +0 -1
  280. package/.next/static/chunks/5336-bd251f91235f7c11.js +0 -1
  281. package/.next/static/chunks/5442-be197c885bf12079.js +0 -1
  282. package/.next/static/chunks/5553-c8b86fe3513fce04.js +0 -59
  283. package/.next/static/chunks/6233-44e6fe57a552a816.js +0 -1
  284. package/.next/static/chunks/626.2583673a0386a81b.js +0 -1
  285. package/.next/static/chunks/6872-6442f2f5cce36ce5.js +0 -1
  286. package/.next/static/chunks/7411-3ca797c21b722ccd.js +0 -1
  287. package/.next/static/chunks/7616-b8bd37ce1f735d6f.js +0 -1
  288. package/.next/static/chunks/786-9ed39f96091b2be4.js +0 -1
  289. package/.next/static/chunks/8273-922091226ba84a94.js +0 -1
  290. package/.next/static/chunks/8357.6159472717ff7d11.js +0 -1
  291. package/.next/static/chunks/9062-3eb1607c96486f88.js +0 -1
  292. package/.next/static/chunks/9380.93f361baab2eefdf.js +0 -1
  293. package/.next/static/chunks/app/_not-found/page-c3b87025baf0a9c2.js +0 -1
  294. package/.next/static/chunks/app/api/[...doc]/page-790c4b33ba1fde4a.js +0 -1
  295. package/.next/static/chunks/app/api/agent-requests/route-e83b12cbab2e8707.js +0 -1
  296. package/.next/static/chunks/app/api/apps/install/route-e83b12cbab2e8707.js +0 -1
  297. package/.next/static/chunks/app/api/apps/manifests/route-e83b12cbab2e8707.js +0 -1
  298. package/.next/static/chunks/app/api/apps/static/[...path]/route-e83b12cbab2e8707.js +0 -1
  299. package/.next/static/chunks/app/api/docs/plain/route-e83b12cbab2e8707.js +0 -1
  300. package/.next/static/chunks/app/api/events/route-e83b12cbab2e8707.js +0 -1
  301. package/.next/static/chunks/app/api/import-from-openclaw/[channel]/route-e83b12cbab2e8707.js +0 -1
  302. package/.next/static/chunks/app/api/import-from-openclaw/route-e83b12cbab2e8707.js +0 -1
  303. package/.next/static/chunks/app/api/import-from-openclaw/validate/[channel]/route-e83b12cbab2e8707.js +0 -1
  304. package/.next/static/chunks/app/api/page-b53f9aa17a4c5201.js +0 -1
  305. package/.next/static/chunks/app/api/restart/route-e83b12cbab2e8707.js +0 -1
  306. package/.next/static/chunks/app/api/update/route-e83b12cbab2e8707.js +0 -1
  307. package/.next/static/chunks/app/api/version/route-e83b12cbab2e8707.js +0 -1
  308. package/.next/static/chunks/app/api/workspace/[id]/apps/[wid]/route-e83b12cbab2e8707.js +0 -1
  309. package/.next/static/chunks/app/api/workspace/[id]/apps/route-e83b12cbab2e8707.js +0 -1
  310. package/.next/static/chunks/app/api/workspace/[id]/export/route-e83b12cbab2e8707.js +0 -1
  311. package/.next/static/chunks/app/api/workspace/[id]/route-e83b12cbab2e8707.js +0 -1
  312. package/.next/static/chunks/app/api/workspace/config/route-e83b12cbab2e8707.js +0 -1
  313. package/.next/static/chunks/app/api/workspace/import/route-e83b12cbab2e8707.js +0 -1
  314. package/.next/static/chunks/app/api/workspace/route-e83b12cbab2e8707.js +0 -1
  315. package/.next/static/chunks/app/app-legacy-do-not-use/page-0052191daef60036.js +0 -1
  316. package/.next/static/chunks/app/approve/[actionId]/page-45cd3b8fa062d5e5.js +0 -1
  317. package/.next/static/chunks/app/docs/[...doc]/page-632ac406200b66fe.js +0 -1
  318. package/.next/static/chunks/app/docs/page-b7556394709b43df.js +0 -1
  319. package/.next/static/chunks/app/error-3d6057da512253d8.js +0 -1
  320. package/.next/static/chunks/app/health/page-80c985cd72328b74.js +0 -1
  321. package/.next/static/chunks/app/hello/page-fd71babcd192729b.js +0 -1
  322. package/.next/static/chunks/app/layout-285c6ef3f16bae63.js +0 -1
  323. package/.next/static/chunks/app/page-85017185df14c37b.js +0 -1
  324. package/.next/static/chunks/app/privacy/page-faf36cd0dde6dfa3.js +0 -1
  325. package/.next/static/chunks/app/share/[token]/page-22d51d6c5a47bb75.js +0 -1
  326. package/.next/static/chunks/app/terms/page-faf36cd0dde6dfa3.js +0 -1
  327. package/.next/static/chunks/framework-e60c938074ff7136.js +0 -1
  328. package/.next/static/chunks/main-447abf206d7ebd2f.js +0 -1
  329. package/.next/static/chunks/main-app-f63b86bdbf5b7b88.js +0 -1
  330. package/.next/static/chunks/pages/_app-6c8c2371b16a04b8.js +0 -1
  331. package/.next/static/chunks/pages/_error-94812ad32cad7365.js +0 -1
  332. package/.next/static/css/eb25c6452113486f.css +0 -3
  333. package/.next/static/zCR6u3S4dIjlCtV80nNsp/_buildManifest.js +0 -1
  334. /package/.next/static/{zCR6u3S4dIjlCtV80nNsp → WshFGr6RxGYP6AbWuT9OG}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=5246,exports.ids=[5246],exports.modules={1599:(a,b,c)=>{c.d(b,{u:()=>d,Rn:()=>e,l3:()=>f,Dw:()=>l,VB:()=>h,zo:()=>i});let d={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"},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"}},e={login:[{key:d.login.url,label:"URL",type:"text",sensitive:!1},{key:d.login.username,label:"Username",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.login.password,label:"Password",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.login.notes,label:"Notes",type:"text",sensitive:!0},{key:d.login.totp,label:"TOTP",type:"secret",sensitive:!0,aliases:["otp"]}],card:[{key:d.card.cardholder,label:"Cardholder",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.card.brand,label:"Brand",type:"text",sensitive:!1},{key:d.card.billingZip,label:"Billing ZIP",type:"text",sensitive:!1},{key:d.card.last4,label:"Last 4",type:"text",sensitive:!1},{key:d.card.number,label:"Number",type:"text",sensitive:!0,requiredOnCreate:!0},{key:d.card.cvv,label:"CVV",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.card.expiry,label:"Expiry",type:"text",sensitive:!0,requiredOnCreate:!0},{key:d.card.notes,label:"Notes",type:"text",sensitive:!0}],note:[{key:d.note.content,label:"Content",type:"text",sensitive:!0,requiredOnCreate:!0,aliases:["value"]}],plain_note:[{key:d.plain_note.content,label:"Content",type:"text",sensitive:!1,requiredOnCreate:!0,aliases:["value"]}],hot_wallet:[{key:d.hot_wallet.address,label:"Address",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.hot_wallet.chain,label:"Chain",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.hot_wallet.privateKey,label:"Private Key",type:"secret",sensitive:!0,requiredOnCreate:!0}],api:[],apikey:[{key:d.apikey.key,label:"Key",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.apikey.value,label:"Value",type:"secret",sensitive:!0,requiredOnCreate:!0}],custom:[],passkey:[],oauth2:[{key:d.oauth2.tokenEndpoint,label:"Token Endpoint",type:"url",sensitive:!1,requiredOnCreate:!0},{key:d.oauth2.scopes,label:"Scopes",type:"text",sensitive:!1},{key:d.oauth2.authMethod,label:"Auth Method",type:"text",sensitive:!1},{key:d.oauth2.expiresAt,label:"Expires At",type:"number",sensitive:!1,requiredOnCreate:!0},{key:d.oauth2.accessToken,label:"Access Token",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.oauth2.refreshToken,label:"Refresh Token",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.oauth2.clientId,label:"Client ID",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.oauth2.clientSecret,label:"Client Secret",type:"secret",sensitive:!0,requiredOnCreate:!0}],ssh:[{key:d.ssh.fingerprint,label:"Fingerprint",type:"text",sensitive:!1},{key:d.ssh.keyType,label:"Key Type",type:"text",sensitive:!1},{key:d.ssh.hosts,label:"Hosts",type:"text",sensitive:!1},{key:d.ssh.privateKey,label:"Private Key",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.ssh.passphrase,label:"Passphrase",type:"secret",sensitive:!0},{key:d.ssh.publicKey,label:"Public Key",type:"text",sensitive:!1}],gpg:[{key:d.gpg.fingerprint,label:"Fingerprint",type:"text",sensitive:!1},{key:d.gpg.keyId,label:"Key ID",type:"text",sensitive:!1},{key:d.gpg.uidEmail,label:"UID Email",type:"email",sensitive:!1},{key:d.gpg.expiresAt,label:"Expires At",type:"text",sensitive:!1},{key:d.gpg.privateKey,label:"Private Key",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.gpg.publicKey,label:"Public Key",type:"text",sensitive:!1}]},f=d.note.content,g={login:d.login.password,card:d.card.number,note:d.note.content,plain_note:d.plain_note.content,hot_wallet:d.hot_wallet.privateKey,api:d.apikey.value,apikey:d.apikey.value,custom:d.custom.value,passkey:d.ssh.privateKey,oauth2:d.oauth2.accessToken,ssh:d.ssh.privateKey,gpg:d.gpg.privateKey};function h(a){return k(a)&&g[a]||"value"}function i(a){if(!k(a))return;let b=h(a);return e[a].find(a=>a.key===b)}let j=Object.fromEntries(Object.entries(e).map(([a,b])=>{let c=new Map;for(let a of b)for(let b of(c.set(a.key.toLowerCase(),a.key),a.aliases||[]))c.set(b.toLowerCase(),a.key);return[a,c]}));function k(a){return Object.prototype.hasOwnProperty.call(e,a)}function l(a,b){let c=b.trim();return c&&k(a)&&j[a].get(c.toLowerCase())||c}},14657:(a,b,c)=>{c.d(b,{Q:()=>e});var d=c(51498);let e=(a,b={})=>{let c=new d.xI.Renderer,e=c.link;return c.heading=({text:a,depth:b})=>{let c=a.replace(/<[^>]*>/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");return`<h${b} id="${c}">${a}</h${b}>`},b.rewriteLinkHref&&(c.link=function(a){let c=b.rewriteLinkHref?.(a.href);return c?e.call(this,{...a,href:c}):e.call(this,a)}),d.xI.parse(a,{async:!1,renderer:c})}},30935:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(21124),e=c(38301),f=c(9212),g=c(51536);let h=["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"}],j={random:20,memorable:4,pin:6},k={random:8,memorable:3,pin:4},l={random:128,memorable:10,pin:12};function m(a){let b=new Uint32Array(1);return crypto.getRandomValues(b),b[0]%a}let n=({isOpen:a,onClose:b,onUse:c})=>{let[n,o]=(0,e.useState)("random"),[p,q]=(0,e.useState)(j.random),[r,s]=(0,e.useState)({numbers:!0,symbols:!0,uppercase:!0,avoidAmbiguous:!1}),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(!1),x=(0,e.useCallback)(()=>{switch(n){case"random":u(function(a,b){let c="abcdefghijklmnopqrstuvwxyz";b.numbers&&(c+="0123456789"),b.symbols&&(c+="!@#$%^&*()_+-=[]{}|;:,.<>?"),b.uppercase&&(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),b.avoidAmbiguous&&(c=c.replace(/[0OoIl1]/g,"")),0===c.length&&(c="abcdefghijklmnopqrstuvwxyz");let d=[];for(let b=0;b<a;b++)d.push(c[m(c.length)]);return d.join("")}(p,r));break;case"memorable":u(function(a){let b=[];for(let c=0;c<a;c++)b.push(h[m(h.length)]);return b.join("-")}(p));break;case"pin":u(function(a){let b=[];for(let c=0;c<a;c++)b.push(String(m(10)));return b.join("")}(p))}w(!1)},[n,p,r]);(0,e.useEffect)(()=>{a&&x()},[a,x]),(0,e.useEffect)(()=>{q(j[n])},[n]);let y=async()=>{try{await navigator.clipboard.writeText(t),w(!0),setTimeout(()=>w(!1),2e3)}catch{}};return(0,d.jsx)(g.aF,{isOpen:a,onClose:b,title:"Password Generator",size:"sm",footer:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(g.$n,{variant:"ghost",size:"sm",onClick:x,icon:(0,d.jsx)(f.A,{size:10}),children:"Refresh"}),(0,d.jsx)(g.$n,{variant:"secondary",size:"sm",onClick:b,children:"Cancel"}),(0,d.jsx)(g.$n,{variant:"primary",size:"sm",onClick:()=>c(t),children:"Use"})]}),children:(0,d.jsxs)("div",{className:"space-y-4 min-h-[280px]",children:[(0,d.jsxs)("div",{onClick:y,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,d.jsx)("div",{className:"font-mono text-lg font-bold text-[var(--color-text,#0a0a0a)] break-all select-all pr-12",children:t}),(0,d.jsx)("div",{className:`absolute top-1 right-2 font-mono text-[8px] uppercase tracking-widest font-bold transition-opacity ${v?"opacity-100":"opacity-0"} bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)] px-1.5 py-0.5`,children:"Copied"}),!v&&(0,d.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,d.jsx)(g.UM,{options:i,value:n,onChange:a=>o(a),label:"Type",compact:!0}),(0,d.jsxs)("div",{children:[(0,d.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,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("input",{type:"range",min:k[n],max:l[n],value:p,onChange:a=>q(parseInt(a.target.value,10)),className:"flex-1 h-1 appearance-none bg-[var(--color-border,#d4d4d8)] outline-none",style:{accentColor:"var(--color-accent, #ccff00)"}}),(0,d.jsx)("div",{className:"w-16",children:(0,d.jsx)(g.ks,{compact:!0,type:"number",min:k[n],max:l[n],value:p,onChange:a=>(a=>{let b=parseInt(a,10);isNaN(b)||q(Math.max(k[n],Math.min(l[n],b)))})(a.target.value)})})]})]}),"random"===n&&(0,d.jsxs)("div",{className:"space-y-2.5",children:[(0,d.jsx)(g.lM,{size:"sm",checked:r.numbers,onChange:a=>s(b=>({...b,numbers:a})),label:"Numbers"}),(0,d.jsx)(g.lM,{size:"sm",checked:r.symbols,onChange:a=>s(b=>({...b,symbols:a})),label:"Symbols"}),(0,d.jsx)(g.lM,{size:"sm",checked:r.uppercase,onChange:a=>s(b=>({...b,uppercase:a})),label:"Uppercase"}),(0,d.jsx)(g.lM,{size:"sm",checked:r.avoidAmbiguous,onChange:a=>s(b=>({...b,avoidAmbiguous:a})),label:"Avoid ambiguous"})]})]})})}},37763:(a,b,c)=>{c.d(b,{v:()=>u});var d=c(21124),e=c(38301),f=c.n(e),g=c(23312),h=c(47268),i=c(15303),j=c(47089),k=c(51536);function l(a){return"string"==typeof a?a.trim():"number"==typeof a?String(a):""}function m(a){let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);return c<24?`${c}h ago`:`${Math.floor(c/24)}d ago`}function n(a){if(!a)return{};try{let b=JSON.parse(a);return b&&"object"==typeof b?b:{}}catch{return{}}}function o(a){var b;let c=n(a.metadata),d="one_shot_read"===(b=c.approvalScope)||"session_token"===b?b:null;return d||("DENY_EXCLUDED_FIELD"===c.escalationReason||"number"==typeof c.credentialAccess?.maxReads&&1===c.credentialAccess.maxReads?"one_shot_read":"auth"===a.type||"agent_access"===a.type||"action"===a.type?"session_token":null)}function p(a){return"one_shot_read"===a?"temp":""}function q(){return{background:"var(--color-surface, #ffffff)",color:"var(--color-text, #0a0a0a)",border:"1px solid var(--color-border, #d4d4d8)"}}function r(a){let b=n(a.metadata);if(b.verifiedSummary?.oneLiner)return b.verifiedSummary.oneLiner;if(b.summary)return b.summary;if(("auth"===a.type||"agent_access"===a.type)&&"number"==typeof b.limit){let a=b.agentId||"agent";return!1===b.requestedLimitExplicit?`${a} requesting access`:`${a} requesting ${b.limit} ETH access`}return a.type}function s(a){return"pending"===a.status?"PENDING":"approved"===a.status?"APPROVED":"rejected"===a.status?"REJECTED":"notify"===a.type?"ALERT":"INFO"}function t(a){return"pending"===a.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"===a.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"===a.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 u=({notifications:a,onDismiss:b,compact:c=!1})=>{let[f,n]=(0,e.useState)(!1),[u,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(new Set),[z,A]=(0,e.useState)(null),B=a=>{let b=l(a.id);return b?`id:${b}`:`fallback:${a.type}:${a.createdAt}:${r(a)}`},C=(0,e.useMemo)(()=>a.filter(a=>!x.has(B(a))),[a,x]),D=(0,e.useMemo)(()=>C.filter(a=>"pending"===a.status&&"notify"!==a.type).length,[C]);return(0,e.useEffect)(()=>(w(!0),()=>w(!1)),[]),(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("button",{type:"button",onClick:()=>n(a=>!a),className:`${c?"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,d.jsx)(h.A,{size:c?10:14})}),D>0&&(0,d.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:D>9?"9+":D})]}),u&&(0,g.createPortal)((0,d.jsxs)(d.Fragment,{children:[f&&(0,d.jsx)("button",{type:"button","aria-label":"Close notifications",onClick:()=>n(!1),className:"fixed inset-0 z-30 bg-[var(--color-text,#0a0a0a)]/20"}),(0,d.jsx)("div",{className:"fixed inset-y-0 right-0 z-40",children:(0,d.jsx)(k._s,{isOpen:f,onClose:()=>n(!1),title:"NOTIFICATIONS",subtitle:"Approvals + alerts",width:"sm",children:0===C.length?(0,d.jsxs)("div",{className:"py-8 text-center tyvek-label corner-marks mx-2",children:[(0,d.jsx)(h.A,{size:24,className:"mx-auto mb-2 text-[var(--color-text-faint,#9ca3af)]"}),(0,d.jsx)("div",{className:"label-specimen text-[var(--color-text-muted,#6b7280)]",children:"NO ALERTS"})]}):(0,d.jsx)("div",{className:"space-y-2",children:C.map(a=>{let c=o(a);return(0,d.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,d.jsxs)("button",{type:"button",onClick:()=>A(a),className:"flex-1 min-w-0 text-left",title:"View details",children:[(0,d.jsxs)("div",{className:"mb-1.5 flex items-center gap-1",children:[(0,d.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:t(a).bg,color:t(a).fg,border:`1px solid ${t(a).border}`},children:s(a)}),"one_shot_read"===c&&(0,d.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 font-mono text-[7px] font-bold tracking-[0.15em]",style:q(),children:p(c)})]}),(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-text,#0a0a0a)]",children:r(a)}),(0,d.jsxs)("div",{className:"font-mono text-[8px] text-[var(--color-text-faint,#9ca3af)] flex items-center gap-1 mt-1",children:[(0,d.jsx)(i.A,{size:7}),m(a.createdAt)]})]}),(0,d.jsx)("button",{type:"button",onClick:()=>{let c=B(a);y(a=>{let b=new Set(a);return b.add(c),b});let d=l(a.id);d&&b(d)},className:"p-1 hover:bg-[var(--color-background-alt,#e5e5e5)] transition-colors shrink-0",title:"Dismiss",children:(0,d.jsx)(j.A,{size:10,className:"text-[var(--color-text-muted,#6b7280)]"})})]},B(a))})})})})]}),document.body),(0,d.jsx)(v,{notification:z,onClose:()=>A(null)})]})};function v({notification:a,onClose:b}){let[c,e]=f().useState(null),g=a||c,h=g?n(g.metadata):{},j=g?.humanSummary,l=g?t(g):{bg:"",fg:"",border:""},r=g?o(g):null,u=h.agentId||"unknown";return(0,d.jsx)(k.aF,{isOpen:!!a,onClose:b,title:j?.actionLabel||g?.type.toUpperCase()||"DETAILS",size:"sm",children:(0,d.jsxs)("div",{className:"space-y-4",children:[g&&(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.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:l.bg,color:l.fg,border:`1px solid ${l.border}`},children:s(g)}),"one_shot_read"===r&&(0,d.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 font-mono text-[7px] font-bold tracking-[0.15em]",style:q(),children:p(r)})]}),(0,d.jsxs)("span",{className:"font-mono text-[8px] text-[var(--color-text-faint,#9ca3af)] flex items-center gap-1",children:[(0,d.jsx)(i.A,{size:7}),m(g.createdAt)]})]}),j?.oneLiner&&(0,d.jsx)("div",{className:"text-[10px] text-[var(--color-text-muted,#6b7280)] tracking-wider",children:j.oneLiner}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Agent"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider text-right",children:u})]}),(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Type"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] font-bold tracking-wider text-right",children:g?.type})]}),"one_shot_read"===r&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Token"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] font-bold tracking-wider text-right",children:p(r)})]}),j?.profileLabel&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Profile"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider text-right",children:j.profileLabel})]}),j?.riskHint&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Risk"}),(0,d.jsx)("span",{className:`text-[10px] font-bold tracking-wider ${j.riskHint.toLowerCase().includes("high")?"text-[var(--color-danger,#ef4444)]":j.riskHint.toLowerCase().includes("medium")?"text-[var(--color-warning,#ff4d00)]":"text-[var(--color-text,#0a0a0a)]"}`,children:j.riskHint})]}),j?.expiresIn&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Expires"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider text-right",children:j.expiresIn})]}),"number"==typeof h.limit&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Limit"}),(0,d.jsxs)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] font-bold tracking-wider text-right",children:[h.limit," ETH"]})]}),(0,d.jsxs)("div",{className:"text-[7px] text-[var(--color-text-faint,#9ca3af)] tracking-widest break-all",children:["ID: ",g?.id]})]}),j?.can&&j.can.length>0&&(0,d.jsxs)("div",{className:"border-t border-[var(--color-border,#d4d4d8)] pt-3",children:[(0,d.jsx)("div",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase mb-1.5",children:"Permissions"}),(0,d.jsx)("div",{className:"space-y-1",children:j.can.map(a=>(0,d.jsx)("div",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider pl-2 border-l-2 border-[var(--color-border,#d4d4d8)]",children:a},a))})]}),j?.cannot&&j.cannot.length>0&&(0,d.jsxs)("div",{className:"border-t border-[var(--color-border,#d4d4d8)] pt-3",children:[(0,d.jsx)("div",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase mb-1.5",children:"Restrictions"}),(0,d.jsx)("div",{className:"space-y-1",children:j.cannot.map(a=>(0,d.jsx)("div",{className:"text-[10px] text-[var(--color-danger,#ef4444)] tracking-wider pl-2 border-l-2 border-[var(--color-danger,#ef4444)]/30",children:a},a))})]}),j?.scope&&j.scope.length>0&&(0,d.jsxs)("div",{className:"border-t border-[var(--color-border,#d4d4d8)] pt-3",children:[(0,d.jsx)("div",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase mb-1.5",children:"Scope"}),(0,d.jsx)("div",{className:"space-y-1",children:j.scope.map(a=>(0,d.jsx)("div",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider pl-2 border-l-2 border-[var(--color-border,#d4d4d8)]",children:a},a))})]})]})})}},64354:(a,b,c)=>{c.d(b,{S:()=>i});var d=c(38301),e=c(77886);c(2761);var f=c(45478);function g(a){return[...a].sort((a,b)=>{let c=new Date(a.createdAt).getTime();return new Date(b.createdAt).getTime()-c})}function h(a){return"string"==typeof a?a:"number"==typeof a?String(a):""}function i(a={}){let{autoFetch:b=!0}=a,[c,j]=(0,d.useState)([]),[k,l]=(0,d.useState)([]),[m,n]=(0,d.useState)([]),[o,p]=(0,d.useState)(()=>new Set),[q,r]=(0,d.useState)([]),[s,t]=(0,d.useState)([]),[u,v]=(0,d.useState)(!0),[w,x]=(0,d.useState)(null),[y,z]=(0,d.useState)(null),[A,B]=(0,d.useState)({pendingActions:0,activeTokens:0}),[C,D]=(0,d.useState)(null),{subscribe:E,connected:F}=(0,e.h)(),G=(0,d.useRef)(!0);(0,d.useRef)([]);let H=(0,d.useCallback)(()=>{D(null)},[]),I=(0,d.useCallback)(a=>{let b=h(a);b&&(p(a=>{let c=new Set(a);return c.add(b),c}),n(a=>a.filter(a=>h(a.id)!==b)))},[]),J=(0,d.useCallback)(async()=>{try{let a=await f.FH.get(f.jI.Wallet,"/dashboard");if(!G.current)return;a.success?(j(b=>(function(a,b){let c=Date.now(),d=new Map;return a.filter(a=>"pending"===a.status).forEach(a=>d.set(a.id,a)),b.filter(a=>"pending"===a.status).filter(a=>!d.has(a.id)).filter(a=>c-new Date(a.createdAt).getTime()<=15e3).forEach(a=>d.set(a.id,a)),g(Array.from(d.values()))})(a.requests||[],b)),l(b=>(function(a,b){let c=Date.now(),d=new Map;return a.filter(a=>"pending"!==a.status).forEach(a=>d.set(a.id,a)),b.filter(a=>"pending"!==a.status).filter(a=>!d.has(a.id)).filter(a=>c-new Date(a.createdAt).getTime()<=15e3).forEach(a=>d.set(a.id,a)),g(Array.from(d.values())).slice(0,80)})(a.history||[],b)),r(a.tokens?.active||[]),t(a.tokens?.inactive||[]),B({pendingActions:a.counts?.pendingActions||0,activeTokens:a.counts?.activeTokens||0}),x(null)):x(a.error||"Failed to fetch dashboard")}catch(a){G.current&&x(a instanceof Error?a.message:"Failed to fetch dashboard")}finally{G.current&&v(!1)}},[]),K=(0,d.useCallback)(async()=>{v(!0),await J()},[J]),L=(0,d.useCallback)(async(a,b)=>{z(`resolve-${a}`);try{let c=await f.FH.post(f.jI.Wallet,`/actions/${a}/resolve`,{approved:b});if(!c.success)return x(c.error||"Action resolution failed"),{success:!1,message:c.error};{let a={success:!0,token:c.token,agentId:c.agentId,limit:c.limit,permissions:c.permissions,expiresIn:c.expiresIn,txHash:c.txHash,message:c.message};return c.token&&D(a),await K(),a}}catch(b){let a=b instanceof Error?b.message:"Action resolution failed";return x(a),{success:!1,message:a}}finally{z(null)}},[K]),M=(0,d.useCallback)(async a=>{z(`revoke-${a}`);try{let b=await f.FH.post(f.jI.Wallet,"/actions/tokens/revoke",{tokenHash:a});if(b.success)return await K(),!0;return x(b.error||"Revoke failed"),!1}catch(a){return x(a instanceof Error?a.message:"Revoke failed"),!1}finally{z(null)}},[K]),N=(0,d.useMemo)(()=>{let a=new Map,b=b=>{let c=h(b.id);if(!c||o.has(c))return;let d=a.get(c);if(!d)return void a.set(c,b);"pending"!==d.status&&"pending"===b.status&&a.set(c,b)};return c.forEach(b),k.forEach(b),m.forEach(b),g(Array.from(a.values()))},[k,m,o,c]);return{requests:c,notifications:N,dismissNotification:I,activeTokens:q,inactiveTokens:s,loading:u,error:w,counts:A,refresh:K,resolveAction:L,revokeToken:M,actionLoading:y,lastApprovalResult:C,clearApprovalResult:H,connected:F}}},71287:(a,b,c)=>{c.d(b,{Z:()=>u});var d=c(21124),e=c(38301),f=c(18310),g=c(75219),h=c(43700),i=c(71613),j=c(3663),k=c(96503),l=c(51536),m=c(45478),n=c(93292);let o=["1password-csv","bitwarden-csv","chrome-csv"],p=["aura to maxx","maxx to aura"],q=[{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"}],r={skip:"Skip",rename:"Rename",overwrite:"Create Anyway"};function s(a){let b=a.replace(/-/g,"+").replace(/_/g,"/");for(;b.length%4;)b+="=";let c=atob(b),d=new Uint8Array(c.length);for(let a=0;a<c.length;a++)d[a]=c.charCodeAt(a);return d.buffer}function t(a){let b=new Uint8Array(a),c="";for(let a=0;a<b.length;a++)c+=String.fromCharCode(b[a]);return btoa(c).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function u({isUnlocked:a}){let b=(0,e.useMemo)(()=>(0,m.au)(),[]),c=(0,e.useMemo)(()=>p[Math.floor(Math.random()*p.length)],[]),[u,v]=(0,e.useState)("hidden"),[w,x]=(0,e.useState)("import-source"),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(!1),[C,D]=(0,e.useState)(o[0]),[E,F]=(0,e.useState)("upload"),[G,H]=(0,e.useState)(null),[I,J]=(0,e.useState)("skip"),[K,L]=(0,e.useState)(null),[M,N]=(0,e.useState)(null),[O,P]=(0,e.useState)(!1),[Q,R]=(0,e.useState)(null),[S,T]=(0,e.useState)([]),[U,V]=(0,e.useState)("primary"),[W,X]=(0,e.useState)(!1),[Y,Z]=(0,e.useState)(!1),[$,_]=(0,e.useState)(null),aa=(0,e.useRef)(null),ab=(0,e.useMemo)(()=>A?q:q.filter(a=>o.includes(a.format)),[A]),ac=(0,e.useMemo)(()=>S.map(a=>({value:a.id,label:a.name||(a.isPrimary?"Primary":`Agent ${a.id.slice(0,6)}`)})),[S]),ad=(0,e.useMemo)(()=>S.find(a=>a.id===U)||null,[S,U]),ae=(0,e.useCallback)(()=>{F("upload"),H(null),J("skip"),L(null),N(null),P(!1),R(null),aa.current&&(aa.current.value="")},[]),af=(0,e.useCallback)((a=!1)=>{v("hidden"),x("import-source"),B(!1),D(o[0]),_(null),Z(!1),ae()},[ae]),ag=(0,e.useCallback)(()=>{x("retrieve-note"),X(!0)},[]),ah=(0,e.useCallback)(()=>{v("hidden"),_(null),Z(!1)},[]),ai=(0,e.useCallback)(async()=>{try{let a=await m.FH.get(m.jI.Wallet,"/agents/credential");if(!a.success||!Array.isArray(a.agents))return;T(a.agents);let b=a.agents.find(a=>a.isPrimary)?.id||a.agents[0]?.id||"primary";V(c=>c&&a.agents.some(a=>a.id===c)?c:b)}catch{}},[]),aj=(0,e.useCallback)(a=>{if(!G)return null;let b=new FormData;return b.append("file",G),b.append("format",C),b.append("agentId",U||"primary"),a&&b.append("dryRun","true"),b.append("duplicateStrategy",I),b},[I,G,C,U]),ak=(0,e.useCallback)(async()=>{if(G){P(!0),R(null);try{let a=aj(!0);if(!a)return;let c=await fetch(`${b}/credentials/import`,{method:"POST",headers:{},body:a});if(!(c.headers.get("content-type")||"").includes("application/json"))return void R(`Server error: ${c.status} ${c.statusText}`);let d=await c.json();if(!c.ok||!d.success)return void R(d.error||`Request failed: ${c.status}`);L(d),F("preview")}catch(a){R(a instanceof Error?a.message:"Preview failed")}finally{P(!1)}}},[aj,G,b]),al=(0,e.useCallback)(async()=>{P(!0),R(null);try{let a=aj(!1);if(!a)return;let c=await fetch(`${b}/credentials/import`,{method:"POST",headers:{},body:a});if(!(c.headers.get("content-type")||"").includes("application/json"))return void R(`Server error: ${c.status} ${c.statusText}`);let d=await c.json();if(!c.ok)return void R(d.error||`Request failed: ${c.status}`);N(d),F("result")}catch(a){R(a instanceof Error?a.message:"Import failed")}finally{P(!1)}},[aj,b]),am=(0,e.useCallback)(async()=>{if(!y)return void _("Passkey is not available in this environment.");Z(!0),_(null);try{let a=await m.FH.post(m.jI.Wallet,"/auth/passkey/register/options",{}),b={challenge:s(a.challenge),rp:{name:a.rp.name,id:a.rp.id},user:{id:s(a.user.id),name:a.user.name,displayName:a.user.displayName},pubKeyCredParams:a.pubKeyCredParams.map(a=>({type:a.type,alg:a.alg})),timeout:a.timeout,attestation:a.attestation||"none",excludeCredentials:(a.excludeCredentials||[]).map(a=>({type:"public-key",id:s(a.id),transports:a.transports})),authenticatorSelection:{authenticatorAttachment:a.authenticatorSelection?.authenticatorAttachment,residentKey:a.authenticatorSelection?.residentKey,userVerification:a.authenticatorSelection?.userVerification}},c=await navigator.credentials.create({publicKey:b});if(!c)return void Z(!1);let d=c.response,e={credential:{id:t(c.rawId),rawId:t(c.rawId),type:c.type,response:{clientDataJSON:t(d.clientDataJSON),attestationObject:t(d.attestationObject),transports:d.getTransports?.()||[]}}},f=await m.FH.post(m.jI.Wallet,"/auth/passkey/register/verify",e);if(!f.success)return void _(f.error||"Passkey registration failed.");"onboarding"===u?(x("passkey-success"),setTimeout(()=>af(!1),1200)):v("hidden")}catch(a){if(a instanceof Error&&"NotAllowedError"===a.name)return void Z(!1);_(a instanceof Error?a.message:"Passkey registration failed.")}finally{Z(!1)}},[af,u,y]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(l.aF,{isOpen:"hidden"!==u,onClose:()=>{},dismissible:!1,title:"onboarding"===u?"passkey"===w||"passkey-success"===w?"Passkey Setup":"Onboarding":"Passkey Setup",subtitle:"Security",icon:(0,d.jsx)(k.A,{size:16,className:"text-[var(--color-accent,#ccff00)]"}),size:"md",children:"onboarding"===u?(()=>{if("passkey-success"===w)return(0,d.jsxs)("div",{className:"flex flex-col items-center gap-3 py-4",children:[(0,d.jsx)("div",{className:"w-10 h-10 bg-[var(--color-text,#0a0a0a)] flex items-center justify-center",children:(0,d.jsx)(i.A,{size:20,className:"text-[var(--color-accent,#ccff00)]"})}),(0,d.jsx)("div",{className:"font-mono text-xs tracking-widest text-[var(--color-text,#0a0a0a)] uppercase",children:"Passkey enabled!"}),(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Onboarding complete."})]});if("import-source"===w)return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"font-mono text-xs text-[var(--color-text,#0a0a0a)] leading-relaxed",children:"Import credentials from another manager before you continue."}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Import Source"}),(0,d.jsx)(l.O6,{ariaLabel:"Onboarding import source",value:C,onChange:a=>D(a),options:ab.map(a=>({value:a.format,label:a.label,icon:(0,d.jsx)(j.A,{size:12})}))})]}),(0,d.jsx)("button",{type:"button",onClick:()=>B(a=>!a),className:"font-mono text-[10px] tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:A?"SHOW LESS":"SHOW MORE"}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{ae(),ag()},children:"SKIP"}),(0,d.jsx)(l.$n,{size:"sm",onClick:()=>{ae(),x("import-upload")},children:"CONFIRM"})]})]});if("import-upload"===w){if("preview"===E&&K){let a="skip"===I?K.total-K.duplicates:K.total;return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"flex gap-4",children:[(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-[var(--color-text,#0a0a0a)]",children:K.total}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Total"})]}),K.duplicates>0&&(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-amber-600",children:K.duplicates}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Duplicates"})]})]}),(0,d.jsxs)("div",{className:"max-h-[220px] overflow-y-auto border border-[var(--color-border,#d4d4d8)]",children:[0===K.credentials.length?(0,d.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((a,b)=>(0,d.jsxs)("div",{className:`flex items-center gap-2 px-3 py-1.5 border-b border-[var(--color-border,#d4d4d8)] last:border-b-0 ${a.isDuplicate?"bg-amber-50/50":""}`,children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("div",{className:"text-[10px] font-mono text-[var(--color-text,#0a0a0a)] truncate",children:a.name}),a.url&&(0,d.jsx)("div",{className:"text-[8px] font-mono text-[var(--color-text-faint,#9ca3af)] truncate",children:a.url})]}),(0,d.jsx)("span",{className:"text-[8px] font-mono tracking-wider uppercase text-[var(--color-text-faint,#9ca3af)] flex-shrink-0",children:a.type}),a.isDuplicate&&(0,d.jsx)("span",{className:"text-[8px] font-mono tracking-wider uppercase text-amber-600 flex-shrink-0",children:"DUP"})]},`${a.name}-${b}`)),K.total>K.credentials.length&&(0,d.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,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)] mb-1.5",children:"Duplicate handling"}),(0,d.jsx)("div",{className:"flex gap-1.5",children:["skip","rename","overwrite"].map(a=>(0,d.jsx)("button",{onClick:()=>J(a),className:`px-3 py-1.5 text-[9px] font-mono tracking-wider uppercase border transition-colors ${I===a?"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:r[a]},a))})]}),Q&&(0,d.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 bg-red-50 border border-red-200",children:[(0,d.jsx)(f.A,{size:12,className:"text-red-500 flex-shrink-0 mt-0.5"}),(0,d.jsx)("span",{className:"text-[10px] font-mono text-red-700",children:Q})]}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{ae(),ag()},children:"SKIP"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{F("upload"),R(null),aa.current&&(aa.current.value="")},children:"BACK"}),(0,d.jsxs)(l.$n,{size:"sm",onClick:()=>{al()},loading:O,disabled:0===K.credentials.length,children:["IMPORT ",a," CREDENTIAL",1!==a?"S":""]})]})]})]})}if("result"===E&&M){let a=M.errors.length>0;return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[M.success?(0,d.jsx)(g.A,{size:20,className:"text-green-600"}):(0,d.jsx)(f.A,{size:20,className:"text-red-500"}),(0,d.jsx)("div",{children:(0,d.jsx)("div",{className:"text-[11px] font-mono font-bold text-[var(--color-text,#0a0a0a)]",children:M.success?"Import Complete":"Import Failed"})})]}),(0,d.jsxs)("div",{className:"flex gap-6",children:[(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-green-600",children:M.imported}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Imported"})]}),M.skipped>0&&(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-[var(--color-text-muted,#6b7280)]",children:M.skipped}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Skipped"})]}),a&&(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-red-500",children:M.errors.length}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Errors"})]})]}),a&&(0,d.jsx)("div",{className:"max-h-[120px] overflow-y-auto border border-red-200 bg-red-50",children:M.errors.map((a,b)=>(0,d.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 ",a.row,": ",a.reason]},`${a.row}-${b}`))}),(0,d.jsx)("div",{className:"flex justify-end",children:(0,d.jsx)(l.$n,{size:"sm",onClick:()=>{ae(),x("retrieve-note")},children:"CONTINUE"})})]})}return(0,d.jsxs)("div",{className:"space-y-5",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)] mb-2",children:"Source"}),(0,d.jsx)("div",{className:"text-[10px] font-mono text-[var(--color-text,#0a0a0a)] px-3 py-2 border border-[var(--color-border,#d4d4d8)]",children:q.find(a=>a.format===C)?.label||C})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)] mb-2",children:"File"}),(0,d.jsx)("input",{ref:aa,type:"file",accept:".csv",onChange:a=>{let b=a.target.files?.[0]??null;if(b&&b.size>0xa00000){R(`File too large (${(b.size/1024/1024).toFixed(1)}MB). Maximum is 10MB.`),H(null),aa.current&&(aa.current.value="");return}H(b),R(null)},className:"hidden"}),(0,d.jsxs)("button",{onClick:()=>aa.current?.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,d.jsx)(h.A,{size:14,className:"text-[var(--color-text-muted,#6b7280)]"}),(0,d.jsx)("span",{className:"text-[10px] font-mono tracking-wider text-[var(--color-text-muted,#6b7280)]",children:G?G.name:"Choose CSV file"})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)(l.UM,{label:"Target Agent",ariaLabel:"TARGET AGENT",options:ac,value:U,onChange:V,compact:!0,searchable:!0,menuPosition:"top",searchPlaceholder:"Search agent...",emptyMessage:"No agent matches",disabled:0===ac.length}),ad&&!ad.isUnlocked&&(0,d.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."})]}),Q&&(0,d.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 bg-red-50 border border-red-200",children:[(0,d.jsx)(f.A,{size:12,className:"text-red-500 flex-shrink-0 mt-0.5"}),(0,d.jsx)("span",{className:"text-[10px] font-mono text-red-700",children:Q})]}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{ae(),ag()},children:"SKIP"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{ae(),x("import-source")},children:"BACK"}),(0,d.jsx)(l.$n,{size:"sm",onClick:()=>{ak()},loading:O,disabled:!G,children:"PREVIEW"})]})]})]})}return"retrieve-note"===w?(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"font-mono text-xs text-[var(--color-text,#0a0a0a)] leading-relaxed",children:"Retrieve your note before passkey setup."}),(0,d.jsxs)("div",{className:"space-y-2 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-background-alt,#f4f4f5)] px-3 py-2",children:[(0,d.jsx)("div",{className:"font-mono text-[9px] tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Dev Command"}),(0,d.jsx)("div",{className:"font-mono text-[11px] text-[var(--color-text,#0a0a0a)] break-all",children:"$ npx auramaxx get FIRSTAURA"})]}),(0,d.jsxs)("div",{className:"space-y-2 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)] px-3 py-2",children:[(0,d.jsx)("div",{className:"font-mono text-[9px] tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Agent Prompt"}),(0,d.jsx)("div",{className:"font-mono text-[11px] text-[var(--color-text,#0a0a0a)]",children:"ayo get my FIRSTAURA using auramaxx"})]}),(0,d.jsx)("div",{className:"flex justify-end",children:(0,d.jsx)(l.$n,{size:"sm",onClick:()=>x("passkey"),children:"CONTINUE"})})]}):(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.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."}),!y&&(0,d.jsx)("div",{className:"p-2 border border-[var(--color-warning,#ff4d00)]/30 bg-[var(--color-warning,#ff4d00)]/5",children:(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-warning,#ff4d00)]",children:"Passkey is unavailable in this environment."})}),$&&(0,d.jsx)("div",{className:"p-2 border border-[var(--color-warning,#ff4d00)]/30 bg-[var(--color-warning,#ff4d00)]/5",children:(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-warning,#ff4d00)]",children:$})}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>af(!0),children:"NOT NOW"}),(0,d.jsx)(l.$n,{variant:"primary",size:"sm",loading:Y,onClick:()=>{am()},disabled:!y,icon:(0,d.jsx)(k.A,{size:14}),children:Y?"REGISTERING...":"CREATE PASSKEY"})]})]})})():(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.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."}),$&&(0,d.jsx)("div",{className:"p-2 border border-[var(--color-warning,#ff4d00)]/30 bg-[var(--color-warning,#ff4d00)]/5",children:(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-warning,#ff4d00)]",children:$})}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:ah,children:"NOT NOW"}),(0,d.jsx)(l.$n,{variant:"primary",size:"sm",loading:Y,onClick:()=>{am()},icon:(0,d.jsx)(k.A,{size:14}),children:Y?"REGISTERING...":"CREATE PASSKEY"})]})]})}),(0,d.jsx)(n.i,{isOpen:W,onClose:()=>{X(!1),x("retrieve-note")},onSaved:()=>{X(!1),x("retrieve-note"),ai()},agents:S,createStartStep:"form",createStartType:"plain_note",createPrefill:{type:"plain_note",name:"FIRSTAURA",noteContent:c,agentId:"primary"!==U?U:void 0}})]})}},93292:(a,b,c)=>{c.d(b,{i:()=>N});var d=c(21124),e=c(38301),f=c(46816),g=c(3663),h=c(43718),i=c(14343),j=c(25345),k=c(79944),l=c(14263),m=c(3368),n=c(43700),o=c(51536),p=c(45478),q=c(9793),r=c(14657),s=c(1599),t=c(30935);let u=new Set(["SHA1","SHA256","SHA512"]);function v(a){let b=a.replace(/\s+/g,"").toUpperCase();if(b.length<8||!/^[A-Z2-7]+$/.test(b))throw Error("Invalid TOTP secret");return b}function w(a){let b=a.trim().toLowerCase();return b.startsWith("otpauth://totp/")?"otpauth":b.startsWith("otpauth-migration://")?"otpauth-migration":"unknown"}let x=({isEdit:a,hasExistingTotp:b,onIntentChange:c,onSecretChange:f})=>{let[g,h]=(0,e.useState)("manual"),[i,j]=(0,e.useState)(""),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(null),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)(!1),t=(0,e.useRef)(0),x=(0,e.useMemo)(()=>"otpauth-migration"===w(k),[k]),y=async a=>{if(!a)return;if(a.size>5242880)return void q("QR image must be 5MB or smaller");let b=++t.current;s(!0),q(null);try{throw Error("QR decoding not supported in this browser. Paste setup link manually.")}catch(a){if(t.current!==b)return;n(null),q(a instanceof Error?a.message:"Failed to decode QR image")}finally{t.current===b&&s(!1)}};return(0,d.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:[a&&b&&(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] px-2 py-1 border",onClick:()=>{c("keep"),q(null),f("",!1)},children:"Keep Existing"}),(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] px-2 py-1 border",onClick:()=>c("replace"),children:"Replace TOTP"}),(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] px-2 py-1 border",onClick:()=>{c("remove"),n(null),q(null),f("",!0)},children:"Remove TOTP"})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] uppercase px-2 py-1 border",onClick:()=>h("manual"),children:"Manual"}),(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] uppercase px-2 py-1 border",onClick:()=>h("uri"),children:"Paste Link"}),(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] uppercase px-2 py-1 border",onClick:()=>h("qr"),children:"Import QR"})]}),"manual"===g&&(0,d.jsx)(o.ks,{label:"TOTP Secret (2FA)",value:i,onChange:a=>(a=>{if(j(a),!a.trim()){n(null),f("",!1);return}try{let b=v(a);q(null),n({secret:b,algorithm:"SHA1",digits:6,period:30}),c("replace"),f(b,!0)}catch{n(null),q("Invalid TOTP secret"),f("",!1)}})(a.target.value),placeholder:"Base32 secret (e.g. JBSWY3DPEHPK3PXP)",type:"password"}),"uri"===g&&(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Setup Link"}),(0,d.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:k,onChange:a=>{l(a.target.value),(a=>{if(!a.trim()){n(null),q(null),f("",!1);return}let b=w(a);if("otpauth-migration"===b){n(null),q(null),f("",!1);return}if("otpauth"!==b){n(null),q("Unsupported QR/setup payload. Use an otpauth://totp link."),f("",!1);return}try{(a=>{n(a),q(null),c("replace"),f(a.secret,!0)})(function(a){let b=new URL(a.trim());if("otpauth:"!==b.protocol)throw Error("Not an otpauth URI");if("totp"!==b.hostname)throw Error("Only TOTP is supported");let c=b.searchParams.get("secret");if(!c)throw Error("Missing secret parameter");let d=b.searchParams.has("digits")?Number.parseInt(b.searchParams.get("digits")||"",10):6,e=b.searchParams.has("period")?Number.parseInt(b.searchParams.get("period")||"",10):30,f=(b.searchParams.get("algorithm")||"SHA1").toUpperCase();if(!u.has(f))throw Error(`Unsupported TOTP algorithm: ${f}`);if(!Number.isInteger(d)||d<6||d>8)throw Error(`Invalid TOTP digits: ${d}`);if(!Number.isInteger(e)||e<15||e>60)throw Error(`Invalid TOTP period: ${e}`);let g=decodeURIComponent(b.pathname.replace(/^\//,""))||void 0,[h,i]=(g||"").includes(":")?(g||"").split(":",2):[void 0,g];return{secret:v(c),issuer:b.searchParams.get("issuer")||h||void 0,account:i||void 0,algorithm:f,digits:d,period:e,label:g}}(a))}catch(a){n(null),q(a instanceof Error?a.message:"Invalid TOTP setup link"),f("",!1)}})(a.target.value)},placeholder:"otpauth://totp/...","data-testid":"totp-uri-input"})]}),"qr"===g&&(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("input",{type:"file",accept:"image/png,image/jpeg,image/webp",onChange:a=>{y(a.target.files?.[0]||null)},"data-testid":"totp-qr-file"}),r&&(0,d.jsx)("p",{className:"font-mono text-[10px]","data-testid":"totp-qr-decoding",children:"Decoding QR…"})]}),x&&(0,d.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,d.jsxs)("div",{className:"font-mono text-[10px] border p-2","data-testid":"totp-preview",children:[(0,d.jsxs)("div",{children:["Issuer: ",m.issuer||"—"]}),(0,d.jsxs)("div",{children:["Account: ",m.account||"—"]}),(0,d.jsxs)("div",{children:["Digits: ",m.digits]}),(0,d.jsxs)("div",{children:["Period: ",m.period,"s"]}),(0,d.jsxs)("div",{children:["Algorithm: ",m.algorithm]})]}),p&&(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-danger,#ef4444)]","data-testid":"totp-error",children:p})]})},y=a=>(a.split(/\r?\n/).map(a=>a.trim()).find(Boolean)||"").slice(0,48);function z(a){let{type:b,apiKeyName:c,username:d,url:e,noteContent:f,customFieldKey:g,hotWalletChain:h,cardholder:i,cardNumber:j,cardLast4:k,oauth2TokenEndpoint:l,sshHostsInput:m,gpgKeyId:n,gpgUidEmail:o}=a;return"apikey"===b&&!!c.trim()||"plain_note"===b&&!!f.trim()||"login"===b&&(!!d.trim()||!!e.trim())||"note"===b&&!!f.trim()||"hot_wallet"===b&&(!!h.trim()||!0)||"custom"===b&&!!g.trim()||"card"===b&&(!!i?.trim()||!!j?.trim()||!!k?.trim())||"oauth2"===b&&!!l?.trim()||"ssh"===b&&!!m?.trim()||"gpg"===b&&(!!n?.trim()||!!o?.trim())}let A=s.u.login,B=s.u.card,C=s.u.hot_wallet,D=s.u.apikey,E=s.u.oauth2,F=s.u.ssh,G=s.u.gpg,H={hot_wallet:{label:"Hot Wallet",description:"Generate wallet address + encrypted private key",icon:f.A},plain_note:{label:"Plain Note",description:"Readable note content stored without encryption",icon:g.A},apikey:{label:"API Key",description:"Simple key/value secret",icon:h.A},login:{label:"Login",description:"Websites and app accounts",icon:h.A},note:{label:"Secure Note",description:"Private notes and secrets",icon:g.A},card:{label:"Credit Card",description:"Payment cards and details",icon:i.A},oauth2:{label:"OAuth2",description:"Auto-refreshing OAuth2 tokens",icon:j.A},ssh:{label:"SSH Key",description:"Private/public keypair for SSH",icon:h.A},gpg:{label:"GPG Key",description:"Armored key material and metadata",icon:g.A},custom:{label:"Key / Value",description:"Define a custom key/value secret field",icon:g.A}},I=["apikey","login","plain_note"],J=["custom","card","hot_wallet","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"}],L=a=>a.trim().toLowerCase(),M=(a,b)=>{let c=a?Date.parse(a):NaN;if(Number.isFinite(c))return c;let d=b?Date.parse(b):NaN;return Number.isFinite(d)?d:0},N=({isOpen:a,onClose:b,onSaved:c,editCredentialId:f,agents:g,createStartStep:h="form",createStartType:i,createPrefill:j})=>{let[u,v]=(0,e.useState)("apikey"),[w,N]=(0,e.useState)("form"),[O,P]=(0,e.useState)(""),[Q,R]=(0,e.useState)(""),[S,T]=(0,e.useState)(!1),[U,V]=(0,e.useState)([]),[W,X]=(0,e.useState)(""),[Y,Z]=(0,e.useState)(""),[$,_]=(0,e.useState)(""),[aa,ab]=(0,e.useState)(""),[ac,ad]=(0,e.useState)(""),[ae,af]=(0,e.useState)(""),[ag,ah]=(0,e.useState)("keep"),[ai,aj]=(0,e.useState)(!1),[ak,al]=(0,e.useState)(""),[am,an]=(0,e.useState)("visa"),[ao,ap]=(0,e.useState)(""),[aq,ar]=(0,e.useState)(""),[as,at]=(0,e.useState)(""),[au,av]=(0,e.useState)(""),[aw,ax]=(0,e.useState)(""),[ay,az]=(0,e.useState)(""),[aA,aB]=(0,e.useState)(""),[aC,aD]=(0,e.useState)("base"),[aE,aF]=(0,e.useState)(""),[aG,aH]=(0,e.useState)(""),[aI,aJ]=(0,e.useState)(""),[aK,aL]=(0,e.useState)("value"),[aM,aN]=(0,e.useState)(""),[aO,aP]=(0,e.useState)(""),[aQ,aR]=(0,e.useState)(""),[aS,aT]=(0,e.useState)(""),[aU,aV]=(0,e.useState)(""),[aW,aX]=(0,e.useState)(""),[aY,aZ]=(0,e.useState)(""),[a$,a_]=(0,e.useState)("client_secret_post"),[a0,a1]=(0,e.useState)(""),[a2,a3]=(0,e.useState)(""),[a4,a5]=(0,e.useState)(""),[a6,a7]=(0,e.useState)(""),[a8,a9]=(0,e.useState)(""),[ba,bb]=(0,e.useState)(""),[bc,bd]=(0,e.useState)(""),[be,bf]=(0,e.useState)(""),[bg,bh]=(0,e.useState)(""),[bi,bj]=(0,e.useState)(""),[bk,bl]=(0,e.useState)(""),[bm,bn]=(0,e.useState)(null),[bo,bp]=(0,e.useState)(!1),[bq,br]=(0,e.useState)(null),[bs,bt]=(0,e.useState)(!1),[bu,bv]=(0,e.useState)(!1),[bw,bx]=(0,e.useState)(!1),[by,bz]=(0,e.useState)(!1),[bA,bB]=(0,e.useState)([]),[bC,bD]=(0,e.useState)([]),[bE,bF]=(0,e.useState)(null),[bG,bH]=(0,e.useState)(null),[bI,bJ]=(0,e.useState)({}),[bK,bL]=(0,e.useState)({}),bM=(0,e.useRef)(null),bN=(0,e.useRef)(null),[bO,bP]=(0,e.useState)("write"),bQ=!!f,bR=(0,e.useCallback)((a,b,c)=>{switch((0,s.Dw)(c,a)){case A.password:ab(b);break;case A.notes:"login"===c&&ad(b),"card"===c&&az(b);break;case B.number:ar(b),ap(b.replace(/\D/g,"").slice(-4));break;case B.expiry:at(b);break;case B.cvv:av(b);break;case s.l3:aB(b);break;case D.value:aJ(b);break;case E.accessToken:aV(b);break;case E.refreshToken:aX(b);break;case E.clientId:aR(b);break;case E.clientSecret:aT(b);break;case F.privateKey:"ssh"===c&&a5(b),"gpg"===c&&bf(b);break;case F.passphrase:a7(b);break;default:"custom"===c&&aN(b)}},[]),bS=(0,e.useCallback)(a=>{bJ(b=>({...b,[a]:!0}))},[]);(0,e.useEffect)(()=>{if(g.length>0&&!Q){let a=g.find(a=>a.isPrimary);R(a?.id||g[0].id)}},[g,Q]);let bT=(0,e.useCallback)(async()=>{if(f)try{let a=(await p.FH.get(p.jI.Wallet,`/credentials/${f}`)).credential,b=a.type;P(a.name),v(b),R(a.agentId),T(a.meta.favorite||!1),V(a.meta.tags||[]);let c=a.meta.walletLink;bn(c?.walletAddress&&("hot"===c.tier||"cold"===c.tier)?c:null),"login"===a.type?(Z(a.meta[A.url]||""),_(a.meta[A.username]||""),aj(!!a.meta.has_totp)):"card"===a.type?(al(a.meta[B.cardholder]||""),an(a.meta[B.brand]||"visa"),ap(a.meta[B.last4]||""),ax(a.meta[B.billingZip]||"")):"apikey"===a.type?(aH(a.meta[D.key]||""),aJ(a.meta[D.value]||"")):"plain_note"===a.type?aB(a.meta[s.l3]||a.meta[D.value]||""):"oauth2"===a.type?(aP(a.meta[E.tokenEndpoint]||""),aZ(a.meta[E.scopes]||""),a_(a.meta[E.authMethod]||"client_secret_post"),a1("number"==typeof a.meta[E.expiresAt]?String(a.meta[E.expiresAt]):"string"==typeof a.meta[E.expiresAt]?a.meta[E.expiresAt]:"")):"hot_wallet"===a.type?(aF(a.meta[C.address]||c?.walletAddress||""),aD(function(a){let b=(a||"").trim().toLowerCase();return"solana"===b||"solana-devnet"===b?"solana":"base"}(a.meta[C.chain]||c?.chain))):"ssh"===a.type?(a3(a.meta[F.publicKey]||""),a9(Array.isArray(a.meta[F.hosts])?a.meta[F.hosts].join("\n"):""),bb(a.meta[F.keyType]||"")):"gpg"===a.type&&(bd(a.meta[G.publicKey]||""),bh(a.meta[G.keyId]||""),bj(a.meta[G.uidEmail]||""),bl(a.meta[G.expiresAt]||""));let d=s.Rn[b];if("custom"===b||"hot_wallet"!==b&&(d||[]).some(a=>a.sensitive))try{let a=await p.FH.post(p.jI.Wallet,`/credentials/${f}/read`),c=await (0,q.DC)(a.encrypted),d=JSON.parse(c),e={};(d.fields||[]).forEach(a=>{e[(0,s.Dw)(b,a.key)]=a.value}),bH(e),Object.entries(e).forEach(([a,c])=>{bR(a,c,b)})}catch{}}catch(a){br(a instanceof Error?a.message:"Failed to load credential")}},[f,bR]),bU=(0,e.useCallback)(async()=>{if(!bQ||!f)return{};if(bG)return bG;let a=await p.FH.post(p.jI.Wallet,`/credentials/${f}/read`),b=JSON.parse(await (0,q.DC)(a.encrypted)),c={};return(b.fields||[]).forEach(a=>{c[(0,s.Dw)(u,a.key)]=a.value}),bH(c),c},[bQ,f,bG,u]),bV=(0,e.useCallback)(async a=>{if(bQ){bF(a),br(null);try{let b=await bU(),c=(0,s.Dw)(u,a);bR(a,b[c]||b[a]||"",u)}catch(a){br(a instanceof Error?a.message:"Decryption failed -- try re-unlocking")}finally{bF(null)}}},[bU,bQ,bR]),bW=(0,e.useCallback)(a=>{switch((0,s.Dw)(u,a)){case A.password:return aa;case D.value:return aI;case s.u.custom.value:return aM;default:return"custom"===u?aM:""}},[aI,aM,aa,u]),bX=(0,e.useCallback)(a=>!!bK[(0,s.Dw)(u,a)],[u,bK]),bY=(0,e.useCallback)(async a=>{let b=(0,s.Dw)(u,a);if(bK[b])return void bL(a=>({...a,[b]:!1}));bQ&&!bW(a).trim()&&await bV(a),bL(a=>({...a,[b]:!0}))},[bW,bV,bQ,u,bK]);(0,e.useEffect)(()=>{a&&(bQ?N("form"):(N(h),i&&v(i),j?.type&&v(j.type),j?.agentId&&R(j.agentId),j?.tags&&j.tags.length>0&&V(j.tags),j?.name&&P(j.name),j?.noteContent&&aB(j.noteContent)),bx(!1),bv(!1),bL({}),ah(bQ?"keep":"replace"))},[a,bQ,h,i,j]),(0,e.useEffect)(()=>{!a||bQ||"oauth2"!==u||a0||a1(String(Math.floor(Date.now()/1e3)+3600))},[a,bQ,u,a0]),(0,e.useEffect)(()=>{a&&(async()=>{try{let a=(await p.FH.get(p.jI.Wallet,"/credentials")).credentials||[],b=a.filter(a=>"login"===a.type),c=new Map;b.forEach(a=>{let b=String(a.meta.username||"").trim();if(!b)return;let d=L(b),e=M(a.updatedAt,a.createdAt),f=c.get(d);if(!f)return void c.set(d,{raw:b,frequency:1,recent:e});f.frequency+=1,e>f.recent&&(f.recent=e,f.raw=b)});let d=Array.from(c.entries()).sort((a,b)=>b[1].recent!==a[1].recent?b[1].recent-a[1].recent:b[1].frequency!==a[1].frequency?b[1].frequency-a[1].frequency:a[0].localeCompare(b[0])).map(([,a])=>a.raw).slice(0,20),e=new Map;a.forEach(a=>{let b=M(a.updatedAt,a.createdAt);new Set((Array.isArray(a.meta.tags)?a.meta.tags:[]).map(a=>String(a).trim()).filter(Boolean)).forEach(a=>{let c=L(a),d=e.get(c);if(!d)return void e.set(c,{frequency:1,recent:b});d.frequency+=1,b>d.recent&&(d.recent=b)})});let f=Array.from(e.entries()).sort((a,b)=>b[1].recent!==a[1].recent?b[1].recent-a[1].recent:b[1].frequency!==a[1].frequency?b[1].frequency-a[1].frequency:a[0].localeCompare(b[0])).map(([a])=>a).slice(0,30);bB(d),bD(f)}catch{bB([]),bD([])}})()},[a]),(0,e.useEffect)(()=>{a&&f&&(bH(null),bJ({}),bT())},[a,f,bT]),(0,e.useEffect)(()=>{a||(P(""),R(""),T(!1),V([]),X(""),Z(""),_(""),ab(""),ad(""),af(""),ah("keep"),aj(!1),al(""),an("visa"),ap(""),ar(""),at(""),av(""),ax(""),az(""),aB(""),aD("base"),aF(""),aH(""),aJ(""),aL("value"),aN(""),aP(""),aR(""),aT(""),aV(""),aX(""),aZ(""),a_("client_secret_post"),a1(""),a3(""),a5(""),a7(""),a9(""),bb(""),bd(""),bf(""),bh(""),bj(""),bl(""),bn(null),br(null),bp(!1),bv(!1),bF(null),bH(null),bJ({}),bL({}),bx(!1),bz(!1),bP("write"))},[a]),(0,e.useEffect)(()=>{"login"!==u&&bv(!1)},[u]);let bZ=g.map(a=>({value:a.id,label:a.name||(a.isPrimary?"Primary":a.id.slice(0,8))})),b$=(0,e.useCallback)(()=>{bN.current?.click()},[]),b_=(0,e.useCallback)(a=>"function"==typeof a.text?a.text():new Promise((b,c)=>{let d=new FileReader;d.onerror=()=>c(Error("Failed to read markdown file")),d.onload=()=>b("string"==typeof d.result?d.result:""),d.readAsText(a)}),[]),b0=(0,e.useCallback)(async a=>{if(!a)return;br(null);let b=a.name.toLowerCase();if(!(b.endsWith(".md")||b.endsWith(".markdown")))return void br("Please choose a Markdown (.md) file.");try{let b=await b_(a);if(!b.trim())return void br("The selected markdown file is empty.");aB(b),bQ&&"note"===u&&bS(s.l3)}catch(a){br(a instanceof Error?a.message:"Failed to import markdown file")}},[bQ,bS,b_,u]),b1=(0,e.useCallback)(a=>{b0(a.target.files?.[0]??null),a.currentTarget.value=""},[b0]),b2=bC.filter(a=>!U.includes(a)).filter(a=>!W.trim()||a.toLowerCase().includes(W.trim().toLowerCase())).slice(0,6),b3=(0,e.useMemo)(()=>aA.trim()?(0,r.Q)(aA.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")):"",[aA]),b4=(0,e.useCallback)(()=>{let a=z({type:u,apiKeyName:aG,username:$,url:Y,noteContent:aA,customFieldKey:aK,hotWalletChain:aC,cardholder:ak,cardNumber:aq,cardLast4:ao,oauth2TokenEndpoint:aO,sshHostsInput:a8,gpgKeyId:bg,gpgUidEmail:bi});if(!O.trim()&&!a||"login"===u&&!bQ&&!aa.trim()||"login"===u&&bQ&&"replace"===ag&&!ae.trim()||"plain_note"===u&&!aA.trim()||"apikey"===u&&(!aG.trim()||!aI.trim())||"custom"===u&&(!aK.trim()||!aM.trim())||"ssh"===u&&!a4.trim()&&!bQ||"gpg"===u&&!be.trim()&&!bQ)return!1;if("oauth2"===u){if(!aO.trim())return!1;let a=Number.parseInt(a0,10);if(!Number.isFinite(a)||a<=0||!bQ&&(!aU.trim()||!aW.trim()||!aQ.trim()||!aS.trim()))return!1}return!0},[aG,aI,aq,ao,ak,aK,aM,bg,be,bi,aC,bQ,O,aA,aU,aQ,aS,a0,aW,aO,aa,a8,a4,ag,ae,u,Y,$]),b5=async()=>{let a=z({type:u,apiKeyName:aG,username:$,url:Y,noteContent:aA,customFieldKey:aK,hotWalletChain:aC,cardholder:ak,cardNumber:aq,cardLast4:ao,oauth2TokenEndpoint:aO,sshHostsInput:a8,gpgKeyId:bg,gpgUidEmail:bi});if(!O.trim()&&!a)return void br("Name is required");if("login"===u&&!bQ&&!aa.trim())return void br("Password is required for login");if("login"===u&&bQ&&"replace"===ag&&!ae.trim())return void br("TOTP replace requires a valid secret or setup link");if("plain_note"===u&&!aA.trim())return void br("Content is required for plain note");if("apikey"===u&&(!aG.trim()||!aI.trim()))return void br("Key and value are required for API key");if("custom"===u&&(!aK.trim()||!aM.trim()))return void br("Primary key and value are required for custom type");if("ssh"===u&&!a4.trim()&&!bQ)return void br("SSH private key is required");if("gpg"===u&&!be.trim()&&!bQ)return void br("GPG private key is required");if("oauth2"===u){if(!aO.trim())return void br("OAuth2 requires a token endpoint. Add a valid token endpoint URL.");let a=Number.parseInt(a0,10);if(!Number.isFinite(a)||a<=0)return void br("OAuth2 expiry is invalid. Enter a positive unix timestamp in seconds.");if(!bQ){if(!aU.trim())return void br("OAuth2 requires an access token.");if(!aW.trim())return void br("OAuth2 requires a refresh token.");if(!aQ.trim())return void br("OAuth2 requires a client ID.");if(!aS.trim())return void br("OAuth2 requires a client secret.")}}bp(!0),br(null);try{let a,d=(()=>{let a=aq.replace(/\D/g,""),b=a.length>=4?a.slice(-4):ao.trim(),c=function(a){let{type:b,name:c,apiKeyName:d,username:e,url:f,noteContent:g,customFieldKey:h,hotWalletChain:i,cardNumber:j,cardBrand:k,cardLast4:l,oauth2TokenEndpoint:m,sshHostsInput:n,gpgKeyId:o,gpgUidEmail:p}=a,q=(a=>{let b=a.trim().toLowerCase();return b&&"other"!==b&&b.replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"card"})(k||""),r=((a,b)=>{let c=a.replace(/\D/g,"");return c.length>=4?c.slice(-4):b.replace(/\D/g,"").slice(-4)})(j||"",l||""),s=r?`${q}_${r}`:q,t=(n||"").split(/\n|,/).map(a=>a.trim()).filter(Boolean),u={plain_note:y(g),apikey:d.trim(),login:e.trim()||f.trim()||"Login",note:y(g),hot_wallet:i.trim()?`Hot Wallet (${i.trim().toUpperCase()})`:"Hot Wallet",custom:h.trim(),card:s,oauth2:(m||"").trim()||"OAuth2",ssh:t[0]||"SSH Key",gpg:(o||"").trim()||(p||"").trim()||"GPG Key"};return"card"===b?u.card||"card":"note"===b||"plain_note"===b?u[b]||c.trim():c.trim()||u[b]||""}({type:u,name:O,apiKeyName:aG,username:$,url:Y,noteContent:aA,customFieldKey:aK,hotWalletChain:aC,cardholder:ak,cardNumber:aq,cardBrand:am,cardLast4:b,oauth2TokenEndpoint:aO,sshHostsInput:a8,gpgKeyId:bg,gpgUidEmail:bi}),d=aK.trim()||(0,s.VB)(u),e=[],f={tags:U,favorite:S};switch(u){case"login":Y&&e.push({key:A.url,value:Y,type:"text",sensitive:!1}),e.push({key:A.username,value:$,type:"text",sensitive:!1}),e.push({key:A.password,value:aa,type:"secret",sensitive:!0}),(ac.trim()||bQ&&bI[A.notes])&&e.push({key:A.notes,value:ac,type:"text",sensitive:!0}),bQ?("replace"===ag&&ae.trim()&&e.push({key:A.totp,value:ae.trim().replace(/\s+/g,"").toUpperCase(),type:"secret",sensitive:!0}),"remove"===ag&&e.push({key:A.totp,value:"",type:"secret",sensitive:!0})):ae.trim()&&e.push({key:A.totp,value:ae.trim().replace(/\s+/g,"").toUpperCase(),type:"secret",sensitive:!0}),f={...f,[A.url]:Y,[A.username]:$};break;case"card":e.push({key:B.cardholder,value:ak,type:"text",sensitive:!1}),e.push({key:B.number,value:aq,type:"text",sensitive:!0}),e.push({key:B.cvv,value:au,type:"secret",sensitive:!0}),e.push({key:B.expiry,value:as,type:"text",sensitive:!0}),(ay.trim()||bQ&&bI[B.notes])&&e.push({key:B.notes,value:ay,type:"text",sensitive:!0}),f={...f,[B.brand]:am,[B.cardholder]:ak,[B.last4]:b,[B.billingZip]:aw};break;case"note":e.push({key:s.l3,value:aA,type:"text",sensitive:!0});break;case"hot_wallet":bQ&&aE.trim()&&e.push({key:C.address,value:aE.trim(),type:"text",sensitive:!1}),f={...f,[C.chain]:aC,...aE.trim()?{[C.address]:aE.trim()}:{}};break;case"plain_note":e.push({key:s.l3,value:aA,type:"text",sensitive:!1}),f={...f,[s.l3]:aA};break;case"apikey":e.push({key:D.key,value:aG,type:"text",sensitive:!1}),e.push({key:D.value,value:aI,type:"secret",sensitive:!0}),f={...f,[D.key]:aG};break;case"custom":e.push({key:d,value:aM,type:"secret",sensitive:!0}),f={...f,primaryKey:d};break;case"oauth2":{let a=Number.parseInt(a0,10);e.push({key:E.accessToken,value:aU,type:"secret",sensitive:!0}),e.push({key:E.refreshToken,value:aW,type:"secret",sensitive:!0}),e.push({key:E.clientId,value:aQ,type:"secret",sensitive:!0}),e.push({key:E.clientSecret,value:aS,type:"secret",sensitive:!0}),f={...f,[E.tokenEndpoint]:aO,[E.scopes]:aY,[E.authMethod]:a$,[E.expiresAt]:Number.isFinite(a)?a:null};break}case"ssh":{let a=a8.split(/\n|,/).map(a=>a.trim()).filter(Boolean);e.push({key:F.privateKey,value:a4,type:"secret",sensitive:!0}),a6.trim()&&e.push({key:F.passphrase,value:a6,type:"secret",sensitive:!0}),a2.trim()&&e.push({key:F.publicKey,value:a2,type:"text",sensitive:!1}),f={...f,[F.publicKey]:a2,[F.hosts]:a,[F.keyType]:ba||void 0};break}case"gpg":e.push({key:G.privateKey,value:be,type:"secret",sensitive:!0}),bc.trim()&&e.push({key:G.publicKey,value:bc,type:"text",sensitive:!1}),f={...f,[G.publicKey]:bc,[G.keyId]:bg,[G.uidEmail]:bi,[G.expiresAt]:bk||void 0}}return bm&&(f={...f,walletLink:bm}),{agentId:Q,type:u,name:c,fields:e,meta:f}})();if(bQ){let b=d.fields.filter(a=>!a.sensitive||!!bI[a.key]);await p.FH.put(p.jI.Wallet,`/credentials/${f}`,{...d,fields:b}),a=f}else{let b=await p.FH.post(p.jI.Wallet,"/credentials",d);a=b?.credential?.id}await c(a),b()}catch(a){br(a instanceof Error?a.message:"Failed to save credential")}finally{bp(!1)}};(0,e.useEffect)(()=>{if(!a||bQ||"form"!==w)return;let b=a=>{"Enter"===a.key&&(a.metaKey||a.ctrlKey)&&!a.altKey&&!a.shiftKey&&!bo&&b4()&&(a.preventDefault(),a.stopPropagation(),b5())};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[b4,w,b5,bQ,a,bo]);let b6="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)]",b7=H[u]?.label||"Credential",b8=(0,s.VB)(u),b9=(0,s.zo)(u),ca=b9?.label||"Primary Value",cb="form"===w?`Create ${b7}`:"Create";return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(o.aF,{isOpen:a,onClose:b,title:bQ?"Edit Credential":cb,size:"lg",headerActionPosition:"left",headerAction:bQ||"form"!==w?void 0:(0,d.jsx)("button",{type:"button","data-testid":"back-to-type-picker",onClick:()=>N("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,d.jsx)(k.A,{size:12})}),footer:(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)(o.$n,{variant:"secondary",size:"sm",onClick:b,children:"Cancel"}),bQ||"type"!==w?(0,d.jsx)(o.$n,{variant:"primary",size:"sm",onClick:b5,loading:bo,children:"Save"}):null]}),children:bQ||"type"!==w?(0,d.jsxs)("div",{"data-testid":"credential-form-layout",className:"space-y-4 gap-4",children:[(0,d.jsx)("input",{ref:bN,type:"file",accept:".md,.markdown,text/markdown",onChange:b1,className:"hidden","data-testid":"note-markdown-file-input"}),(0,d.jsx)("div",{className:"space-y-2",children:(0,d.jsx)("div",{className:"flex items-center justify-between px-1",children:(0,d.jsxs)("span",{className:"font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:["Type: ",b7]})})}),"login"===u&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(o.ks,{label:"Username",value:$,onChange:a=>_(a.target.value),onFocus:()=>bz(!0),onBlur:()=>setTimeout(()=>bz(!1),50),placeholder:"user@example.com",list:"login-username-suggestions"}),by&&bA.length>0&&(0,d.jsx)("datalist",{id:"login-username-suggestions",children:bA.map(a=>(0,d.jsx)("option",{value:a},a))}),(0,d.jsx)(o.ks,{label:"Website",value:Y,onChange:a=>Z(a.target.value),placeholder:"https://example.com"}),(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)(o.ks,{label:"Password",type:bX(A.password)?"text":"password",value:aa,onChange:a=>{ab(a.target.value),bQ&&bS(A.password)},onFocus:()=>bv(!0),onClick:()=>bv(!0),onBlur:a=>{let b=a.relatedTarget;b&&bM.current?.contains(b)||bv(!1)},placeholder:bQ?"••••••••":"",rightElement:(0,d.jsx)("button",{type:"button",onClick:()=>{bY(A.password)},"aria-label":bX(A.password)?"Hide Password":"Reveal Password",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:bE===A.password?(0,d.jsx)(l.A,{size:11,className:"animate-spin"}):(0,d.jsx)(m.A,{size:12})})}),bu&&(0,d.jsx)("div",{ref:bM,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,d.jsx)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onClick:()=>{bt(!0),bv(!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"})})]}),bw&&(0,d.jsxs)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1.5 px-1",children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Notes"}),bQ&&(0,d.jsxs)("button",{type:"button",onClick:()=>{bV(A.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:[bE===A.notes?(0,d.jsx)(l.A,{size:9,className:"animate-spin"}):(0,d.jsx)(m.A,{size:9}),"Reveal"]})]}),(0,d.jsx)("textarea",{className:b6,value:ac,onChange:a=>{ad(a.target.value),bQ&&bS(A.notes)},placeholder:bQ?"••••••••":""})]}),(0,d.jsx)(x,{isEdit:bQ,hasExistingTotp:ai,onIntentChange:a=>{ah(a),bQ&&"remove"===a&&bS(A.totp)},onSecretChange:(a,b)=>{af(a),bQ&&(b?(bS(A.totp),a.trim()&&ah("replace")):"remove"!==ag&&ah(ai?"keep":"replace"))}})]})]}),"card"===u&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(o.ks,{label:"Cardholder",value:ak,onChange:a=>al(a.target.value),placeholder:"John Doe"}),(0,d.jsx)(o.ks,{label:"Card Number",value:aq,onChange:a=>{let b=a.target.value;ar(b),ap(b.replace(/\D/g,"").slice(-4)),bQ&&bS(B.number)},placeholder:bQ?"••••••••":""}),(0,d.jsxs)("div",{className:"flex gap-3",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(o.ks,{label:"Expiry",value:as,onChange:a=>{at(a.target.value),bQ&&bS(B.expiry)},placeholder:"MM/YY"})}),(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(o.ks,{label:"CVV",type:"password",value:au,onChange:a=>{av(a.target.value),bQ&&bS(B.cvv)},placeholder:bQ?"••••":""})})]}),bw&&(0,d.jsxs)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsx)(o.UM,{options:K,value:am,onChange:an,label:"Brand"}),(0,d.jsx)(o.ks,{label:"Billing ZIP",value:aw,onChange:a=>ax(a.target.value),placeholder:"12345"})]})]}),"note"===u&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1.5 px-1",children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Content"}),bQ&&(0,d.jsxs)("button",{type:"button",onClick:()=>{bV(s.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:[bE===s.l3?(0,d.jsx)(l.A,{size:9,className:"animate-spin"}):(0,d.jsx)(m.A,{size:9}),"Reveal"]})]}),(0,d.jsx)("div",{className:"mb-2 px-1",children:(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2","data-testid":"note-editor-toolbar",children:[(0,d.jsxs)("div",{className:"inline-flex border border-[var(--color-border,#d4d4d8)]",children:[(0,d.jsx)("button",{type:"button","data-testid":"note-mode-write",onClick:()=>bP("write"),className:`px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ${"write"===bO?"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,d.jsx)("button",{type:"button","data-testid":"note-mode-preview",onClick:()=>bP("preview"),className:`px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ${"preview"===bO?"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,d.jsxs)("button",{type:"button",onClick:b$,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,d.jsx)(n.A,{size:9}),"Import .md"]})]})}),"preview"===bO?(0,d.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:b3?(0,d.jsx)("div",{className:"prose-mono max-w-none [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",dangerouslySetInnerHTML:{__html:b3}}):(0,d.jsx)("span",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Nothing to preview yet."})}):(0,d.jsx)("textarea",{className:b6.replace("h-24","h-48"),value:aA,onChange:a=>{aB(a.target.value),bQ&&bS(s.l3)},placeholder:bQ?"••••••••":""})]}),"plain_note"===u&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("p",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Plain Note stores readable content in metadata (not encrypted)."}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"flex items-center justify-between mb-1.5 px-1",children:(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Content"})}),(0,d.jsx)("div",{className:"mb-2",children:(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2","data-testid":"plain-note-editor-toolbar",children:[(0,d.jsxs)("div",{className:"inline-flex border border-[var(--color-border,#d4d4d8)]",children:[(0,d.jsx)("button",{type:"button","data-testid":"plain-note-mode-write",onClick:()=>bP("write"),className:`px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ${"write"===bO?"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,d.jsx)("button",{type:"button","data-testid":"plain-note-mode-preview",onClick:()=>bP("preview"),className:`px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ${"preview"===bO?"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,d.jsxs)("button",{type:"button",onClick:b$,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,d.jsx)(n.A,{size:9}),"Import .md"]})]})}),"preview"===bO?(0,d.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:b3?(0,d.jsx)("div",{className:"prose-mono max-w-none [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",dangerouslySetInnerHTML:{__html:b3}}):(0,d.jsx)("span",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Nothing to preview yet."})}):(0,d.jsx)("textarea",{className:b6.replace("h-24","h-48"),value:aA,onChange:a=>aB(a.target.value),placeholder:""})]})]}),"hot_wallet"===u&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.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,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Chain"}),(0,d.jsx)("div",{"data-testid":"hot-wallet-chain-select",children:(0,d.jsx)(o.O6,{ariaLabel:"Chain",options:[{value:"base",label:"Base / EVM",description:"EVM-compatible chains"},{value:"solana",label:"Solana",description:"Solana network wallets"}],value:aC,onChange:a=>aD(a)})})]}),bQ&&(0,d.jsx)(o.ks,{label:"Address",value:aE,onChange:a=>aF(a.target.value),placeholder:"Generated wallet address"})]}),"apikey"===u&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.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,d.jsx)(o.ks,{label:"Key",value:aG,onChange:a=>aH(a.target.value),placeholder:"Service key name"}),(0,d.jsx)(o.ks,{label:"Value",type:bX(D.value)?"text":"password",value:aI,onChange:a=>{aJ(a.target.value),bQ&&bS(D.value)},placeholder:bQ?"••••••••":"",rightElement:(0,d.jsx)("button",{type:"button",onClick:()=>{bY(D.value)},"aria-label":bX(D.value)?"Hide Value":"Reveal Value",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:bE===D.value?(0,d.jsx)(l.A,{size:11,className:"animate-spin"}):(0,d.jsx)(m.A,{size:12})})})]}),"custom"===u&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("p",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:["Canonical primary key: ",b8]}),(0,d.jsx)(o.ks,{label:"Primary Key",value:aK,onChange:a=>aL(a.target.value),placeholder:"value"}),(0,d.jsx)(o.ks,{label:ca,type:bX(s.u.custom.value)?"text":"password",value:aM,onChange:a=>aN(a.target.value),placeholder:bQ?"••••••••":"",rightElement:(0,d.jsx)("button",{type:"button",onClick:()=>{bY(s.u.custom.value)},"aria-label":bX(s.u.custom.value)?"Hide Value":"Reveal Value",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:bE===s.u.custom.value?(0,d.jsx)(l.A,{size:11,className:"animate-spin"}):(0,d.jsx)(m.A,{size:12})})})]}),"oauth2"===u&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(o.ks,{label:"Token Endpoint",value:aO,onChange:a=>aP(a.target.value),placeholder:"https://accounts.google.com/o/oauth2/token"}),(0,d.jsx)(o.ks,{label:"Access Token",type:"password",value:aU,onChange:a=>{aV(a.target.value),bQ&&bS(E.accessToken)},placeholder:bQ?"••••••••":"Optional — will be fetched on first use"}),(0,d.jsx)(o.ks,{label:"Expires At (unix seconds)",type:"text",value:a0,onChange:a=>a1(a.target.value),placeholder:String(Math.floor(Date.now()/1e3)+3600)}),bw&&(0,d.jsxs)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsx)(o.ks,{label:"Client ID",value:aQ,onChange:a=>{aR(a.target.value),bQ&&bS(E.clientId)},placeholder:"your-client-id"}),(0,d.jsx)(o.ks,{label:"Client Secret",type:"password",value:aS,onChange:a=>{aT(a.target.value),bQ&&bS(E.clientSecret)},placeholder:bQ?"••••••••":""}),(0,d.jsx)(o.ks,{label:"Refresh Token",type:"password",value:aW,onChange:a=>{aX(a.target.value),bQ&&bS(E.refreshToken)},placeholder:bQ?"••••••••":""}),(0,d.jsx)(o.ks,{label:"Scopes",value:aY,onChange:a=>aZ(a.target.value),placeholder:"read write (space-separated)"}),(0,d.jsx)(o.UM,{options:[{value:"client_secret_post",label:"Client Secret (POST body)"},{value:"client_secret_basic",label:"Client Secret (Basic Auth)"}],value:a$,onChange:a_,label:"Auth Method"})]})]}),"ssh"===u&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(o.ks,{label:"Public Key (optional)",value:a2,onChange:a=>a3(a.target.value),placeholder:"ssh-ed25519 AAAA..."}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Private Key"}),(0,d.jsx)("textarea",{className:b6.replace("h-24","h-40"),value:a4,onChange:a=>{a5(a.target.value),bQ&&bS(F.privateKey)},placeholder:bQ?"••••••••":"-----BEGIN OPENSSH PRIVATE KEY-----"})]}),(0,d.jsx)(o.ks,{label:"Passphrase (optional)",type:"password",value:a6,onChange:a=>{a7(a.target.value),bQ&&bS(F.passphrase)}}),(0,d.jsxs)("div",{children:[(0,d.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,d.jsx)("textarea",{className:b6,value:a8,onChange:a=>a9(a.target.value),placeholder:"github.com prod.example.com"})]})]}),"gpg"===u&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Private Key (armored)"}),(0,d.jsx)("textarea",{className:b6.replace("h-24","h-40"),value:be,onChange:a=>{bf(a.target.value),bQ&&bS(G.privateKey)},placeholder:bQ?"••••••••":"-----BEGIN PGP PRIVATE KEY BLOCK-----"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Public Key (optional)"}),(0,d.jsx)("textarea",{className:b6,value:bc,onChange:a=>bd(a.target.value),placeholder:"-----BEGIN PGP PUBLIC KEY BLOCK-----"})]}),(0,d.jsx)(o.ks,{label:"Key ID (optional)",value:bg,onChange:a=>bh(a.target.value)}),(0,d.jsx)(o.ks,{label:"UID Email (optional)",value:bi,onChange:a=>bj(a.target.value)}),(0,d.jsx)(o.ks,{label:"Expires At (optional)",value:bk,onChange:a=>bl(a.target.value),placeholder:"2027-01-01"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>bx(a=>!a),className:"font-mono text-[9px] uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] text-left",children:bw?"Hide Advanced":"Show Advanced"}),bw&&(0,d.jsxs)("div",{className:"space-y-4 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[!bQ&&bZ.length>0&&(0,d.jsx)(o.UM,{options:bZ,value:Q,onChange:R,label:"Agent"}),(0,d.jsxs)("div",{children:[(0,d.jsx)(o.ks,{label:"Tags",value:W,onChange:a=>X(a.target.value),onKeyDown:a=>{if("Enter"===a.key){a.preventDefault();let b=W.trim();b&&!U.includes(b)&&V([...U,b]),X("")}},placeholder:"Add tag and press Enter"}),b2.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap gap-1 mt-1",children:b2.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>{U.includes(a)||V([...U,a]),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:["+ ",a]},a))}),U.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap gap-1 mt-2",children:U.map(a=>(0,d.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:[a,(0,d.jsx)("button",{type:"button",onClick:()=>{V(U.filter(b=>b!==a))},className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] ml-0.5",children:"x"})]},a))})]}),(0,d.jsx)(o.lM,{size:"sm",checked:S,onChange:T,label:"Favorite"})]}),bq&&(0,d.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:bq})]}):(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{"data-testid":"featured-types-section",className:"space-y-2",children:[(0,d.jsx)("p",{className:"font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Common"}),(0,d.jsx)(o.O6,{ariaLabel:"Common types",options:I.map(a=>{let b=H[a].icon;return{value:a,label:H[a].label,description:H[a].description,icon:(0,d.jsx)(b,{size:16}),quickActionLabel:`Quick create ${H[a].label}`,onQuickAction:()=>{v(a),br(null),N("form")}}}),value:u,onChange:a=>{v(a),br(null),N("form")}})]}),(0,d.jsxs)("div",{"data-testid":"other-types-section",className:"space-y-2",children:[(0,d.jsx)("p",{className:"font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Other Types"}),(0,d.jsx)(o.O6,{ariaLabel:"Other types",options:J.map(a=>{let b=H[a].icon;return{value:a,label:H[a].label,description:H[a].description,icon:(0,d.jsx)(b,{size:16}),quickActionLabel:`Quick create ${H[a].label}`,onQuickAction:()=>{v(a),br(null),N("form")}}}),value:u,onChange:a=>{v(a),br(null),N("form")}})]})]})}),(0,d.jsx)(t.p,{isOpen:bs,onClose:()=>bt(!1),onUse:a=>{ab(a),bQ&&bS(A.password),bt(!1)}})]})}},97053:(a,b,c)=>{c.d(b,{Z:()=>E});var d=c(21124),e=c(38301),f=c(96503),g=c(46267),h=c(46422),i=c(68324),j=c(16945),k=c(71117),l=c(22842),m=c(47089),n=c(15303),o=c(82042),p=c(85351),q=c(71613),r=c(51536);function s(a){if(!a.metadata)return{};try{return JSON.parse(a.metadata)}catch{return{}}}function t(a){if(a.humanSummary?.oneLiner)return a.humanSummary.oneLiner;let b=s(a);if(b.summary)return b.summary;if(b.verifiedSummary?.oneLiner)return b.verifiedSummary.oneLiner;let c=b.agentId||"agent",d=a.type.replace(/_/g," ");return a.amount?`${c} requesting ${a.amount} ETH`:`${c} — ${d}`}function u(a){let b=s(a);return(b.verifiedSummary?.discrepancies?.length??0)>0}function v(a,b){let c=a.verifiedSummary?.permissionLabels?.length??a.permissions?.length??0,d=a.verifiedSummary?.discrepancies?.length??0,e=(b?.can.length??0)+(b?.scope.length??0)+(b?.cannot.length??0);return!!(a.summary||c>0||d>0||e>0)}function w(a){switch(a){case"agent_access":return(0,d.jsx)(f.A,{size:10});case"fund":return(0,d.jsx)(g.A,{size:10});case"send":default:return(0,d.jsx)(h.A,{size:10});case"action":return(0,d.jsx)(i.A,{size:10})}}function x(a){switch(a){case"agent_access":return"ACCESS";case"fund":return"FUND";case"send":return"SEND";case"action":return"ACTION";default:return a.toUpperCase().replace(/_/g," ")}}function y(a,b){var c;let d="one_shot_read"===(c=b.approvalScope)||"session_token"===c?c:null;return d||("DENY_EXCLUDED_FIELD"===b.escalationReason||"number"==typeof b.credentialAccess?.maxReads&&1===b.credentialAccess.maxReads?"one_shot_read":"auth"===a.type||"agent_access"===a.type||"action"===a.type?"session_token":null)}function z(a){return"one_shot_read"===a?"temp":""}function A(){return{background:"var(--color-surface, #ffffff)",color:"var(--color-text, #0a0a0a)",border:"1px solid var(--color-border, #d4d4d8)"}}function B({icon:a,label:b,children:c,muted:e}){return(0,d.jsxs)("div",{className:"flex gap-2 py-1.5",style:{opacity:e?.7:1},children:[(0,d.jsx)("div",{className:"shrink-0 mt-0.5",style:{color:"var(--color-text-muted, #6b7280)"},children:a}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"font-mono text-[8px] font-bold tracking-[0.15em] uppercase mb-1",style:{color:"var(--color-text-faint, #9ca3af)"},children:b}),(0,d.jsx)("div",{className:"font-mono text-[10px]",style:{color:"var(--color-text, #0a0a0a)",fontStyle:e?"italic":void 0},children:c})]})]})}function C({meta:a,readable:b}){let c=a.verifiedSummary,e=(c?.discrepancies?.length??0)>0,f=c?.permissionLabels?.length?c.permissionLabels:a.permissions||[];return(0,d.jsxs)("div",{className:"px-4 py-3",style:{background:"var(--color-background-alt, #f4f4f5)",borderTop:"1px solid var(--color-border, #e5e5e5)"},children:[e&&c?.discrepancies&&(0,d.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,d.jsx)(j.A,{size:12,className:"shrink-0 mt-0.5",style:{color:"var(--color-warning, #f59e0b)"}}),(0,d.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text, #0a0a0a)"},children:c.discrepancies.map((a,b)=>(0,d.jsxs)("div",{className:"mb-1 last:mb-0",children:[(0,d.jsx)("span",{className:"font-bold uppercase text-[8px] mr-1",style:{color:"critical"===a.severity?"var(--color-danger, #ef4444)":"warning"===a.severity?"var(--color-warning, #f59e0b)":"var(--color-text-muted, #6b7280)"},children:a.severity}),a.field,": agent says “",a.agentClaim,"”, actual: ",a.actual]},b))})]}),a.summary&&(0,d.jsxs)(B,{icon:(0,d.jsx)(k.A,{size:10}),label:"AGENT SAYS",muted:!0,children:["“",a.summary,"”"]}),(a.profile||b?.profileLabel)&&(0,d.jsxs)(B,{icon:(0,d.jsx)(i.A,{size:10}),label:"PROFILE",children:[(0,d.jsx)("span",{className:"font-bold",children:a.profile?.displayName||b?.profileLabel}),a.profile?.rationale&&(0,d.jsxs)("span",{className:"ml-1",style:{color:"var(--color-text-muted, #6b7280)"},children:["— ",a.profile.rationale]})]}),f.length>0&&(0,d.jsx)(B,{icon:(0,d.jsx)(l.A,{size:10}),label:"PERMISSIONS",children:(0,d.jsx)("div",{className:"flex flex-wrap gap-1",children:f.map((a,b)=>(0,d.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:a},b))})}),b&&(0,d.jsxs)(d.Fragment,{children:[b.can.length>0&&(0,d.jsx)(B,{icon:(0,d.jsx)(i.A,{size:10}),label:"CAN",children:b.can.join(", ")}),b.cannot.length>0&&(0,d.jsx)(B,{icon:(0,d.jsx)(m.A,{size:10}),label:"CANNOT",children:b.cannot.join("; ")}),b.scope.length>0&&(0,d.jsx)(B,{icon:(0,d.jsx)(k.A,{size:10}),label:"SCOPE",children:b.scope.join(", ")}),(0,d.jsxs)(B,{icon:(0,d.jsx)(n.A,{size:10}),label:"EXPIRY / RISK",children:[b.expiresIn," \xb7 ",b.riskHint]})]})]})}function D({request:a,resolveAction:b,actionLoading:c,showBorder:f,bulkLocked:g=!1}){let[h,i]=(0,e.useState)(!1),[j,l]=(0,e.useState)(!1),B=c===`resolve-${a.id}`||c===`approve-${a.id}`,D=c===`reject-${a.id}`,E=B||D||g,F=s(a),G=y(a,F),H=u(a),I=H?"var(--color-warning, #f59e0b)":"var(--color-danger, #ef4444)";return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3",style:{borderBottom:f&&!h?"1px solid var(--color-border, #e5e5e5)":void 0,borderLeft:`3px solid ${I}`,background:"var(--color-surface, #ffffff)"},children:[(0,d.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(a.type),(0,d.jsx)("span",{className:"font-mono text-[8px] font-bold tracking-wider uppercase",children:x(a.type)})]}),"one_shot_read"===G&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 font-mono text-[8px] font-bold tracking-[0.12em] shrink-0",style:A(),children:z(G)}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"font-mono text-[10px] truncate flex items-center gap-1.5",style:{color:"var(--color-text, #0a0a0a)"},children:[t(a),H&&(0,d.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,d.jsxs)("div",{className:"font-mono text-[8px] mt-0.5 flex items-center gap-1",style:{color:"var(--color-text-faint, #9ca3af)"},children:[(0,d.jsx)(n.A,{size:7}),function(a){let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);return c<24?`${c}h ago`:`${Math.floor(c/24)}d ago`}(a.createdAt)]})]}),v(F,a.humanSummary)&&(0,d.jsxs)("button",{onClick:()=>i(!h),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,d.jsx)(k.A,{size:10}),h?(0,d.jsx)(o.A,{size:10}):(0,d.jsx)(p.A,{size:10})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[(0,d.jsx)(r.$n,{variant:"primary",size:"sm",onClick:()=>b(a.id,!0),disabled:E,loading:B,icon:B?void 0:(0,d.jsx)(q.A,{size:10}),className:"h-7 px-2",children:"APPROVE"}),(0,d.jsx)(r.$n,{variant:"danger",size:"sm",onClick:()=>b(a.id,!1),disabled:E,loading:D,icon:D?void 0:(0,d.jsx)(m.A,{size:10}),className:"h-7 px-2",children:"REJECT"})]})]}),(0,d.jsx)("div",{style:{display:"grid",gridTemplateRows:h?"1fr":"0fr",transition:"grid-template-rows 150ms ease",borderLeft:`3px solid ${I}`,borderBottom:f&&h?"1px solid var(--color-border, #e5e5e5)":void 0},children:(0,d.jsx)("div",{style:{overflow:"hidden"},children:h&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(C,{meta:F,readable:a.humanSummary}),(0,d.jsxs)("div",{className:"px-4 pb-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsx)("button",{onClick:()=>l(a=>!a),className:"font-mono text-[9px] underline text-[var(--color-text-muted,#6b7280)]",children:j?"Hide raw details":"Show raw details"}),j&&(0,d.jsx)("pre",{className:"mt-2 p-2 text-[9px] overflow-x-auto border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)]",children:a.rawPayload||a.metadata||"{}"})]})]})})})]})}let E=({requests:a,resolveAction:b,actionLoading:c})=>{let[f,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1),[j,l]=(0,e.useState)(!1),[n,B]=(0,e.useState)(!1),[E,F]=(0,e.useState)(null),G=a.filter(a=>"pending"===a.status&&"notify"!==a.type),H=(0,e.useRef)(null);if((0,e.useEffect)(()=>{if(!f)return;let a=a=>{H.current&&!H.current.contains(a.target)&&g(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[f]),(0,e.useEffect)(()=>{G.length<=1&&g(!1)},[G.length]),(0,e.useEffect)(()=>{0===G.length&&F(null)},[G.length]),0===G.length)return null;let I=G[0],J=s(I),K=y(I,J),L=c===`resolve-${I.id}`||c===`approve-${I.id}`,M=c===`reject-${I.id}`,N=L||M||n,O=u(I),P=O?"var(--color-warning, #f59e0b)":"var(--color-danger, #ef4444)",Q=async()=>{if(n)return;let a=G.map(a=>a.id);if(0===a.length)return;F(null),B(!0),g(!1);let c=[];for(let d of a)try{let a=await b(d,!0),e=function(a){return a&&"object"==typeof a?!1!==a.success?null:"string"==typeof a.message&&a.message.trim().length>0?a.message.trim():"string"==typeof a.error&&a.error.trim().length>0?a.error.trim():"request failed":null}(a);e&&c.push({id:d,message:e})}catch(a){c.push({id:d,message:a instanceof Error?a.message:"request failed"})}if(c.length>0){let a=c.slice(0,3).map(a=>`${a.id} (${a.message})`).join(", "),b=c.length>3?` +${c.length-3} more`:"";F(`APPROVE ALL completed with ${c.length} failed: ${a}${b}`)}B(!1)};return(0,d.jsxs)("div",{className:"relative z-30",ref:H,children:[f&&G.length>1&&(0,d.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,d.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,d.jsxs)("span",{className:"font-mono text-[8px] font-bold tracking-[0.2em] uppercase",style:{color:"var(--color-text-faint, #9ca3af)"},children:["QUEUED ACTIONS (",G.length-1,")"]})}),G.slice(1).map((a,e)=>(0,d.jsx)(D,{request:a,resolveAction:b,actionLoading:c,showBorder:e<G.length-2,bulkLocked:n},a.id))]}),(0,d.jsxs)("div",{style:{background:"var(--color-surface, #ffffff)",borderTop:"1px solid var(--color-border, #e5e5e5)",borderBottom:"1px solid var(--color-border, #e5e5e5)"},children:[(0,d.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 ${P}`},children:[(0,d.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:G.length}),(0,d.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,d.jsx)("div",{className:"w-px h-6 shrink-0 hidden sm:block",style:{background:"var(--color-border, #e5e5e5)"}}),(0,d.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(I.type),(0,d.jsx)("span",{className:"font-mono text-[8px] font-bold tracking-[0.15em] uppercase",children:x(I.type)})]}),"one_shot_read"===K&&(0,d.jsx)("span",{className:"hidden sm:inline px-1.5 py-0.5 font-mono text-[8px] font-bold tracking-[0.12em] shrink-0",style:A(),children:z(K)}),(0,d.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:[t(I),O&&(0,d.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"})]}),v(J,I.humanSummary)&&(0,d.jsxs)("button",{onClick:()=>i(!h),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,d.jsx)(k.A,{size:10}),h?(0,d.jsx)(o.A,{size:10}):(0,d.jsx)(p.A,{size:10})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[G.length>1&&(0,d.jsx)(r.$n,{variant:"secondary",size:"sm",onClick:()=>void Q(),disabled:N,loading:n,icon:n?void 0:(0,d.jsx)(q.A,{size:10}),className:"h-7 px-2",children:"APPROVE ALL"}),(0,d.jsx)(r.$n,{variant:"primary",size:"sm",onClick:()=>b(I.id,!0),disabled:N,loading:L,icon:L?void 0:(0,d.jsx)(q.A,{size:10}),className:"h-7 px-2",children:"APPROVE"}),(0,d.jsx)(r.$n,{variant:"danger",size:"sm",onClick:()=>b(I.id,!1),disabled:N,loading:M,icon:M?void 0:(0,d.jsx)(m.A,{size:10}),className:"h-7 px-2",children:"REJECT"})]}),G.length>1&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"w-px h-6 shrink-0",style:{background:"var(--color-border, #e5e5e5)"}}),(0,d.jsxs)("button",{onClick:()=>g(!f),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,d.jsxs)("span",{className:"font-mono text-[8px] font-bold tracking-[0.15em] uppercase",children:["+",G.length-1," MORE"]}),f?(0,d.jsx)(p.A,{size:12}):(0,d.jsx)(o.A,{size:12})]})]})]}),E&&(0,d.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:E}),(0,d.jsx)("div",{style:{display:"grid",gridTemplateRows:h?"1fr":"0fr",transition:"grid-template-rows 150ms ease",borderLeft:`3px solid ${P}`},children:(0,d.jsx)("div",{style:{overflow:"hidden"},children:h&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(C,{meta:J,readable:I.humanSummary}),(0,d.jsxs)("div",{className:"px-4 pb-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsx)("button",{onClick:()=>l(a=>!a),className:"font-mono text-[9px] underline text-[var(--color-text-muted,#6b7280)]",children:j?"Hide raw details":"Show raw details"}),j&&(0,d.jsx)("pre",{className:"mt-2 p-2 text-[9px] overflow-x-auto border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)]",children:I.rawPayload||I.metadata||"{}"})]})]})})})]})]})}}};
1
+ "use strict";exports.id=5246,exports.ids=[5246],exports.modules={1599:(a,b,c)=>{c.d(b,{u:()=>d,Rn:()=>e,l3:()=>f,Dw:()=>l,VB:()=>h,zo:()=>i});let d={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"}},e={login:[{key:d.login.url,label:"URL",type:"text",sensitive:!1},{key:d.login.username,label:"Username",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.login.password,label:"Password",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.login.notes,label:"Notes",type:"text",sensitive:!0},{key:d.login.totp,label:"TOTP",type:"secret",sensitive:!0,aliases:["otp"]}],card:[{key:d.card.cardholder,label:"Cardholder",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.card.brand,label:"Brand",type:"text",sensitive:!1},{key:d.card.billingZip,label:"Billing ZIP",type:"text",sensitive:!1},{key:d.card.last4,label:"Last 4",type:"text",sensitive:!1},{key:d.card.number,label:"Number",type:"text",sensitive:!0,requiredOnCreate:!0},{key:d.card.cvv,label:"CVV",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.card.expiry,label:"Expiry",type:"text",sensitive:!0,requiredOnCreate:!0},{key:d.card.notes,label:"Notes",type:"text",sensitive:!0}],sso:[{key:d.sso.website,label:"Website",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.sso.provider,label:"Provider",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.sso.identifier,label:"Identifier",type:"text",sensitive:!1}],note:[{key:d.note.content,label:"Content",type:"text",sensitive:!0,requiredOnCreate:!0,aliases:["value"]}],plain_note:[{key:d.plain_note.content,label:"Content",type:"text",sensitive:!1,requiredOnCreate:!0,aliases:["value"]}],hot_wallet:[{key:d.hot_wallet.address,label:"Address",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.hot_wallet.chain,label:"Chain",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.hot_wallet.privateKey,label:"Private Key",type:"secret",sensitive:!0,requiredOnCreate:!0}],api:[],apikey:[{key:d.apikey.key,label:"Key",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.apikey.value,label:"Value",type:"secret",sensitive:!0,requiredOnCreate:!0}],custom:[],passkey:[],oauth2:[{key:d.oauth2.tokenEndpoint,label:"Token Endpoint",type:"url",sensitive:!1,requiredOnCreate:!0},{key:d.oauth2.scopes,label:"Scopes",type:"text",sensitive:!1},{key:d.oauth2.authMethod,label:"Auth Method",type:"text",sensitive:!1},{key:d.oauth2.expiresAt,label:"Expires At",type:"number",sensitive:!1,requiredOnCreate:!0},{key:d.oauth2.accessToken,label:"Access Token",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.oauth2.refreshToken,label:"Refresh Token",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.oauth2.clientId,label:"Client ID",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.oauth2.clientSecret,label:"Client Secret",type:"secret",sensitive:!0,requiredOnCreate:!0}],ssh:[{key:d.ssh.fingerprint,label:"Fingerprint",type:"text",sensitive:!1},{key:d.ssh.keyType,label:"Key Type",type:"text",sensitive:!1},{key:d.ssh.hosts,label:"Hosts",type:"text",sensitive:!1},{key:d.ssh.privateKey,label:"Private Key",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.ssh.passphrase,label:"Passphrase",type:"secret",sensitive:!0},{key:d.ssh.publicKey,label:"Public Key",type:"text",sensitive:!1}],gpg:[{key:d.gpg.fingerprint,label:"Fingerprint",type:"text",sensitive:!1},{key:d.gpg.keyId,label:"Key ID",type:"text",sensitive:!1},{key:d.gpg.uidEmail,label:"UID Email",type:"email",sensitive:!1},{key:d.gpg.expiresAt,label:"Expires At",type:"text",sensitive:!1},{key:d.gpg.privateKey,label:"Private Key",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.gpg.publicKey,label:"Public Key",type:"text",sensitive:!1}]},f=d.note.content,g={login:d.login.password,card:d.card.number,sso:d.sso.website,note:d.note.content,plain_note:d.plain_note.content,hot_wallet:d.hot_wallet.privateKey,api:d.apikey.value,apikey:d.apikey.value,custom:d.custom.value,passkey:d.ssh.privateKey,oauth2:d.oauth2.accessToken,ssh:d.ssh.privateKey,gpg:d.gpg.privateKey};function h(a){return k(a)&&g[a]||"value"}function i(a){if(!k(a))return;let b=h(a);return e[a].find(a=>a.key===b)}let j=Object.fromEntries(Object.entries(e).map(([a,b])=>{let c=new Map;for(let a of b)for(let b of(c.set(a.key.toLowerCase(),a.key),a.aliases||[]))c.set(b.toLowerCase(),a.key);return[a,c]}));function k(a){return Object.prototype.hasOwnProperty.call(e,a)}function l(a,b){let c=b.trim();return c&&k(a)&&j[a].get(c.toLowerCase())||c}},14657:(a,b,c)=>{c.d(b,{Q:()=>e});var d=c(51498);let e=(a,b={})=>{let c=new d.xI.Renderer,e=c.link;return c.heading=({text:a,depth:b})=>{let c=a.replace(/<[^>]*>/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");return`<h${b} id="${c}">${a}</h${b}>`},b.rewriteLinkHref&&(c.link=function(a){let c=b.rewriteLinkHref?.(a.href);return c?e.call(this,{...a,href:c}):e.call(this,a)}),d.xI.parse(a,{async:!1,renderer:c})}},30935:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(21124),e=c(38301),f=c(9212),g=c(51536);let h=["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"}],j={random:20,memorable:4,pin:6},k={random:8,memorable:3,pin:4},l={random:128,memorable:10,pin:12};function m(a){let b=new Uint32Array(1);return crypto.getRandomValues(b),b[0]%a}let n=({isOpen:a,onClose:b,onUse:c})=>{let[n,o]=(0,e.useState)("random"),[p,q]=(0,e.useState)(j.random),[r,s]=(0,e.useState)({numbers:!0,symbols:!0,uppercase:!0,avoidAmbiguous:!1}),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(!1),x=(0,e.useCallback)(()=>{switch(n){case"random":u(function(a,b){let c="abcdefghijklmnopqrstuvwxyz";b.numbers&&(c+="0123456789"),b.symbols&&(c+="!@#$%^&*()_+-=[]{}|;:,.<>?"),b.uppercase&&(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),b.avoidAmbiguous&&(c=c.replace(/[0OoIl1]/g,"")),0===c.length&&(c="abcdefghijklmnopqrstuvwxyz");let d=[];for(let b=0;b<a;b++)d.push(c[m(c.length)]);return d.join("")}(p,r));break;case"memorable":u(function(a){let b=[];for(let c=0;c<a;c++)b.push(h[m(h.length)]);return b.join("-")}(p));break;case"pin":u(function(a){let b=[];for(let c=0;c<a;c++)b.push(String(m(10)));return b.join("")}(p))}w(!1)},[n,p,r]);(0,e.useEffect)(()=>{a&&x()},[a,x]),(0,e.useEffect)(()=>{q(j[n])},[n]);let y=async()=>{try{await navigator.clipboard.writeText(t),w(!0),setTimeout(()=>w(!1),2e3)}catch{}};return(0,d.jsx)(g.aF,{isOpen:a,onClose:b,title:"Password Generator",size:"sm",footer:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(g.$n,{variant:"ghost",size:"sm",onClick:x,icon:(0,d.jsx)(f.A,{size:10}),children:"Refresh"}),(0,d.jsx)(g.$n,{variant:"secondary",size:"sm",onClick:b,children:"Cancel"}),(0,d.jsx)(g.$n,{variant:"primary",size:"sm",onClick:()=>c(t),children:"Use"})]}),children:(0,d.jsxs)("div",{className:"space-y-4 min-h-[280px]",children:[(0,d.jsxs)("div",{onClick:y,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,d.jsx)("div",{className:"font-mono text-lg font-bold text-[var(--color-text,#0a0a0a)] break-all select-all pr-12",children:t}),(0,d.jsx)("div",{className:`absolute top-1 right-2 font-mono text-[8px] uppercase tracking-widest font-bold transition-opacity ${v?"opacity-100":"opacity-0"} bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)] px-1.5 py-0.5`,children:"Copied"}),!v&&(0,d.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,d.jsx)(g.UM,{options:i,value:n,onChange:a=>o(a),label:"Type",compact:!0}),(0,d.jsxs)("div",{children:[(0,d.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,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("input",{type:"range",min:k[n],max:l[n],value:p,onChange:a=>q(parseInt(a.target.value,10)),className:"flex-1 h-1 appearance-none bg-[var(--color-border,#d4d4d8)] outline-none",style:{accentColor:"var(--color-accent, #ccff00)"}}),(0,d.jsx)("div",{className:"w-16",children:(0,d.jsx)(g.ks,{compact:!0,type:"number",min:k[n],max:l[n],value:p,onChange:a=>(a=>{let b=parseInt(a,10);isNaN(b)||q(Math.max(k[n],Math.min(l[n],b)))})(a.target.value)})})]})]}),"random"===n&&(0,d.jsxs)("div",{className:"space-y-2.5",children:[(0,d.jsx)(g.lM,{size:"sm",checked:r.numbers,onChange:a=>s(b=>({...b,numbers:a})),label:"Numbers"}),(0,d.jsx)(g.lM,{size:"sm",checked:r.symbols,onChange:a=>s(b=>({...b,symbols:a})),label:"Symbols"}),(0,d.jsx)(g.lM,{size:"sm",checked:r.uppercase,onChange:a=>s(b=>({...b,uppercase:a})),label:"Uppercase"}),(0,d.jsx)(g.lM,{size:"sm",checked:r.avoidAmbiguous,onChange:a=>s(b=>({...b,avoidAmbiguous:a})),label:"Avoid ambiguous"})]})]})})}},37763:(a,b,c)=>{c.d(b,{v:()=>u});var d=c(21124),e=c(38301),f=c.n(e),g=c(23312),h=c(47268),i=c(15303),j=c(47089),k=c(51536);function l(a){return"string"==typeof a?a.trim():"number"==typeof a?String(a):""}function m(a){let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);return c<24?`${c}h ago`:`${Math.floor(c/24)}d ago`}function n(a){if(!a)return{};try{let b=JSON.parse(a);return b&&"object"==typeof b?b:{}}catch{return{}}}function o(a){var b;let c=n(a.metadata),d="one_shot_read"===(b=c.approvalScope)||"session_token"===b?b:null;return d||("DENY_EXCLUDED_FIELD"===c.escalationReason||"number"==typeof c.credentialAccess?.maxReads&&1===c.credentialAccess.maxReads?"one_shot_read":"auth"===a.type||"agent_access"===a.type||"action"===a.type?"session_token":null)}function p(a){return"one_shot_read"===a?"temp":""}function q(){return{background:"var(--color-surface, #ffffff)",color:"var(--color-text, #0a0a0a)",border:"1px solid var(--color-border, #d4d4d8)"}}function r(a){let b=n(a.metadata);if(b.verifiedSummary?.oneLiner)return b.verifiedSummary.oneLiner;if(b.summary)return b.summary;if(("auth"===a.type||"agent_access"===a.type)&&"number"==typeof b.limit){let a=b.agentId||"agent";return!1===b.requestedLimitExplicit?`${a} requesting access`:`${a} requesting ${b.limit} ETH access`}return a.type}function s(a){return"pending"===a.status?"PENDING":"approved"===a.status?"APPROVED":"rejected"===a.status?"REJECTED":"notify"===a.type?"ALERT":"INFO"}function t(a){return"pending"===a.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"===a.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"===a.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 u=({notifications:a,onDismiss:b,compact:c=!1})=>{let[f,n]=(0,e.useState)(!1),[u,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(new Set),[z,A]=(0,e.useState)(null),B=a=>{let b=l(a.id);return b?`id:${b}`:`fallback:${a.type}:${a.createdAt}:${r(a)}`},C=(0,e.useMemo)(()=>a.filter(a=>!x.has(B(a))),[a,x]),D=(0,e.useMemo)(()=>C.filter(a=>"pending"===a.status&&"notify"!==a.type).length,[C]);return(0,e.useEffect)(()=>(w(!0),()=>w(!1)),[]),(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("button",{type:"button",onClick:()=>n(a=>!a),className:`${c?"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,d.jsx)(h.A,{size:c?10:14})}),D>0&&(0,d.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:D>9?"9+":D})]}),u&&(0,g.createPortal)((0,d.jsxs)(d.Fragment,{children:[f&&(0,d.jsx)("button",{type:"button","aria-label":"Close notifications",onClick:()=>n(!1),className:"fixed inset-0 z-30 bg-[var(--color-text,#0a0a0a)]/20"}),(0,d.jsx)("div",{className:"fixed inset-y-0 right-0 z-40",children:(0,d.jsx)(k._s,{isOpen:f,onClose:()=>n(!1),title:"NOTIFICATIONS",subtitle:"Approvals + alerts",width:"sm",children:0===C.length?(0,d.jsxs)("div",{className:"py-8 text-center tyvek-label corner-marks mx-2",children:[(0,d.jsx)(h.A,{size:24,className:"mx-auto mb-2 text-[var(--color-text-faint,#9ca3af)]"}),(0,d.jsx)("div",{className:"label-specimen text-[var(--color-text-muted,#6b7280)]",children:"NO ALERTS"})]}):(0,d.jsx)("div",{className:"space-y-2",children:C.map(a=>{let c=o(a);return(0,d.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,d.jsxs)("button",{type:"button",onClick:()=>A(a),className:"flex-1 min-w-0 text-left",title:"View details",children:[(0,d.jsxs)("div",{className:"mb-1.5 flex items-center gap-1",children:[(0,d.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:t(a).bg,color:t(a).fg,border:`1px solid ${t(a).border}`},children:s(a)}),"one_shot_read"===c&&(0,d.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 font-mono text-[7px] font-bold tracking-[0.15em]",style:q(),children:p(c)})]}),(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-text,#0a0a0a)]",children:r(a)}),(0,d.jsxs)("div",{className:"font-mono text-[8px] text-[var(--color-text-faint,#9ca3af)] flex items-center gap-1 mt-1",children:[(0,d.jsx)(i.A,{size:7}),m(a.createdAt)]})]}),(0,d.jsx)("button",{type:"button",onClick:()=>{let c=B(a);y(a=>{let b=new Set(a);return b.add(c),b});let d=l(a.id);d&&b(d)},className:"p-1 hover:bg-[var(--color-background-alt,#e5e5e5)] transition-colors shrink-0",title:"Dismiss",children:(0,d.jsx)(j.A,{size:10,className:"text-[var(--color-text-muted,#6b7280)]"})})]},B(a))})})})})]}),document.body),(0,d.jsx)(v,{notification:z,onClose:()=>A(null)})]})};function v({notification:a,onClose:b}){let[c,e]=f().useState(null),g=a||c,h=g?n(g.metadata):{},j=g?.humanSummary,l=g?t(g):{bg:"",fg:"",border:""},r=g?o(g):null,u=h.agentId||"unknown";return(0,d.jsx)(k.aF,{isOpen:!!a,onClose:b,title:j?.actionLabel||g?.type.toUpperCase()||"DETAILS",size:"sm",children:(0,d.jsxs)("div",{className:"space-y-4",children:[g&&(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.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:l.bg,color:l.fg,border:`1px solid ${l.border}`},children:s(g)}),"one_shot_read"===r&&(0,d.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 font-mono text-[7px] font-bold tracking-[0.15em]",style:q(),children:p(r)})]}),(0,d.jsxs)("span",{className:"font-mono text-[8px] text-[var(--color-text-faint,#9ca3af)] flex items-center gap-1",children:[(0,d.jsx)(i.A,{size:7}),m(g.createdAt)]})]}),j?.oneLiner&&(0,d.jsx)("div",{className:"text-[10px] text-[var(--color-text-muted,#6b7280)] tracking-wider",children:j.oneLiner}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Agent"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider text-right",children:u})]}),(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Type"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] font-bold tracking-wider text-right",children:g?.type})]}),"one_shot_read"===r&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Token"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] font-bold tracking-wider text-right",children:p(r)})]}),j?.profileLabel&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Profile"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider text-right",children:j.profileLabel})]}),j?.riskHint&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Risk"}),(0,d.jsx)("span",{className:`text-[10px] font-bold tracking-wider ${j.riskHint.toLowerCase().includes("high")?"text-[var(--color-danger,#ef4444)]":j.riskHint.toLowerCase().includes("medium")?"text-[var(--color-warning,#ff4d00)]":"text-[var(--color-text,#0a0a0a)]"}`,children:j.riskHint})]}),j?.expiresIn&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Expires"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider text-right",children:j.expiresIn})]}),"number"==typeof h.limit&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Limit"}),(0,d.jsxs)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] font-bold tracking-wider text-right",children:[h.limit," ETH"]})]}),(0,d.jsxs)("div",{className:"text-[7px] text-[var(--color-text-faint,#9ca3af)] tracking-widest break-all",children:["ID: ",g?.id]})]}),j?.can&&j.can.length>0&&(0,d.jsxs)("div",{className:"border-t border-[var(--color-border,#d4d4d8)] pt-3",children:[(0,d.jsx)("div",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase mb-1.5",children:"Permissions"}),(0,d.jsx)("div",{className:"space-y-1",children:j.can.map(a=>(0,d.jsx)("div",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider pl-2 border-l-2 border-[var(--color-border,#d4d4d8)]",children:a},a))})]}),j?.cannot&&j.cannot.length>0&&(0,d.jsxs)("div",{className:"border-t border-[var(--color-border,#d4d4d8)] pt-3",children:[(0,d.jsx)("div",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase mb-1.5",children:"Restrictions"}),(0,d.jsx)("div",{className:"space-y-1",children:j.cannot.map(a=>(0,d.jsx)("div",{className:"text-[10px] text-[var(--color-danger,#ef4444)] tracking-wider pl-2 border-l-2 border-[var(--color-danger,#ef4444)]/30",children:a},a))})]}),j?.scope&&j.scope.length>0&&(0,d.jsxs)("div",{className:"border-t border-[var(--color-border,#d4d4d8)] pt-3",children:[(0,d.jsx)("div",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase mb-1.5",children:"Scope"}),(0,d.jsx)("div",{className:"space-y-1",children:j.scope.map(a=>(0,d.jsx)("div",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider pl-2 border-l-2 border-[var(--color-border,#d4d4d8)]",children:a},a))})]})]})})}},64354:(a,b,c)=>{c.d(b,{S:()=>i});var d=c(38301),e=c(77886);c(2761);var f=c(45478);function g(a){return[...a].sort((a,b)=>{let c=new Date(a.createdAt).getTime();return new Date(b.createdAt).getTime()-c})}function h(a){return"string"==typeof a?a:"number"==typeof a?String(a):""}function i(a={}){let{autoFetch:b=!0}=a,[c,j]=(0,d.useState)([]),[k,l]=(0,d.useState)([]),[m,n]=(0,d.useState)([]),[o,p]=(0,d.useState)(()=>new Set),[q,r]=(0,d.useState)([]),[s,t]=(0,d.useState)([]),[u,v]=(0,d.useState)(!0),[w,x]=(0,d.useState)(null),[y,z]=(0,d.useState)(null),[A,B]=(0,d.useState)({pendingActions:0,activeTokens:0}),[C,D]=(0,d.useState)(null),{subscribe:E,connected:F}=(0,e.h)(),G=(0,d.useRef)(!0);(0,d.useRef)([]);let H=(0,d.useCallback)(()=>{D(null)},[]),I=(0,d.useCallback)(a=>{let b=h(a);b&&(p(a=>{let c=new Set(a);return c.add(b),c}),n(a=>a.filter(a=>h(a.id)!==b)))},[]),J=(0,d.useCallback)(async()=>{try{let a=await f.FH.get(f.jI.Wallet,"/dashboard");if(!G.current)return;a.success?(j(b=>(function(a,b){let c=Date.now(),d=new Map;return a.filter(a=>"pending"===a.status).forEach(a=>d.set(a.id,a)),b.filter(a=>"pending"===a.status).filter(a=>!d.has(a.id)).filter(a=>c-new Date(a.createdAt).getTime()<=15e3).forEach(a=>d.set(a.id,a)),g(Array.from(d.values()))})(a.requests||[],b)),l(b=>(function(a,b){let c=Date.now(),d=new Map;return a.filter(a=>"pending"!==a.status).forEach(a=>d.set(a.id,a)),b.filter(a=>"pending"!==a.status).filter(a=>!d.has(a.id)).filter(a=>c-new Date(a.createdAt).getTime()<=15e3).forEach(a=>d.set(a.id,a)),g(Array.from(d.values())).slice(0,80)})(a.history||[],b)),r(a.tokens?.active||[]),t(a.tokens?.inactive||[]),B({pendingActions:a.counts?.pendingActions||0,activeTokens:a.counts?.activeTokens||0}),x(null)):x(a.error||"Failed to fetch dashboard")}catch(a){G.current&&x(a instanceof Error?a.message:"Failed to fetch dashboard")}finally{G.current&&v(!1)}},[]),K=(0,d.useCallback)(async()=>{v(!0),await J()},[J]),L=(0,d.useCallback)(async(a,b)=>{z(`resolve-${a}`);try{let c=await f.FH.post(f.jI.Wallet,`/actions/${a}/resolve`,{approved:b});if(!c.success)return x(c.error||"Action resolution failed"),{success:!1,message:c.error};{let a={success:!0,token:c.token,agentId:c.agentId,limit:c.limit,permissions:c.permissions,expiresIn:c.expiresIn,txHash:c.txHash,message:c.message};return c.token&&D(a),await K(),a}}catch(b){let a=b instanceof Error?b.message:"Action resolution failed";return x(a),{success:!1,message:a}}finally{z(null)}},[K]),M=(0,d.useCallback)(async a=>{z(`revoke-${a}`);try{let b=await f.FH.post(f.jI.Wallet,"/actions/tokens/revoke",{tokenHash:a});if(b.success)return await K(),!0;return x(b.error||"Revoke failed"),!1}catch(a){return x(a instanceof Error?a.message:"Revoke failed"),!1}finally{z(null)}},[K]),N=(0,d.useMemo)(()=>{let a=new Map,b=b=>{let c=h(b.id);if(!c||o.has(c))return;let d=a.get(c);if(!d)return void a.set(c,b);"pending"!==d.status&&"pending"===b.status&&a.set(c,b)};return c.forEach(b),k.forEach(b),m.forEach(b),g(Array.from(a.values()))},[k,m,o,c]);return{requests:c,notifications:N,dismissNotification:I,activeTokens:q,inactiveTokens:s,loading:u,error:w,counts:A,refresh:K,resolveAction:L,revokeToken:M,actionLoading:y,lastApprovalResult:C,clearApprovalResult:H,connected:F}}},71287:(a,b,c)=>{c.d(b,{Z:()=>u});var d=c(21124),e=c(38301),f=c(18310),g=c(75219),h=c(43700),i=c(71613),j=c(3663),k=c(96503),l=c(51536),m=c(45478),n=c(93292);let o=["1password-csv","bitwarden-csv","chrome-csv"],p=["aura to maxx","maxx to aura"],q=[{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"}],r={skip:"Skip",rename:"Rename",overwrite:"Create Anyway"};function s(a){let b=a.replace(/-/g,"+").replace(/_/g,"/");for(;b.length%4;)b+="=";let c=atob(b),d=new Uint8Array(c.length);for(let a=0;a<c.length;a++)d[a]=c.charCodeAt(a);return d.buffer}function t(a){let b=new Uint8Array(a),c="";for(let a=0;a<b.length;a++)c+=String.fromCharCode(b[a]);return btoa(c).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function u({isUnlocked:a}){let b=(0,e.useMemo)(()=>(0,m.au)(),[]),c=(0,e.useMemo)(()=>p[Math.floor(Math.random()*p.length)],[]),[u,v]=(0,e.useState)("hidden"),[w,x]=(0,e.useState)("import-source"),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(!1),[C,D]=(0,e.useState)(o[0]),[E,F]=(0,e.useState)("upload"),[G,H]=(0,e.useState)(null),[I,J]=(0,e.useState)("skip"),[K,L]=(0,e.useState)(null),[M,N]=(0,e.useState)(null),[O,P]=(0,e.useState)(!1),[Q,R]=(0,e.useState)(null),[S,T]=(0,e.useState)([]),[U,V]=(0,e.useState)("primary"),[W,X]=(0,e.useState)(!1),[Y,Z]=(0,e.useState)(!1),[$,_]=(0,e.useState)(null),aa=(0,e.useRef)(null),ab=(0,e.useMemo)(()=>A?q:q.filter(a=>o.includes(a.format)),[A]),ac=(0,e.useMemo)(()=>S.map(a=>({value:a.id,label:a.name||(a.isPrimary?"Primary":`Agent ${a.id.slice(0,6)}`)})),[S]),ad=(0,e.useMemo)(()=>S.find(a=>a.id===U)||null,[S,U]),ae=(0,e.useCallback)(()=>{F("upload"),H(null),J("skip"),L(null),N(null),P(!1),R(null),aa.current&&(aa.current.value="")},[]),af=(0,e.useCallback)((a=!1)=>{v("hidden"),x("import-source"),B(!1),D(o[0]),_(null),Z(!1),ae()},[ae]),ag=(0,e.useCallback)(()=>{x("retrieve-note"),X(!0)},[]),ah=(0,e.useCallback)(()=>{v("hidden"),_(null),Z(!1)},[]),ai=(0,e.useCallback)(async()=>{try{let a=await m.FH.get(m.jI.Wallet,"/agents/credential");if(!a.success||!Array.isArray(a.agents))return;T(a.agents);let b=a.agents.find(a=>a.isPrimary)?.id||a.agents[0]?.id||"primary";V(c=>c&&a.agents.some(a=>a.id===c)?c:b)}catch{}},[]),aj=(0,e.useCallback)(a=>{if(!G)return null;let b=new FormData;return b.append("file",G),b.append("format",C),b.append("agentId",U||"primary"),a&&b.append("dryRun","true"),b.append("duplicateStrategy",I),b},[I,G,C,U]),ak=(0,e.useCallback)(async()=>{if(G){P(!0),R(null);try{let a=aj(!0);if(!a)return;let c=await fetch(`${b}/credentials/import`,{method:"POST",headers:{},body:a});if(!(c.headers.get("content-type")||"").includes("application/json"))return void R(`Server error: ${c.status} ${c.statusText}`);let d=await c.json();if(!c.ok||!d.success)return void R(d.error||`Request failed: ${c.status}`);L(d),F("preview")}catch(a){R(a instanceof Error?a.message:"Preview failed")}finally{P(!1)}}},[aj,G,b]),al=(0,e.useCallback)(async()=>{P(!0),R(null);try{let a=aj(!1);if(!a)return;let c=await fetch(`${b}/credentials/import`,{method:"POST",headers:{},body:a});if(!(c.headers.get("content-type")||"").includes("application/json"))return void R(`Server error: ${c.status} ${c.statusText}`);let d=await c.json();if(!c.ok)return void R(d.error||`Request failed: ${c.status}`);N(d),F("result")}catch(a){R(a instanceof Error?a.message:"Import failed")}finally{P(!1)}},[aj,b]),am=(0,e.useCallback)(async()=>{if(!y)return void _("Passkey is not available in this environment.");Z(!0),_(null);try{let a=await m.FH.post(m.jI.Wallet,"/auth/passkey/register/options",{}),b={challenge:s(a.challenge),rp:{name:a.rp.name,id:a.rp.id},user:{id:s(a.user.id),name:a.user.name,displayName:a.user.displayName},pubKeyCredParams:a.pubKeyCredParams.map(a=>({type:a.type,alg:a.alg})),timeout:a.timeout,attestation:a.attestation||"none",excludeCredentials:(a.excludeCredentials||[]).map(a=>({type:"public-key",id:s(a.id),transports:a.transports})),authenticatorSelection:{authenticatorAttachment:a.authenticatorSelection?.authenticatorAttachment,residentKey:a.authenticatorSelection?.residentKey,userVerification:a.authenticatorSelection?.userVerification}},c=await navigator.credentials.create({publicKey:b});if(!c)return void Z(!1);let d=c.response,e={credential:{id:t(c.rawId),rawId:t(c.rawId),type:c.type,response:{clientDataJSON:t(d.clientDataJSON),attestationObject:t(d.attestationObject),transports:d.getTransports?.()||[]}}},f=await m.FH.post(m.jI.Wallet,"/auth/passkey/register/verify",e);if(!f.success)return void _(f.error||"Passkey registration failed.");"onboarding"===u?(x("passkey-success"),setTimeout(()=>af(!1),1200)):v("hidden")}catch(a){if(a instanceof Error&&"NotAllowedError"===a.name)return void Z(!1);_(a instanceof Error?a.message:"Passkey registration failed.")}finally{Z(!1)}},[af,u,y]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(l.aF,{isOpen:"hidden"!==u,onClose:()=>{},dismissible:!1,title:"onboarding"===u?"passkey"===w||"passkey-success"===w?"Passkey Setup":"Onboarding":"Passkey Setup",subtitle:"Security",icon:(0,d.jsx)(k.A,{size:16,className:"text-[var(--color-accent,#ccff00)]"}),size:"md",children:"onboarding"===u?(()=>{if("passkey-success"===w)return(0,d.jsxs)("div",{className:"flex flex-col items-center gap-3 py-4",children:[(0,d.jsx)("div",{className:"w-10 h-10 bg-[var(--color-text,#0a0a0a)] flex items-center justify-center",children:(0,d.jsx)(i.A,{size:20,className:"text-[var(--color-accent,#ccff00)]"})}),(0,d.jsx)("div",{className:"font-mono text-xs tracking-widest text-[var(--color-text,#0a0a0a)] uppercase",children:"Passkey enabled!"}),(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Onboarding complete."})]});if("import-source"===w)return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"font-mono text-xs text-[var(--color-text,#0a0a0a)] leading-relaxed",children:"Import credentials from another manager before you continue."}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Import Source"}),(0,d.jsx)(l.O6,{ariaLabel:"Onboarding import source",value:C,onChange:a=>D(a),options:ab.map(a=>({value:a.format,label:a.label,icon:(0,d.jsx)(j.A,{size:12})}))})]}),(0,d.jsx)("button",{type:"button",onClick:()=>B(a=>!a),className:"font-mono text-[10px] tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:A?"SHOW LESS":"SHOW MORE"}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{ae(),ag()},children:"SKIP"}),(0,d.jsx)(l.$n,{size:"sm",onClick:()=>{ae(),x("import-upload")},children:"CONFIRM"})]})]});if("import-upload"===w){if("preview"===E&&K){let a="skip"===I?K.total-K.duplicates:K.total;return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"flex gap-4",children:[(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-[var(--color-text,#0a0a0a)]",children:K.total}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Total"})]}),K.duplicates>0&&(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-amber-600",children:K.duplicates}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Duplicates"})]})]}),(0,d.jsxs)("div",{className:"max-h-[220px] overflow-y-auto border border-[var(--color-border,#d4d4d8)]",children:[0===K.credentials.length?(0,d.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((a,b)=>(0,d.jsxs)("div",{className:`flex items-center gap-2 px-3 py-1.5 border-b border-[var(--color-border,#d4d4d8)] last:border-b-0 ${a.isDuplicate?"bg-amber-50/50":""}`,children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("div",{className:"text-[10px] font-mono text-[var(--color-text,#0a0a0a)] truncate",children:a.name}),a.url&&(0,d.jsx)("div",{className:"text-[8px] font-mono text-[var(--color-text-faint,#9ca3af)] truncate",children:a.url})]}),(0,d.jsx)("span",{className:"text-[8px] font-mono tracking-wider uppercase text-[var(--color-text-faint,#9ca3af)] flex-shrink-0",children:a.type}),a.isDuplicate&&(0,d.jsx)("span",{className:"text-[8px] font-mono tracking-wider uppercase text-amber-600 flex-shrink-0",children:"DUP"})]},`${a.name}-${b}`)),K.total>K.credentials.length&&(0,d.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,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)] mb-1.5",children:"Duplicate handling"}),(0,d.jsx)("div",{className:"flex gap-1.5",children:["skip","rename","overwrite"].map(a=>(0,d.jsx)("button",{onClick:()=>J(a),className:`px-3 py-1.5 text-[9px] font-mono tracking-wider uppercase border transition-colors ${I===a?"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:r[a]},a))})]}),Q&&(0,d.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 bg-red-50 border border-red-200",children:[(0,d.jsx)(f.A,{size:12,className:"text-red-500 flex-shrink-0 mt-0.5"}),(0,d.jsx)("span",{className:"text-[10px] font-mono text-red-700",children:Q})]}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{ae(),ag()},children:"SKIP"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{F("upload"),R(null),aa.current&&(aa.current.value="")},children:"BACK"}),(0,d.jsxs)(l.$n,{size:"sm",onClick:()=>{al()},loading:O,disabled:0===K.credentials.length,children:["IMPORT ",a," CREDENTIAL",1!==a?"S":""]})]})]})]})}if("result"===E&&M){let a=M.errors.length>0;return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[M.success?(0,d.jsx)(g.A,{size:20,className:"text-green-600"}):(0,d.jsx)(f.A,{size:20,className:"text-red-500"}),(0,d.jsx)("div",{children:(0,d.jsx)("div",{className:"text-[11px] font-mono font-bold text-[var(--color-text,#0a0a0a)]",children:M.success?"Import Complete":"Import Failed"})})]}),(0,d.jsxs)("div",{className:"flex gap-6",children:[(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-green-600",children:M.imported}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Imported"})]}),M.skipped>0&&(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-[var(--color-text-muted,#6b7280)]",children:M.skipped}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Skipped"})]}),a&&(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-red-500",children:M.errors.length}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Errors"})]})]}),a&&(0,d.jsx)("div",{className:"max-h-[120px] overflow-y-auto border border-red-200 bg-red-50",children:M.errors.map((a,b)=>(0,d.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 ",a.row,": ",a.reason]},`${a.row}-${b}`))}),(0,d.jsx)("div",{className:"flex justify-end",children:(0,d.jsx)(l.$n,{size:"sm",onClick:()=>{ae(),x("retrieve-note")},children:"CONTINUE"})})]})}return(0,d.jsxs)("div",{className:"space-y-5",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)] mb-2",children:"Source"}),(0,d.jsx)("div",{className:"text-[10px] font-mono text-[var(--color-text,#0a0a0a)] px-3 py-2 border border-[var(--color-border,#d4d4d8)]",children:q.find(a=>a.format===C)?.label||C})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)] mb-2",children:"File"}),(0,d.jsx)("input",{ref:aa,type:"file",accept:".csv",onChange:a=>{let b=a.target.files?.[0]??null;if(b&&b.size>0xa00000){R(`File too large (${(b.size/1024/1024).toFixed(1)}MB). Maximum is 10MB.`),H(null),aa.current&&(aa.current.value="");return}H(b),R(null)},className:"hidden"}),(0,d.jsxs)("button",{onClick:()=>aa.current?.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,d.jsx)(h.A,{size:14,className:"text-[var(--color-text-muted,#6b7280)]"}),(0,d.jsx)("span",{className:"text-[10px] font-mono tracking-wider text-[var(--color-text-muted,#6b7280)]",children:G?G.name:"Choose CSV file"})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)(l.UM,{label:"Target Agent",ariaLabel:"TARGET AGENT",options:ac,value:U,onChange:V,compact:!0,searchable:!0,menuPosition:"top",searchPlaceholder:"Search agent...",emptyMessage:"No agent matches",disabled:0===ac.length}),ad&&!ad.isUnlocked&&(0,d.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."})]}),Q&&(0,d.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 bg-red-50 border border-red-200",children:[(0,d.jsx)(f.A,{size:12,className:"text-red-500 flex-shrink-0 mt-0.5"}),(0,d.jsx)("span",{className:"text-[10px] font-mono text-red-700",children:Q})]}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{ae(),ag()},children:"SKIP"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{ae(),x("import-source")},children:"BACK"}),(0,d.jsx)(l.$n,{size:"sm",onClick:()=>{ak()},loading:O,disabled:!G,children:"PREVIEW"})]})]})]})}return"retrieve-note"===w?(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"font-mono text-xs text-[var(--color-text,#0a0a0a)] leading-relaxed",children:"Retrieve your note before passkey setup."}),(0,d.jsxs)("div",{className:"space-y-2 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-background-alt,#f4f4f5)] px-3 py-2",children:[(0,d.jsx)("div",{className:"font-mono text-[9px] tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Dev Command"}),(0,d.jsx)("div",{className:"font-mono text-[11px] text-[var(--color-text,#0a0a0a)] break-all",children:"$ npx auramaxx get FIRSTAURA"})]}),(0,d.jsxs)("div",{className:"space-y-2 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)] px-3 py-2",children:[(0,d.jsx)("div",{className:"font-mono text-[9px] tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Agent Prompt"}),(0,d.jsx)("div",{className:"font-mono text-[11px] text-[var(--color-text,#0a0a0a)]",children:"ayo get my FIRSTAURA using auramaxx"})]}),(0,d.jsx)("div",{className:"flex justify-end",children:(0,d.jsx)(l.$n,{size:"sm",onClick:()=>x("passkey"),children:"CONTINUE"})})]}):(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.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."}),!y&&(0,d.jsx)("div",{className:"p-2 border border-[var(--color-warning,#ff4d00)]/30 bg-[var(--color-warning,#ff4d00)]/5",children:(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-warning,#ff4d00)]",children:"Passkey is unavailable in this environment."})}),$&&(0,d.jsx)("div",{className:"p-2 border border-[var(--color-warning,#ff4d00)]/30 bg-[var(--color-warning,#ff4d00)]/5",children:(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-warning,#ff4d00)]",children:$})}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>af(!0),children:"NOT NOW"}),(0,d.jsx)(l.$n,{variant:"primary",size:"sm",loading:Y,onClick:()=>{am()},disabled:!y,icon:(0,d.jsx)(k.A,{size:14}),children:Y?"REGISTERING...":"CREATE PASSKEY"})]})]})})():(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.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."}),$&&(0,d.jsx)("div",{className:"p-2 border border-[var(--color-warning,#ff4d00)]/30 bg-[var(--color-warning,#ff4d00)]/5",children:(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-warning,#ff4d00)]",children:$})}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:ah,children:"NOT NOW"}),(0,d.jsx)(l.$n,{variant:"primary",size:"sm",loading:Y,onClick:()=>{am()},icon:(0,d.jsx)(k.A,{size:14}),children:Y?"REGISTERING...":"CREATE PASSKEY"})]})]})}),(0,d.jsx)(n.i,{isOpen:W,onClose:()=>{X(!1),x("retrieve-note")},onSaved:()=>{X(!1),x("retrieve-note"),ai()},agents:S,createStartStep:"form",createStartType:"plain_note",createPrefill:{type:"plain_note",name:"FIRSTAURA",noteContent:c,agentId:"primary"!==U?U:void 0}})]})}},93292:(a,b,c)=>{c.d(b,{i:()=>S});var d=c(21124),e=c(38301),f=c(46816),g=c(3663),h=c(43718),i=c(25345),j=c(14343),k=c(58249),l=c(31905),m=c(4451),n=c(79944),o=c(14263),p=c(3368),q=c(43700),r=c(51536),s=c(45478),t=c(9793),u=c(14657),v=c(1599),w=c(30935);let x=new Set(["SHA1","SHA256","SHA512"]);function y(a){let b=a.replace(/\s+/g,"").toUpperCase();if(b.length<8||!/^[A-Z2-7]+$/.test(b))throw Error("Invalid TOTP secret");return b}function z(a){let b=a.trim().toLowerCase();return b.startsWith("otpauth://totp/")?"otpauth":b.startsWith("otpauth-migration://")?"otpauth-migration":"unknown"}let A=({isEdit:a,hasExistingTotp:b,onIntentChange:c,onSecretChange:f})=>{let[g,h]=(0,e.useState)("manual"),[i,j]=(0,e.useState)(""),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),[q,s]=(0,e.useState)(!1),t=(0,e.useRef)(0),u=(0,e.useMemo)(()=>"otpauth-migration"===z(k),[k]),v=async a=>{if(!a)return;if(a.size>5242880)return void p("QR image must be 5MB or smaller");let b=++t.current;s(!0),p(null);try{throw Error("QR decoding not supported in this browser. Paste setup link manually.")}catch(a){if(t.current!==b)return;n(null),p(a instanceof Error?a.message:"Failed to decode QR image")}finally{t.current===b&&s(!1)}};return(0,d.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:[a&&b&&(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] px-2 py-1 border",onClick:()=>{c("keep"),p(null),f("",!1)},children:"Keep Existing"}),(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] px-2 py-1 border",onClick:()=>c("replace"),children:"Replace TOTP"}),(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] px-2 py-1 border",onClick:()=>{c("remove"),n(null),p(null),f("",!0)},children:"Remove TOTP"})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] uppercase px-2 py-1 border",onClick:()=>h("manual"),children:"Manual"}),(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] uppercase px-2 py-1 border",onClick:()=>h("uri"),children:"Paste Link"}),(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] uppercase px-2 py-1 border",onClick:()=>h("qr"),children:"Import QR"})]}),"manual"===g&&(0,d.jsx)(r.ks,{label:"TOTP Secret (2FA)",value:i,onChange:a=>(a=>{if(j(a),!a.trim()){n(null),f("",!1);return}try{let b=y(a);p(null),n({secret:b,algorithm:"SHA1",digits:6,period:30}),c("replace"),f(b,!0)}catch{n(null),p("Invalid TOTP secret"),f("",!1)}})(a.target.value),placeholder:"Base32 secret (e.g. JBSWY3DPEHPK3PXP)",type:"password"}),"uri"===g&&(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Setup Link"}),(0,d.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:k,onChange:a=>{l(a.target.value),(a=>{if(!a.trim()){n(null),p(null),f("",!1);return}let b=z(a);if("otpauth-migration"===b){n(null),p(null),f("",!1);return}if("otpauth"!==b){n(null),p("Unsupported QR/setup payload. Use an otpauth://totp link."),f("",!1);return}try{(a=>{n(a),p(null),c("replace"),f(a.secret,!0)})(function(a){let b=new URL(a.trim());if("otpauth:"!==b.protocol)throw Error("Not an otpauth URI");if("totp"!==b.hostname)throw Error("Only TOTP is supported");let c=b.searchParams.get("secret");if(!c)throw Error("Missing secret parameter");let d=b.searchParams.has("digits")?Number.parseInt(b.searchParams.get("digits")||"",10):6,e=b.searchParams.has("period")?Number.parseInt(b.searchParams.get("period")||"",10):30,f=(b.searchParams.get("algorithm")||"SHA1").toUpperCase();if(!x.has(f))throw Error(`Unsupported TOTP algorithm: ${f}`);if(!Number.isInteger(d)||d<6||d>8)throw Error(`Invalid TOTP digits: ${d}`);if(!Number.isInteger(e)||e<15||e>60)throw Error(`Invalid TOTP period: ${e}`);let g=decodeURIComponent(b.pathname.replace(/^\//,""))||void 0,[h,i]=(g||"").includes(":")?(g||"").split(":",2):[void 0,g];return{secret:y(c),issuer:b.searchParams.get("issuer")||h||void 0,account:i||void 0,algorithm:f,digits:d,period:e,label:g}}(a))}catch(a){n(null),p(a instanceof Error?a.message:"Invalid TOTP setup link"),f("",!1)}})(a.target.value)},placeholder:"otpauth://totp/...","data-testid":"totp-uri-input"})]}),"qr"===g&&(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("input",{type:"file",accept:"image/png,image/jpeg,image/webp",onChange:a=>{v(a.target.files?.[0]||null)},"data-testid":"totp-qr-file"}),q&&(0,d.jsx)("p",{className:"font-mono text-[10px]","data-testid":"totp-qr-decoding",children:"Decoding QR…"})]}),u&&(0,d.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,d.jsxs)("div",{className:"font-mono text-[10px] border p-2","data-testid":"totp-preview",children:[(0,d.jsxs)("div",{children:["Issuer: ",m.issuer||"—"]}),(0,d.jsxs)("div",{children:["Account: ",m.account||"—"]}),(0,d.jsxs)("div",{children:["Digits: ",m.digits]}),(0,d.jsxs)("div",{children:["Period: ",m.period,"s"]}),(0,d.jsxs)("div",{children:["Algorithm: ",m.algorithm]})]}),o&&(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-danger,#ef4444)]","data-testid":"totp-error",children:o})]})},B=a=>(a.split(/\r?\n/).map(a=>a.trim()).find(Boolean)||"").slice(0,48);function C(a){let{type:b,apiKeyName:c,username:d,url:e,noteContent:f,customFieldKey:g,hotWalletChain:h,cardholder:i,cardNumber:j,cardLast4:k,ssoWebsite:l,ssoProvider:m,oauth2TokenEndpoint:n,sshHostsInput:o,gpgKeyId:p,gpgUidEmail:q}=a;return"apikey"===b&&!!c.trim()||"plain_note"===b&&!!f.trim()||"login"===b&&(!!d.trim()||!!e.trim())||"note"===b&&!!f.trim()||"hot_wallet"===b&&(!!h.trim()||!0)||"custom"===b&&!!g.trim()||"card"===b&&(!!i?.trim()||!!j?.trim()||!!k?.trim())||"sso"===b&&(!!l?.trim()||!!m?.trim())||"oauth2"===b&&!!n?.trim()||"ssh"===b&&!!o?.trim()||"gpg"===b&&(!!p?.trim()||!!q?.trim())}let D=v.u.login,E=v.u.card,F=v.u.sso,G=v.u.hot_wallet,H=v.u.apikey,I=v.u.oauth2,J=v.u.ssh,K=v.u.gpg,L={hot_wallet:{label:"Hot Wallet",description:"Generate wallet address + encrypted private key",icon:f.A},plain_note:{label:"Plain Note",description:"Readable note content stored without encryption",icon:g.A},apikey:{label:"API Key",description:"Simple key/value secret",icon:h.A},login:{label:"Login",description:"Websites and app accounts",icon:h.A},sso:{label:"SSO Login",description:"Website + identity provider references",icon:i.A},note:{label:"Secure Note",description:"Private notes and secrets",icon:g.A},card:{label:"Credit Card",description:"Payment cards and details",icon:j.A},oauth2:{label:"OAuth2",description:"Auto-refreshing OAuth2 tokens",icon:i.A},ssh:{label:"SSH Key",description:"Private/public keypair for SSH",icon:h.A},gpg:{label:"GPG Key",description:"Armored key material and metadata",icon:g.A},custom:{label:"Key / Value",description:"Define a custom key/value secret field",icon:g.A}},M=["apikey","login","plain_note"],N=["custom","card","hot_wallet","sso","note","oauth2","ssh","gpg"],O=[{value:"visa",label:"Visa"},{value:"mastercard",label:"Mastercard"},{value:"amex",label:"Amex"},{value:"discover",label:"Discover"},{value:"other",label:"Other"}],P=[{value:"apple",label:"Apple",icon:(0,d.jsx)(k.A,{size:14})},{value:"facebook",label:"Facebook",icon:(0,d.jsx)(l.A,{size:14})},{value:"google",label:"Google",icon:(0,d.jsx)(m.A,{size:14})}],Q=a=>a.trim().toLowerCase(),R=(a,b)=>{let c=a?Date.parse(a):NaN;if(Number.isFinite(c))return c;let d=b?Date.parse(b):NaN;return Number.isFinite(d)?d:0},S=({isOpen:a,onClose:b,onSaved:c,editCredentialId:f,agents:g,createStartStep:h="form",createStartType:i,createPrefill:j})=>{let[k,l]=(0,e.useState)("apikey"),[m,x]=(0,e.useState)("form"),[y,z]=(0,e.useState)(""),[S,T]=(0,e.useState)(""),[U,V]=(0,e.useState)(!1),[W,X]=(0,e.useState)([]),[Y,Z]=(0,e.useState)(""),[$,_]=(0,e.useState)(""),[aa,ab]=(0,e.useState)(""),[ac,ad]=(0,e.useState)(""),[ae,af]=(0,e.useState)(""),[ag,ah]=(0,e.useState)(""),[ai,aj]=(0,e.useState)("keep"),[ak,al]=(0,e.useState)(!1),[am,an]=(0,e.useState)(""),[ao,ap]=(0,e.useState)("visa"),[aq,ar]=(0,e.useState)(""),[as,at]=(0,e.useState)(""),[au,av]=(0,e.useState)(""),[aw,ax]=(0,e.useState)(""),[ay,az]=(0,e.useState)(""),[aA,aB]=(0,e.useState)(""),[aC,aD]=(0,e.useState)(""),[aE,aF]=(0,e.useState)(""),[aG,aH]=(0,e.useState)(""),[aI,aJ]=(0,e.useState)(""),[aK,aL]=(0,e.useState)("base"),[aM,aN]=(0,e.useState)(""),[aO,aP]=(0,e.useState)(""),[aQ,aR]=(0,e.useState)(""),[aS,aT]=(0,e.useState)("value"),[aU,aV]=(0,e.useState)(""),[aW,aX]=(0,e.useState)(""),[aY,aZ]=(0,e.useState)(""),[a$,a_]=(0,e.useState)(""),[a0,a1]=(0,e.useState)(""),[a2,a3]=(0,e.useState)(""),[a4,a5]=(0,e.useState)(""),[a6,a7]=(0,e.useState)("client_secret_post"),[a8,a9]=(0,e.useState)(""),[ba,bb]=(0,e.useState)(""),[bc,bd]=(0,e.useState)(""),[be,bf]=(0,e.useState)(""),[bg,bh]=(0,e.useState)(""),[bi,bj]=(0,e.useState)(""),[bk,bl]=(0,e.useState)(""),[bm,bn]=(0,e.useState)(""),[bo,bp]=(0,e.useState)(""),[bq,br]=(0,e.useState)(""),[bs,bt]=(0,e.useState)(""),[bu,bv]=(0,e.useState)(null),[bw,bx]=(0,e.useState)(!1),[by,bz]=(0,e.useState)(null),[bA,bB]=(0,e.useState)(!1),[bC,bD]=(0,e.useState)(!1),[bE,bF]=(0,e.useState)(!1),[bG,bH]=(0,e.useState)(!1),[bI,bJ]=(0,e.useState)([]),[bK,bL]=(0,e.useState)([]),[bM,bN]=(0,e.useState)(null),[bO,bP]=(0,e.useState)(null),[bQ,bR]=(0,e.useState)({}),[bS,bT]=(0,e.useState)({}),bU=(0,e.useRef)(null),bV=(0,e.useRef)(null),[bW,bX]=(0,e.useState)("write"),bY=!!f,bZ=(0,e.useCallback)((a,b,c)=>{switch((0,v.Dw)(c,a)){case D.password:ad(b);break;case D.notes:"login"===c&&af(b),"card"===c&&aB(b);break;case E.number:at(b),ar(b.replace(/\D/g,"").slice(-4));break;case E.expiry:av(b);break;case E.cvv:ax(b);break;case v.l3:aJ(b);break;case H.value:aR(b);break;case I.accessToken:a1(b);break;case I.refreshToken:a3(b);break;case I.clientId:aZ(b);break;case I.clientSecret:a_(b);break;case J.privateKey:"ssh"===c&&bd(b),"gpg"===c&&bn(b);break;case J.passphrase:bf(b);break;default:"custom"===c&&aV(b)}},[]),b$=(0,e.useCallback)(a=>{bR(b=>({...b,[a]:!0}))},[]);(0,e.useEffect)(()=>{if(g.length>0&&!S){let a=g.find(a=>a.isPrimary);T(a?.id||g[0].id)}},[g,S]);let b_=(0,e.useCallback)(async()=>{if(f)try{let a=(await s.FH.get(s.jI.Wallet,`/credentials/${f}`)).credential,b=a.type;z(a.name),l(b),T(a.agentId),V(a.meta.favorite||!1),X(a.meta.tags||[]);let c=a.meta.walletLink;bv(c?.walletAddress&&("hot"===c.tier||"cold"===c.tier)?c:null),"login"===a.type?(_(a.meta[D.url]||""),ab(a.meta[D.username]||""),al(!!a.meta.has_totp)):"card"===a.type?(an(a.meta[E.cardholder]||""),ap(a.meta[E.brand]||"visa"),ar(a.meta[E.last4]||""),az(a.meta[E.billingZip]||"")):"sso"===a.type?(aD(a.meta[F.website]||""),aF(a.meta[F.provider]||""),aH(a.meta[F.identifier]||"")):"apikey"===a.type?(aP(a.meta[H.key]||""),aR(a.meta[H.value]||"")):"plain_note"===a.type?aJ(a.meta[v.l3]||a.meta[H.value]||""):"oauth2"===a.type?(aX(a.meta[I.tokenEndpoint]||""),a5(a.meta[I.scopes]||""),a7(a.meta[I.authMethod]||"client_secret_post"),a9("number"==typeof a.meta[I.expiresAt]?String(a.meta[I.expiresAt]):"string"==typeof a.meta[I.expiresAt]?a.meta[I.expiresAt]:"")):"hot_wallet"===a.type?(aN(a.meta[G.address]||c?.walletAddress||""),aL(function(a){let b=(a||"").trim().toLowerCase();return"solana"===b||"solana-devnet"===b?"solana":"base"}(a.meta[G.chain]||c?.chain))):"ssh"===a.type?(bb(a.meta[J.publicKey]||""),bh(Array.isArray(a.meta[J.hosts])?a.meta[J.hosts].join("\n"):""),bj(a.meta[J.keyType]||"")):"gpg"===a.type&&(bl(a.meta[K.publicKey]||""),bp(a.meta[K.keyId]||""),br(a.meta[K.uidEmail]||""),bt(a.meta[K.expiresAt]||""));let d=v.Rn[b];if("custom"===b||"hot_wallet"!==b&&(d||[]).some(a=>a.sensitive))try{let a=await s.FH.post(s.jI.Wallet,`/credentials/${f}/read`),c=await (0,t.DC)(a.encrypted),d=JSON.parse(c),e={};(d.fields||[]).forEach(a=>{e[(0,v.Dw)(b,a.key)]=a.value}),bP(e),Object.entries(e).forEach(([a,c])=>{bZ(a,c,b)})}catch{}}catch(a){bz(a instanceof Error?a.message:"Failed to load credential")}},[f,bZ]),b0=(0,e.useCallback)(async()=>{if(!bY||!f)return{};if(bO)return bO;let a=await s.FH.post(s.jI.Wallet,`/credentials/${f}/read`),b=JSON.parse(await (0,t.DC)(a.encrypted)),c={};return(b.fields||[]).forEach(a=>{c[(0,v.Dw)(k,a.key)]=a.value}),bP(c),c},[bY,f,bO,k]),b1=(0,e.useCallback)(async a=>{if(bY){bN(a),bz(null);try{let b=await b0(),c=(0,v.Dw)(k,a);bZ(a,b[c]||b[a]||"",k)}catch(a){bz(a instanceof Error?a.message:"Decryption failed -- try re-unlocking")}finally{bN(null)}}},[b0,bY,bZ]),b2=(0,e.useCallback)(a=>{switch((0,v.Dw)(k,a)){case D.password:return ac;case H.value:return aQ;case v.u.custom.value:return aU;default:return"custom"===k?aU:""}},[aQ,aU,ac,k]),b3=(0,e.useCallback)(a=>!!bS[(0,v.Dw)(k,a)],[k,bS]),b4=(0,e.useCallback)(async a=>{let b=(0,v.Dw)(k,a);if(bS[b])return void bT(a=>({...a,[b]:!1}));bY&&!b2(a).trim()&&await b1(a),bT(a=>({...a,[b]:!0}))},[b2,b1,bY,k,bS]);(0,e.useEffect)(()=>{a&&(bY?x("form"):(x(h),i&&l(i),j?.type&&l(j.type),j?.agentId&&T(j.agentId),j?.tags&&j.tags.length>0&&X(j.tags),j?.name&&z(j.name),j?.noteContent&&aJ(j.noteContent)),bF(!1),bD(!1),bT({}),aj(bY?"keep":"replace"))},[a,bY,h,i,j]),(0,e.useEffect)(()=>{!a||bY||"oauth2"!==k||a8||a9(String(Math.floor(Date.now()/1e3)+3600))},[a,bY,k,a8]),(0,e.useEffect)(()=>{a&&(async()=>{try{let a=(await s.FH.get(s.jI.Wallet,"/credentials")).credentials||[],b=a.filter(a=>"login"===a.type),c=new Map;b.forEach(a=>{let b=String(a.meta.username||"").trim();if(!b)return;let d=Q(b),e=R(a.updatedAt,a.createdAt),f=c.get(d);if(!f)return void c.set(d,{raw:b,frequency:1,recent:e});f.frequency+=1,e>f.recent&&(f.recent=e,f.raw=b)});let d=Array.from(c.entries()).sort((a,b)=>b[1].recent!==a[1].recent?b[1].recent-a[1].recent:b[1].frequency!==a[1].frequency?b[1].frequency-a[1].frequency:a[0].localeCompare(b[0])).map(([,a])=>a.raw).slice(0,20),e=new Map;a.forEach(a=>{let b=R(a.updatedAt,a.createdAt);new Set((Array.isArray(a.meta.tags)?a.meta.tags:[]).map(a=>String(a).trim()).filter(Boolean)).forEach(a=>{let c=Q(a),d=e.get(c);if(!d)return void e.set(c,{frequency:1,recent:b});d.frequency+=1,b>d.recent&&(d.recent=b)})});let f=Array.from(e.entries()).sort((a,b)=>b[1].recent!==a[1].recent?b[1].recent-a[1].recent:b[1].frequency!==a[1].frequency?b[1].frequency-a[1].frequency:a[0].localeCompare(b[0])).map(([a])=>a).slice(0,30);bJ(d),bL(f)}catch{bJ([]),bL([])}})()},[a]),(0,e.useEffect)(()=>{a&&f&&(bP(null),bR({}),b_())},[a,f,b_]),(0,e.useEffect)(()=>{a||(z(""),T(""),V(!1),X([]),Z(""),_(""),ab(""),ad(""),af(""),ah(""),aj("keep"),al(!1),an(""),ap("visa"),ar(""),at(""),av(""),ax(""),az(""),aB(""),aD(""),aF(""),aH(""),aJ(""),aL("base"),aN(""),aP(""),aR(""),aT("value"),aV(""),aX(""),aZ(""),a_(""),a1(""),a3(""),a5(""),a7("client_secret_post"),a9(""),bb(""),bd(""),bf(""),bh(""),bj(""),bl(""),bn(""),bp(""),br(""),bt(""),bv(null),bz(null),bx(!1),bD(!1),bN(null),bP(null),bR({}),bT({}),bF(!1),bH(!1),bX("write"))},[a]),(0,e.useEffect)(()=>{"login"!==k&&bD(!1)},[k]);let b5=g.map(a=>({value:a.id,label:a.name||(a.isPrimary?"Primary":a.id.slice(0,8))})),b6=(0,e.useCallback)(()=>{bV.current?.click()},[]),b7=(0,e.useCallback)(a=>"function"==typeof a.text?a.text():new Promise((b,c)=>{let d=new FileReader;d.onerror=()=>c(Error("Failed to read markdown file")),d.onload=()=>b("string"==typeof d.result?d.result:""),d.readAsText(a)}),[]),b8=(0,e.useCallback)(async a=>{if(!a)return;bz(null);let b=a.name.toLowerCase();if(!(b.endsWith(".md")||b.endsWith(".markdown")))return void bz("Please choose a Markdown (.md) file.");try{let b=await b7(a);if(!b.trim())return void bz("The selected markdown file is empty.");aJ(b),bY&&"note"===k&&b$(v.l3)}catch(a){bz(a instanceof Error?a.message:"Failed to import markdown file")}},[bY,b$,b7,k]),b9=(0,e.useCallback)(a=>{b8(a.target.files?.[0]??null),a.currentTarget.value=""},[b8]),ca=bK.filter(a=>!W.includes(a)).filter(a=>!Y.trim()||a.toLowerCase().includes(Y.trim().toLowerCase())).slice(0,6),cb=(0,e.useMemo)(()=>aI.trim()?(0,u.Q)(aI.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")):"",[aI]),cc=(0,e.useCallback)(()=>{let a=C({type:k,apiKeyName:aO,username:aa,url:$,noteContent:aI,customFieldKey:aS,hotWalletChain:aK,cardholder:am,cardNumber:as,cardLast4:aq,ssoWebsite:aC,ssoProvider:aE,oauth2TokenEndpoint:aW,sshHostsInput:bg,gpgKeyId:bo,gpgUidEmail:bq});if(!y.trim()&&!a||"login"===k&&!bY&&!ac.trim()||"login"===k&&bY&&"replace"===ai&&!ag.trim()||"plain_note"===k&&!aI.trim()||"apikey"===k&&(!aO.trim()||!aQ.trim())||"custom"===k&&(!aS.trim()||!aU.trim())||"sso"===k&&(!aC.trim()||!aE.trim())||"ssh"===k&&!bc.trim()&&!bY||"gpg"===k&&!bm.trim()&&!bY)return!1;if("oauth2"===k){if(!aW.trim())return!1;let a=Number.parseInt(a8,10);if(!Number.isFinite(a)||a<=0||!bY&&(!a0.trim()||!a2.trim()||!aY.trim()||!a$.trim()))return!1}return!0},[aO,aQ,as,aq,am,aS,aU,bo,bm,bq,aK,bY,y,aI,a0,aY,a$,a8,a2,aW,ac,aE,aC,bg,bc,ai,ag,k,$,aa]),cd=async()=>{let a=C({type:k,apiKeyName:aO,username:aa,url:$,noteContent:aI,customFieldKey:aS,hotWalletChain:aK,cardholder:am,cardNumber:as,cardLast4:aq,ssoWebsite:aC,ssoProvider:aE,oauth2TokenEndpoint:aW,sshHostsInput:bg,gpgKeyId:bo,gpgUidEmail:bq});if("login"===k&&!bY&&!ac.trim())return void bz("Password is required for login");if("login"===k&&bY&&"replace"===ai&&!ag.trim())return void bz("TOTP replace requires a valid secret or setup link");if("plain_note"===k&&!aI.trim())return void bz("Content is required for plain note");if("apikey"===k&&(!aO.trim()||!aQ.trim()))return void bz("Key and value are required for API key");if("custom"===k&&(!aS.trim()||!aU.trim()))return void bz("Primary key and value are required for custom type");if("sso"===k&&!aC.trim())return void bz("Website is required for SSO login");if("sso"===k&&!aE.trim())return void bz("Provider is required for SSO login");if("ssh"===k&&!bc.trim()&&!bY)return void bz("SSH private key is required");if("gpg"===k&&!bm.trim()&&!bY)return void bz("GPG private key is required");if("oauth2"===k){if(!aW.trim())return void bz("OAuth2 requires a token endpoint. Add a valid token endpoint URL.");let a=Number.parseInt(a8,10);if(!Number.isFinite(a)||a<=0)return void bz("OAuth2 expiry is invalid. Enter a positive unix timestamp in seconds.");if(!bY){if(!a0.trim())return void bz("OAuth2 requires an access token.");if(!a2.trim())return void bz("OAuth2 requires a refresh token.");if(!aY.trim())return void bz("OAuth2 requires a client ID.");if(!a$.trim())return void bz("OAuth2 requires a client secret.")}}if(!y.trim()&&!a)return void bz("Name is required");bx(!0),bz(null);try{let a,d=(()=>{let a=as.replace(/\D/g,""),b=a.length>=4?a.slice(-4):aq.trim(),c=function(a){let{type:b,name:c,apiKeyName:d,username:e,url:f,noteContent:g,customFieldKey:h,hotWalletChain:i,cardNumber:j,cardBrand:k,cardLast4:l,ssoWebsite:m,ssoProvider:n,oauth2TokenEndpoint:o,sshHostsInput:p,gpgKeyId:q,gpgUidEmail:r}=a,s=(a=>{let b=a.trim().toLowerCase();return b&&"other"!==b&&b.replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"card"})(k||""),t=((a,b)=>{let c=a.replace(/\D/g,"");return c.length>=4?c.slice(-4):b.replace(/\D/g,"").slice(-4)})(j||"",l||""),u=t?`${s}_${t}`:s,v=(p||"").split(/\n|,/).map(a=>a.trim()).filter(Boolean),w=(a=>{let b=a.trim().toLowerCase();return b?b.charAt(0).toUpperCase()+b.slice(1):""})(n||""),x=(m||"").trim(),y=w&&x?`${w} (${x})`:x||(w?`${w} SSO`:"SSO Login"),z={plain_note:B(g),apikey:d.trim(),login:e.trim()||f.trim()||"Login",note:B(g),hot_wallet:i.trim()?`Hot Wallet (${i.trim().toUpperCase()})`:"Hot Wallet",custom:h.trim(),card:u,sso:y,oauth2:(o||"").trim()||"OAuth2",ssh:v[0]||"SSH Key",gpg:(q||"").trim()||(r||"").trim()||"GPG Key"};return"card"===b?z.card||"card":"note"===b||"plain_note"===b?z[b]||c.trim():c.trim()||z[b]||""}({type:k,name:y,apiKeyName:aO,username:aa,url:$,noteContent:aI,customFieldKey:aS,hotWalletChain:aK,cardholder:am,cardNumber:as,cardBrand:ao,cardLast4:b,ssoWebsite:aC,ssoProvider:aE,oauth2TokenEndpoint:aW,sshHostsInput:bg,gpgKeyId:bo,gpgUidEmail:bq}),d=aS.trim()||(0,v.VB)(k),e=[],f={tags:W,favorite:U};switch(k){case"login":$&&e.push({key:D.url,value:$,type:"text",sensitive:!1}),e.push({key:D.username,value:aa,type:"text",sensitive:!1}),e.push({key:D.password,value:ac,type:"secret",sensitive:!0}),(ae.trim()||bY&&bQ[D.notes])&&e.push({key:D.notes,value:ae,type:"text",sensitive:!0}),bY?("replace"===ai&&ag.trim()&&e.push({key:D.totp,value:ag.trim().replace(/\s+/g,"").toUpperCase(),type:"secret",sensitive:!0}),"remove"===ai&&e.push({key:D.totp,value:"",type:"secret",sensitive:!0})):ag.trim()&&e.push({key:D.totp,value:ag.trim().replace(/\s+/g,"").toUpperCase(),type:"secret",sensitive:!0}),f={...f,[D.url]:$,[D.username]:aa};break;case"card":e.push({key:E.cardholder,value:am,type:"text",sensitive:!1}),e.push({key:E.number,value:as,type:"text",sensitive:!0}),e.push({key:E.cvv,value:aw,type:"secret",sensitive:!0}),e.push({key:E.expiry,value:au,type:"text",sensitive:!0}),(aA.trim()||bY&&bQ[E.notes])&&e.push({key:E.notes,value:aA,type:"text",sensitive:!0}),f={...f,[E.brand]:ao,[E.cardholder]:am,[E.last4]:b,[E.billingZip]:ay};break;case"sso":e.push({key:F.website,value:aC.trim(),type:"text",sensitive:!1}),e.push({key:F.provider,value:aE.trim().toLowerCase(),type:"text",sensitive:!1}),e.push({key:F.identifier,value:aG.trim(),type:"text",sensitive:!1}),f={...f,[F.website]:aC.trim(),[F.provider]:aE.trim().toLowerCase(),[F.identifier]:aG.trim()};break;case"note":e.push({key:v.l3,value:aI,type:"text",sensitive:!0});break;case"hot_wallet":bY&&aM.trim()&&e.push({key:G.address,value:aM.trim(),type:"text",sensitive:!1}),f={...f,[G.chain]:aK,...aM.trim()?{[G.address]:aM.trim()}:{}};break;case"plain_note":e.push({key:v.l3,value:aI,type:"text",sensitive:!1}),f={...f,[v.l3]:aI};break;case"apikey":e.push({key:H.key,value:aO,type:"text",sensitive:!1}),e.push({key:H.value,value:aQ,type:"secret",sensitive:!0}),f={...f,[H.key]:aO};break;case"custom":e.push({key:d,value:aU,type:"secret",sensitive:!0}),f={...f,primaryKey:d};break;case"oauth2":{let a=Number.parseInt(a8,10);e.push({key:I.accessToken,value:a0,type:"secret",sensitive:!0}),e.push({key:I.refreshToken,value:a2,type:"secret",sensitive:!0}),e.push({key:I.clientId,value:aY,type:"secret",sensitive:!0}),e.push({key:I.clientSecret,value:a$,type:"secret",sensitive:!0}),f={...f,[I.tokenEndpoint]:aW,[I.scopes]:a4,[I.authMethod]:a6,[I.expiresAt]:Number.isFinite(a)?a:null};break}case"ssh":{let a=bg.split(/\n|,/).map(a=>a.trim()).filter(Boolean);e.push({key:J.privateKey,value:bc,type:"secret",sensitive:!0}),be.trim()&&e.push({key:J.passphrase,value:be,type:"secret",sensitive:!0}),ba.trim()&&e.push({key:J.publicKey,value:ba,type:"text",sensitive:!1}),f={...f,[J.publicKey]:ba,[J.hosts]:a,[J.keyType]:bi||void 0};break}case"gpg":e.push({key:K.privateKey,value:bm,type:"secret",sensitive:!0}),bk.trim()&&e.push({key:K.publicKey,value:bk,type:"text",sensitive:!1}),f={...f,[K.publicKey]:bk,[K.keyId]:bo,[K.uidEmail]:bq,[K.expiresAt]:bs||void 0}}return bu&&(f={...f,walletLink:bu}),{agentId:S,type:k,name:c,fields:e,meta:f}})();if(bY){let b=d.fields.filter(a=>!a.sensitive||!!bQ[a.key]);await s.FH.put(s.jI.Wallet,`/credentials/${f}`,{...d,fields:b}),a=f}else{let b=await s.FH.post(s.jI.Wallet,"/credentials",d);a=b?.credential?.id}await c(a),b()}catch(a){bz(a instanceof Error?a.message:"Failed to save credential")}finally{bx(!1)}};(0,e.useEffect)(()=>{if(!a||bY||"form"!==m)return;let b=a=>{"Enter"===a.key&&(a.metaKey||a.ctrlKey)&&!a.altKey&&!a.shiftKey&&!bw&&cc()&&(a.preventDefault(),a.stopPropagation(),cd())};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[cc,m,cd,bY,a,bw]);let ce="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)]",cf=L[k]?.label||"Credential",cg=(0,v.VB)(k),ch=(0,v.zo)(k),ci=ch?.label||"Primary Value",cj="form"===m?`Create ${cf}`:"Create";return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.aF,{isOpen:a,onClose:b,title:bY?"Edit Credential":cj,size:"lg",headerActionPosition:"left",headerAction:bY||"form"!==m?void 0:(0,d.jsx)("button",{type:"button","data-testid":"back-to-type-picker",onClick:()=>x("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,d.jsx)(n.A,{size:12})}),footer:(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)(r.$n,{variant:"secondary",size:"sm",onClick:b,children:"Cancel"}),bY||"type"!==m?(0,d.jsx)(r.$n,{variant:"primary",size:"sm",onClick:cd,loading:bw,children:"Save"}):null]}),children:bY||"type"!==m?(0,d.jsxs)("div",{"data-testid":"credential-form-layout",className:"space-y-4 gap-4",children:[(0,d.jsx)("input",{ref:bV,type:"file",accept:".md,.markdown,text/markdown",onChange:b9,className:"hidden","data-testid":"note-markdown-file-input"}),(0,d.jsx)("div",{className:"space-y-2",children:(0,d.jsx)("div",{className:"flex items-center justify-between px-1",children:(0,d.jsxs)("span",{className:"font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:["Type: ",cf]})})}),"login"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(r.ks,{label:"Username",value:aa,onChange:a=>ab(a.target.value),onFocus:()=>bH(!0),onBlur:()=>setTimeout(()=>bH(!1),50),placeholder:"user@example.com",list:"login-username-suggestions"}),bG&&bI.length>0&&(0,d.jsx)("datalist",{id:"login-username-suggestions",children:bI.map(a=>(0,d.jsx)("option",{value:a},a))}),(0,d.jsx)(r.ks,{label:"Website",value:$,onChange:a=>_(a.target.value),placeholder:"https://example.com"}),(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)(r.ks,{label:"Password",type:b3(D.password)?"text":"password",value:ac,onChange:a=>{ad(a.target.value),bY&&b$(D.password)},onFocus:()=>bD(!0),onClick:()=>bD(!0),onBlur:a=>{let b=a.relatedTarget;b&&bU.current?.contains(b)||bD(!1)},placeholder:bY?"••••••••":"",rightElement:(0,d.jsx)("button",{type:"button",onClick:()=>{b4(D.password)},"aria-label":b3(D.password)?"Hide Password":"Reveal Password",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:bM===D.password?(0,d.jsx)(o.A,{size:11,className:"animate-spin"}):(0,d.jsx)(p.A,{size:12})})}),bC&&(0,d.jsx)("div",{ref:bU,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,d.jsx)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onClick:()=>{bB(!0),bD(!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"})})]}),bE&&(0,d.jsxs)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1.5 px-1",children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Notes"}),bY&&(0,d.jsxs)("button",{type:"button",onClick:()=>{b1(D.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:[bM===D.notes?(0,d.jsx)(o.A,{size:9,className:"animate-spin"}):(0,d.jsx)(p.A,{size:9}),"Reveal"]})]}),(0,d.jsx)("textarea",{className:ce,value:ae,onChange:a=>{af(a.target.value),bY&&b$(D.notes)},placeholder:bY?"••••••••":""})]}),(0,d.jsx)(A,{isEdit:bY,hasExistingTotp:ak,onIntentChange:a=>{aj(a),bY&&"remove"===a&&b$(D.totp)},onSecretChange:(a,b)=>{ah(a),bY&&(b?(b$(D.totp),a.trim()&&aj("replace")):"remove"!==ai&&aj(ak?"keep":"replace"))}})]})]}),"card"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(r.ks,{label:"Cardholder",value:am,onChange:a=>an(a.target.value),placeholder:"John Doe"}),(0,d.jsx)(r.ks,{label:"Card Number",value:as,onChange:a=>{let b=a.target.value;at(b),ar(b.replace(/\D/g,"").slice(-4)),bY&&b$(E.number)},placeholder:bY?"••••••••":""}),(0,d.jsxs)("div",{className:"flex gap-3",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(r.ks,{label:"Expiry",value:au,onChange:a=>{av(a.target.value),bY&&b$(E.expiry)},placeholder:"MM/YY"})}),(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(r.ks,{label:"CVV",type:"password",value:aw,onChange:a=>{ax(a.target.value),bY&&b$(E.cvv)},placeholder:bY?"••••":""})})]}),bE&&(0,d.jsxs)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsx)(r.UM,{options:O,value:ao,onChange:ap,label:"Brand"}),(0,d.jsx)(r.ks,{label:"Billing ZIP",value:ay,onChange:a=>az(a.target.value),placeholder:"12345"})]})]}),"sso"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(r.ks,{label:"Website",value:aC,onChange:a=>aD(a.target.value),placeholder:"https://example.com"}),(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Provider"}),(0,d.jsx)("div",{"data-testid":"sso-provider-select",children:(0,d.jsx)(r.O6,{ariaLabel:"SSO Provider",options:P.map(a=>({value:a.value,label:a.label,description:`Sign in with ${a.label}`,icon:a.icon})),value:aE,onChange:a=>aF(String(a))})})]}),bE&&(0,d.jsx)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:(0,d.jsx)(r.ks,{label:"Identifier (email/phone/username)",value:aG,onChange:a=>aH(a.target.value),placeholder:"alice@example.com"})})]}),"note"===k&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1.5 px-1",children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Content"}),bY&&(0,d.jsxs)("button",{type:"button",onClick:()=>{b1(v.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:[bM===v.l3?(0,d.jsx)(o.A,{size:9,className:"animate-spin"}):(0,d.jsx)(p.A,{size:9}),"Reveal"]})]}),(0,d.jsx)("div",{className:"mb-2 px-1",children:(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2","data-testid":"note-editor-toolbar",children:[(0,d.jsxs)("div",{className:"inline-flex border border-[var(--color-border,#d4d4d8)]",children:[(0,d.jsx)("button",{type:"button","data-testid":"note-mode-write",onClick:()=>bX("write"),className:`px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ${"write"===bW?"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,d.jsx)("button",{type:"button","data-testid":"note-mode-preview",onClick:()=>bX("preview"),className:`px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ${"preview"===bW?"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,d.jsxs)("button",{type:"button",onClick:b6,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,d.jsx)(q.A,{size:9}),"Import .md"]})]})}),"preview"===bW?(0,d.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:cb?(0,d.jsx)("div",{className:"prose-mono max-w-none [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",dangerouslySetInnerHTML:{__html:cb}}):(0,d.jsx)("span",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Nothing to preview yet."})}):(0,d.jsx)("textarea",{className:ce.replace("h-24","h-48"),value:aI,onChange:a=>{aJ(a.target.value),bY&&b$(v.l3)},placeholder:bY?"••••••••":""})]}),"plain_note"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("p",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Plain Note stores readable content in metadata (not encrypted)."}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"flex items-center justify-between mb-1.5 px-1",children:(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Content"})}),(0,d.jsx)("div",{className:"mb-2",children:(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2","data-testid":"plain-note-editor-toolbar",children:[(0,d.jsxs)("div",{className:"inline-flex border border-[var(--color-border,#d4d4d8)]",children:[(0,d.jsx)("button",{type:"button","data-testid":"plain-note-mode-write",onClick:()=>bX("write"),className:`px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ${"write"===bW?"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,d.jsx)("button",{type:"button","data-testid":"plain-note-mode-preview",onClick:()=>bX("preview"),className:`px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ${"preview"===bW?"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,d.jsxs)("button",{type:"button",onClick:b6,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,d.jsx)(q.A,{size:9}),"Import .md"]})]})}),"preview"===bW?(0,d.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:cb?(0,d.jsx)("div",{className:"prose-mono max-w-none [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",dangerouslySetInnerHTML:{__html:cb}}):(0,d.jsx)("span",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Nothing to preview yet."})}):(0,d.jsx)("textarea",{className:ce.replace("h-24","h-48"),value:aI,onChange:a=>aJ(a.target.value),placeholder:""})]})]}),"hot_wallet"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.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,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Chain"}),(0,d.jsx)("div",{"data-testid":"hot-wallet-chain-select",children:(0,d.jsx)(r.O6,{ariaLabel:"Chain",options:[{value:"base",label:"Base / EVM",description:"EVM-compatible chains"},{value:"solana",label:"Solana",description:"Solana network wallets"}],value:aK,onChange:a=>aL(a)})})]}),bY&&(0,d.jsx)(r.ks,{label:"Address",value:aM,onChange:a=>aN(a.target.value),placeholder:"Generated wallet address"})]}),"apikey"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.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,d.jsx)(r.ks,{label:"Key",value:aO,onChange:a=>aP(a.target.value),placeholder:"Service key name"}),(0,d.jsx)(r.ks,{label:"Value",type:b3(H.value)?"text":"password",value:aQ,onChange:a=>{aR(a.target.value),bY&&b$(H.value)},placeholder:bY?"••••••••":"",rightElement:(0,d.jsx)("button",{type:"button",onClick:()=>{b4(H.value)},"aria-label":b3(H.value)?"Hide Value":"Reveal Value",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:bM===H.value?(0,d.jsx)(o.A,{size:11,className:"animate-spin"}):(0,d.jsx)(p.A,{size:12})})})]}),"custom"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("p",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:["Canonical primary key: ",cg]}),(0,d.jsx)(r.ks,{label:"Primary Key",value:aS,onChange:a=>aT(a.target.value),placeholder:"value"}),(0,d.jsx)(r.ks,{label:ci,type:b3(v.u.custom.value)?"text":"password",value:aU,onChange:a=>aV(a.target.value),placeholder:bY?"••••••••":"",rightElement:(0,d.jsx)("button",{type:"button",onClick:()=>{b4(v.u.custom.value)},"aria-label":b3(v.u.custom.value)?"Hide Value":"Reveal Value",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:bM===v.u.custom.value?(0,d.jsx)(o.A,{size:11,className:"animate-spin"}):(0,d.jsx)(p.A,{size:12})})})]}),"oauth2"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(r.ks,{label:"Token Endpoint",value:aW,onChange:a=>aX(a.target.value),placeholder:"https://accounts.google.com/o/oauth2/token"}),(0,d.jsx)(r.ks,{label:"Access Token",type:"password",value:a0,onChange:a=>{a1(a.target.value),bY&&b$(I.accessToken)},placeholder:bY?"••••••••":"Optional — will be fetched on first use"}),(0,d.jsx)(r.ks,{label:"Expires At (unix seconds)",type:"text",value:a8,onChange:a=>a9(a.target.value),placeholder:String(Math.floor(Date.now()/1e3)+3600)}),bE&&(0,d.jsxs)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsx)(r.ks,{label:"Client ID",value:aY,onChange:a=>{aZ(a.target.value),bY&&b$(I.clientId)},placeholder:"your-client-id"}),(0,d.jsx)(r.ks,{label:"Client Secret",type:"password",value:a$,onChange:a=>{a_(a.target.value),bY&&b$(I.clientSecret)},placeholder:bY?"••••••••":""}),(0,d.jsx)(r.ks,{label:"Refresh Token",type:"password",value:a2,onChange:a=>{a3(a.target.value),bY&&b$(I.refreshToken)},placeholder:bY?"••••••••":""}),(0,d.jsx)(r.ks,{label:"Scopes",value:a4,onChange:a=>a5(a.target.value),placeholder:"read write (space-separated)"}),(0,d.jsx)(r.UM,{options:[{value:"client_secret_post",label:"Client Secret (POST body)"},{value:"client_secret_basic",label:"Client Secret (Basic Auth)"}],value:a6,onChange:a7,label:"Auth Method"})]})]}),"ssh"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(r.ks,{label:"Public Key (optional)",value:ba,onChange:a=>bb(a.target.value),placeholder:"ssh-ed25519 AAAA..."}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Private Key"}),(0,d.jsx)("textarea",{className:ce.replace("h-24","h-40"),value:bc,onChange:a=>{bd(a.target.value),bY&&b$(J.privateKey)},placeholder:bY?"••••••••":"-----BEGIN OPENSSH PRIVATE KEY-----"})]}),(0,d.jsx)(r.ks,{label:"Passphrase (optional)",type:"password",value:be,onChange:a=>{bf(a.target.value),bY&&b$(J.passphrase)}}),(0,d.jsxs)("div",{children:[(0,d.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,d.jsx)("textarea",{className:ce,value:bg,onChange:a=>bh(a.target.value),placeholder:"github.com prod.example.com"})]})]}),"gpg"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Private Key (armored)"}),(0,d.jsx)("textarea",{className:ce.replace("h-24","h-40"),value:bm,onChange:a=>{bn(a.target.value),bY&&b$(K.privateKey)},placeholder:bY?"••••••••":"-----BEGIN PGP PRIVATE KEY BLOCK-----"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Public Key (optional)"}),(0,d.jsx)("textarea",{className:ce,value:bk,onChange:a=>bl(a.target.value),placeholder:"-----BEGIN PGP PUBLIC KEY BLOCK-----"})]}),(0,d.jsx)(r.ks,{label:"Key ID (optional)",value:bo,onChange:a=>bp(a.target.value)}),(0,d.jsx)(r.ks,{label:"UID Email (optional)",value:bq,onChange:a=>br(a.target.value)}),(0,d.jsx)(r.ks,{label:"Expires At (optional)",value:bs,onChange:a=>bt(a.target.value),placeholder:"2027-01-01"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>bF(a=>!a),className:"font-mono text-[9px] uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] text-left",children:bE?"Hide Advanced":"Show Advanced"}),bE&&(0,d.jsxs)("div",{className:"space-y-4 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[!bY&&b5.length>0&&(0,d.jsx)(r.UM,{options:b5,value:S,onChange:T,label:"Agent"}),(0,d.jsxs)("div",{children:[(0,d.jsx)(r.ks,{label:"Tags",value:Y,onChange:a=>Z(a.target.value),onKeyDown:a=>{if("Enter"===a.key){a.preventDefault();let b=Y.trim();b&&!W.includes(b)&&X([...W,b]),Z("")}},placeholder:"Add tag and press Enter"}),ca.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap gap-1 mt-1",children:ca.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>{W.includes(a)||X([...W,a]),Z("")},className:"font-mono text-[9px] px-2 py-0.5 border border-[var(--color-border,#d4d4d8)] hover:border-[var(--color-border-focus,#0a0a0a)]",children:["+ ",a]},a))}),W.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap gap-1 mt-2",children:W.map(a=>(0,d.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:[a,(0,d.jsx)("button",{type:"button",onClick:()=>{X(W.filter(b=>b!==a))},className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] ml-0.5",children:"x"})]},a))})]}),(0,d.jsx)(r.lM,{size:"sm",checked:U,onChange:V,label:"Favorite"})]}),by&&(0,d.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:by})]}):(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{"data-testid":"featured-types-section",className:"space-y-2",children:[(0,d.jsx)("p",{className:"font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Common"}),(0,d.jsx)(r.O6,{ariaLabel:"Common types",options:M.map(a=>{let b=L[a].icon;return{value:a,label:L[a].label,description:L[a].description,icon:(0,d.jsx)(b,{size:16}),quickActionLabel:`Quick create ${L[a].label}`,onQuickAction:()=>{l(a),bz(null),x("form")}}}),value:k,onChange:a=>{l(a),bz(null),x("form")}})]}),(0,d.jsxs)("div",{"data-testid":"other-types-section",className:"space-y-2",children:[(0,d.jsx)("p",{className:"font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Other Types"}),(0,d.jsx)(r.O6,{ariaLabel:"Other types",options:N.map(a=>{let b=L[a].icon;return{value:a,label:L[a].label,description:L[a].description,icon:(0,d.jsx)(b,{size:16}),quickActionLabel:`Quick create ${L[a].label}`,onQuickAction:()=>{l(a),bz(null),x("form")}}}),value:k,onChange:a=>{l(a),bz(null),x("form")}})]})]})}),(0,d.jsx)(w.p,{isOpen:bA,onClose:()=>bB(!1),onUse:a=>{ad(a),bY&&b$(D.password),bB(!1)}})]})}},97053:(a,b,c)=>{c.d(b,{Z:()=>E});var d=c(21124),e=c(38301),f=c(96503),g=c(46267),h=c(46422),i=c(68324),j=c(16945),k=c(71117),l=c(22842),m=c(47089),n=c(15303),o=c(82042),p=c(85351),q=c(71613),r=c(51536);function s(a){if(!a.metadata)return{};try{return JSON.parse(a.metadata)}catch{return{}}}function t(a){if(a.humanSummary?.oneLiner)return a.humanSummary.oneLiner;let b=s(a);if(b.summary)return b.summary;if(b.verifiedSummary?.oneLiner)return b.verifiedSummary.oneLiner;let c=b.agentId||"agent",d=a.type.replace(/_/g," ");return a.amount?`${c} requesting ${a.amount} ETH`:`${c} — ${d}`}function u(a){let b=s(a);return(b.verifiedSummary?.discrepancies?.length??0)>0}function v(a,b){let c=a.verifiedSummary?.permissionLabels?.length??a.permissions?.length??0,d=a.verifiedSummary?.discrepancies?.length??0,e=(b?.can.length??0)+(b?.scope.length??0)+(b?.cannot.length??0);return!!(a.summary||c>0||d>0||e>0)}function w(a){switch(a){case"agent_access":return(0,d.jsx)(f.A,{size:10});case"fund":return(0,d.jsx)(g.A,{size:10});case"send":default:return(0,d.jsx)(h.A,{size:10});case"action":return(0,d.jsx)(i.A,{size:10})}}function x(a){switch(a){case"agent_access":return"ACCESS";case"fund":return"FUND";case"send":return"SEND";case"action":return"ACTION";default:return a.toUpperCase().replace(/_/g," ")}}function y(a,b){var c;let d="one_shot_read"===(c=b.approvalScope)||"session_token"===c?c:null;return d||("DENY_EXCLUDED_FIELD"===b.escalationReason||"number"==typeof b.credentialAccess?.maxReads&&1===b.credentialAccess.maxReads?"one_shot_read":"auth"===a.type||"agent_access"===a.type||"action"===a.type?"session_token":null)}function z(a){return"one_shot_read"===a?"temp":""}function A(){return{background:"var(--color-surface, #ffffff)",color:"var(--color-text, #0a0a0a)",border:"1px solid var(--color-border, #d4d4d8)"}}function B({icon:a,label:b,children:c,muted:e}){return(0,d.jsxs)("div",{className:"flex gap-2 py-1.5",style:{opacity:e?.7:1},children:[(0,d.jsx)("div",{className:"shrink-0 mt-0.5",style:{color:"var(--color-text-muted, #6b7280)"},children:a}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"font-mono text-[8px] font-bold tracking-[0.15em] uppercase mb-1",style:{color:"var(--color-text-faint, #9ca3af)"},children:b}),(0,d.jsx)("div",{className:"font-mono text-[10px]",style:{color:"var(--color-text, #0a0a0a)",fontStyle:e?"italic":void 0},children:c})]})]})}function C({meta:a,readable:b}){let c=a.verifiedSummary,e=(c?.discrepancies?.length??0)>0,f=c?.permissionLabels?.length?c.permissionLabels:a.permissions||[];return(0,d.jsxs)("div",{className:"px-4 py-3",style:{background:"var(--color-background-alt, #f4f4f5)",borderTop:"1px solid var(--color-border, #e5e5e5)"},children:[e&&c?.discrepancies&&(0,d.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,d.jsx)(j.A,{size:12,className:"shrink-0 mt-0.5",style:{color:"var(--color-warning, #f59e0b)"}}),(0,d.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text, #0a0a0a)"},children:c.discrepancies.map((a,b)=>(0,d.jsxs)("div",{className:"mb-1 last:mb-0",children:[(0,d.jsx)("span",{className:"font-bold uppercase text-[8px] mr-1",style:{color:"critical"===a.severity?"var(--color-danger, #ef4444)":"warning"===a.severity?"var(--color-warning, #f59e0b)":"var(--color-text-muted, #6b7280)"},children:a.severity}),a.field,": agent says “",a.agentClaim,"”, actual: ",a.actual]},b))})]}),a.summary&&(0,d.jsxs)(B,{icon:(0,d.jsx)(k.A,{size:10}),label:"AGENT SAYS",muted:!0,children:["“",a.summary,"”"]}),(a.profile||b?.profileLabel)&&(0,d.jsxs)(B,{icon:(0,d.jsx)(i.A,{size:10}),label:"PROFILE",children:[(0,d.jsx)("span",{className:"font-bold",children:a.profile?.displayName||b?.profileLabel}),a.profile?.rationale&&(0,d.jsxs)("span",{className:"ml-1",style:{color:"var(--color-text-muted, #6b7280)"},children:["— ",a.profile.rationale]})]}),f.length>0&&(0,d.jsx)(B,{icon:(0,d.jsx)(l.A,{size:10}),label:"PERMISSIONS",children:(0,d.jsx)("div",{className:"flex flex-wrap gap-1",children:f.map((a,b)=>(0,d.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:a},b))})}),b&&(0,d.jsxs)(d.Fragment,{children:[b.can.length>0&&(0,d.jsx)(B,{icon:(0,d.jsx)(i.A,{size:10}),label:"CAN",children:b.can.join(", ")}),b.cannot.length>0&&(0,d.jsx)(B,{icon:(0,d.jsx)(m.A,{size:10}),label:"CANNOT",children:b.cannot.join("; ")}),b.scope.length>0&&(0,d.jsx)(B,{icon:(0,d.jsx)(k.A,{size:10}),label:"SCOPE",children:b.scope.join(", ")}),(0,d.jsxs)(B,{icon:(0,d.jsx)(n.A,{size:10}),label:"EXPIRY / RISK",children:[b.expiresIn," \xb7 ",b.riskHint]})]})]})}function D({request:a,resolveAction:b,actionLoading:c,showBorder:f,bulkLocked:g=!1}){let[h,i]=(0,e.useState)(!1),[j,l]=(0,e.useState)(!1),B=c===`resolve-${a.id}`||c===`approve-${a.id}`,D=c===`reject-${a.id}`,E=B||D||g,F=s(a),G=y(a,F),H=u(a),I=H?"var(--color-warning, #f59e0b)":"var(--color-danger, #ef4444)";return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3",style:{borderBottom:f&&!h?"1px solid var(--color-border, #e5e5e5)":void 0,borderLeft:`3px solid ${I}`,background:"var(--color-surface, #ffffff)"},children:[(0,d.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(a.type),(0,d.jsx)("span",{className:"font-mono text-[8px] font-bold tracking-wider uppercase",children:x(a.type)})]}),"one_shot_read"===G&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 font-mono text-[8px] font-bold tracking-[0.12em] shrink-0",style:A(),children:z(G)}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"font-mono text-[10px] truncate flex items-center gap-1.5",style:{color:"var(--color-text, #0a0a0a)"},children:[t(a),H&&(0,d.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,d.jsxs)("div",{className:"font-mono text-[8px] mt-0.5 flex items-center gap-1",style:{color:"var(--color-text-faint, #9ca3af)"},children:[(0,d.jsx)(n.A,{size:7}),function(a){let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);return c<24?`${c}h ago`:`${Math.floor(c/24)}d ago`}(a.createdAt)]})]}),v(F,a.humanSummary)&&(0,d.jsxs)("button",{onClick:()=>i(!h),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,d.jsx)(k.A,{size:10}),h?(0,d.jsx)(o.A,{size:10}):(0,d.jsx)(p.A,{size:10})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[(0,d.jsx)(r.$n,{variant:"primary",size:"sm",onClick:()=>b(a.id,!0),disabled:E,loading:B,icon:B?void 0:(0,d.jsx)(q.A,{size:10}),className:"h-7 px-2",children:"APPROVE"}),(0,d.jsx)(r.$n,{variant:"danger",size:"sm",onClick:()=>b(a.id,!1),disabled:E,loading:D,icon:D?void 0:(0,d.jsx)(m.A,{size:10}),className:"h-7 px-2",children:"REJECT"})]})]}),(0,d.jsx)("div",{style:{display:"grid",gridTemplateRows:h?"1fr":"0fr",transition:"grid-template-rows 150ms ease",borderLeft:`3px solid ${I}`,borderBottom:f&&h?"1px solid var(--color-border, #e5e5e5)":void 0},children:(0,d.jsx)("div",{style:{overflow:"hidden"},children:h&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(C,{meta:F,readable:a.humanSummary}),(0,d.jsxs)("div",{className:"px-4 pb-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsx)("button",{onClick:()=>l(a=>!a),className:"font-mono text-[9px] underline text-[var(--color-text-muted,#6b7280)]",children:j?"Hide raw details":"Show raw details"}),j&&(0,d.jsx)("pre",{className:"mt-2 p-2 text-[9px] overflow-x-auto border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)]",children:a.rawPayload||a.metadata||"{}"})]})]})})})]})}let E=({requests:a,resolveAction:b,actionLoading:c})=>{let[f,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1),[j,l]=(0,e.useState)(!1),[n,B]=(0,e.useState)(!1),[E,F]=(0,e.useState)(!1),[G,H]=(0,e.useState)(null),I=a.filter(a=>"pending"===a.status&&"notify"!==a.type),J=(0,e.useRef)(null);if((0,e.useEffect)(()=>{if(!f)return;let a=a=>{J.current&&!J.current.contains(a.target)&&g(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[f]),(0,e.useEffect)(()=>{I.length<=1&&g(!1)},[I.length]),(0,e.useEffect)(()=>{0===I.length&&H(null)},[I.length]),0===I.length)return null;let K=I[0],L=s(K),M=y(K,L),N=c===`resolve-${K.id}`||c===`approve-${K.id}`,O=c===`reject-${K.id}`,P=N||O||n||E,Q=u(K),R=Q?"var(--color-warning, #f59e0b)":"var(--color-danger, #ef4444)",S=async a=>{if(n||E)return;let c=I.map(a=>a.id);if(0===c.length)return;let d=a?"APPROVE ALL":"REJECT ALL";H(null),a?B(!0):F(!0),g(!1);let e=[];for(let d of c)try{let c=await b(d,a),f=function(a){return a&&"object"==typeof a?!1!==a.success?null:"string"==typeof a.message&&a.message.trim().length>0?a.message.trim():"string"==typeof a.error&&a.error.trim().length>0?a.error.trim():"request failed":null}(c);f&&e.push({id:d,message:f})}catch(a){e.push({id:d,message:a instanceof Error?a.message:"request failed"})}if(e.length>0){let a=e.slice(0,3).map(a=>`${a.id} (${a.message})`).join(", "),b=e.length>3?` +${e.length-3} more`:"";H(`${d} completed with ${e.length} failed: ${a}${b}`)}a?B(!1):F(!1)},T=async()=>S(!0),U=async()=>S(!1);return(0,d.jsxs)("div",{className:"relative z-30",ref:J,children:[f&&I.length>1&&(0,d.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,d.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,d.jsxs)("span",{className:"font-mono text-[8px] font-bold tracking-[0.2em] uppercase",style:{color:"var(--color-text-faint, #9ca3af)"},children:["QUEUED ACTIONS (",I.length-1,")"]})}),I.slice(1).map((a,e)=>(0,d.jsx)(D,{request:a,resolveAction:b,actionLoading:c,showBorder:e<I.length-2,bulkLocked:n||E},a.id))]}),(0,d.jsxs)("div",{style:{background:"var(--color-surface, #ffffff)",borderTop:"1px solid var(--color-border, #e5e5e5)",borderBottom:"1px solid var(--color-border, #e5e5e5)"},children:[(0,d.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 ${R}`},children:[(0,d.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:I.length}),(0,d.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,d.jsx)("div",{className:"w-px h-6 shrink-0 hidden sm:block",style:{background:"var(--color-border, #e5e5e5)"}}),(0,d.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(K.type),(0,d.jsx)("span",{className:"font-mono text-[8px] font-bold tracking-[0.15em] uppercase",children:x(K.type)})]}),"one_shot_read"===M&&(0,d.jsx)("span",{className:"hidden sm:inline px-1.5 py-0.5 font-mono text-[8px] font-bold tracking-[0.12em] shrink-0",style:A(),children:z(M)}),(0,d.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:[t(K),Q&&(0,d.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"})]}),v(L,K.humanSummary)&&(0,d.jsxs)("button",{onClick:()=>i(!h),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,d.jsx)(k.A,{size:10}),h?(0,d.jsx)(o.A,{size:10}):(0,d.jsx)(p.A,{size:10})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[I.length>1&&(0,d.jsx)(r.$n,{variant:"secondary",size:"sm",onClick:()=>void T(),disabled:P,loading:n,icon:n?void 0:(0,d.jsx)(q.A,{size:10}),className:"h-7 px-2",children:"APPROVE ALL"}),I.length>1&&(0,d.jsx)(r.$n,{variant:"danger",size:"sm",onClick:()=>void U(),disabled:P,loading:E,icon:E?void 0:(0,d.jsx)(m.A,{size:10}),className:"h-7 px-2",children:"REJECT ALL"}),(0,d.jsx)(r.$n,{variant:"primary",size:"sm",onClick:()=>b(K.id,!0),disabled:P,loading:N,icon:N?void 0:(0,d.jsx)(q.A,{size:10}),className:"h-7 px-2",children:"APPROVE"}),(0,d.jsx)(r.$n,{variant:"danger",size:"sm",onClick:()=>b(K.id,!1),disabled:P,loading:O,icon:O?void 0:(0,d.jsx)(m.A,{size:10}),className:"h-7 px-2",children:"REJECT"})]}),I.length>1&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"w-px h-6 shrink-0",style:{background:"var(--color-border, #e5e5e5)"}}),(0,d.jsxs)("button",{onClick:()=>g(!f),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,d.jsxs)("span",{className:"font-mono text-[8px] font-bold tracking-[0.15em] uppercase",children:["+",I.length-1," MORE"]}),f?(0,d.jsx)(p.A,{size:12}):(0,d.jsx)(o.A,{size:12})]})]})]}),G&&(0,d.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:G}),(0,d.jsx)("div",{style:{display:"grid",gridTemplateRows:h?"1fr":"0fr",transition:"grid-template-rows 150ms ease",borderLeft:`3px solid ${R}`},children:(0,d.jsx)("div",{style:{overflow:"hidden"},children:h&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(C,{meta:L,readable:K.humanSummary}),(0,d.jsxs)("div",{className:"px-4 pb-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsx)("button",{onClick:()=>l(a=>!a),className:"font-mono text-[9px] underline text-[var(--color-text-muted,#6b7280)]",children:j?"Hide raw details":"Show raw details"}),j&&(0,d.jsx)("pre",{className:"mt-2 p-2 text-[9px] overflow-x-auto border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)]",children:K.rawPayload||K.metadata||"{}"})]})]})})})]})]})}}};