auramaxx 0.0.11 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +240 -223
  3. package/.next/app-path-routes-manifest.json +8 -7
  4. package/.next/build-manifest.json +14 -14
  5. package/.next/prerender-manifest.json +53 -29
  6. package/.next/react-loadable-manifest.json +41 -41
  7. package/.next/routes-manifest.json +6 -0
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_not-found.html +1 -1
  10. package/.next/server/app/_not-found.rsc +12 -12
  11. package/.next/server/app/api/[...doc]/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/agent-requests/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/apps/install/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/apps/manifests/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/apps/static/[...path]/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/docs/plain/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/events/route.js +1 -19
  18. package/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/import-from-openclaw/[channel]/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/import-from-openclaw/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/import-from-openclaw/validate/[channel]/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/restart/route.js +1 -1
  24. package/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/update/route.js +63 -1
  26. package/.next/server/app/api/update/route.js.nft.json +1 -1
  27. package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/version/route.js +1 -1
  29. package/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/workspace/[id]/apps/[wid]/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/workspace/[id]/apps/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/workspace/[id]/export/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/workspace/[id]/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/workspace/config/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/workspace/import/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/workspace/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/app-legacy-do-not-use/page.js +1 -1
  38. package/.next/server/app/app-legacy-do-not-use/page.js.nft.json +1 -1
  39. package/.next/server/app/app-legacy-do-not-use/page_client-reference-manifest.js +1 -1
  40. package/.next/server/app/app-legacy-do-not-use.html +1 -1
  41. package/.next/server/app/app-legacy-do-not-use.rsc +14 -14
  42. package/.next/server/app/approve/[actionId]/page.js +1 -1
  43. package/.next/server/app/approve/[actionId]/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/docs/[...doc]/page_client-reference-manifest.js +1 -1
  45. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/health/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/health.html +1 -1
  48. package/.next/server/app/health.rsc +13 -13
  49. package/.next/server/app/hello/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/hello.html +1 -1
  51. package/.next/server/app/hello.rsc +14 -14
  52. package/.next/server/app/index.html +1 -1
  53. package/.next/server/app/index.rsc +18 -21
  54. package/.next/server/app/page.js +3 -3
  55. package/.next/server/app/page.js.nft.json +1 -1
  56. package/.next/server/app/page_client-reference-manifest.js +1 -1
  57. package/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/privacy.html +1 -1
  59. package/.next/server/app/privacy.rsc +13 -13
  60. package/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  62. package/.next/server/app/terms.html +1 -1
  63. package/.next/server/app/terms.rsc +13 -13
  64. package/.next/server/app/yo/page.js +2 -0
  65. package/.next/server/app/yo/page.js.nft.json +1 -0
  66. package/.next/server/app/yo/page_client-reference-manifest.js +1 -0
  67. package/.next/server/app/yo.html +1 -0
  68. package/.next/server/app/yo.meta +7 -0
  69. package/.next/server/app/yo.rsc +23 -0
  70. package/.next/server/app-paths-manifest.json +8 -7
  71. package/.next/server/chunks/2145.js +1 -1
  72. package/.next/server/chunks/2460.js +1 -1
  73. package/.next/server/chunks/5246.js +1 -1
  74. package/.next/server/chunks/5678.js +1 -1
  75. package/.next/server/chunks/5784.js +1 -1
  76. package/.next/server/chunks/6086.js +2 -20
  77. package/.next/server/chunks/{5553.js → 6415.js} +2 -2
  78. package/.next/server/chunks/7935.js +2 -2
  79. package/.next/server/functions-config-manifest.json +1 -1
  80. package/.next/server/instrumentation.js +1 -1
  81. package/.next/server/middleware-build-manifest.js +1 -1
  82. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  83. package/.next/server/pages/404.html +1 -1
  84. package/.next/server/pages/500.html +1 -1
  85. package/.next/server/server-reference-manifest.json +1 -1
  86. package/.next/server/webpack-runtime.js +1 -1
  87. package/.next/static/WshFGr6RxGYP6AbWuT9OG/_buildManifest.js +1 -0
  88. package/.next/static/chunks/1168.aaac1edbb597fe5a.js +1 -0
  89. package/.next/static/chunks/1255-7999eac54f80a49f.js +1 -0
  90. package/.next/static/chunks/142-fa9752f53a551f63.js +1 -0
  91. package/.next/static/chunks/2505.d54ccadc42f4e3d1.js +1 -0
  92. package/.next/static/chunks/2619-04bc32f026a0d946.js +1 -0
  93. package/.next/static/chunks/2927.7e00cc878d9a3f52.js +1 -0
  94. package/.next/static/chunks/3573-1b41d7b8a000d015.js +1 -0
  95. package/.next/static/chunks/3609.ded5a5306e18af9c.js +1 -0
  96. package/.next/static/chunks/3667-1db7bd03948e60df.js +1 -0
  97. package/.next/static/chunks/3826.a73d4a88d8c09030.js +1 -0
  98. package/.next/static/chunks/{3a91511d-648a2ba3dad7df0c.js → 3a91511d-ba215c0b5dc21ba9.js} +1 -1
  99. package/.next/static/chunks/4256.48407d9abad5ea33.js +1 -0
  100. package/.next/static/chunks/4685-7f53bbfc4a9845eb.js +1 -0
  101. package/.next/static/chunks/4901-ba6a32818662e70a.js +1 -0
  102. package/.next/static/chunks/4919-7e7cdd5efc9f2110.js +1 -0
  103. package/.next/static/chunks/4bd1b696-100b9d70ed4e49c1.js +1 -0
  104. package/.next/static/chunks/5336-233ec7ab3807267c.js +1 -0
  105. package/.next/static/chunks/5442-b5bb869e832e8967.js +1 -0
  106. package/.next/static/chunks/6233-97a810aa272af547.js +1 -0
  107. package/.next/static/chunks/626.a5109d16f9eca1f6.js +1 -0
  108. package/.next/static/chunks/6872-faea0f088ab2d450.js +1 -0
  109. package/.next/static/chunks/7338-3ce17a93614f1d77.js +59 -0
  110. package/.next/static/chunks/7394-4bdb1feefad1a74a.js +1 -0
  111. package/.next/static/chunks/7616-1129bcb3eee8d315.js +1 -0
  112. package/.next/static/chunks/786-26deffb41572cbb3.js +1 -0
  113. package/.next/static/chunks/8273-8e92d34180669ca9.js +1 -0
  114. package/.next/static/chunks/8357.5dee1e0c4e5bb091.js +1 -0
  115. package/.next/static/chunks/9062-2bc2d089f9c9c6ba.js +1 -0
  116. package/.next/static/chunks/9380.f198afbf0c6b5369.js +1 -0
  117. package/.next/static/chunks/app/_not-found/page-5a8c6a29f762fa58.js +1 -0
  118. package/.next/static/chunks/app/api/[...doc]/page-f0852f35f0fd1d44.js +1 -0
  119. package/.next/static/chunks/app/api/agent-requests/route-cf84f975aad4c719.js +1 -0
  120. package/.next/static/chunks/app/api/apps/install/route-cf84f975aad4c719.js +1 -0
  121. package/.next/static/chunks/app/api/apps/manifests/route-cf84f975aad4c719.js +1 -0
  122. package/.next/static/chunks/app/api/apps/static/[...path]/route-cf84f975aad4c719.js +1 -0
  123. package/.next/static/chunks/app/api/docs/plain/route-cf84f975aad4c719.js +1 -0
  124. package/.next/static/chunks/app/api/events/route-cf84f975aad4c719.js +1 -0
  125. package/.next/static/chunks/app/api/import-from-openclaw/[channel]/route-cf84f975aad4c719.js +1 -0
  126. package/.next/static/chunks/app/api/import-from-openclaw/route-cf84f975aad4c719.js +1 -0
  127. package/.next/static/chunks/app/api/import-from-openclaw/validate/[channel]/route-cf84f975aad4c719.js +1 -0
  128. package/.next/static/chunks/app/api/page-cc59bebcc0d2c01d.js +1 -0
  129. package/.next/static/chunks/app/api/restart/route-cf84f975aad4c719.js +1 -0
  130. package/.next/static/chunks/app/api/update/route-cf84f975aad4c719.js +1 -0
  131. package/.next/static/chunks/app/api/version/route-cf84f975aad4c719.js +1 -0
  132. package/.next/static/chunks/app/api/workspace/[id]/apps/[wid]/route-cf84f975aad4c719.js +1 -0
  133. package/.next/static/chunks/app/api/workspace/[id]/apps/route-cf84f975aad4c719.js +1 -0
  134. package/.next/static/chunks/app/api/workspace/[id]/export/route-cf84f975aad4c719.js +1 -0
  135. package/.next/static/chunks/app/api/workspace/[id]/route-cf84f975aad4c719.js +1 -0
  136. package/.next/static/chunks/app/api/workspace/config/route-cf84f975aad4c719.js +1 -0
  137. package/.next/static/chunks/app/api/workspace/import/route-cf84f975aad4c719.js +1 -0
  138. package/.next/static/chunks/app/api/workspace/route-cf84f975aad4c719.js +1 -0
  139. package/.next/static/chunks/app/app-legacy-do-not-use/page-e5dc864e92d90ca7.js +1 -0
  140. package/.next/static/chunks/app/approve/[actionId]/page-2acca1f490424f21.js +1 -0
  141. package/.next/static/chunks/app/docs/[...doc]/page-8e2a2d036caab242.js +1 -0
  142. package/.next/static/chunks/app/docs/page-acf872a03ff79893.js +1 -0
  143. package/.next/static/chunks/app/error-66f983b7769dabfa.js +1 -0
  144. package/.next/static/chunks/app/health/page-c9185854ed9c86d0.js +1 -0
  145. package/.next/static/chunks/app/hello/page-74c9f4deaa4b03dd.js +1 -0
  146. package/.next/static/chunks/app/layout-af8d9969c7aeb758.js +1 -0
  147. package/.next/static/chunks/app/page-16dfcd1c7cc88bcc.js +1 -0
  148. package/.next/static/chunks/app/privacy/page-8e2d17079355c2cc.js +1 -0
  149. package/.next/static/chunks/app/share/[token]/page-5dd9b0418eee411f.js +1 -0
  150. package/.next/static/chunks/app/terms/page-8e2d17079355c2cc.js +1 -0
  151. package/.next/static/chunks/app/yo/layout-cf84f975aad4c719.js +1 -0
  152. package/.next/static/chunks/app/yo/page-719dc5f213fdfb30.js +1 -0
  153. package/.next/static/chunks/framework-a32a2a465584c0bc.js +1 -0
  154. package/.next/static/chunks/main-0f0f9142f74e7215.js +1 -0
  155. package/.next/static/chunks/main-app-24f0c92ba10af457.js +1 -0
  156. package/.next/static/chunks/pages/_app-4b3fb5e477a0267f.js +1 -0
  157. package/.next/static/chunks/pages/_error-c970d8b55ace1b48.js +1 -0
  158. package/.next/static/chunks/{webpack-768de8b7d6a7a27a.js → webpack-79ad58260e9b10b4.js} +1 -1
  159. package/.next/static/css/83cd401584ab787f.css +3 -0
  160. package/.next/trace +28 -28
  161. package/.next/types/app/yo/layout.ts +84 -0
  162. package/.next/types/app/yo/page.ts +84 -0
  163. package/.next/types/routes.d.ts +4 -2
  164. package/.next/types/validator.ts +18 -0
  165. package/bin/auramaxx.js +11 -26
  166. package/docs/ARCHITECTURE.md +1 -1
  167. package/docs/AUTH.md +6 -3
  168. package/docs/CLI.md +2 -0
  169. package/docs/MCP.md +2 -0
  170. package/docs/TROUBLESHOOTING.md +24 -0
  171. package/docs/credentials.md +2 -0
  172. package/package.json +2 -1
  173. package/prisma/migrations/20260227214000_update_agent_action_ttl_defaults/migration.sql +19 -0
  174. package/public/0a167e5e-4f52-4715-ae23-bf63d259a6b1.png +0 -0
  175. package/public/141ec92c-6780-4b23-838f-9a7bf1e91bb8.png +0 -0
  176. package/public/3afc4935-92cb-42af-9624-0b1341c12a5e.png +0 -0
  177. package/public/43947df5-dbcf-4e49-ab8b-41b9162c0410.png +0 -0
  178. package/public/5aeae9ce-0d38-49ea-8fd1-167892a04a85.png +0 -0
  179. package/public/660e4ea3-a3a6-4be4-a8ca-2cb74c51dfb5.png +0 -0
  180. package/public/733f02d7-6b58-4ba6-a5c8-d062cd205e1d.png +0 -0
  181. package/public/a32d65cb-95b0-4977-be6b-cf69f515afbe.png +0 -0
  182. package/public/agent1.png +0 -0
  183. package/public/agent10.png +0 -0
  184. package/public/agent2.png +0 -0
  185. package/public/agent3.png +0 -0
  186. package/public/agent4.png +0 -0
  187. package/public/agent5.png +0 -0
  188. package/public/agent6.png +0 -0
  189. package/public/agent7.png +0 -0
  190. package/public/agent8.png +0 -0
  191. package/public/agent9.png +0 -0
  192. package/public/c4938305-b811-4ccc-91db-94d309734827.png +0 -0
  193. package/public/f2ca6825-a4f3-4107-815c-51ee740dfc09.png +0 -0
  194. package/public/llm.txt +2 -0
  195. package/public/llms.txt +39 -0
  196. package/public/ss-dark1.png +0 -0
  197. package/public/ss-dark1.webp +0 -0
  198. package/public/ss-dark2.png +0 -0
  199. package/public/ss-dark2.webp +0 -0
  200. package/public/ss-dark3.png +0 -0
  201. package/public/ss-dark3.webp +0 -0
  202. package/public/ss-light1.png +0 -0
  203. package/public/ss-light1.webp +0 -0
  204. package/public/ss-light2.png +0 -0
  205. package/public/ss-light2.webp +0 -0
  206. package/public/ss-light3.png +0 -0
  207. package/public/ss-light3.webp +0 -0
  208. package/shared/agent-profile-schema.ts +81 -0
  209. package/shared/credential-field-schema.ts +12 -0
  210. package/skills/auramaxx/SKILL.md +71 -691
  211. package/src/app/UnlockPageClient.tsx +1939 -0
  212. package/src/app/api/page.tsx +8 -9
  213. package/src/app/api/restart/route.ts +2 -18
  214. package/src/app/api/update/route.ts +104 -51
  215. package/src/app/approve/[actionId]/page.tsx +4 -1
  216. package/src/app/docs/DocsPageContent.tsx +3 -3
  217. package/src/app/globals.css +94 -0
  218. package/src/app/layout.tsx +1 -0
  219. package/src/app/page.tsx +25 -1935
  220. package/src/app/yo/layout.tsx +29 -0
  221. package/src/app/yo/page.tsx +528 -0
  222. package/src/components/HumanActionBar.tsx +34 -8
  223. package/src/components/agent/AgentSidebar.tsx +3 -1
  224. package/src/components/agent/CredentialAgent.tsx +5 -1
  225. package/src/components/agent/CredentialDetail.tsx +32 -1
  226. package/src/components/agent/CredentialForm.tsx +94 -7
  227. package/src/components/agent/CredentialRow.tsx +8 -1
  228. package/src/components/agent/credentialFormName.ts +22 -1
  229. package/src/components/agent/types.ts +2 -2
  230. package/src/components/design-system/Modal.tsx +14 -1
  231. package/src/hooks/useUpdateChecker.ts +17 -1
  232. package/src/lib/pino.ts +77 -8
  233. package/src/server/cli/commands/actions.ts +1 -1
  234. package/src/server/cli/commands/agent.ts +110 -65
  235. package/src/server/cli/commands/approve.ts +1 -1
  236. package/src/server/cli/commands/auth.ts +81 -20
  237. package/src/server/cli/commands/start.ts +42 -3
  238. package/src/server/cli/commands/token.ts +2 -2
  239. package/src/server/cli/lib/escalation.ts +109 -24
  240. package/src/server/cli/lib/process.ts +54 -1
  241. package/src/server/cli/socket.ts +1 -1
  242. package/src/server/index.ts +2 -0
  243. package/src/server/lib/agent-profile-records.ts +72 -0
  244. package/src/server/lib/credential-transport.ts +27 -11
  245. package/src/server/lib/defaults.ts +3 -3
  246. package/src/server/lib/escalation-responder.ts +1 -1
  247. package/src/server/lib/resolve-action.ts +2 -2
  248. package/src/server/lib/update-check.ts +1 -1
  249. package/src/server/mcp/server.ts +6 -1
  250. package/src/server/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  251. package/src/server/routes/actions.ts +2 -2
  252. package/src/server/routes/agent-profiles.ts +82 -0
  253. package/src/server/routes/auth.ts +39 -4
  254. package/src/server/routes/credentials.ts +18 -0
  255. package/src/server/tests/cli/agent-auth.test.ts +20 -39
  256. package/src/server/tests/cli/agent.test.ts +18 -0
  257. package/src/server/tests/cli/auth-action-flag.test.ts +3 -2
  258. package/src/server/tests/cli/bin-entrypoint.test.ts +35 -11
  259. package/src/server/tests/cli/escalation.test.ts +7 -3
  260. package/src/server/tests/cli/process.test.ts +3 -3
  261. package/src/server/tests/cli/socket.test.ts +2 -2
  262. package/src/server/tests/cli/start-run.test.ts +24 -1
  263. package/src/server/tests/endpoints/actions.test.ts +2 -2
  264. package/src/server/tests/endpoints/agent-profiles.test.ts +117 -0
  265. package/src/server/tests/endpoints/auth.test.ts +34 -0
  266. package/src/server/tests/lib/credential-transport.test.ts +68 -2
  267. package/src/server/tests/lib/defaults.test.ts +2 -2
  268. package/src/server/tests/lib/escalation-responder.test.ts +2 -2
  269. package/src/server/tests/lib/update-check.test.ts +1 -1
  270. package/src/server/tests/setup.ts +7 -0
  271. package/src/server/tsconfig.tsbuildinfo +1 -1
  272. package/src/server/types.ts +1 -1
  273. package/.next/static/AcaCjQ4akovHBUnVGPpfN/_buildManifest.js +0 -1
  274. package/.next/static/chunks/1168.63dbb444a33b1867.js +0 -1
  275. package/.next/static/chunks/1255-e8718b02724690dd.js +0 -1
  276. package/.next/static/chunks/142-aeaf7ffa9c53516d.js +0 -1
  277. package/.next/static/chunks/2505.22aaa333fd65908f.js +0 -1
  278. package/.next/static/chunks/2619-3c9e02e22d10480a.js +0 -1
  279. package/.next/static/chunks/2927.e7e9e2a1b8d2dc61.js +0 -1
  280. package/.next/static/chunks/3573-27e17f4ff2dd86ed.js +0 -1
  281. package/.next/static/chunks/3609.6f8e0ecd6de9566c.js +0 -1
  282. package/.next/static/chunks/3667-d6770121629db38b.js +0 -1
  283. package/.next/static/chunks/3826.7dfe96467cd74e45.js +0 -1
  284. package/.next/static/chunks/4256.50cb375c979ffd5a.js +0 -1
  285. package/.next/static/chunks/4685-3f8d92f574366fec.js +0 -1
  286. package/.next/static/chunks/4901-54c1ac380b7b43bb.js +0 -1
  287. package/.next/static/chunks/4919-fe6f1553abfc9420.js +0 -1
  288. package/.next/static/chunks/4bd1b696-f785427dddbba9fb.js +0 -1
  289. package/.next/static/chunks/5336-bd251f91235f7c11.js +0 -1
  290. package/.next/static/chunks/5442-be197c885bf12079.js +0 -1
  291. package/.next/static/chunks/5553-c8b86fe3513fce04.js +0 -59
  292. package/.next/static/chunks/6233-44e6fe57a552a816.js +0 -1
  293. package/.next/static/chunks/626.2583673a0386a81b.js +0 -1
  294. package/.next/static/chunks/6872-6442f2f5cce36ce5.js +0 -1
  295. package/.next/static/chunks/7411-3ca797c21b722ccd.js +0 -1
  296. package/.next/static/chunks/7616-b8bd37ce1f735d6f.js +0 -1
  297. package/.next/static/chunks/786-9ed39f96091b2be4.js +0 -1
  298. package/.next/static/chunks/8273-922091226ba84a94.js +0 -1
  299. package/.next/static/chunks/8357.6159472717ff7d11.js +0 -1
  300. package/.next/static/chunks/9062-3eb1607c96486f88.js +0 -1
  301. package/.next/static/chunks/9380.93f361baab2eefdf.js +0 -1
  302. package/.next/static/chunks/app/_not-found/page-c3b87025baf0a9c2.js +0 -1
  303. package/.next/static/chunks/app/api/[...doc]/page-790c4b33ba1fde4a.js +0 -1
  304. package/.next/static/chunks/app/api/agent-requests/route-e83b12cbab2e8707.js +0 -1
  305. package/.next/static/chunks/app/api/apps/install/route-e83b12cbab2e8707.js +0 -1
  306. package/.next/static/chunks/app/api/apps/manifests/route-e83b12cbab2e8707.js +0 -1
  307. package/.next/static/chunks/app/api/apps/static/[...path]/route-e83b12cbab2e8707.js +0 -1
  308. package/.next/static/chunks/app/api/docs/plain/route-e83b12cbab2e8707.js +0 -1
  309. package/.next/static/chunks/app/api/events/route-e83b12cbab2e8707.js +0 -1
  310. package/.next/static/chunks/app/api/import-from-openclaw/[channel]/route-e83b12cbab2e8707.js +0 -1
  311. package/.next/static/chunks/app/api/import-from-openclaw/route-e83b12cbab2e8707.js +0 -1
  312. package/.next/static/chunks/app/api/import-from-openclaw/validate/[channel]/route-e83b12cbab2e8707.js +0 -1
  313. package/.next/static/chunks/app/api/page-b53f9aa17a4c5201.js +0 -1
  314. package/.next/static/chunks/app/api/restart/route-e83b12cbab2e8707.js +0 -1
  315. package/.next/static/chunks/app/api/update/route-e83b12cbab2e8707.js +0 -1
  316. package/.next/static/chunks/app/api/version/route-e83b12cbab2e8707.js +0 -1
  317. package/.next/static/chunks/app/api/workspace/[id]/apps/[wid]/route-e83b12cbab2e8707.js +0 -1
  318. package/.next/static/chunks/app/api/workspace/[id]/apps/route-e83b12cbab2e8707.js +0 -1
  319. package/.next/static/chunks/app/api/workspace/[id]/export/route-e83b12cbab2e8707.js +0 -1
  320. package/.next/static/chunks/app/api/workspace/[id]/route-e83b12cbab2e8707.js +0 -1
  321. package/.next/static/chunks/app/api/workspace/config/route-e83b12cbab2e8707.js +0 -1
  322. package/.next/static/chunks/app/api/workspace/import/route-e83b12cbab2e8707.js +0 -1
  323. package/.next/static/chunks/app/api/workspace/route-e83b12cbab2e8707.js +0 -1
  324. package/.next/static/chunks/app/app-legacy-do-not-use/page-0052191daef60036.js +0 -1
  325. package/.next/static/chunks/app/approve/[actionId]/page-45cd3b8fa062d5e5.js +0 -1
  326. package/.next/static/chunks/app/docs/[...doc]/page-632ac406200b66fe.js +0 -1
  327. package/.next/static/chunks/app/docs/page-b7556394709b43df.js +0 -1
  328. package/.next/static/chunks/app/error-3d6057da512253d8.js +0 -1
  329. package/.next/static/chunks/app/health/page-80c985cd72328b74.js +0 -1
  330. package/.next/static/chunks/app/hello/page-fd71babcd192729b.js +0 -1
  331. package/.next/static/chunks/app/layout-285c6ef3f16bae63.js +0 -1
  332. package/.next/static/chunks/app/page-85017185df14c37b.js +0 -1
  333. package/.next/static/chunks/app/privacy/page-faf36cd0dde6dfa3.js +0 -1
  334. package/.next/static/chunks/app/share/[token]/page-22d51d6c5a47bb75.js +0 -1
  335. package/.next/static/chunks/app/terms/page-faf36cd0dde6dfa3.js +0 -1
  336. package/.next/static/chunks/framework-e60c938074ff7136.js +0 -1
  337. package/.next/static/chunks/main-447abf206d7ebd2f.js +0 -1
  338. package/.next/static/chunks/main-app-f63b86bdbf5b7b88.js +0 -1
  339. package/.next/static/chunks/pages/_app-6c8c2371b16a04b8.js +0 -1
  340. package/.next/static/chunks/pages/_error-94812ad32cad7365.js +0 -1
  341. package/.next/static/css/eb25c6452113486f.css +0 -3
  342. /package/.next/static/{AcaCjQ4akovHBUnVGPpfN → WshFGr6RxGYP6AbWuT9OG}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2619],{2296:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DecodeError:function(){return h},MiddlewareNotFoundError:function(){return b},MissingStaticPage:function(){return m},NormalizeError:function(){return y},PageNotFoundError:function(){return g},SP:function(){return p},ST:function(){return d},WEB_VITALS:function(){return r},execOnce:function(){return n},getDisplayName:function(){return l},getLocationOrigin:function(){return a},getURL:function(){return i},isAbsoluteUrl:function(){return u},isResSent:function(){return f},loadGetInitialProps:function(){return s},normalizeRepeatedSlashes:function(){return c},stringifyError:function(){return P}});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function n(e){let t,r=!1;return function(){for(var n=arguments.length,o=Array(n),u=0;u<n;u++)o[u]=arguments[u];return r||(r=!0,t=e(...o)),t}}let o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>o.test(e);function a(){let{protocol:e,hostname:t,port:r}=window.location;return e+"//"+t+(r?":"+r:"")}function i(){let{href:e}=window.location,t=a();return e.substring(t.length)}function l(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function c(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function s(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await s(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error('"'+l(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let p="undefined"!=typeof performance,d=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class h extends Error{}class y extends Error{}class g extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class m extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class b extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function P(e){return JSON.stringify({message:e.message,stack:e.stack})}},2619:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return g},useLinkStatus:function(){return b}});let n=r(9417),o=r(5155),u=n._(r(2115)),a=r(7670),i=r(6752),l=r(3011),f=r(2296),c=r(6058);r(4781);let s=r(3499),p=r(8607),d=r(1807);r(7045);let h=r(6048);function y(e){return"string"==typeof e?e:(0,a.formatUrl)(e)}function g(e){var t;let r,n,a,[g,b]=(0,u.useOptimistic)(s.IDLE_LINK_STATUS),P=(0,u.useRef)(null),{href:_,as:v,children:E,prefetch:O=null,passHref:j,replace:S,shallow:C,scroll:N,onClick:T,onMouseEnter:x,onTouchStart:A,legacyBehavior:M=!1,onNavigate:R,ref:L,unstable_dynamicOnHover:k,...I}=e;r=E,M&&("string"==typeof r||"number"==typeof r)&&(r=(0,o.jsx)("a",{children:r}));let U=u.default.useContext(i.AppRouterContext),w=!1!==O,F=!1!==O?null===(t=O)||"auto"===t?h.FetchStrategy.PPR:h.FetchStrategy.Full:h.FetchStrategy.PPR,{href:D,as:K}=u.default.useMemo(()=>{let e=y(_);return{href:e,as:v?y(v):e}},[_,v]);M&&(n=u.default.Children.only(r));let B=M?n&&"object"==typeof n&&n.ref:L,z=u.default.useCallback(e=>(null!==U&&(P.current=(0,s.mountLinkInstance)(e,D,U,F,w,b)),()=>{P.current&&((0,s.unmountLinkForCurrentNavigation)(P.current),P.current=null),(0,s.unmountPrefetchableInstance)(e)}),[w,D,U,F,b]),Q={ref:(0,l.useMergedRef)(z,B),onClick(e){M||"function"!=typeof T||T(e),M&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(e),U&&(e.defaultPrevented||function(e,t,r,n,o,a,i){let{nodeName:l}=e.currentTarget;if(!("A"===l.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||e.currentTarget.hasAttribute("download"))){if(!(0,p.isLocalURL)(t)){o&&(e.preventDefault(),location.replace(t));return}if(e.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}u.default.startTransition(()=>{(0,d.dispatchNavigateAction)(r||t,o?"replace":"push",null==a||a,n.current)})}}(e,D,K,P,S,N,R))},onMouseEnter(e){M||"function"!=typeof x||x(e),M&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),U&&w&&(0,s.onNavigationIntent)(e.currentTarget,!0===k)},onTouchStart:function(e){M||"function"!=typeof A||A(e),M&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),U&&w&&(0,s.onNavigationIntent)(e.currentTarget,!0===k)}};return(0,f.isAbsoluteUrl)(K)?Q.href=K:M&&!j&&("a"!==n.type||"href"in n.props)||(Q.href=(0,c.addBasePath)(K)),a=M?u.default.cloneElement(n,Q):(0,o.jsx)("a",{...I,...Q,children:r}),(0,o.jsx)(m.Provider,{value:g,children:a})}let m=(0,u.createContext)(s.IDLE_LINK_STATUS),b=()=>(0,u.useContext)(m);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3011:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=r(2115);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=u(e,n)),t&&(o.current=u(t,n))},[e,t])}function u(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3078:(e,t)=>{function r(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function n(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[r,o]of Object.entries(e))if(Array.isArray(o))for(let e of o)t.append(r,n(e));else t.set(r,n(o));return t}function u(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];for(let t of r){for(let r of t.keys())e.delete(r);for(let[r,n]of t.entries())e.append(r,n)}return e}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{assign:function(){return u},searchParamsToUrlQuery:function(){return r},urlQueryToSearchParams:function(){return o}})},7045:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},7670:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{formatUrl:function(){return u},formatWithValidation:function(){return i},urlObjectKeys:function(){return a}});let n=r(9417)._(r(3078)),o=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:r}=e,u=e.protocol||"",a=e.pathname||"",i=e.hash||"",l=e.query||"",f=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?f=t+e.host:r&&(f=t+(~r.indexOf(":")?"["+r+"]":r),e.port&&(f+=":"+e.port)),l&&"object"==typeof l&&(l=String(n.urlQueryToSearchParams(l)));let c=e.search||l&&"?"+l||"";return u&&!u.endsWith(":")&&(u+=":"),e.slashes||(!u||o.test(u))&&!1!==f?(f="//"+(f||""),a&&"/"!==a[0]&&(a="/"+a)):f||(f=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),""+u+f+(a=a.replace(/[?#]/g,encodeURIComponent))+(c=c.replace("#","%23"))+i}let a=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function i(e){return u(e)}},8607:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isLocalURL",{enumerable:!0,get:function(){return u}});let n=r(2296),o=r(2929);function u(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2927],{1360:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(1847).A)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]])},2927:(e,t,a)=>{a.r(t),a.d(t,{SetupWizardApp:()=>A,default:()=>I});var l=a(5155),s=a(2115),r=a(5917),o=a(4033),c=a(7937),n=a(5299),i=a(8192);let d=(0,a(1847).A)("FlaskConical",[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]);var x=a(1360),p=a(5229),u=a(5867),m=a(9068),v=a(7586),h=a(5880),y=a(3667),f=a(960);let g={"claude-cli":null,"claude-api":"anthropic","codex-cli":null,"openai-api":"openai"},j={anthropic:"Anthropic",openai:"OpenAI"},b={anthropic:"sk-ant-...",openai:"sk-..."},k={"claude-cli":"Make sure the `claude` CLI is installed and you're logged in (`claude login`).","codex-cli":"Make sure the `codex` CLI is installed and you're authenticated."};function N(e){let{number:t,title:a,subtitle:s,icon:n,done:i,expanded:d,onToggle:x,children:p,doneContent:u}=e;return(0,l.jsxs)("div",{style:{border:"1px solid var(--color-border)",background:"var(--color-surface)"},children:[(0,l.jsxs)("button",{onClick:x,className:"w-full flex items-center gap-3 p-3 text-left",children:[(0,l.jsx)("div",{className:"w-6 h-6 flex items-center justify-center flex-shrink-0",style:{background:i?"var(--color-success)":"var(--color-background-alt)",border:i?"none":"1px solid var(--color-border)"},children:i?(0,l.jsx)(r.A,{size:12,style:{color:"white"}}):(0,l.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text-muted)"},children:t})}),(0,l.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{style:{color:i?"var(--color-success)":"var(--color-text)"},children:n}),(0,l.jsx)("span",{className:"font-mono text-[11px] font-bold",style:{color:i?"var(--color-success)":"var(--color-text)"},children:a})]}),(0,l.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted)"},children:s})]}),d?(0,l.jsx)(o.A,{size:14,style:{color:"var(--color-text-muted)"}}):(0,l.jsx)(c.A,{size:14,style:{color:"var(--color-text-muted)"}})]}),d&&(0,l.jsx)("div",{className:"px-3 pb-3 border-t",style:{borderColor:"var(--color-border)"},children:i?u:p})]})}let A=()=>{let[e,t]=(0,s.useState)(null),[a,o]=(0,s.useState)(!0),[c,A]=(0,s.useState)(null),[I,C]=(0,s.useState)(!1),[w,S]=(0,s.useState)(null),[z,F]=(0,s.useState)(!0),[T,E]=(0,s.useState)("claude-cli"),[H,P]=(0,s.useState)(""),[W,M]=(0,s.useState)(!1),[D,V]=(0,s.useState)(""),[L,R]=(0,s.useState)(!1),[$,O]=(0,s.useState)(null),[_,q]=(0,s.useState)(!1),[U,K]=(0,s.useState)("admin"),[Y,B]=(0,s.useState)(!1),[G,X]=(0,s.useState)(""),[J,Q]=(0,s.useState)(!1),[Z,ee]=(0,s.useState)(""),[et,ea]=(0,s.useState)(""),[el,es]=(0,s.useState)(""),[er,eo]=(0,s.useState)(""),[ec,en]=(0,s.useState)(!0),[ei,ed]=(0,s.useState)("token"),[ex,ep]=(0,s.useState)(!1),[eu,em]=(0,s.useState)(""),[ev,eh]=(0,s.useState)(""),[,ey]=(0,s.useState)(""),[ef,eg]=(0,s.useState)(""),ej=(0,s.useRef)(null),[eb,ek]=(0,s.useState)(null),[eN,eA]=(0,s.useState)(!1),[eI,eC]=(0,s.useState)(null),[ew,eS]=(0,s.useState)(!1),[ez,eF]=(0,s.useState)(!1),[eT,eE]=(0,s.useState)("provider"),[eH,eP]=(0,s.useState)(!1),eW=(0,s.useCallback)(async()=>{try{let e=await f.FH.get(f.jI.Wallet,"/ai/status");return S(e),E(e.activeProvider),e}catch(e){return null}finally{F(!1)}},[]),eM=(0,s.useCallback)(e=>{if(!e)return!1;let t=e.providers.find(t=>t.mode===e.activeProvider);return!!(null==t?void 0:t.available)},[]),eD=(0,s.useCallback)(async()=>{try{let e=await f.FH.get(f.jI.Wallet,"/setup");return t(e),e}catch(e){return null}},[]),eV=(0,s.useCallback)((e,t,a)=>{eM(e)||(null!=a?a:eH)?(null==t?void 0:t.apiKeys.alchemy)?(null==t?void 0:t.adapters.telegram)?A(null):A(3):A(2):A(1)},[eM,eH]);(0,s.useEffect)(()=>{(async()=>{try{let[e,t]=await Promise.all([eD(),eW(),f.FH.get(f.jI.Wallet,"/defaults").then(e=>{let t=(e.permissions||[]).find(e=>"permissions.agent_tier"===e.key);t&&K(t.value)}).catch(()=>{})]),a=(null==e?void 0:e.address)||"unknown",l="true"===localStorage.getItem("agentPaired:".concat(a));eP(l),l&&eE("agent"),eV(t,e,l)}finally{o(!1)}})()},[eD,eW,eV]);let eL=async e=>{K(e),B(!0);try{await f.FH.patch(f.jI.Wallet,"/defaults/".concat(encodeURIComponent("permissions.agent_tier")),{value:e})}catch(t){K("admin"===e?"restricted":"admin")}finally{B(!1)}},eR=async()=>{let t=g[T];if(t){V(""),M(!0);try{let a=await f.FH.post(f.jI.Wallet,"/apikeys/validate",{service:t,key:H.trim()});if(!a.valid)return void V(a.error||"Invalid key");await f.FH.post(f.jI.Wallet,"/apikeys",{service:t,name:"default",key:H.trim()}),P(""),await f.FH.patch(f.jI.Wallet,"/defaults/".concat(encodeURIComponent("ai.provider")),{value:T}),ek(null);let l=await eW();eV(l,e)}catch(e){V(e instanceof Error?e.message:"Failed to validate")}finally{M(!1)}}},e$=async()=>{V(""),R(!0),O(null);try{let t=await f.FH.get(f.jI.Wallet,"/ai/status");S(t);let a=t.providers.find(e=>e.mode===T);(null==a?void 0:a.available)?(O("success"),q(!0),await f.FH.patch(f.jI.Wallet,"/defaults/".concat(encodeURIComponent("ai.provider")),{value:T}),ek(null),eV(t,e),q(!1)):(O("fail"),V((null==a?void 0:a.reason)||"Provider not available"))}catch(e){O("fail"),V(e instanceof Error?e.message:"Test failed")}finally{R(!1)}},eO=async()=>{ee(""),Q(!0);try{let e=await f.FH.post(f.jI.Wallet,"/apikeys/validate",{service:"alchemy",key:G});if(!e.valid)return void ee(e.error||"Invalid key");await f.FH.post(f.jI.Wallet,"/apikeys",{service:"alchemy",name:"default",key:G}),X(""),ek(null);let t=await eD();eV(w,t)}catch(e){ee(e instanceof Error?e.message:"Failed to validate")}finally{Q(!1)}},e_=async()=>{em(""),ep(!0);try{var e;let t=await f.FH.post(f.jI.Wallet,"/apikeys/validate",{service:"adapter:telegram",key:et});if(!t.valid)return void em(t.error||"Invalid bot token");es((null==(e=t.info)?void 0:e.botUsername)||"");let a=await f.FH.post(f.jI.Wallet,"/adapters/telegram/setup-link",{botToken:et});if(!a.success){em(a.error||"Failed to generate setup link"),ed("chatId");return}eh(a.link),ey(a.setupToken),es(a.botUsername),ed("detecting"),eq(a.setupToken)}catch(e){em(e instanceof Error?e.message:"Failed to validate")}finally{ep(!1)}},eq=async e=>{let t=new AbortController;ej.current=t;for(let a=0;a<3;a++){if(t.signal.aborted)return;try{let a=await f.FH.post(f.jI.Wallet,"/adapters/telegram/detect-chat",{setupToken:e});if(t.signal.aborted)return;if(a.chatId){eo(a.chatId);let e=a.username?"@".concat(a.username):a.firstName||"";eg(e),ed("testing");try{await f.FH.post(f.jI.Wallet,"/apikeys",{service:"adapter:telegram",name:"botToken",key:et}),await f.FH.post(f.jI.Wallet,"/adapters",{type:"telegram",enabled:!0,config:{chatId:a.chatId},chat:{enabled:!0}}),await f.FH.post(f.jI.Wallet,"/adapters/restart");try{await f.FH.post(f.jI.Wallet,"/adapters/test",{type:"telegram"})}catch(e){}ed("done"),ea(""),ek(null);let e=await eD();eV(w,e)}catch(e){ed("chatId")}return}}catch(e){if(t.signal.aborted)return;break}}t.signal.aborted||(ed("chatId"),em("Auto-detection timed out. Enter your chat ID manually."))};(0,s.useEffect)(()=>()=>{var e;null==(e=ej.current)||e.abort()},[]);let eU=async()=>{em(""),ep(!0),ed("testing");try{await f.FH.post(f.jI.Wallet,"/apikeys",{service:"adapter:telegram",name:"botToken",key:et}),await f.FH.post(f.jI.Wallet,"/adapters",{type:"telegram",enabled:!0,config:{chatId:er},...ec?{chat:{enabled:!0}}:{}}),await f.FH.post(f.jI.Wallet,"/adapters/restart");let e=await f.FH.post(f.jI.Wallet,"/adapters/test",{type:"telegram"});if(!e.success){em(e.error||"Test message failed"),ed("chatId");return}ed("done"),ea(""),eo(""),ek(null);let t=await eD();eV(w,t)}catch(e){em(e instanceof Error?e.message:"Activation failed"),ed("chatId")}finally{ep(!1)}},eK=async e=>{let{apiKeys:t}=await f.FH.get(f.jI.Wallet,"/apikeys"),a=t.find(t=>t.service===e);a&&await f.FH.delete(f.jI.Wallet,"/apikeys/".concat(a.id))},eY=async()=>{eS(!0);try{await eK("alchemy"),ek(2);let e=await eD();eV(w,e)}finally{eS(!1)}},eB=async()=>{eF(!0);try{var e;null==(e=ej.current)||e.abort(),await f.FH.delete(f.jI.Wallet,"/adapters/telegram"),await eK("adapter:telegram"),await f.FH.post(f.jI.Wallet,"/adapters/restart"),ea(""),es(""),eo(""),en(!1),eh(""),ey(""),eg(""),ed("token"),em(""),ek(3);let t=await eD();eV(w,t)}finally{eF(!1)}},eG=()=>{let t=(null==e?void 0:e.address)||"unknown";localStorage.setItem("setupWizardDismissed:".concat(t),"true"),C(!0)};if(I)return(0,l.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,l.jsx)("div",{className:"font-mono text-[10px]",style:{color:"var(--color-text-muted)"},children:"Dismissed. Close this app with the X button above."})});if(a)return(0,l.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,l.jsx)(n.A,{size:20,className:"animate-spin",style:{color:"var(--color-text-muted)"}})});let eX=eM(w),eJ=(eX||eH)&&(null==e?void 0:e.apiKeys.alchemy)&&(null==e?void 0:e.adapters.telegram),eQ=null==w?void 0:w.providers.find(e=>e.mode===T),eZ=null==w?void 0:w.providers.find(e=>e.mode===w.activeProvider),e0=g[T],e1=null===e0;return(0,l.jsxs)("div",{className:"space-y-1 p-1",children:[(0,l.jsx)("div",{className:"text-center mb-3",children:(0,l.jsx)("div",{className:"font-mono text-[10px] tracking-widest",style:{color:"var(--color-text-muted)"},children:eJ?"SETUP COMPLETE":"FINISH YOUR SETUP"})}),eJ&&(0,l.jsxs)("div",{className:"text-center py-4 space-y-3",children:[(0,l.jsx)("div",{className:"w-10 h-10 mx-auto flex items-center justify-center",style:{background:"var(--color-success)",color:"white"},children:(0,l.jsx)(r.A,{size:20})}),(0,l.jsx)("div",{className:"font-mono text-xs",style:{color:"var(--color-text)"},children:"All set! Your wallet is fully configured."})]}),(0,l.jsx)(N,{number:1,title:"AI Agent",subtitle:"Connect an AI provider or pair with an agent",icon:(0,l.jsx)(i.A,{size:14}),done:(eX||eH)&&1!==eb,expanded:1===c,onToggle:()=>A(1===c?null:1),doneContent:(0,l.jsxs)("div",{className:"space-y-2 pt-2",children:[eX&&!eH&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)"},children:[(0,l.jsx)(r.A,{size:12,style:{color:"var(--color-success)"}}),(0,l.jsxs)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-success)"},children:[(null==eZ?void 0:eZ.label)||(null==w?void 0:w.activeProvider)||"AI provider"," configured"]})]}),"success"===eI&&(0,l.jsxs)("div",{className:"flex items-center gap-2 p-1.5",style:{border:"1px solid var(--color-success)",color:"var(--color-success)"},children:[(0,l.jsx)(r.A,{size:10}),(0,l.jsx)("span",{className:"font-mono text-[9px]",children:"Provider available"})]}),"fail"===eI&&(0,l.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-warning)"},children:"Provider not available"}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:async()=>{eA(!0),eC(null);try{let e=await f.FH.get(f.jI.Wallet,"/ai/status");S(e);let t=e.providers.find(t=>t.mode===e.activeProvider);eC((null==t?void 0:t.available)?"success":"fail")}catch(e){eC("fail")}finally{eA(!1)}},disabled:eN,loading:eN,icon:(0,l.jsx)(d,{size:10}),children:"TEST"}),(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:()=>{P(""),V(""),O(null),eC(null),ek(1)},icon:(0,l.jsx)(x.A,{size:10}),children:"CHANGE"})]})]}),eH&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)"},children:[(0,l.jsx)(r.A,{size:12,style:{color:"var(--color-success)"}}),(0,l.jsx)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-success)"},children:"Agent paired externally"})]}),(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:()=>{let t=(null==e?void 0:e.address)||"unknown";localStorage.removeItem("agentPaired:".concat(t)),eP(!1),ek(1)},icon:(0,l.jsx)(x.A,{size:10}),children:"CHANGE"})]})]}),children:(0,l.jsxs)("div",{className:"space-y-3 pt-2",children:[(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsxs)("button",{onClick:()=>eE("provider"),className:"flex-1 p-1.5 font-mono text-[9px] text-left",style:{border:"provider"===eT?"1px solid var(--color-accent, #ccff00)":"1px solid var(--color-border)",background:"provider"===eT?"var(--color-background-alt)":"transparent",color:"provider"===eT?"var(--color-text)":"var(--color-text-muted)"},children:[(0,l.jsx)("div",{className:"font-bold",children:"AI Provider"}),(0,l.jsx)("div",{className:"text-[8px]",style:{color:"var(--color-text-muted)"},children:"Claude Max, API keys"})]}),(0,l.jsxs)("button",{onClick:()=>eE("agent"),className:"flex-1 p-1.5 font-mono text-[9px] text-left",style:{border:"agent"===eT?"1px solid var(--color-accent, #ccff00)":"1px solid var(--color-border)",background:"agent"===eT?"var(--color-background-alt)":"transparent",color:"agent"===eT?"var(--color-text)":"var(--color-text-muted)"},children:[(0,l.jsx)("div",{className:"font-bold",children:"Pair with Agent"}),(0,l.jsx)("div",{className:"text-[8px]",style:{color:"var(--color-text-muted)"},children:"MCP, skill, CLI, API"})]})]}),"provider"===eT&&(0,l.jsx)(l.Fragment,{children:z?(0,l.jsx)("div",{className:"py-3 flex items-center justify-center",children:(0,l.jsx)(n.A,{size:14,className:"animate-spin",style:{color:"var(--color-text-muted)"}})}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"space-y-1",children:[(0,l.jsx)("div",{className:"font-mono text-[9px] font-bold",style:{color:"var(--color-text)"},children:"Provider"}),null==w?void 0:w.providers.map(e=>(0,l.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer py-1 px-1.5",style:{border:T===e.mode?"1px solid var(--color-accent, #ccff00)":"1px solid transparent",background:T===e.mode?"var(--color-background-alt, #f4f4f5)":"transparent"},children:[(0,l.jsx)("input",{type:"radio",name:"setup-ai-provider",value:e.mode,checked:T===e.mode,onChange:()=>{E(e.mode),P(""),V(""),O(null)},className:"accent-[var(--color-accent,#ccff00)]"}),(0,l.jsx)("span",{className:"font-mono text-[9px] flex-1",style:{color:"var(--color-text)"},children:e.label}),e.available?(0,l.jsx)(r.A,{size:10,style:{color:"var(--color-success, #22c55e)"}}):(0,l.jsx)(p.A,{size:10,style:{color:"var(--color-text-muted)"}}),!e.available&&(0,l.jsx)("span",{className:"font-mono text-[8px]",style:{color:"var(--color-text-muted)"},children:e.reason})]},e.mode))]}),e1&&eQ&&(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)("div",{className:"p-1.5 font-mono text-[8px]",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)",color:"var(--color-text-muted)"},children:k[T]||"Make sure the CLI is installed and authenticated."}),"success"===$&&(0,l.jsxs)("div",{className:"flex items-center gap-2 p-1.5",style:{border:"1px solid var(--color-success)",color:"var(--color-success)"},children:[(0,l.jsx)(r.A,{size:10}),(0,l.jsx)("span",{className:"font-mono text-[9px]",children:"Available! Provider saved."})]}),(0,l.jsx)(y.$n,{size:"sm",onClick:e$,disabled:L||_,loading:L||_,icon:(0,l.jsx)(d,{size:10}),children:"TEST"})]}),!e1&&e0&&(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)(y.ks,{label:"".concat(j[e0]||e0," API Key"),type:"password",value:H,onChange:e=>{P(e.target.value),V("")},placeholder:b[e0]||"Paste your API key...",compact:!0,rightElement:(0,l.jsx)(u.A,{size:10,style:{color:"var(--color-text-muted)"}})}),(0,l.jsx)(y.$n,{size:"sm",onClick:eR,disabled:W||!H.trim(),loading:W,children:"VALIDATE & SAVE"})]}),D&&(0,l.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-warning)"},children:D}),(0,l.jsxs)("div",{className:"space-y-1 pt-2 mt-2",style:{borderTop:"1px solid var(--color-border)"},children:[(0,l.jsx)("div",{className:"font-mono text-[9px] font-bold",style:{color:"var(--color-text)"},children:"Permission Level"}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsxs)("button",{onClick:()=>eL("admin"),disabled:Y,className:"flex-1 p-1.5 font-mono text-[9px] text-left",style:{border:"admin"===U?"1px solid var(--color-accent, #ccff00)":"1px solid var(--color-border)",background:"admin"===U?"var(--color-background-alt)":"transparent",color:"admin"===U?"var(--color-text)":"var(--color-text-muted)",opacity:Y?.5:1},children:[(0,l.jsx)("div",{className:"font-bold",children:"Full Admin"}),(0,l.jsx)("div",{className:"text-[8px]",style:{color:"var(--color-text-muted)"},children:"Recommended"})]}),(0,l.jsxs)("button",{onClick:()=>eL("restricted"),disabled:Y,className:"flex-1 p-1.5 font-mono text-[9px] text-left",style:{border:"restricted"===U?"1px solid var(--color-accent, #ccff00)":"1px solid var(--color-border)",background:"restricted"===U?"var(--color-background-alt)":"transparent",color:"restricted"===U?"var(--color-text)":"var(--color-text-muted)",opacity:Y?.5:1},children:[(0,l.jsx)("div",{className:"font-bold",children:"Restricted"}),(0,l.jsx)("div",{className:"text-[8px]",style:{color:"var(--color-text-muted)"},children:"Approval required"})]})]})]})]})}),"agent"===eT&&(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted)"},children:"Choose the path that matches your setup:"}),[{label:"Agent Skill",desc:"Claude Code, Cursor, VS Code, Windsurf",cmd:"npx skills add Aura-Industry/auramaxx",note:'Then ask: "Set up my wallet"'},{label:"MCP Server",desc:"Claude Desktop or any MCP client",cmd:"npx auramaxx mcp --install",note:"Auto-configures your IDE"},{label:"Headless CLI",desc:"Local bots, CI/CD, containers",cmd:"npx tsx src/server/cli/index.ts",note:"Approve agent requests in terminal"},{label:"Direct API",desc:"Any language or platform",cmd:"curl http://localhost:4242/health",note:"POST /auth to bootstrap a token"}].map(e=>(0,l.jsxs)("div",{className:"p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)"},children:[(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text)"},children:e.label}),(0,l.jsx)("span",{className:"font-mono text-[8px]",style:{color:"var(--color-text-muted)"},children:e.desc})]}),(0,l.jsx)("div",{className:"font-mono text-[9px] mt-1 px-1.5 py-1",style:{background:"var(--color-surface)",border:"1px solid var(--color-border)",color:"var(--color-text-muted)"},children:e.cmd}),(0,l.jsx)("div",{className:"font-mono text-[8px] mt-1",style:{color:"var(--color-text-faint, #9ca3af)"},children:e.note})]},e.label)),(0,l.jsx)(y.$n,{size:"sm",onClick:()=>{let t=(null==e?void 0:e.address)||"unknown";localStorage.setItem("agentPaired:".concat(t),"true"),eP(!0),ek(null),eV(w,e)},className:"w-full",children:"I'VE CONNECTED"})]})]})}),(0,l.jsx)(N,{number:2,title:"RPC Provider",subtitle:"Add Alchemy for reliable RPC",icon:(0,l.jsx)(m.A,{size:14}),done:!!(null==e?void 0:e.apiKeys.alchemy)&&2!==eb,expanded:2===c,onToggle:()=>A(2===c?null:2),doneContent:(0,l.jsxs)("div",{className:"space-y-2 pt-2",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)"},children:[(0,l.jsx)(r.A,{size:12,style:{color:"var(--color-success)"}}),(0,l.jsx)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-success)"},children:"Alchemy key configured"})]}),(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:eY,disabled:ew,loading:ew,icon:(0,l.jsx)(x.A,{size:10}),children:"REMOVE"})]}),children:(0,l.jsxs)("div",{className:"space-y-2 pt-2",children:[(0,l.jsx)(y.ks,{label:"ALCHEMY_KEY",type:"password",value:G,onChange:e=>X(e.target.value),placeholder:"Paste your Alchemy API key...",compact:!0}),Z&&(0,l.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-warning)"},children:Z}),(0,l.jsx)(y.$n,{size:"sm",onClick:eO,disabled:J||!G,loading:J,children:"VALIDATE & SAVE"})]})}),(0,l.jsx)(N,{number:3,title:"Mobile Approvals",subtitle:"Approve agent actions via Telegram",icon:(0,l.jsx)(v.A,{size:14}),done:!!(null==e?void 0:e.adapters.telegram)&&3!==eb,expanded:3===c,onToggle:()=>A(3===c?null:3),doneContent:(0,l.jsxs)("div",{className:"space-y-2 pt-2",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)"},children:[(0,l.jsx)(r.A,{size:12,style:{color:"var(--color-success)"}}),(0,l.jsx)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-success)"},children:"Telegram connected"})]}),(0,l.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-muted)"},children:"Agent chat is enabled by default. You can toggle it in System Defaults → Adapter Chat."}),(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:eB,disabled:ez,loading:ez,icon:(0,l.jsx)(x.A,{size:10}),children:"REMOVE"})]}),children:(0,l.jsxs)("div",{className:"space-y-2 pt-2",children:["token"===ei&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-muted)"},children:"Approve agent actions from your phone via Telegram. Optionally, chat with your AI agent directly."}),(0,l.jsx)(y.ks,{label:"BOT_TOKEN",type:"password",value:et,onChange:e=>ea(e.target.value),placeholder:"123456:ABC-DEF...",compact:!0}),(0,l.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-faint)"},children:"Create a bot via @BotFather on Telegram"}),(0,l.jsx)(y.$n,{size:"sm",onClick:e_,disabled:ex||!et,loading:ex,children:"VALIDATE BOT"})]}),"detecting"===ei&&(0,l.jsxs)(l.Fragment,{children:[el&&(0,l.jsxs)("div",{className:"flex items-center gap-2 p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)"},children:[(0,l.jsx)(r.A,{size:12,style:{color:"var(--color-success)"}}),(0,l.jsxs)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-text)"},children:["@",el]})]}),(0,l.jsxs)(y.$n,{variant:"secondary",size:"sm",icon:(0,l.jsx)(h.A,{size:10}),onClick:()=>window.open(ev,"_blank"),children:["Open @",el," in Telegram"]}),(0,l.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-faint)"},children:"Click the link above, then press Start in Telegram"}),(0,l.jsxs)("div",{className:"flex items-center gap-2 py-2",children:[(0,l.jsx)(n.A,{size:14,className:"animate-spin",style:{color:"var(--color-info)"}}),(0,l.jsx)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-text-muted)"},children:"Waiting for you to press Start..."})]}),(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:()=>{var e;null==(e=ej.current)||e.abort(),ed("chatId")},children:"ENTER MANUALLY"})]}),"chatId"===ei&&(0,l.jsxs)(l.Fragment,{children:[el&&(0,l.jsxs)("div",{className:"flex items-center gap-2 p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-border)"},children:[(0,l.jsx)(r.A,{size:12,style:{color:"var(--color-success)"}}),(0,l.jsxs)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-text)"},children:["@",el]})]}),ef&&er&&(0,l.jsxs)("div",{className:"flex items-center gap-2 p-2",style:{background:"var(--color-background-alt)",border:"1px solid var(--color-success)"},children:[(0,l.jsx)(r.A,{size:12,style:{color:"var(--color-success)"}}),(0,l.jsxs)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-success)"},children:["Detected: ",ef," (",er,")"]})]}),!ef&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(y.ks,{label:"CHAT_ID",type:"text",value:er,onChange:e=>eo(e.target.value),placeholder:"Your Telegram chat ID...",compact:!0}),(0,l.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-faint)"},children:"Send /start to your bot, then use @userinfobot to get your chat ID"})]}),(0,l.jsxs)("label",{className:"flex items-center gap-2 py-1 cursor-pointer",children:[(0,l.jsx)("input",{type:"checkbox",checked:ec,onChange:e=>en(e.target.checked),className:"accent-[var(--color-accent)]"}),(0,l.jsx)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-text)"},children:"Enable agent chat"})]}),(0,l.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-faint)"},children:"Enable this to chat with your agent via Telegram. Your AI agent will respond to messages you send in this chat."}),(0,l.jsx)(y.$n,{size:"sm",onClick:eU,disabled:ex||!er,loading:ex,children:"ACTIVATE & TEST"})]}),"testing"===ei&&(0,l.jsxs)("div",{className:"flex items-center gap-2 py-2",children:[(0,l.jsx)(n.A,{size:14,className:"animate-spin",style:{color:"var(--color-info)"}}),(0,l.jsx)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-text-muted)"},children:"Testing connection..."})]}),"done"===ei&&(0,l.jsxs)("div",{className:"flex items-center gap-2 py-2",children:[(0,l.jsx)(r.A,{size:14,style:{color:"var(--color-success)"}}),(0,l.jsx)("span",{className:"font-mono text-[10px]",style:{color:"var(--color-success)"},children:"Telegram connected!"})]}),eu&&(0,l.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-warning)"},children:eu})]})}),!eJ&&(0,l.jsx)("div",{className:"pt-3 flex justify-end",children:(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:eG,children:"SKIP FOR NOW"})}),eJ&&(0,l.jsx)("div",{className:"pt-3 flex justify-end",children:(0,l.jsx)(y.$n,{variant:"ghost",size:"sm",onClick:eG,children:"DISMISS"})})]})},I=A},5867:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(1847).A)("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]])},5880:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(1847).A)("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]])},7586:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(1847).A)("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]])},7937:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(1847).A)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},8192:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(1847).A)("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]])}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3573,8357],{3444:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var s=a(2115),l=a(8561),o=a(9794),r=a(5223),n=a(4901);function c(e){return"solana"===e||"solana-devnet"===e}function i(e,t){let{getRpcUrl:a,getConfiguredChains:i}=(0,n.A)(),[d,x]=(0,s.useState)(null),[u,m]=(0,s.useState)(null),[f,p]=(0,s.useState)(!1),[v,h]=(0,s.useState)(null),y=(0,s.useRef)(""),b=(0,s.useRef)(""),g=Object.keys(i())[0]||"base",j=t||g,N=c(j),A=a(j),k=(0,s.useCallback)(async()=>{if(!e){x(null),m(null);return}p(!0),h(null);try{let t=a(j);if(c(j)){let a=new r.Ng(t,"confirmed"),s=new r.J3(e),l=await a.getBalance(s);m(BigInt(l)),x((l/r.Sr).toString())}else{let a=new l.FR(t),s=await a.getBalance(e);m(s),x(o.ck(s))}}catch(e){console.error("[useBalance] Failed to fetch balance:",e),h(e instanceof Error?e.message:"Failed to fetch balance"),x(null),m(null)}finally{p(!1)}},[e,j,a]);return(0,s.useEffect)(()=>{(e!==y.current||A!==b.current)&&(y.current=e||"",b.current=A,k())},[e,A,k]),{balance:d,balanceWei:u,loading:f,error:v,refetch:k,currency:N?"SOL":"ETH",decimals:N?9:18}}},4814:(e,t,a)=>{"use strict";a.r(t),a.d(t,{WalletDetailApp:()=>U,default:()=>K});var s=a(5155),l=a(2115),o=a(9708),r=a(6651),n=a(5299),c=a(3166),i=a(3738),d=a(1190),x=a(5426),u=a(532),m=a(5229),f=a(7828),p=a(6046),v=a(8055),h=a(3341),y=a(9559),b=a(6191),g=a(1360),j=a(5880),N=a(3667),A=a(2520),k=a(850),w=a(4901),S=a(960),C=a(3444),D=a(6405),E=a(9794),I=a(5223);function T(){return"0x0dfe1681"}async function L(e,t){if(0===t.length)return[];let a=t.map((e,t)=>({jsonrpc:"2.0",id:t,method:"eth_call",params:[{to:e.to,data:e.data},"latest"]}));try{let t=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});return(await t.json()).sort((e,t)=>e.id-t.id).map(e=>e.result||null)}catch(e){return console.error("[tokenData] Batch RPC failed:",e),t.map(()=>null)}}async function F(e,t,a){let s=new Map;if(0===t.length)return s;let l=[];for(let a=0;a<t.length;a++)l.push({to:t[a].tokenAddress,data:"0x70a08231"+D.nx(e,32).slice(2),type:"balance",assetIndex:a});for(let e=0;e<t.length;e++){let a=t[e];a.poolAddress&&("v2"===a.poolVersion?(l.push({to:a.poolAddress,data:"0x0902f1ac",type:"reserves",assetIndex:e}),l.push({to:a.poolAddress,data:T(),type:"token0",assetIndex:e})):("v3"===a.poolVersion||"v4"===a.poolVersion)&&(l.push({to:a.poolAddress,data:"0x3850c7bd",type:"slot0",assetIndex:e}),l.push({to:a.poolAddress,data:T(),type:"token0",assetIndex:e})))}let o=l.map(e=>({to:e.to,data:e.data})),r=await L(a,o),n=Array(t.length).fill(null),c=t.map(()=>({}));for(let e=0;e<l.length;e++){let t=l[e],a=r[e];switch(t.type){case"balance":n[t.assetIndex]=a;break;case"reserves":c[t.assetIndex].reserves=a;break;case"slot0":c[t.assetIndex].slot0=a;break;case"token0":c[t.assetIndex].token0=a}}for(let e=0;e<t.length;e++){let a=t[e],l=n[e],o="0",r="0";if(l&&"0x"!==l)try{let e=BigInt(l);r=e.toString(),o=E.Js(e,a.decimals)}catch(e){}let i=null,d=c[e];if(d.token0){let e=!1;try{e="0x"+d.token0.slice(26).toLowerCase()===a.tokenAddress.toLowerCase()}catch(e){}"v2"===a.poolVersion&&d.reserves?i=function(e,t){if(!e||"0x"===e)return null;try{let a=BigInt("0x"+e.slice(2,66)),s=BigInt("0x"+e.slice(66,130));if(a===BigInt(0)||s===BigInt(0))return null;if(t)return Number(s)/Number(a);return Number(a)/Number(s)}catch(e){return null}}(d.reserves,e):("v3"===a.poolVersion||"v4"===a.poolVersion)&&d.slot0&&(i=function(e,t){if(!e||"0x"===e)return null;try{let a=BigInt("0x"+e.slice(2,66));if(a===BigInt(0))return null;let s=BigInt(2)**BigInt(96),l=Number(a)/Number(s),o=l*l;if(t)return o;return o>0?1/o:null}catch(e){return null}}(d.slot0,e))}s.set(a.tokenAddress.toLowerCase(),{balance:o,balanceRaw:r,priceInEth:i})}return s}let O=new I.J3("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");async function z(e,t,a){let s=new Map;if(0===t.length)return s;try{let o=new I.Ng(a,"confirmed"),r=new I.J3(e),n=await o.getParsedTokenAccountsByOwner(r,{programId:O}),c=new Map;for(let{account:e}of n.value){var l;let t=e.data.parsed;(null==t||null==(l=t.info)?void 0:l.mint)&&c.set(t.info.mint,{amount:t.info.tokenAmount.amount,uiAmount:t.info.tokenAmount.uiAmountString||"0"})}for(let e of t){let t=c.get(e.tokenAddress);s.set(e.tokenAddress,{balance:(null==t?void 0:t.uiAmount)||"0",balanceRaw:(null==t?void 0:t.amount)||"0",priceInEth:null})}}catch(e){for(let a of(console.error("[tokenData] Solana token fetch failed:",e),t))s.set(a.tokenAddress,{balance:"0",balanceRaw:"0",priceInEth:null})}return s}var B=a(3721);let W=["\uD83D\uDD25","\uD83D\uDC8E","\uD83D\uDE80","⚡","\uD83C\uDF19","\uD83C\uDF1F","\uD83D\uDCB0","\uD83C\uDFAF","\uD83D\uDD2E","\uD83C\uDF08"],R=["#ff4d00","#0047ff","#00c853","#ffab00","#9c27b0","#00bcd4","#e91e63","#607d8b"];function M(e){let t=new Date(e),a=Math.floor((new Date().getTime()-t.getTime())/6e4),s=Math.floor(a/60),l=Math.floor(s/24);return a<1?"just now":a<60?"".concat(a,"m ago"):s<24?"".concat(s,"h ago"):"".concat(l,"d ago")}function H(e){return"solana"===e||"solana-devnet"===e}function V(e,t){return!!e&&!!t&&(e.startsWith("0x")||t.startsWith("0x")?e.toLowerCase()===t.toLowerCase():e===t)}let P={send:"var(--color-warning, #ff4d00)",receive:"var(--color-success, #00c853)",swap:"var(--color-info, #0047ff)",contract:"var(--color-text-muted, #888)",manual:"var(--color-text-muted, #888)"},$=[{value:"all",label:"ALL"},{value:"send",label:"SEND"},{value:"receive",label:"RECEIVE"},{value:"swap",label:"SWAP"},{value:"contract",label:"CONTRACT"},{value:"manual",label:"MANUAL"}],U=e=>{let{config:t}=e,[a,b]=(0,l.useState)(""),[g,j]=(0,l.useState)(""),D=(null==t?void 0:t.walletAddress)||g||void 0,{getRpcUrl:E,getConfiguredChains:I,getChainConfig:T,isUnlocked:L}=(0,w.A)(),O=Object.keys(I()).map(e=>({value:e,label:e.toUpperCase()})),{subscribe:M,connected:P}=(0,A.h)(),{ethPrice:$,formatUsd:U}=(0,k.X)(),[K,X]=(0,l.useState)(null),[Q,Y]=(0,l.useState)(!!D),[Z,q]=(0,l.useState)(null),[ee,et]=(0,l.useState)(!1),[ea,es]=(0,l.useState)(!1),[el,eo]=(0,l.useState)(!1),[er,en]=(0,l.useState)("assets"),[ec,ei]=(0,l.useState)(""),[ed,ex]=(0,l.useState)(""),[eu,em]=(0,l.useState)(""),[ef,ep]=(0,l.useState)(""),[ev,eh]=(0,l.useState)(!1),[ey,eb]=(0,l.useState)([]),[eg,ej]=(0,l.useState)(!1),[eN,eA]=(0,l.useState)(""),[ek,ew]=(0,l.useState)(new Map),[eS,eC]=(0,l.useState)(!1),[eD,eE]=(0,l.useState)(!1),[eI,eT]=(0,l.useState)(null),[eL,eF]=(0,l.useState)({tokenAddress:"",symbol:"",name:"",chain:"base"}),[eO,ez]=(0,l.useState)(!1),[eB,eW]=(0,l.useState)(""),{balance:eR,loading:eM,currency:eH}=(0,C.A)(null==K?void 0:K.address,null==K?void 0:K.chain),[eV,eP]=(0,l.useState)([]),[e$,eU]=(0,l.useState)(!1),[eG,eJ]=(0,l.useState)(""),[e_,eK]=(0,l.useState)("all"),[eX,eQ]=(0,l.useState)(!1),[eY,eZ]=(0,l.useState)(0),eq=(0,l.useCallback)(async()=>{if(D&&L){Y(!0),q(null);try{let e=await Promise.race([S.FH.get(S.jI.Wallet,"/wallet/".concat(D)),new Promise((e,t)=>setTimeout(()=>t(Error("Server unreachable")),5e3))]);X(e),ei(e.name||""),ex(e.description||""),em(e.emoji||""),ep(e.color||""),eh(e.hidden||!1),eW(e.chain||"base"),eF(t=>({...t,chain:e.chain||"base"}))}catch(e){console.error("[WalletDetail] Failed to fetch wallet:",e),q(e instanceof Error?e.message:"Failed to fetch wallet")}finally{Y(!1)}}},[D,L]),e0=(0,l.useCallback)(()=>{(null==K?void 0:K.address)&&(navigator.clipboard.writeText(K.address),et(!0),setTimeout(()=>et(!1),2e3))},[null==K?void 0:K.address]);(0,l.useEffect)(()=>{eq()},[eq]);let e8=(0,l.useCallback)(async()=>{if(K&&eB){ej(!0);try{let e=await S.FH.get(S.jI.Wallet,"/wallet/".concat(K.address,"/assets"),{sortBy:"updatedAt",sortDir:"desc",limit:100,chain:eB});e.success&&eb(e.assets)}catch(e){console.error("[WalletDetail] Failed to fetch assets:",e)}finally{ej(!1)}}},[K,eB]),e1=(0,l.useCallback)(async e=>{if(0!==e.length&&K&&eB){eC(!0);try{let t=e.map(e=>({tokenAddress:e.tokenAddress,decimals:e.decimals,poolAddress:e.poolAddress,poolVersion:e.poolVersion})),a=E(eB),s=H(eB)?await z(K.address,t,a):await F(K.address,t,a);ew(s)}catch(e){console.error("[WalletDetail] Failed to fetch balances:",e)}finally{eC(!1)}}},[K,eB,E]),e5=(0,l.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(K&&eB){eU(!0);try{let t=e?0:eY,a={limit:50,offset:t,sortBy:"createdAt",sortDir:"desc",chain:eB};"all"!==e_&&(a.type=e_),eG&&(a.search=eG);let s=await S.FH.get(S.jI.Wallet,"/wallet/".concat(K.address,"/transactions"),a);s.success&&(e?(eP(s.transactions),eZ(s.transactions.length)):(eP(e=>[...e,...s.transactions]),eZ(t+s.transactions.length)),eQ(s.pagination.hasMore))}catch(e){console.error("[WalletDetail] Failed to fetch transactions:",e)}finally{eU(!1)}}},[K,eB,e_,eG,eY]);(0,l.useEffect)(()=>{K&&eB&&(e8(),e5(!0))},[eB]),(0,l.useEffect)(()=>{ey.length>0&&e1(ey)},[ey,e1]),(0,l.useEffect)(()=>{e5(!0)},[e_]),(0,l.useEffect)(()=>{if(!K)return;let e=M("asset:changed",e=>{let t=e.data;if(V(t.walletAddress,K.address)){if(t.removed)return void eb(e=>e.filter(e=>!V(e.tokenAddress,t.tokenAddress)));eb(e=>{let a=e.findIndex(e=>V(e.tokenAddress,t.tokenAddress));if(!(a>=0))return e8(),e;{var s,l,o,r,n;let c=[...e];return c[a]={...c[a],symbol:null!=(s=t.symbol)?s:c[a].symbol,name:null!=(l=t.name)?l:c[a].name,poolAddress:null!=(o=t.poolAddress)?o:c[a].poolAddress,poolVersion:null!=(r=t.poolVersion)?r:c[a].poolVersion,icon:null!=(n=t.icon)?n:c[a].icon,updatedAt:new Date().toISOString()},c.sort((e,t)=>new Date(t.updatedAt).getTime()-new Date(e.updatedAt).getTime())}})}}),t=M(B.Cw.BALANCE_UPDATED,e=>{let t=e.data;"token"===t.type&&eb(e=>{let a=!1,s=e.map(e=>{let s=t.balances.find(t=>V(t.walletAddress,K.address)&&t.tokenAddress&&V(t.tokenAddress,e.tokenAddress));return s?(a=!0,{...e,lastBalance:s.balance,lastBalanceAt:new Date().toISOString()}):e});return a?s:e})}),a=M("tx:created",e=>{var t,a,s,l,o;let r=e.data;if(!V(r.walletAddress,K.address))return;let n={id:r.id,walletAddress:r.walletAddress,txHash:null!=(t=r.txHash)?t:null,type:r.type,status:"confirmed",amount:null!=(a=r.amount)?a:null,tokenAddress:null!=(s=r.tokenAddress)?s:null,tokenAmount:null!=(l=r.tokenAmount)?l:null,from:null,to:null,description:null!=(o=r.description)?o:null,blockNumber:null,chain:K.chain||"base",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),executedAt:new Date().toISOString()};eP(e=>[n,...e])});return()=>{e(),t(),a()}},[M,K,e8]);let e2=async()=>{if(K){eo(!0);try{await S.FH.post(S.jI.Wallet,"/wallet/rename",{address:K.address,name:ec||void 0,description:ed||void 0,emoji:eu||void 0,color:ef||void 0,hidden:ev}),X(e=>e?{...e,name:ec||void 0,description:ed||void 0,emoji:eu||void 0,color:ef||void 0,hidden:ev}:null),es(!1)}catch(e){console.error("[WalletDetail] Failed to save:",e)}finally{eo(!1)}}},e4=async()=>{if(eL.tokenAddress&&K){ez(!0);try{let e=await S.FH.post(S.jI.Wallet,"/wallet/".concat(K.address,"/asset"),{tokenAddress:eL.tokenAddress,symbol:eL.symbol||void 0,name:eL.name||void 0,chain:eL.chain});e.success?(eE(!1),eF({tokenAddress:"",symbol:"",name:"",chain:K.chain||"base"}),e8()):console.error("[WalletDetail] Failed to add asset:",e.error)}catch(e){console.error("[WalletDetail] Failed to add asset:",e)}finally{ez(!1)}}},e3=async e=>{if(K)try{let t=await S.FH.delete(S.jI.Wallet,"/wallet/".concat(K.address,"/asset/").concat(e));t.success||console.error("[WalletDetail] Failed to remove asset:",t.error)}catch(e){console.error("[WalletDetail] Failed to remove asset:",e)}},e6=ey.filter(e=>{if(eN){var t,a;let s=eN.toLowerCase();return(null==(t=e.symbol)?void 0:t.toLowerCase().includes(s))||(null==(a=e.name)?void 0:a.toLowerCase().includes(s))||e.tokenAddress.toLowerCase().includes(s)}return!0});return L?D?Q?(0,s.jsxs)("div",{className:"py-8 text-center",children:[(0,s.jsx)(n.A,{size:24,className:"mx-auto mb-3 animate-spin",style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("div",{className:"font-mono text-[10px] tracking-wider",style:{color:"var(--color-text-muted, #888)"},children:"LOADING WALLET..."})]}):Z||!K?(0,s.jsxs)("div",{className:"py-8 text-center",children:[(0,s.jsx)("div",{className:"font-mono text-[10px] tracking-wider",style:{color:"var(--color-warning, #ff4d00)"},children:Z||"WALLET NOT FOUND"}),(0,s.jsx)("div",{className:"font-mono text-[8px] mt-1",style:{color:"var(--color-text-muted, #888)"},children:D})]}):(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"text-center py-2",children:[(0,s.jsx)("div",{className:"font-mono text-2xl font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:eM?(0,s.jsx)(n.A,{size:20,className:"inline animate-spin",style:{color:"var(--color-text-muted, #888)"}}):(0,s.jsxs)(s.Fragment,{children:[eR||"0"," ",(0,s.jsx)("span",{className:"text-sm",children:eH})]})}),$&&eR&&!eM&&!H(K.chain)&&(0,s.jsx)("div",{className:"font-mono text-sm",style:{color:"var(--color-text-muted, #888)"},children:U(eR)})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[K.emoji&&(0,s.jsx)("span",{className:"text-xs",children:K.emoji}),(0,s.jsx)("span",{className:"font-mono text-[9px] font-bold truncate",style:{color:"var(--color-text, #0a0a0a)"},children:K.name||"HOT WALLET"}),K.color&&(0,s.jsx)("div",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:K.color}}),(0,s.jsx)("span",{className:"font-mono text-[8px] uppercase px-1 py-0.5",style:{background:"var(--color-warning, #ff4d00)",color:"var(--color-surface, #fff)"},children:K.tier}),(0,s.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[P?(0,s.jsx)(c.A,{size:9,style:{color:"var(--color-success, #00c853)"}}):(0,s.jsx)(i.A,{size:9,style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("button",{onClick:()=>es(!0),className:"p-1 transition-colors",style:{color:"var(--color-text-muted, #888)"},children:(0,s.jsx)(d.A,{size:10})})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("code",{className:"flex-1 font-mono text-[9px] truncate select-all",style:{color:"var(--color-text-muted, #888)"},children:K.address}),(0,s.jsx)("button",{onClick:e0,className:"p-1 transition-colors shrink-0",style:{background:ee?"var(--color-success, #00c853)":"var(--color-background-alt, #f5f5f5)",color:ee?"var(--color-surface, #fff)":"var(--color-text-muted, #888)"},children:(0,s.jsx)(x.A,{size:10})})]}),K.hidden&&!ea&&(0,s.jsxs)("div",{className:"flex items-center gap-1.5 px-2 py-1",style:{background:"color-mix(in srgb, var(--color-warning, #ff4d00) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--color-warning, #ff4d00) 30%, transparent)"},children:[(0,s.jsx)(u.A,{size:9,style:{color:"var(--color-warning, #ff4d00)"}}),(0,s.jsx)("span",{className:"font-mono text-[8px]",style:{color:"var(--color-warning, #ff4d00)"},children:"HIDDEN - Excluded from totals"})]}),K.description&&!ea&&(0,s.jsx)("div",{className:"font-mono text-[9px] leading-relaxed",style:{color:"var(--color-text-muted, #888)"},children:K.description}),ea?(0,s.jsxs)("div",{className:"space-y-2 pt-2",style:{borderTop:"1px solid var(--color-border, #e5e5e5)"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"font-mono text-[7px] tracking-widest block mb-0.5",style:{color:"var(--color-text-muted, #888)"},children:"NAME"}),(0,s.jsx)("input",{type:"text",value:ec,onChange:e=>ei(e.target.value),placeholder:"Wallet name...",className:"w-full px-2 py-1.5 font-mono text-[10px] focus:outline-none",style:{background:"var(--color-surface, #fff)",border:"1px solid var(--color-border, #e5e5e5)",color:"var(--color-text, #0a0a0a)"}})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"font-mono text-[7px] tracking-widest block mb-0.5",style:{color:"var(--color-text-muted, #888)"},children:"DESCRIPTION"}),(0,s.jsx)("textarea",{value:ed,onChange:e=>ex(e.target.value),placeholder:"Add a description...",rows:2,className:"w-full px-2 py-1.5 font-mono text-[10px] focus:outline-none resize-none",style:{background:"var(--color-surface, #fff)",border:"1px solid var(--color-border, #e5e5e5)",color:"var(--color-text, #0a0a0a)"}})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"font-mono text-[7px] tracking-widest block mb-0.5",style:{color:"var(--color-text-muted, #888)"},children:"EMOJI"}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-0.5",children:[(0,s.jsx)("button",{onClick:()=>em(""),className:"w-6 h-6 flex items-center justify-center transition-colors",style:{border:eu?"1px solid var(--color-border, #e5e5e5)":"1px solid var(--color-text, #0a0a0a)",background:eu?"transparent":"var(--color-background-alt, #f5f5f5)"},children:(0,s.jsx)(m.A,{size:10,style:{color:"var(--color-text-muted, #888)"}})}),W.map(e=>(0,s.jsx)("button",{onClick:()=>em(e),className:"w-6 h-6 flex items-center justify-center text-xs transition-colors",style:{border:eu===e?"1px solid var(--color-text, #0a0a0a)":"1px solid var(--color-border, #e5e5e5)",background:eu===e?"var(--color-background-alt, #f5f5f5)":"transparent"},children:e},e))]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"font-mono text-[7px] tracking-widest block mb-0.5",style:{color:"var(--color-text-muted, #888)"},children:"COLOR"}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-0.5",children:[(0,s.jsx)("button",{onClick:()=>ep(""),className:"w-6 h-6 flex items-center justify-center transition-colors",style:{border:ef?"1px solid var(--color-border, #e5e5e5)":"1px solid var(--color-text, #0a0a0a)"},children:(0,s.jsx)("div",{className:"w-3 h-3 rounded-full",style:{background:"var(--color-border, #e5e5e5)"}})}),R.map(e=>(0,s.jsx)("button",{onClick:()=>ep(e),className:"w-6 h-6 flex items-center justify-center transition-colors",style:{border:ef===e?"1px solid var(--color-text, #0a0a0a)":"1px solid var(--color-border, #e5e5e5)"},children:(0,s.jsx)("div",{className:"w-3 h-3 rounded-full",style:{backgroundColor:e}})},e))]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"font-mono text-[7px] tracking-widest block mb-0.5",style:{color:"var(--color-text-muted, #888)"},children:"VISIBILITY"}),(0,s.jsxs)("button",{onClick:()=>eh(!ev),className:"flex items-center gap-1.5 px-2 py-1.5 w-full transition-colors",style:{border:ev?"1px solid var(--color-warning, #ff4d00)":"1px solid var(--color-border, #e5e5e5)",background:ev?"color-mix(in srgb, var(--color-warning, #ff4d00) 5%, transparent)":"transparent",color:ev?"var(--color-warning, #ff4d00)":"var(--color-text, #0a0a0a)"},children:[ev?(0,s.jsx)(u.A,{size:10}):(0,s.jsx)(f.A,{size:10}),(0,s.jsx)("span",{className:"font-mono text-[9px]",children:ev?"HIDDEN":"VISIBLE"})]})]}),(0,s.jsxs)("div",{className:"flex gap-1.5 pt-1",children:[(0,s.jsx)(N.$n,{variant:"secondary",onClick:()=>{K&&(ei(K.name||""),ex(K.description||""),em(K.emoji||""),ep(K.color||""),eh(K.hidden||!1),es(!1))},className:"flex-1",children:"CANCEL"}),(0,s.jsx)(N.$n,{variant:"primary",onClick:e2,loading:el,icon:(0,s.jsx)(p.A,{size:9}),className:"flex-1",children:"SAVE"})]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)("div",{className:"flex flex-1 rounded-sm overflow-hidden",style:{background:"var(--color-background-alt, #f5f5f5)",border:"1px solid var(--color-border, #e5e5e5)"},children:[(0,s.jsx)(G,{active:"assets"===er,onClick:()=>en("assets"),icon:(0,s.jsx)(v.A,{size:12}),label:"ASSETS",badge:ey.length>0?ey.length:void 0}),(0,s.jsx)(G,{active:"transactions"===er,onClick:()=>en("transactions"),icon:(0,s.jsx)(h.A,{size:12}),label:"TRANSACTIONS",badge:eV.length>0?eV.length:void 0})]}),(0,s.jsx)(N.$n,{variant:"secondary",size:"sm",onClick:"assets"===er?()=>{e8()}:()=>{e5(!0)},disabled:"assets"===er?eg||eS:e$,icon:(0,s.jsx)(y.A,{size:12,className:("assets"===er?eg||eS:e$)?"animate-spin":""})})]}),"assets"===er?(0,s.jsx)(J,{assets:e6,loading:eg||eS,search:eN,onSearchChange:eA,tokenDataMap:ek,ethPrice:$,showAddAsset:eD,addAssetAnchor:eI,onShowAddAsset:(e,t)=>{eE(e),eT(t||null)},addAssetForm:eL,onAddAssetFormChange:eF,onAddAsset:e4,addingAsset:eO,chainOptions:O,selectedChain:eB,onChainChange:e=>{eW(e),eF(t=>({...t,chain:e}))},onRemoveAsset:e3,nativeCurrency:H(eB)?"SOL":"ETH"}):(0,s.jsx)(_,{transactions:eV,loading:e$,search:eG,onSearchChange:eJ,typeFilter:e_,onTypeFilterChange:eK,hasMore:eX,onLoadMore:()=>e5(!1),nativeCurrency:H(eB)?"SOL":"ETH",explorerUrl:T(eB).explorer})]})]}):(0,s.jsxs)("div",{className:"space-y-3 py-4 px-1",children:[(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)(r.A,{size:20,className:"mx-auto mb-2",style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("div",{className:"font-mono text-[10px] tracking-wider",style:{color:"var(--color-text-muted, #888)"},children:"ENTER WALLET ADDRESS"})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(N.ks,{value:a,onChange:e=>b(e.target.value),placeholder:"0x... or base58 address",compact:!0,onKeyDown:e=>{"Enter"===e.key&&a.trim()&&(j(a.trim()),Y(!0))}}),(0,s.jsx)(N.$n,{variant:"primary",onClick:()=>{a.trim()&&(j(a.trim()),Y(!0))},disabled:!a.trim(),className:"w-full",size:"sm",children:"LOAD WALLET"})]})]}):(0,s.jsxs)("div",{className:"py-8 text-center",children:[(0,s.jsx)(o.A,{size:24,className:"mx-auto mb-3",style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("div",{className:"font-mono text-[10px] tracking-wider",style:{color:"var(--color-text-muted, #888)"},children:"AGENT LOCKED"})]})};function G(e){let{active:t,onClick:a,icon:l,label:o,badge:r}=e;return(0,s.jsxs)("button",{onClick:a,className:"flex-1 py-2 px-3 font-mono text-[9px] tracking-widest transition-all flex items-center justify-center gap-1.5",style:{background:t?"var(--color-surface, #fff)":"transparent",color:t?"var(--color-text, #0a0a0a)":"var(--color-text-muted, #888)",boxShadow:t?"0 1px 3px rgba(0,0,0,0.1)":"none"},children:[l,o,void 0!==r&&(0,s.jsx)("span",{className:"ml-1 px-1.5 py-0.5 rounded-sm text-[8px] font-bold",style:{background:"var(--color-info, #0047ff)",color:"var(--color-surface, #fff)"},children:r})]})}function J(e){let{assets:t,loading:a,search:l,onSearchChange:o,tokenDataMap:c,ethPrice:i,showAddAsset:d,addAssetAnchor:x,onShowAddAsset:u,addAssetForm:m,onAddAssetFormChange:f,onAddAsset:p,addingAsset:h,chainOptions:y,selectedChain:j,onChainChange:A,onRemoveAsset:k,nativeCurrency:w}=e;return(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("div",{className:"w-28",children:(0,s.jsx)(N.XS,{value:j,onChange:A,chains:y.map(e=>e.value),size:"sm"})}),(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(N.ks,{value:l,onChange:e=>o(e.target.value),placeholder:"Search tokens...",leftElement:(0,s.jsx)(r.A,{size:10}),compact:!0})}),(0,s.jsx)(N.$n,{variant:"primary",size:"sm",onClick:e=>u(!0,e.currentTarget),icon:(0,s.jsx)(b.A,{size:10})})]}),(0,s.jsx)(N.AM,{isOpen:d,onClose:()=>u(!1),anchorEl:x,title:"ADD ASSET",anchor:"right",children:(0,s.jsxs)("div",{className:"space-y-2 w-56",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"font-mono text-[8px] tracking-widest block mb-1",style:{color:"var(--color-text-muted, #888)"},children:"TOKEN ADDRESS *"}),(0,s.jsx)("input",{type:"text",value:m.tokenAddress,onChange:e=>f({...m,tokenAddress:e.target.value}),placeholder:"0x...",className:"w-full px-2 py-1.5 font-mono text-[9px] focus:outline-none",style:{background:"var(--color-surface, #fff)",border:"1px solid var(--color-border, #e5e5e5)",color:"var(--color-text, #0a0a0a)"}})]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsx)("label",{className:"font-mono text-[8px] tracking-widest block mb-1",style:{color:"var(--color-text-muted, #888)"},children:"SYMBOL"}),(0,s.jsx)("input",{type:"text",value:m.symbol,onChange:e=>f({...m,symbol:e.target.value}),placeholder:"TKN",className:"w-full px-2 py-1.5 font-mono text-[9px] focus:outline-none",style:{background:"var(--color-surface, #fff)",border:"1px solid var(--color-border, #e5e5e5)",color:"var(--color-text, #0a0a0a)"}})]}),(0,s.jsx)("div",{className:"w-28",children:(0,s.jsx)(N.XS,{label:"CHAIN",value:m.chain,onChange:e=>f({...m,chain:e}),chains:y.map(e=>e.value),size:"sm"})})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"font-mono text-[8px] tracking-widest block mb-1",style:{color:"var(--color-text-muted, #888)"},children:"NAME"}),(0,s.jsx)("input",{type:"text",value:m.name,onChange:e=>f({...m,name:e.target.value}),placeholder:"Token Name",className:"w-full px-2 py-1.5 font-mono text-[9px] focus:outline-none",style:{background:"var(--color-surface, #fff)",border:"1px solid var(--color-border, #e5e5e5)",color:"var(--color-text, #0a0a0a)"}})]}),(0,s.jsx)(N.$n,{onClick:p,disabled:!m.tokenAddress||h,loading:h,className:"w-full",size:"sm",children:h?"ADDING...":"ADD ASSET"})]})}),a&&0===t.length?(0,s.jsxs)("div",{className:"py-6 text-center",children:[(0,s.jsx)(n.A,{size:20,className:"mx-auto mb-2 animate-spin",style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"LOADING ASSETS..."})]}):0===t.length?(0,s.jsxs)("div",{className:"py-6 text-center",children:[(0,s.jsx)(v.A,{size:24,className:"mx-auto mb-2",style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"NO TRACKED ASSETS"}),(0,s.jsx)("div",{className:"font-mono text-[8px] mt-1",style:{color:"var(--color-text-faint, #aaa)"},children:"Swap tokens to auto-track them"})]}):(0,s.jsx)("div",{className:"space-y-1 max-h-48 overflow-y-auto",children:t.map(e=>{var t,a,l,o;let r=H(j)?e.tokenAddress:e.tokenAddress.toLowerCase(),n=c.get(r),d=null!=(l=null!=(a=null==n?void 0:n.balance)?a:e.lastBalance)?l:"0",x=null!=(o=null==n?void 0:n.priceInEth)?o:null,u=function(e,t,a){if(null===t||null===a)return null;let s=parseFloat(e);return isNaN(s)||0===s?null:s*t*a}(d,x,i),m=e.lastBalanceAt?Date.now()-new Date(e.lastBalanceAt).getTime():null;return(0,s.jsxs)("div",{className:"p-2 rounded-sm group",style:{background:"var(--color-surface, #fff)",border:"1px solid var(--color-border, #e5e5e5)"},children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,s.jsx)("div",{className:"w-6 h-6 rounded-full flex items-center justify-center shrink-0 text-[10px] font-bold",style:{background:"var(--color-background-alt, #f5f5f5)",color:"var(--color-text-muted, #888)"},children:(null==(t=e.symbol)?void 0:t.charAt(0))||"?"}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("div",{className:"font-mono text-[10px] font-bold truncate",style:{color:"var(--color-text, #0a0a0a)"},children:e.symbol||function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6;return"".concat(e.slice(0,t+2),"...").concat(e.slice(-t))}(e.tokenAddress,4)}),e.name&&(0,s.jsx)("div",{className:"font-mono text-[8px] truncate",style:{color:"var(--color-text-muted, #888)"},children:e.name})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)("div",{className:"text-right shrink-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1 justify-end",children:[(0,s.jsx)("div",{className:"w-1 h-1 rounded-full shrink-0",style:{background:null===m?"var(--color-text-faint, #ccc)":m<3e4?"var(--color-success, #00c853)":m<3e5?"var(--color-info, #0047ff)":"var(--color-warning, #ff4d00)"},title:e.lastBalanceAt?"Updated ".concat(M(e.lastBalanceAt)):"No cached balance"}),(0,s.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:parseFloat(d).toFixed(4)})]}),null!==u&&(0,s.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-muted, #888)"},children:null===u?"":u<.01?"<$0.01":u<1||u<1e3?"$".concat(u.toFixed(2)):u<1e4?"$".concat(u.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})):"$".concat(u.toLocaleString("en-US",{minimumFractionDigits:0,maximumFractionDigits:0}))})]}),(0,s.jsx)("button",{onClick:()=>k(e.id),className:"p-1 opacity-0 group-hover:opacity-100 transition-opacity",style:{color:"var(--color-warning, #ff4d00)"},title:"Remove asset",children:(0,s.jsx)(g.A,{size:10})})]})]}),e.poolVersion&&(0,s.jsxs)("div",{className:"mt-1.5 flex items-center gap-1",children:[(0,s.jsx)("span",{className:"font-mono text-[7px] px-1 py-0.5 rounded-sm uppercase",style:{background:"var(--color-background-alt, #f5f5f5)",color:"var(--color-text-muted, #888)"},children:e.poolVersion}),null!==x&&(0,s.jsxs)("span",{className:"font-mono text-[7px]",style:{color:"var(--color-text-muted, #888)"},children:[x.toFixed(8)," ",w]})]})]},e.id)})})]})}function _(e){let{transactions:t,loading:a,search:l,onSearchChange:o,typeFilter:c,onTypeFilterChange:i,hasMore:d,onLoadMore:x,nativeCurrency:u,explorerUrl:m}=e,f=l?t.filter(e=>{var t,a;return(null==(t=e.description)?void 0:t.toLowerCase().includes(l.toLowerCase()))||(null==(a=e.txHash)?void 0:a.toLowerCase().includes(l.toLowerCase()))}):t;return(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("div",{className:"w-24",children:(0,s.jsx)(N.UM,{options:$,value:c,onChange:i,compact:!0})}),(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(N.ks,{value:l,onChange:e=>o(e.target.value),placeholder:"Search tx...",leftElement:(0,s.jsx)(r.A,{size:10}),compact:!0})})]}),a&&0===t.length?(0,s.jsxs)("div",{className:"py-6 text-center",children:[(0,s.jsx)(n.A,{size:20,className:"mx-auto mb-2 animate-spin",style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"LOADING TRANSACTIONS..."})]}):0===f.length?(0,s.jsxs)("div",{className:"py-6 text-center",children:[(0,s.jsx)(h.A,{size:24,className:"mx-auto mb-2",style:{color:"var(--color-text-muted, #888)"}}),(0,s.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"NO TRANSACTIONS"}),(0,s.jsx)("div",{className:"font-mono text-[8px] mt-1",style:{color:"var(--color-text-faint, #aaa)"},children:l?"Try a different search":"Transactions will appear here"})]}):(0,s.jsxs)("div",{className:"space-y-1 max-h-48 overflow-y-auto",children:[f.map(e=>{let t=P[e.type]||"var(--color-text-muted, #888)";return(0,s.jsx)("div",{className:"p-2 rounded-sm",style:{background:"var(--color-surface, #fff)",border:"1px solid var(--color-border, #e5e5e5)"},children:(0,s.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,s.jsx)("div",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:t}}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("span",{className:"font-mono text-[8px] font-bold uppercase",style:{color:t},children:e.type}),e.amount&&(0,s.jsxs)("span",{className:"font-mono text-[9px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:[parseFloat(e.amount).toFixed(4)," ",u]}),e.tokenAmount&&(0,s.jsx)("span",{className:"font-mono text-[9px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:parseFloat(e.tokenAmount).toFixed(4)})]}),e.description&&(0,s.jsx)("div",{className:"font-mono text-[8px] truncate max-w-[180px]",style:{color:"var(--color-text-muted, #888)"},children:e.description})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,s.jsx)("span",{className:"font-mono text-[7px]",style:{color:"var(--color-text-faint, #aaa)"},children:M(e.createdAt)}),e.txHash&&(0,s.jsx)("a",{href:"".concat(m,"/tx/").concat(e.txHash),target:"_blank",rel:"noopener noreferrer",className:"p-0.5 transition-colors",style:{color:"var(--color-text-muted, #888)"},children:(0,s.jsx)(j.A,{size:9})})]})]})},e.id)}),d&&!l&&(0,s.jsx)("button",{onClick:x,disabled:a,className:"w-full py-2 font-mono text-[8px] transition-colors",style:{color:"var(--color-text-muted, #888)",background:"var(--color-background-alt, #f5f5f5)"},children:a?"LOADING...":"LOAD MORE"})]})]})}let K=U},7790:()=>{}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3609],{2056:(e,t,l)=>{l.d(t,{A:()=>s});let s=(0,l(1847).A)("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},3609:(e,t,l)=>{l.r(t),l.d(t,{default:()=>r});var s=l(5155);l(2115);var a=l(2056);function r(e){let{config:t}=e,l=null==t?void 0:t.url,r=(null==t?void 0:t.title)||"Embedded Content";if(!l)return(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[200px] text-[var(--color-text-muted,#6b7280)]",children:[(0,s.jsx)(a.A,{size:24,className:"mb-2"}),(0,s.jsx)("span",{className:"font-mono text-xs",children:"NO URL CONFIGURED"})]});try{let e=new URL(l);if(!["http:","https:"].includes(e.protocol))return(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[200px] text-[var(--color-error,#ff4d00)]",children:[(0,s.jsx)(a.A,{size:24,className:"mb-2"}),(0,s.jsx)("span",{className:"font-mono text-xs",children:"BLOCKED URL SCHEME"}),(0,s.jsx)("span",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)] mt-1",children:"Only http/https URLs are allowed"})]})}catch(e){return(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[200px] text-[var(--color-error,#ff4d00)]",children:[(0,s.jsx)(a.A,{size:24,className:"mb-2"}),(0,s.jsx)("span",{className:"font-mono text-xs",children:"INVALID URL"}),(0,s.jsx)("span",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)] mt-1 max-w-full truncate px-4",children:l})]})}return(0,s.jsx)("iframe",{src:l,title:r,sandbox:"allow-scripts allow-forms",className:"w-full h-full border-0",style:{minHeight:"200px"},loading:"lazy"})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3667],{3667:(e,a,r)=>{r.d(a,{$n:()=>l,XS:()=>A,Rw:()=>g,_s:()=>x,UM:()=>d,O6:()=>_,aF:()=>u,AM:()=>h,ks:()=>c,lM:()=>L,lX:()=>F});var t=r(5155),o=r(2115),s=r(5299);let n=()=>(0,t.jsx)("span",{className:"absolute right-0 top-0 bottom-0 w-[6px] pointer-events-none opacity-25","aria-hidden":"true",style:{backgroundImage:"repeating-linear-gradient(to bottom, var(--color-surface,#ffffff) 0px, var(--color-surface,#ffffff) 2px, transparent 2px, transparent 3px, var(--color-surface,#ffffff) 3px, var(--color-surface,#ffffff) 4px, transparent 4px, transparent 7px)"}}),l=e=>{let{variant:a="primary",size:r="md",loading:o=!1,icon:l,children:c,disabled:i,className:d="",...f}=e,v="primary"===a,x="sm"===r?"var(--font-size-xs)":"md"===r?"var(--font-size-sm)":"var(--font-size-md)";return(0,t.jsxs)("button",{className:"".concat("font-mono tracking-widest flex items-center justify-center gap-[var(--space-1)] transition-all disabled:opacity-50 disabled:cursor-not-allowed"," ").concat({primary:"relative clip-specimen-sm bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)] border border-[var(--color-text,#0a0a0a)] shadow-mech hover:shadow-mech-hover active:shadow-mech-active hover:bg-[var(--color-accent,#ccff00)] hover:text-[var(--color-accent-foreground,#0a0a0a)] hover:border-[var(--color-accent,#ccff00)] hover:-translate-y-[1px] hover:-translate-x-[1px] active:translate-y-0 active:translate-x-0",secondary:"bg-[var(--color-surface,#ffffff)] border border-[var(--color-border,#d4d4d8)] text-[var(--color-text-muted,#6b7280)] hover:border-[var(--color-text,#0a0a0a)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]",danger:"bg-[var(--color-surface,#ffffff)] border-2 border-[var(--color-warning,#ff4d00)] text-[var(--color-warning,#ff4d00)] hover:bg-[var(--color-warning,#ff4d00)] hover:text-white",ghost:"bg-transparent text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]"}[a]," ").concat({sm:"h-[var(--control-height-sm)] px-[var(--space-2)] text-[length:var(--font-size-xs)]",md:"h-[var(--control-height-md)] px-[var(--space-3)] text-[length:var(--font-size-sm)]",lg:"h-[var(--control-height-lg)] px-[var(--space-4)] text-[length:var(--font-size-md)]"}[r]," ").concat(d),disabled:i||o,...f,children:[o?(0,t.jsxs)(t.Fragment,{children:[v&&(0,t.jsx)("span",{className:"absolute inset-0 pointer-events-none animate-ticker bg-hazard-stripes opacity-40","aria-hidden":"true"}),(0,t.jsx)(s.A,{className:"animate-spin relative z-[1]",style:{width:x,height:x}})]}):l||null,(0,t.jsx)("span",{className:"relative z-[1]",children:c}),v&&!o&&(0,t.jsx)(n,{})]})},c=e=>{let{label:a,error:r,errorMessage:o,hint:s,leftElement:n,rightElement:l,compact:c=!1,inputRef:i,className:d="",...f}=e,v=a&&a.length>0,x=r&&(o||!o);return(0,t.jsxs)("div",{className:"flex flex-col gap-[var(--space-1)] w-full group ".concat(d),children:[(v||x)&&(0,t.jsxs)("div",{className:"flex justify-between items-end px-[var(--space-1)]",children:[v&&(0,t.jsx)("label",{className:"font-mono text-[length:var(--font-size-xs)] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] group-focus-within:text-[var(--color-text,#0a0a0a)] transition-colors",children:a}),r&&o&&(0,t.jsx)("span",{className:"font-mono text-[length:var(--font-size-xs)] text-[var(--color-danger,#ef4444)] uppercase",children:o}),r&&!o&&(0,t.jsx)("span",{className:"font-mono text-[length:var(--font-size-xs)] text-[var(--color-warning,#ff4d00)] font-bold",children:"ERR_NULL"})]}),(0,t.jsxs)("div",{className:"relative flex",children:[n&&(0,t.jsx)("div",{className:"absolute left-0 top-0 h-full flex items-center pl-[var(--space-2)] pointer-events-none text-[var(--color-text-muted,#6b7280)]",children:n}),(0,t.jsx)("input",{ref:i,className:"\n w-full ".concat(c?"h-[var(--control-height-sm)] text-[length:var(--font-size-xs)]":"h-[calc(var(--control-height-lg)+var(--space-2))] text-[length:var(--font-size-md)]"," bg-[var(--color-background-alt,#f4f4f5)] border outline-none font-mono text-[var(--color-text,#0a0a0a)] placeholder-[var(--color-text-muted,#6b7280)]\n transition-all duration-200\n border-[var(--color-border,#d4d4d8)]\n hover:border-[var(--color-border-muted,#a1a1aa)] hover:bg-[var(--color-surface,#ffffff)]\n focus:border-[var(--color-border-focus,#0a0a0a)] focus:bg-[var(--color-surface,#ffffff)] focus:shadow-[2px_2px_0_rgba(0,0,0,0.08)]\n ").concat(r?"border-[var(--color-danger,#ef4444)]/50 focus:border-[var(--color-danger,#ef4444)] bg-[var(--color-danger,#ef4444)]/5":"","\n ").concat(n?"pl-[calc(var(--space-4)+var(--space-3))]":"px-[var(--space-3)]","\n ").concat(l?"pr-[calc(var(--space-4)+var(--space-4))]":"pr-[var(--space-3)]","\n "),...f}),l&&(0,t.jsx)("div",{className:"absolute right-0 top-0 h-full flex items-center pr-[var(--space-2)]",children:l}),(0,t.jsx)("div",{className:"absolute top-0 right-0 w-1.5 h-1.5 border-t border-r transition-opacity ".concat(r?"border-[var(--color-danger,#ef4444)] opacity-100":"border-[var(--color-border-focus,#0a0a0a)] opacity-0 group-focus-within:opacity-100")}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 w-1.5 h-1.5 border-b border-l transition-opacity ".concat(r?"border-[var(--color-danger,#ef4444)] opacity-100":"border-[var(--color-border-focus,#0a0a0a)] opacity-0 group-focus-within:opacity-100")})]}),s&&(0,t.jsx)("span",{className:"font-mono text-[length:var(--font-size-xs)] text-[var(--color-text-muted,#6b7280)] px-[var(--space-1)]",children:s})]})};var i=r(4033);let d=e=>{let{options:a,value:r,onChange:s,label:n,compact:l=!1,disabled:c=!1,ariaLabel:d,searchable:f=!1,searchPlaceholder:v="Search...",emptyMessage:x="No options found",menuPosition:u="auto"}=e,[m,p]=(0,o.useState)(!1),[h,b]=(0,o.useState)(!1),[g,w]=(0,o.useState)(192),[j,y]=(0,o.useState)(""),N=(0,o.useRef)(null),k=(0,o.useRef)(null),z=a.find(e=>e.value===r),C=(0,o.useMemo)(()=>{if(!f)return a;let e=j.trim().toLowerCase();return e?a.filter(a=>a.label.toLowerCase().includes(e)||a.value.toLowerCase().includes(e)):a},[a,j,f]);return(0,o.useEffect)(()=>{if(!m)return void y("");f&&requestAnimationFrame(()=>{var e;null==(e=k.current)||e.focus()})},[m,f]),(0,t.jsxs)("div",{className:"relative w-full group ".concat(m?"z-50":"z-20"),children:[n&&(0,t.jsx)("label",{className:"block text-[length:var(--font-size-xs)] font-mono font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] mb-[var(--space-1)] px-[var(--space-1)] pointer-events-none",children:n}),(0,t.jsxs)("button",{ref:N,type:"button","aria-label":d,disabled:c,onClick:()=>{if(!c){if(m)return void p(!1);(()=>{var e;let a=null==(e=N.current)?void 0:e.getBoundingClientRect(),r=Number.parseFloat(window.getComputedStyle(document.documentElement).getPropertyValue("--ui-scale-factor"))||1;if(a){let e=Math.round(12*r),t=Math.round(192*r),o=Math.max(0,window.innerHeight-a.bottom-e),s=Math.max(0,a.top-e),n="top"===u||"bottom"!==u&&o<t&&s>o,l=n?s:o;b(n),w(Math.max(0,Math.floor(Math.min(t,l))))}else b("top"===u),w(Math.round(192*r));p(!0)})()}},className:"\n w-full ".concat(l?"h-[var(--control-height-sm)] text-[length:var(--font-size-xs)]":"h-[calc(var(--control-height-lg)+var(--space-2))] text-[length:var(--font-size-md)]"," flex items-center justify-between px-[var(--space-3)] outline-none\n bg-[var(--color-background-alt,#f4f4f5)] border font-mono font-bold tracking-wider text-[var(--color-text,#0a0a0a)]\n transition-all duration-200\n ").concat(c?"opacity-50 cursor-not-allowed":"","\n ").concat(m?"border-[var(--color-border-focus,#0a0a0a)] bg-[var(--color-surface,#ffffff)] shadow-[0_0_0_1px_var(--color-border-muted,#a1a1aa)]":"border-[var(--color-border,#d4d4d8)] hover:border-[var(--color-border-muted,#a1a1aa)] hover:bg-[var(--color-surface,#ffffff)]","\n "),children:[(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-left",children:(null==z?void 0:z.label)||"SELECT"}),(0,t.jsx)(i.A,{className:"shrink-0 transform transition-transform text-[var(--color-text-muted,#6b7280)] group-hover:text-[var(--color-text,#0a0a0a)] ".concat(m?"rotate-180 text-[var(--color-text,#0a0a0a)]":""),style:{width:"var(--font-size-md)",height:"var(--font-size-md)"}})]}),m&&!c&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 w-2 h-2 border-t border-r border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-30"}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 w-2 h-2 border-b border-l border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-30"})]}),m&&!c&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>p(!1)}),(0,t.jsxs)("div",{className:"absolute left-0 w-full bg-[var(--color-surface,#ffffff)] border border-[var(--color-border-focus,#0a0a0a)] shadow-[0_0_0_1px_var(--color-border-muted,#a1a1aa)] overflow-y-auto z-50 ".concat(h?"bottom-full mb-[var(--space-1)]":"top-full mt-[var(--space-1)]"),style:{maxHeight:"".concat(g,"px")},children:[f&&(0,t.jsx)("div",{className:"sticky top-0 bg-[var(--color-surface,#ffffff)] border-b border-[var(--color-border-muted,#e5e5e5)] p-[var(--space-2)]",children:(0,t.jsx)("input",{ref:k,value:j,onChange:e=>y(e.target.value),placeholder:v,className:"w-full h-[var(--control-height-sm)] px-[var(--space-2)] border border-[var(--color-border,#d4d4d8)] font-mono text-[length:var(--font-size-xs)] text-[var(--color-text,#0a0a0a)] bg-[var(--color-background-alt,#f4f4f5)] focus:outline-none focus:border-[var(--color-border-focus,#0a0a0a)]",onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),p(!1))}})}),0===C.length?(0,t.jsx)("div",{className:"px-[var(--space-3)] py-[var(--space-3)] text-[var(--color-text-faint,#9ca3af)] font-mono text-[length:var(--font-size-xs)]",children:x}):C.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{s(e.value),p(!1)},className:"w-full text-left px-[var(--space-3)] py-[var(--space-2)] text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)] font-mono ".concat(l?"text-[length:var(--font-size-xs)]":"text-[length:var(--font-size-sm)]"," border-b border-[var(--color-border-muted,#e5e5e5)] last:border-0 flex items-center gap-[var(--space-2)] group/item"),children:[(0,t.jsx)("div",{className:"w-1.5 h-1.5 flex-shrink-0 ".concat(e.value===r?"bg-[var(--color-text,#0a0a0a)]":"bg-[var(--color-border,#d4d4d8)] group-hover/item:bg-[var(--color-text,#0a0a0a)]")}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.label})]},e.value))]})]})]})};var f=r(7650),v=r(5229);let x=e=>{let{isOpen:a,onClose:r,title:s,subtitle:n,children:l,width:c="md",footerLabel:i=""}=e,[d,x]=(0,o.useState)(!1),[u,m]=(0,o.useState)(!1),[p,h]=(0,o.useState)(!1);if((0,o.useEffect)(()=>{h(!0)},[]),(0,o.useEffect)(()=>{if(a)x(!0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{m(!0)})});else{m(!1);let e=setTimeout(()=>{x(!1)},200);return()=>clearTimeout(e)}},[a]),(0,o.useEffect)(()=>{let e=e=>{"Escape"===e.key&&r()};return a&&window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[a,r]),!d||!p)return null;let b=(0,t.jsxs)("div",{className:"fixed inset-0 z-[110]",onMouseDown:r,"data-testid":"drawer-backdrop",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-black/10"}),(0,t.jsx)("div",{className:"absolute right-0 top-0 h-full overflow-hidden",style:{width:{sm:"min(100vw, calc(320px * var(--ui-scale-factor, 1)))",md:"min(100vw, calc(400px * var(--ui-scale-factor, 1)))",lg:"min(100vw, calc(520px * var(--ui-scale-factor, 1)))",full:"100vw"}[c]},onMouseDown:e=>e.stopPropagation(),children:(0,t.jsxs)("div",{className:"\n h-full bg-[var(--color-surface,#ffffff)] flex flex-col clip-specimen border-mech shadow-mech\n transition-transform duration-200 ease-out\n ".concat(u?"translate-x-0":"translate-x-full","\n "),children:[(0,t.jsxs)("div",{className:"relative border-b border-[var(--color-border,#d4d4d8)]",children:[(0,t.jsx)("div",{className:"absolute top-0 left-0 right-0 h-[2px] bg-hazard-stripes"}),(0,t.jsx)("div",{className:"px-[var(--space-4)] pt-[var(--space-3)] pb-[var(--space-2)]",children:(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"label-specimen-sm text-[var(--color-text-muted,#6b7280)]",children:n||"PANEL"}),(0,t.jsx)("h2",{className:"font-mono font-bold text-[length:var(--font-size-md)] text-[var(--color-text,#0a0a0a)] tracking-tight mt-[2px]",children:s})]}),(0,t.jsx)("button",{onClick:r,"aria-label":"Close drawer",className:"p-[var(--space-1)] hover:bg-[var(--color-background-alt,#f4f4f5)] transition-colors group -mr-[var(--space-1)]",children:(0,t.jsx)(v.A,{className:"text-[var(--color-text-muted,#6b7280)] group-hover:text-[var(--color-text,#0a0a0a)] transition-colors",style:{width:"var(--font-size-md)",height:"var(--font-size-md)"}})})]})})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto p-[var(--space-4)]",children:l}),(0,t.jsx)("div",{className:"px-[var(--space-4)] py-[var(--space-2)] border-t border-[var(--color-border,#d4d4d8)]",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"label-specimen-sm text-[var(--color-text-faint,#9ca3af)]",children:i||""}),(0,t.jsx)("span",{className:"font-mono text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-[0.3em]",children:"|||||||||||"})]})})]})})]});return(0,f.createPortal)(b,document.body)},u=e=>{let{isOpen:a,onClose:r,title:s,subtitle:n,children:l,icon:c,size:i="sm",hideHeader:d=!1,hideTitle:x=!1,contentClassName:u,headerAction:m,headerActionPosition:p="right",footer:h,footerClassName:b,showBottomStripe:g=!0,dismissible:w=!0}=e,[j,y]=(0,o.useState)(!1),[N,k]=(0,o.useState)(!1),[z,C]=(0,o.useState)(!1),E=(0,o.useRef)(null),M=(0,o.useId)();(0,o.useEffect)(()=>(C(!0),()=>C(!1)),[]),(0,o.useEffect)(()=>{a?(y(!0),k(!1)):j&&k(!0)},[a,j]);let A=(0,o.useCallback)(()=>{N&&(y(!1),k(!1))},[N]);(0,o.useEffect)(()=>(j&&!N?document.body.style.overflow="hidden":j||(document.body.style.overflow=""),()=>{document.body.style.overflow=""}),[j,N]),(0,o.useEffect)(()=>{let e=e=>{w&&"Escape"===e.key&&r()};return j&&!N&&window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[j,N,w,r]),(0,o.useEffect)(()=>{var e;if(!j||N)return;let a=E.current;if(!a)return;let r=document.activeElement,t=()=>Array.from(a.querySelectorAll('a[href],button:not([disabled]),textarea:not([disabled]),input:not([disabled]),select:not([disabled]),[tabindex]:not([tabindex="-1"])')).filter(e=>!e.hasAttribute("disabled")&&-1!==e.tabIndex),o=t(),s=o.find(e=>!!e.hasAttribute("autofocus")||["INPUT","TEXTAREA","SELECT"].includes(e.tagName));(null!=(e=null!=s?s:o[0])?e:a).focus();let n=e=>{if("Tab"!==e.key)return;let r=t();if(0===r.length){e.preventDefault(),a.focus();return}let o=r[0],s=r[r.length-1],n=document.activeElement;e.shiftKey?n&&n!==o&&a.contains(n)||(e.preventDefault(),s.focus()):n&&n!==s&&a.contains(n)||(e.preventDefault(),o.focus())};return a.addEventListener("keydown",n),()=>{a.removeEventListener("keydown",n),null==r||r.focus()}},[j,N]);let L=s||n||"System_Message";return j&&z?(0,f.createPortal)((0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"fixed inset-0 z-[120] overflow-y-auto overflow-x-hidden",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-[var(--color-background-alt,#f4f4f5)]/95 ".concat(N?"animate-fade-out":"animate-fade-in"),onClick:w?r:void 0,onAnimationEnd:A,children:(0,t.jsx)("div",{className:"absolute inset-0 opacity-[0.1] bg-[radial-gradient(var(--color-text,#000)_1px,transparent_1px)] bg-[size:3px_3px]"})}),(0,t.jsx)("div",{"data-testid":"modal-dismiss-layer",className:"relative z-10 min-h-full flex items-start sm:items-center justify-center p-[var(--space-3)] sm:p-[var(--space-4)]",onClick:w?r:void 0,children:(0,t.jsxs)("div",{ref:E,role:"dialog","aria-modal":"true","aria-labelledby":!d&&L?M:void 0,tabIndex:-1,className:"w-full max-h-[calc(100vh-2rem)] max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100vh-4rem)] sm:max-h-[calc(100dvh-4rem)] flex flex-col overflow-hidden clip-specimen border-mech bg-[var(--color-surface,#ffffff)] shadow-mech font-mono text-[var(--color-text,#0a0a0a)] corner-marks ".concat(N?"animate-terminal-close":"animate-terminal"),style:{maxWidth:{sm:"min(100%, calc(24rem * var(--ui-scale-factor, 1)))",md:"min(100%, calc(28rem * var(--ui-scale-factor, 1)))",lg:"min(100%, calc(32rem * var(--ui-scale-factor, 1)))"}[i]},onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("div",{className:"absolute top-[-1px] right-[-1px] w-2 h-2 border-t-2 border-r-2 border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-20"}),(0,t.jsx)("div",{className:"absolute bottom-[-1px] left-[-1px] w-2 h-2 border-b-2 border-l-2 border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-20"}),!d&&(0,t.jsxs)("div",{className:"shrink-0 border-b border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface-alt,#fafafa)] px-[var(--space-4)] py-[var(--space-3)] flex items-center justify-between gap-[var(--space-3)]",children:[(0,t.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:["left"===p?m:null,c&&(0,t.jsx)("div",{className:"w-6 h-6 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)] flex items-center justify-center shrink-0",children:c}),(0,t.jsx)("h3",{id:M,className:"font-mono text-[length:var(--font-size-xs)] font-bold text-[var(--color-text-muted,#6b7280)] uppercase tracking-[0.25em]",children:L})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:["left"!==p?m:null,w&&(0,t.jsx)("button",{onClick:r,className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:(0,t.jsx)(v.A,{style:{width:"var(--font-size-md)",height:"var(--font-size-md)"}})})]})]}),(0,t.jsx)("div",{className:"p-[var(--space-6)] flex-1 relative overflow-y-auto overflow-x-hidden min-h-0 ".concat(null!=u?u:""),children:(0,t.jsx)("div",{className:"relative z-10 font-mono text-sm tracking-[0.05em] text-[var(--color-text,#0a0a0a)]",children:l})}),h&&(0,t.jsxs)("div",{className:"shrink-0 border-t border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface-alt,#fafafa)] px-[var(--space-4)] py-2 flex items-center gap-3 ".concat(null!=b?b:""),children:[g&&(0,t.jsx)("div",{className:"h-4 flex-1 bg-[repeating-linear-gradient(90deg,var(--color-text,#000),var(--color-text,#000)_1px,transparent_1px,transparent_3px)] opacity-30"}),(0,t.jsx)("div",{className:"shrink-0",children:h})]})]})})]}),(0,t.jsx)("style",{children:"\n @keyframes terminal-open {\n 0% {\n opacity: 0;\n transform: scaleY(0) scaleX(0.95);\n filter: blur(4px);\n }\n 100% {\n opacity: 1;\n transform: scaleY(1) scaleX(1);\n filter: blur(0);\n }\n }\n @keyframes terminal-close {\n 0% {\n opacity: 1;\n transform: scaleY(1) scaleX(1);\n filter: blur(0);\n }\n 100% {\n opacity: 0;\n transform: scaleY(0) scaleX(0.95);\n filter: blur(4px);\n }\n }\n @keyframes fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n @keyframes fade-out {\n from { opacity: 1; }\n to { opacity: 0; }\n }\n .animate-terminal {\n animation: terminal-open 0.15s cubic-bezier(0.23, 1, 0.32, 1) forwards;\n transform-origin: center;\n }\n .animate-terminal-close {\n animation: terminal-close 0.12s cubic-bezier(0.55, 0, 1, 0.45) forwards;\n transform-origin: center;\n }\n .animate-fade-in {\n animation: fade-in 0.2s ease-out forwards;\n }\n .animate-fade-out {\n animation: fade-out 0.15s ease-in forwards;\n }\n "})]}),document.body):null};var m=r(8661),p=r.n(m);let h=e=>{let{isOpen:a,onClose:r,title:s,children:n,className:l="",anchor:c="right",anchorEl:i}=e,d=(0,o.useRef)(null),[v,x]=(0,o.useState)(null),[u,m]=(0,o.useState)(!1);if((0,o.useEffect)(()=>{m(!0)},[]),(0,o.useEffect)(()=>{if(a&&i){let e=i.getBoundingClientRect(),a=window.innerHeight-e.bottom,r="left"===c?e.left:e.right;a<250?x({bottom:window.innerHeight-e.top+4,left:r}):x({top:e.bottom+4,left:r})}},[a,i,c]),(0,o.useEffect)(()=>{let e=e=>{d.current&&!d.current.contains(e.target)&&r()};return a&&setTimeout(()=>{document.addEventListener("mousedown",e)},0),()=>document.removeEventListener("mousedown",e)},[a,r]),(0,o.useEffect)(()=>{let e=e=>{"Escape"===e.key&&r()};return a&&window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[a,r]),!a)return null;let h=!!i&&u,b=(0,t.jsxs)("div",{ref:d,style:h&&v?{...void 0!==v.top?{top:v.top}:{},...void 0!==v.bottom?{bottom:v.bottom}:{},left:"left"===c?v.left:void 0,right:"right"===c?window.innerWidth-v.left:void 0}:void 0,className:"jsx-25a89afa3a28f8c "+"\n bg-[var(--color-surface)] border border-[var(--color-border-focus,#0a0a0a)] shadow-mech\n min-w-[200px] animate-popover\n ".concat(h?"fixed z-[9999]":"absolute z-50 ".concat("right"===c?"right-0":"left-0"),"\n ").concat(l,"\n "),children:[s&&(0,t.jsxs)("div",{className:"jsx-25a89afa3a28f8c flex items-center justify-between px-[var(--space-3)] py-[var(--space-2)] border-b border-[var(--color-border)]",children:[(0,t.jsx)("span",{className:"jsx-25a89afa3a28f8c text-[length:var(--font-size-xs)] font-mono text-[var(--color-text-muted)] uppercase tracking-widest",children:s}),(0,t.jsxs)("div",{className:"jsx-25a89afa3a28f8c flex gap-[2px]",children:[(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c w-1 h-1 bg-[var(--color-text-muted)]"}),(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c w-1 h-1 bg-[var(--color-border)]"})]})]}),(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c p-[var(--space-3)]",children:n}),(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c absolute top-0 right-0 w-2 h-2 border-t border-r border-[var(--color-border-focus,#0a0a0a)]"}),(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c absolute bottom-0 left-0 w-2 h-2 border-b border-l border-[var(--color-border-focus,#0a0a0a)]"}),(0,t.jsx)(p(),{id:"25a89afa3a28f8c",children:"@keyframes popover-open{0%{opacity:0;transform:translatey(-4px)scale(.98)}100%{opacity:1;transform:translatey(0)scale(1)}}.animate-popover.jsx-25a89afa3a28f8c{animation:popover-open.12s cubic-bezier(.16,1,.3,1)forwards}"})]});return h?(0,f.createPortal)(b,document.body):b};var b=r(2056);let g=e=>{let{isOpen:a,onClose:r,onConfirm:o,title:s,message:n,confirmText:c="CONFIRM",cancelText:i="CANCEL",variant:d="default",loading:f=!1}=e,v={danger:{icon:"text-[var(--color-warning,#ff4d00)]",iconBg:"bg-[var(--color-warning,#ff4d00)]/10",border:"border-[var(--color-warning,#ff4d00)]",buttonVariant:"danger",buttonClassName:""},warning:{icon:"text-[var(--color-warning-alt,#ff9500)]",iconBg:"bg-[var(--color-warning-alt,#ff9500)]/10",border:"border-[var(--color-warning-alt,#ff9500)]",buttonVariant:"secondary",buttonClassName:"!bg-[var(--color-warning-alt,#ff9500)] !text-white !border-[var(--color-warning-alt,#ff9500)] hover:!bg-[var(--color-warning-alt,#ff9500)]/90"},default:{icon:"text-[var(--color-text,#0a0a0a)]",iconBg:"bg-[var(--color-text,#0a0a0a)]/10",border:"border-[var(--color-text,#0a0a0a)]",buttonVariant:"primary",buttonClassName:""}}[d];return(0,t.jsx)(u,{isOpen:a,onClose:r,title:s,icon:(0,t.jsx)(b.A,{style:{width:"var(--font-size-lg)",height:"var(--font-size-lg)"},className:v.icon}),size:"sm",children:(0,t.jsxs)("div",{className:"space-y-[var(--space-4)]",children:[(0,t.jsx)("p",{className:"font-mono text-[length:var(--font-size-sm)] text-[var(--color-text-muted,#6b7280)] leading-relaxed",children:n}),"danger"===d&&(0,t.jsx)("div",{className:"p-[var(--space-3)] ".concat(v.iconBg," border ").concat(v.border," border-dashed"),children:(0,t.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:[(0,t.jsx)(b.A,{style:{width:"var(--font-size-sm)",height:"var(--font-size-sm)"},className:v.icon}),(0,t.jsx)("span",{className:"font-mono text-[length:var(--font-size-sm)] text-[var(--color-text-muted,#6b7280)]",children:"This action cannot be undone."})]})}),(0,t.jsxs)("div",{className:"flex gap-[var(--space-2)] pt-[var(--space-2)]",children:[(0,t.jsx)(l,{onClick:r,disabled:f,variant:"secondary",size:"lg",className:"flex-1",children:i}),(0,t.jsx)(l,{onClick:o,disabled:f,variant:v.buttonVariant,size:"lg",loading:f,className:"flex-1 ".concat(v.buttonClassName),children:f?"PROCESSING...":c})]})]})})},w=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsx)("svg",{width:a,height:a,viewBox:"0 0 111 111",fill:"none",className:r,children:(0,t.jsx)("path",{d:"M54.921 110.034C85.359 110.034 110.034 85.402 110.034 55.017C110.034 24.6319 85.359 0 54.921 0C26.0432 0 2.35281 22.1714 0 50.3923H72.8467V59.6416H0C2.35281 87.8625 26.0432 110.034 54.921 110.034Z",fill:"currentColor"})})},j=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsxs)("svg",{width:a,height:a,viewBox:"0 0 256 417",className:r,children:[(0,t.jsx)("path",{fill:"currentColor",d:"M127.961 0l-2.795 9.5v275.668l2.795 2.79 127.962-75.638z"}),(0,t.jsx)("path",{fill:"currentColor",opacity:"0.6",d:"M127.962 0L0 212.32l127.962 75.639V154.158z"}),(0,t.jsx)("path",{fill:"currentColor",d:"M127.961 312.187l-1.575 1.92v98.199l1.575 4.6L256 236.587z"}),(0,t.jsx)("path",{fill:"currentColor",opacity:"0.6",d:"M127.962 416.905v-104.72L0 236.585z"}),(0,t.jsx)("path",{fill:"currentColor",opacity:"0.8",d:"M127.961 287.958l127.96-75.637-127.96-58.162z"}),(0,t.jsx)("path",{fill:"currentColor",opacity:"0.4",d:"M0 212.32l127.96 75.638v-133.8z"})]})},y=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsx)("svg",{width:a,height:a,viewBox:"0 0 256 256",className:r,children:(0,t.jsx)("path",{fill:"currentColor",d:"M128 0C57.308 0 0 57.308 0 128s57.308 128 128 128 128-57.308 128-128S198.692 0 128 0zm70.56 186.624l-17.856-49.088L128 217.6l-52.704-80.064-17.856 49.088L128 38.4l70.56 148.224z"})})},N=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsxs)("svg",{width:a,height:a,viewBox:"0 0 256 256",className:r,children:[(0,t.jsx)("circle",{cx:"128",cy:"128",r:"128",fill:"currentColor"}),(0,t.jsx)("path",{fill:"white",d:"M81.5 170.5c-11.3 0-20.2-3.2-26.7-9.5-6.5-6.4-9.8-15.3-9.8-26.8 0-14.5 4.2-26.2 12.5-35.2 8.4-9 19.5-13.5 33.3-13.5 11 0 19.7 3.1 26.2 9.4 6.5 6.2 9.7 14.9 9.7 26 0 14.7-4.2 26.6-12.5 35.7-8.3 9-19.4 13.5-33.3 13.5h.6v.4zm3.8-18c7.4 0 13.3-3.1 17.8-9.2 4.5-6.2 6.7-14.3 6.7-24.4 0-6.8-1.5-12-4.6-15.8-3-3.7-7.3-5.6-12.8-5.6-7.4 0-13.4 3.1-17.8 9.3-4.5 6.2-6.7 14.3-6.7 24.3 0 6.8 1.6 12 4.7 15.7 3.1 3.8 7.3 5.7 12.7 5.7z"}),(0,t.jsx)("path",{fill:"white",d:"M137.5 169V87.5h26.3c10.5 0 18.5 2.2 24 6.7 5.5 4.4 8.3 10.8 8.3 19.2 0 8.8-2.9 15.8-8.8 20.8-5.9 5-14.1 7.5-24.6 7.5h-7.8V169h-17.4zm17.4-43.8h5.3c5.2 0 9.1-1.1 11.8-3.4 2.7-2.3 4-5.5 4-9.8 0-3.8-1.2-6.6-3.6-8.6-2.4-2-6-3-10.8-3h-6.7v24.8z"})]})},k=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsx)("svg",{width:a,height:a,viewBox:"0 0 256 256",className:r,children:(0,t.jsx)("path",{fill:"currentColor",d:"M177.1 94.9c-3.5-2-7.8-2-11.3 0l-26.4 15.6-17.9 10.2-26.4 15.6c-3.5 2-7.8 2-11.3 0l-20.7-12.2c-3.5-2-5.7-5.8-5.7-9.8V91.8c0-3.9 2.1-7.7 5.7-9.8l20.5-11.9c3.5-2 7.8-2 11.3 0l20.5 11.9c3.5 2 5.7 5.8 5.7 9.8v15.6l17.9-10.4V81.1c0-3.9-2.1-7.7-5.7-9.8L95.7 47.8c-3.5-2-7.8-2-11.3 0L45.2 71.4c-3.6 2.1-5.7 5.9-5.7 9.8v47.1c0 3.9 2.1 7.7 5.7 9.8l38.8 22.5c3.5 2 7.8 2 11.3 0l26.4-15.4 17.9-10.4 26.4-15.4c3.5-2 7.8-2 11.3 0l20.5 11.9c3.5 2 5.7 5.8 5.7 9.8v22.5c0 3.9-2.1 7.7-5.7 9.8l-20.4 12c-3.5 2-7.8 2-11.3 0l-20.5-11.9c-3.5-2-5.7-5.8-5.7-9.8v-15.4l-17.9 10.4v15.8c0 3.9 2.1 7.7 5.7 9.8l38.8 22.5c3.5 2 7.8 2 11.3 0l38.8-22.5c3.5-2 5.7-5.8 5.7-9.8v-47.3c0-3.9-2.1-7.7-5.7-9.8l-39-22.3z"})})},z=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsxs)("svg",{width:a,height:a,viewBox:"0 0 397 311",className:r,children:[(0,t.jsx)("path",{fill:"currentColor",d:"M64.6 237.9c2.4-2.4 5.7-3.8 9.2-3.8h317.4c5.8 0 8.7 7 4.6 11.1l-62.7 62.7c-2.4 2.4-5.7 3.8-9.2 3.8H6.5c-5.8 0-8.7-7-4.6-11.1l62.7-62.7z"}),(0,t.jsx)("path",{fill:"currentColor",d:"M64.6 3.8C67.1 1.4 70.4 0 73.8 0h317.4c5.8 0 8.7 7 4.6 11.1l-62.7 62.7c-2.4 2.4-5.7 3.8-9.2 3.8H6.5c-5.8 0-8.7-7-4.6-11.1L64.6 3.8z"}),(0,t.jsx)("path",{fill:"currentColor",d:"M333.1 120.1c-2.4-2.4-5.7-3.8-9.2-3.8H6.5c-5.8 0-8.7 7-4.6 11.1l62.7 62.7c2.4 2.4 5.7 3.8 9.2 3.8h317.4c5.8 0 8.7-7 4.6-11.1l-62.7-62.7z"})]})},C=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsxs)("svg",{width:a,height:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:r,children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,t.jsx)("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"}),(0,t.jsx)("path",{d:"M2 12h20"})]})},E=e=>({base:w,ethereum:j,arbitrum:y,optimism:N,polygon:k,solana:z,"solana-devnet":z})[e.toLowerCase()]||C,M={base:"#0052FF",ethereum:"#627EEA",arbitrum:"#28A0F0",optimism:"#FF0420",polygon:"#8247E5"},A=e=>{let{value:a,onChange:r,chains:s,disabled:n=!1,size:l="sm",className:c="",label:d}=e,[v,x]=(0,o.useState)(!1),[u,m]=(0,o.useState)(!1),p=(0,o.useRef)(null),[h,b]=(0,o.useState)(null),g=E(a),w=M[a.toLowerCase()]||"#888",j="sm"===l;return(0,o.useEffect)(()=>{m(!0)},[]),(0,o.useEffect)(()=>{if(v&&p.current){let e=p.current.getBoundingClientRect(),a=Number.parseFloat(window.getComputedStyle(document.documentElement).getPropertyValue("--ui-scale-factor"))||1;b({top:e.bottom+Math.round(4*a),left:e.left,width:Math.max(e.width,100)})}},[v]),(0,t.jsxs)("div",{className:"relative w-full ".concat(c),children:[d&&(0,t.jsx)("label",{className:"block text-[length:var(--font-size-xs)] font-mono font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] mb-[var(--space-1)] px-[var(--space-1)] pointer-events-none",children:d}),(0,t.jsxs)("button",{ref:p,type:"button",onClick:()=>!n&&x(!v),disabled:n,className:"\n w-full ".concat(j?"h-[var(--control-height-sm)] text-[length:var(--font-size-xs)]":"h-[calc(var(--control-height-lg)+var(--space-2))] text-[length:var(--font-size-md)]"," flex items-center justify-between px-[var(--space-2)] outline-none group\n bg-[var(--color-background-alt,#f4f4f5)] border font-mono font-bold tracking-wider text-[var(--color-text,#0a0a0a)]\n transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed\n ").concat(v?"border-[var(--color-border-focus,#0a0a0a)] bg-[var(--color-surface,#ffffff)] shadow-mech":"border-[var(--color-border,#d4d4d8)] hover:border-[var(--color-border-muted,#a1a1aa)] hover:bg-[var(--color-surface,#ffffff)]","\n "),children:[(0,t.jsxs)("span",{className:"flex items-center gap-[var(--space-1)] truncate",children:[(0,t.jsx)("span",{style:{color:w},children:(0,t.jsx)(g,{size:j?10:12})}),(0,t.jsx)("span",{className:"uppercase",children:a})]}),(0,t.jsx)(i.A,{className:"transform transition-transform text-[var(--color-text-muted,#6b7280)] group-hover:text-[var(--color-text,#0a0a0a)] ".concat(v?"rotate-180 text-[var(--color-text,#0a0a0a)]":""),style:{width:j?"var(--font-size-sm)":"var(--font-size-md)",height:j?"var(--font-size-sm)":"var(--font-size-md)"}})]}),v&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 w-2 h-2 border-t border-r border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-30"}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 w-2 h-2 border-b border-l border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-30"})]}),v&&u&&(0,f.createPortal)((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"fixed inset-0 z-[9998]",onClick:()=>x(!1)}),(0,t.jsx)("div",{className:"fixed z-[9999] bg-[var(--color-surface,#ffffff)] border border-[var(--color-border-focus,#0a0a0a)] shadow-mech overflow-y-auto",style:{top:null==h?void 0:h.top,left:null==h?void 0:h.left,width:null==h?void 0:h.width,maxHeight:"calc(12rem * var(--ui-scale-factor, 1))"},children:s.map(e=>{let o=E(e),s=M[e.toLowerCase()]||"#888";return(0,t.jsxs)("button",{type:"button",onClick:()=>{r(e),x(!1)},className:"w-full text-left px-[var(--space-2)] py-[var(--space-2)] text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)] font-mono ".concat(j?"text-[length:var(--font-size-xs)]":"text-[length:var(--font-size-sm)]"," border-b border-[var(--color-border-muted,#e5e5e5)] last:border-0 flex items-center gap-[var(--space-2)] group/item uppercase tracking-wider"),children:[(0,t.jsx)("span",{style:{color:s},children:(0,t.jsx)(o,{size:j?10:12})}),(0,t.jsx)("span",{className:"truncate",children:e}),(0,t.jsx)("div",{className:"ml-auto w-1.5 h-1.5 flex-shrink-0 ".concat(e===a?"bg-[var(--color-text,#0a0a0a)]":"bg-[var(--color-border,#d4d4d8)] group-hover/item:bg-[var(--color-text,#0a0a0a)]")})]},e)})})]}),document.body)]})},L=e=>{let{checked:a,onChange:r,label:o,disabled:s=!1,size:n="md"}=e,l="sm"===n,c=l?"calc(var(--space-4) - var(--space-1))":"calc(var(--space-4) - 2px)";return(0,t.jsxs)("label",{className:"flex items-center gap-[var(--space-2)] ".concat(s?"opacity-50 cursor-not-allowed":"cursor-pointer"),children:[(0,t.jsx)("button",{type:"button",role:"switch","aria-checked":a,disabled:s,onClick:()=>r(!a),className:"\n rounded-full relative transition-colors duration-200 flex-shrink-0\n ".concat(a?"bg-[var(--color-accent,#ccff00)]":"bg-[var(--color-border,#d4d4d8)]","\n ").concat(s?"cursor-not-allowed":"cursor-pointer","\n "),style:{width:l?"calc(var(--space-4) * 2)":"calc(var(--space-4) * 2 + var(--space-2))",height:l?"var(--space-4)":"calc(var(--space-4) + var(--space-1))"},children:(0,t.jsx)("span",{className:"\n rounded-full absolute top-1/2 left-[2px]\n bg-[var(--color-text,#0a0a0a)] transition-transform duration-200\n ",style:{width:c,height:c,transform:a?"translate(".concat(l?"var(--space-4)":"calc(var(--space-4) + var(--space-1))",", -50%)"):"translate(0, -50%)"}})}),o&&(0,t.jsx)("span",{className:"font-mono tracking-widest uppercase text-[length:var(--font-size-xs)] text-[var(--color-text,#0a0a0a)] select-none",children:o})]})};var S=r(5917);let _=e=>{let{options:a,value:r,onChange:o,multi:s=!1,className:n="",disabled:l=!1,ariaLabel:c}=e,i=e=>{if(!l)if(s){let a=Array.isArray(r)?r:[];a.includes(e)?o(a.filter(a=>a!==e)):o([...a,e])}else o(e)};return(0,t.jsxs)("div",{className:"relative clip-specimen-sm border-mech bg-[var(--color-surface,#ffffff)] shadow-mech ".concat(l?"opacity-60":""," ").concat(n),role:s?"group":"radiogroup","aria-label":c,"data-testid":"item-picker",children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 w-2 h-2 border-t border-r border-[var(--color-border-focus,#0a0a0a)] pointer-events-none"}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 w-2 h-2 border-b border-l border-[var(--color-border-focus,#0a0a0a)] pointer-events-none"}),(0,t.jsx)("div",{className:"absolute top-[6px] right-[10px] h-[calc(100%-12px)] w-[14px] opacity-35 pointer-events-none","aria-hidden":"true",style:{backgroundImage:"repeating-linear-gradient(to bottom, var(--color-text-muted,#71717a) 0px, var(--color-text-muted,#71717a) 2px, transparent 2px, transparent 4px)"}}),a.map((e,o)=>{let n=(e=>s&&Array.isArray(r)?r.includes(e):r===e)(e.value),c=e.description?"item-picker-description-".concat(e.value):void 0;return(0,t.jsxs)("div",{role:s?"checkbox":"radio",tabIndex:l?-1:0,"aria-checked":n,"aria-describedby":c,"data-testid":"item-picker-option-".concat(e.value),onClick:()=>i(e.value),onKeyDown:a=>{l||("Enter"===a.key||" "===a.key)&&(a.preventDefault(),i(e.value))},className:"\n group relative flex w-full items-center gap-[var(--space-2)] px-[var(--space-3)] py-[var(--space-2)] pr-[calc(var(--space-4)+12px)] text-left transition-colors\n ".concat(o!==a.length-1?"border-b border-[var(--color-border,#d4d4d8)]":"","\n ").concat(n?"bg-[var(--color-background-alt,#f4f4f5)] text-[var(--color-text,#0a0a0a)] dark:text-[var(--color-text-inverse,#ffffff)]":"bg-[var(--color-surface,#ffffff)] text-[var(--color-text-muted,#6b7280)] hover:bg-[var(--color-background-alt,#f4f4f5)] hover:text-[var(--color-text,#0a0a0a)] dark:text-[var(--color-text-muted-inverse,#a1a1aa)] dark:hover:text-[var(--color-text-inverse,#ffffff)]","\n ").concat(l?"cursor-not-allowed":"cursor-pointer","\n "),children:[(0,t.jsx)("span",{className:"\n relative mt-[1px] flex h-3.5 w-3.5 shrink-0 items-center justify-center border transition-colors\n ".concat(s?"rounded-[1px]":"rounded-full","\n ").concat(n?"border-[var(--color-text,#0a0a0a)] bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)] dark:border-[var(--color-text-inverse,#ffffff)] dark:bg-[var(--color-text-inverse,#ffffff)] dark:text-[var(--color-surface-inverse,#000000)]":"border-[var(--color-border-muted,#a1a1aa)] bg-transparent","\n "),children:n?(0,t.jsx)(S.A,{size:8,strokeWidth:3.5}):null}),(0,t.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,t.jsx)("span",{className:"block font-mono text-[10px] font-bold uppercase tracking-widest leading-none",children:e.label}),e.description?(0,t.jsx)("span",{id:c,className:"mt-1 block font-mono text-[10px] leading-tight text-[var(--color-text-muted,#71717a)] dark:text-[var(--color-text-muted-inverse,#a1a1aa)]",children:e.description}):null]}),e.onQuickAction?(0,t.jsx)("button",{type:"button","data-testid":"item-picker-quick-action-".concat(e.value),"aria-label":e.quickActionLabel||"Quick create ".concat(e.label),onClick:a=>{var r;a.stopPropagation(),null==(r=e.onQuickAction)||r.call(e)},disabled:l,className:"shrink-0 inline-flex h-5 w-5 items-center justify-center border border-[var(--color-border,#d4d4d8)] font-mono text-[10px] leading-none text-[var(--color-text-muted,#71717a)] opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100 group-focus-within:opacity-100 hover:text-[var(--color-text,#0a0a0a)]",children:"+"}):null,e.icon?(0,t.jsx)("span",{className:"shrink-0 ".concat(n?"text-[var(--color-text,#0a0a0a)] dark:text-[var(--color-text-inverse,#ffffff)]":"text-[var(--color-text-muted,#71717a)] group-hover:text-[var(--color-text,#0a0a0a)] dark:text-[var(--color-text-muted-inverse,#a1a1aa)] dark:group-hover:text-[var(--color-text-inverse,#ffffff)]"),children:e.icon}):null]},e.value)})]})},F=e=>{let{title:a,icon:r,isOpen:o,onToggle:s,children:n,tone:l="default",className:c="",headerClassName:d="",contentClassName:f=""}=e,v="warning"===l?"text-[var(--color-warning)]":"text-[var(--color-text-muted)]";return(0,t.jsxs)("div",{className:"bg-[var(--color-surface)] border-mech clip-specimen-sm shadow-mech !rounded-none ".concat(c),children:[(0,t.jsxs)("button",{type:"button",onClick:s,className:"w-full flex items-center justify-between px-4 py-3 bg-transparent hover:bg-[var(--color-background-alt,#f4f4f5)] transition-colors ".concat(d),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[r?(0,t.jsx)("span",{className:v,children:r}):null,(0,t.jsx)("span",{className:"font-mono text-[9px] font-semibold tracking-widest uppercase ".concat(v),children:a})]}),(0,t.jsx)(i.A,{size:12,className:"".concat(v," transition-transform flex-shrink-0 ml-2 ").concat(o?"rotate-180":"")})]}),o&&(0,t.jsx)("div",{className:f,children:n})]})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3826],{3826:(e,t,n)=>{n.r(t),n.d(t,{default:()=>u});var a=n(5155),r=n(2115),o=n(6140),s=n(5299),l=n(4901),c=n(2520),i=n(960);function u(e){let{config:t}=e,n=null==t?void 0:t.appPath,u=null==t?void 0:t._refreshKey,p=(0,r.useRef)(null),[d,f]=(0,r.useState)(null),[m,x]=(0,r.useState)(!1),[h,b]=(0,r.useState)(null),[v,y]=(0,r.useState)(!1),[g,_]=(0,r.useState)(!1),[w,A]=(0,r.useState)(null),[P,j]=(0,r.useState)(!1),[E,N]=(0,r.useState)(null),[k,I]=(0,r.useState)(0),{token:S}=(0,l.A)(),{subscribe:O}=(0,c.h)(),R=(0,r.useRef)(new Map),T=(0,r.useCallback)((e,t)=>{var n,a;null==(a=p.current)||null==(n=a.contentWindow)||n.postMessage({type:"app:data",channel:e,data:t},"*")},[]);(0,r.useEffect)(()=>{if(n)return O("app:emit",e=>{let t=e.data;(null==t?void 0:t.strategyId)===n&&(null==t?void 0:t.channel)&&T(t.channel,t.data)})},[n,O,T]),(0,r.useEffect)(()=>{if(n)return O("strategy:tick",e=>{let t=e.data;if((null==t?void 0:t.strategyId)===n&&(null==t?void 0:t.state)){var a,r;null==(r=p.current)||null==(a=r.contentWindow)||a.postMessage({type:"strategy:state",state:t.state},"*")}})},[n,O]);let D=(0,r.useCallback)(e=>{let t=e.data;if(!t||!t.type)return;let n=p.current;if(n&&e.source===n.contentWindow){if("app:open-url"===t.type&&"string"==typeof t.url)return void window.open(t.url,"_blank","noopener");if("app:subscribe"===t.type&&"string"==typeof t.channel){let e=t.channel;if(R.current.has(e))return;let n=O(e,t=>{T(e,t.data)});R.current.set(e,n)}}},[O,T]);(0,r.useEffect)(()=>(window.addEventListener("message",D),()=>window.removeEventListener("message",D)),[D]),(0,r.useEffect)(()=>{let e=R.current;return()=>{for(let t of e.values())t();e.clear()}},[]),(0,r.useEffect)(()=>{if(!n)return;let e=!1,a=null;return x(!0),b(null),y(!1),A(null),j(!1),N(null),(async()=>{let r=async()=>{if(!e){j(!0);try{let t=await fetch("/api/apps/manifests");if(!t.ok)return;let a=await t.json();if(!a.success||!Array.isArray(a.manifests)||e)return;let r=a.manifests.find(e=>e.id===n);if(!r)return;let o=Array.isArray(r.permissions)?r.permissions.filter(e=>"string"==typeof e):[];N({id:r.id,name:r.name||r.id,permissions:o})}catch(e){}finally{e||j(!1)}}};try{var o;let s,l=await fetch("/api/apps/static/".concat(n,"/index.html")),c=l.ok?await l.text():function(e){let t=e.replace(/</g,"&lt;").replace(/>/g,"&gt;");return'<body>\n <div style="display:flex;flex-direction:column;align-items:center;justify-content:center;\n height:100vh;font-family:ui-monospace,monospace;color:var(--color-text-muted,#6b7280);">\n <div style="font-size:10px;letter-spacing:0.1em;text-transform:uppercase;">'.concat(t,'</div>\n <div style="font-size:8px;margin-top:4px;opacity:0.6;">HEADLESS APP — NO UI</div>\n </div>\n</body>')}((null==t?void 0:t.appName)||n);try{s=await i.FH.get(i.jI.Wallet,"/apps/".concat(n,"/token"))}catch(a){let t=a.status,n=a instanceof Error?a.message:"Failed to fetch app token";if(404===t||n.includes("No token for app")){e||(y(!0),f(null),r());return}throw a}if(e)return;let u=null!=(o=s.token)?o:null;if(!s.success||!u){y(!0),f(null),r();return}let p=function(){let e=[],t=getComputedStyle(document.documentElement);for(let n of["--color-background","--color-background-alt","--color-surface","--color-surface-alt","--color-text","--color-text-muted","--color-text-faint","--color-border","--color-border-muted","--color-border-focus","--color-accent","--color-info","--color-success","--color-warning"]){let a=t.getPropertyValue(n).trim();a&&e.push("".concat(n,": ").concat(a,";"))}return":root { ".concat(e.join(" ")," }")}(),d=function(e,t,n,a){let r=new DOMParser().parseFromString(e,"text/html"),o=[];r.querySelectorAll("style").forEach(e=>{o.push(e.textContent||"")});let s=[];r.querySelectorAll("script").forEach(e=>{!e.src&&e.textContent&&s.push(e.textContent.replace(/<\/script/gi,"<\\/script"))}),r.querySelectorAll("script").forEach(e=>e.remove());let l=r.body.innerHTML,c=a?a.replace(/\\/g,"\\\\").replace(/"/g,'\\"'):"";return'<!DOCTYPE html>\n<html>\n<head>\n<meta charset="utf-8">\n<meta name="viewport" content="width=device-width, initial-scale=1">\n<style>'.concat(t,"</style>\n<style>\n * { margin: 0; padding: 0; box-sizing: border-box; }\n body { font-family: ui-monospace, monospace; overflow: auto; background: var(--color-surface, #fff); color: var(--color-text, #0a0a0a); }\n</style>\n").concat(o.map(e=>"<style>".concat(e,"</style>")).join("\n"),'\n<script>\nwindow.__AURA_TOKEN__ = "').concat(c,'";\nwindow.__AURA_API_BASE__ = "').concat(i.FH.getBaseUrl(i.jI.Wallet),'";\nwindow.__AURA_APP_ID__ = "').concat(n,'";\n<\/script>\n<script>').concat("\n(function() {\n var _callbacks = {};\n var _subscriptions = {};\n var _requestId = 0;\n\n var TOKEN = window.__AURA_TOKEN__ || '';\n var API_BASE = window.__AURA_API_BASE__ || 'http://127.0.0.1:4242';\n var APP_ID = window.__AURA_APP_ID__ || '';\n\n function generateId() {\n return 'req_' + (++_requestId) + '_' + Date.now();\n }\n\n function postToHost(msg) {\n window.parent.postMessage(msg, '*');\n }\n\n function request(type, payload) {\n return new Promise(function(resolve, reject) {\n var id = generateId();\n _callbacks[id] = { resolve: resolve, reject: reject };\n postToHost({ type: type, id: id, payload: payload });\n // Timeout after 30s\n setTimeout(function() {\n if (_callbacks[id]) {\n delete _callbacks[id];\n reject(new Error('Request timed out'));\n }\n }, 30000);\n });\n }\n\n /** Direct fetch to wallet API with Bearer token */\n function apiFetch(method, path, body) {\n var opts = {\n method: method,\n headers: { 'Content-Type': 'application/json' }\n };\n if (TOKEN) {\n opts.headers['Authorization'] = 'Bearer ' + TOKEN;\n }\n if (body !== undefined) {\n opts.body = JSON.stringify(body);\n }\n return fetch(API_BASE + path, opts).then(function(res) {\n return res.json().then(function(data) {\n if (!res.ok) throw new Error(data.error || 'API error ' + res.status);\n return data;\n });\n });\n }\n\n // Listen for messages from host bridge\n window.addEventListener('message', function(event) {\n var msg = event.data;\n if (!msg || !msg.type) return;\n\n // Response to a request\n if (msg.type === 'app:response' && msg.id && _callbacks[msg.id]) {\n var cb = _callbacks[msg.id];\n delete _callbacks[msg.id];\n if (msg.error) {\n cb.reject(new Error(msg.error));\n } else {\n cb.resolve(msg.data);\n }\n return;\n }\n\n // Data push from subscribed channel\n if (msg.type === 'app:data' && msg.channel && _subscriptions[msg.channel]) {\n _subscriptions[msg.channel].forEach(function(fn) {\n try { fn(msg.data); } catch(e) { console.error('Subscription callback error:', e); }\n });\n }\n });\n\n window.AuraApp = {\n send: function(message) {\n return apiFetch('POST', '/apps/' + APP_ID + '/message', { message: message })\n .then(function(data) { return data.reply; });\n },\n\n on: function(channel, callback) {\n if (!_subscriptions[channel]) {\n _subscriptions[channel] = [];\n postToHost({ type: 'app:subscribe', channel: channel });\n }\n _subscriptions[channel].push(callback);\n // Return unsubscribe function\n return function() {\n var subs = _subscriptions[channel];\n if (subs) {\n var idx = subs.indexOf(callback);\n if (idx !== -1) subs.splice(idx, 1);\n }\n };\n },\n\n fetch: function(url, options) {\n return apiFetch('POST', '/apps/' + APP_ID + '/fetch', {\n url: url,\n method: (options && options.method) || 'GET',\n headers: options && options.headers,\n body: options && options.body\n }).then(function(res) { return res.data; });\n },\n\n action: function(params) {\n return apiFetch('POST', '/actions', params);\n },\n\n storage: {\n get: function(key) {\n return apiFetch('GET', '/apps/' + APP_ID + '/storage/' + encodeURIComponent(key))\n .then(function(data) { return data.value; })\n .catch(function(err) {\n // 404 = key not found, return null\n if (err.message && err.message.indexOf('not found') !== -1) return null;\n throw err;\n });\n },\n set: function(key, value) {\n return apiFetch('PUT', '/apps/' + APP_ID + '/storage/' + encodeURIComponent(key), { value: value })\n .then(function(data) { return data.value; });\n },\n delete: function(key) {\n return apiFetch('DELETE', '/apps/' + APP_ID + '/storage/' + encodeURIComponent(key))\n .then(function() { return true; })\n .catch(function(err) {\n if (err.message && err.message.indexOf('not found') !== -1) return false;\n throw err;\n });\n }\n }\n };\n})();\n","<\/script>\n</head>\n<body>\n").concat(l,"\n").concat(s.map(e=>"<script>".concat(e,"<\/script>")).join("\n"),"\n</body>\n</html>")}(c,p,n,u),m=new Blob([d],{type:"text/html"});a=URL.createObjectURL(m),f(a)}catch(t){e||(f(null),b(t instanceof Error?t.message:"Failed to load app"))}finally{e||x(!1)}})(),()=>{e=!0,a&&URL.revokeObjectURL(a)}},[n,u,S,k]);let U=(0,r.useCallback)(async()=>{if(n){_(!0),A(null);try{await i.FH.post(i.jI.Wallet,"/apps/".concat(n,"/approve")),y(!1),I(e=>e+1)}catch(e){A(e instanceof Error?e.message:"Failed to approve app")}finally{_(!1)}}},[n]);return n?m?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[100px]",children:[(0,a.jsx)(s.A,{size:20,className:"animate-spin text-[var(--color-text-faint,#9ca3af)] mb-2"}),(0,a.jsx)("span",{className:"font-mono text-[9px] text-[var(--color-text-muted,#6b7280)]",children:"LOADING APP..."})]}):v?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[100px] p-4",children:[(0,a.jsx)(o.A,{size:20,className:"mb-2 text-[var(--color-text-muted,#6b7280)]"}),(0,a.jsx)("span",{className:"font-mono text-[9px] text-[var(--color-text,#0a0a0a)]",children:"APP APPROVAL REQUIRED"}),(0,a.jsx)("span",{className:"font-mono text-[8px] text-[var(--color-text-muted,#6b7280)] mt-1 text-center",children:"This app needs approval before it can run."}),(0,a.jsxs)("div",{className:"w-full max-w-[280px] mt-3 px-2 py-2 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,a.jsx)("div",{className:"font-mono text-[8px] text-[var(--color-text-muted,#6b7280)]",children:"REQUESTED PERMISSIONS"}),P?(0,a.jsxs)("div",{className:"flex items-center gap-1 mt-1",children:[(0,a.jsx)(s.A,{size:10,className:"animate-spin text-[var(--color-text-faint,#9ca3af)]"}),(0,a.jsx)("span",{className:"font-mono text-[8px] text-[var(--color-text-muted,#6b7280)]",children:"Loading details..."})]}):(null==E?void 0:E.permissions.length)?(0,a.jsx)("div",{className:"mt-1 flex flex-wrap gap-1",children:E.permissions.map(e=>(0,a.jsx)("span",{className:"px-1.5 py-0.5 border border-[var(--color-border,#d4d4d8)] font-mono text-[8px] text-[var(--color-text,#0a0a0a)]",children:e},e))}):(0,a.jsx)("span",{className:"font-mono text-[8px] text-[var(--color-text-muted,#6b7280)]",children:"No explicit permissions listed."})]}),(0,a.jsx)("button",{onClick:()=>void U(),disabled:g,className:"mt-3 px-3 py-2 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)] font-mono text-[9px] tracking-widest text-[var(--color-text,#0a0a0a)] hover:border-[var(--color-border-focus,#0a0a0a)] disabled:opacity-50 disabled:cursor-default",children:g?"APPROVING...":"APPROVE"}),w&&(0,a.jsx)("span",{className:"font-mono text-[8px] text-[var(--color-warning,#ff4d00)] mt-2 text-center",children:w})]}):h?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[100px] p-4",children:[(0,a.jsx)(o.A,{size:20,className:"mb-2 text-[var(--color-warning,#ff4d00)]"}),(0,a.jsx)("span",{className:"font-mono text-[9px] text-[var(--color-warning,#ff4d00)]",children:"FAILED TO LOAD APP"}),(0,a.jsx)("span",{className:"font-mono text-[8px] text-[var(--color-text-muted,#6b7280)] mt-1 text-center",children:h})]}):d?(0,a.jsx)("div",{className:"relative h-full min-h-[100px]",children:(0,a.jsx)("iframe",{ref:p,src:d,sandbox:"allow-scripts allow-popups allow-popups-outside-sandbox",title:(null==t?void 0:t.appName)||n,className:"w-full h-full border-0",style:{minHeight:"100px"}})}):null:(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center h-full min-h-[100px] text-[var(--color-text-muted,#6b7280)]",children:[(0,a.jsx)(o.A,{size:24,className:"mb-2"}),(0,a.jsx)("span",{className:"font-mono text-xs",children:"NO APP CONFIGURED"}),(0,a.jsx)("span",{className:"font-mono text-[9px] text-[var(--color-text-faint,#9ca3af)] mt-1",children:"Set config.appPath to load a app"})]})}},5299:(e,t,n)=>{n.d(t,{A:()=>a});let a=(0,n(1847).A)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4256],{4256:(e,t,o)=>{o.r(t),o.d(t,{default:()=>m});var a=o(5155),s=o(2115),l=o(2056),n=o(8561),r=o(8678),c=o(9794),i=o(3667),d=o(4901);let x=["base","ethereum","arbitrum","optimism","polygon","solana"],p=["function name() view returns (string)","function symbol() view returns (string)","function decimals() view returns (uint8)","function totalSupply() view returns (uint256)"];function m(e){let{config:t}=e,{getRpcUrl:o}=(0,d.A)(),[m,u]=(0,s.useState)((null==t?void 0:t.defaultChain)||"base"),[f,h]=(0,s.useState)((null==t?void 0:t.defaultAddress)||""),[v,y]=(0,s.useState)(!1),[b,j]=(0,s.useState)(null),[N,g]=(0,s.useState)(null),w=async()=>{let e=f.trim();if(e){y(!0),j(null),g(null);try{var t,a,s,l,i;let d=/^0x[a-fA-F0-9]{40}$/.test(e)||/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(e),x=[];if(d){let o=await fetch("https://api.dexscreener.com/latest/dex/pairs/".concat(m,"/").concat(e));if(o.ok){let e=await o.json();(null==(t=e.pairs)?void 0:t.length)&&(x=e.pairs)}if(0===x.length){let t=await fetch("https://api.dexscreener.com/latest/dex/tokens/".concat(e));t.ok&&(x=(await t.json()).pairs||[])}}if(0===x.length){let t=await fetch("https://api.dexscreener.com/latest/dex/search?q=".concat(encodeURIComponent(e)));t.ok&&(x=(await t.json()).pairs||[])}if(x.length>0){let e=function(e,t){let o=e.filter(e=>e.chainId===t);return o.length>0?o.sort((e,t)=>{var o,a;return((null==(o=t.liquidity)?void 0:o.usd)||0)-((null==(a=e.liquidity)?void 0:a.usd)||0)})[0]:[...e].sort((e,t)=>{var o,a;return((null==(o=t.liquidity)?void 0:o.usd)||0)-((null==(a=e.liquidity)?void 0:a.usd)||0)})[0]}(x,m);g({name:(null==(a=e.baseToken)?void 0:a.name)||"Unknown",symbol:(null==(s=e.baseToken)?void 0:s.symbol)||"???",priceUsd:e.priceUsd||"0",fdv:e.fdv||0,volume24h:(null==(l=e.volume)?void 0:l.h24)||0,priceChange24h:(null==(i=e.priceChange)?void 0:i.h24)||0,pairAddress:e.pairAddress,chain:e.chainId||m,source:"dex"});return}if(!/^0x[a-fA-F0-9]{40}$/.test(e)||"solana"===m)throw Error("No data found — try a contract address");let u=o(m),f=new n.FR(u),h=new r.NZ(e,p,f),[v,y,b,j]=await Promise.all([h.name().catch(()=>"Unknown"),h.symbol().catch(()=>"???"),h.decimals().catch(()=>18),h.totalSupply().catch(()=>BigInt(0))]),N=c.Js(j,b);g({name:v,symbol:y,priceUsd:"0",fdv:0,volume24h:0,priceChange24h:0,pairAddress:"",chain:m,totalSupply:N,decimals:b,source:"rpc"})}catch(e){j(e instanceof Error?e.message:"Failed to fetch token data")}finally{y(!1)}}},k=e=>e>=1e9?"$".concat((e/1e9).toFixed(2),"B"):e>=1e6?"$".concat((e/1e6).toFixed(2),"M"):e>=1e3?"$".concat((e/1e3).toFixed(2),"K"):"$".concat(e.toFixed(2)),C=N&&N.priceChange24h>=0?"var(--color-success, #00c853)":"var(--color-warning, #ff4d00)";return(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsx)(i.XS,{label:"CHAIN",value:m,onChange:u,chains:x,size:"sm"}),(0,a.jsx)(i.ks,{label:"TOKEN",value:f,onChange:e=>h(e.target.value),onKeyDown:e=>"Enter"===e.key&&w(),placeholder:"token, pool, or name",compact:!0}),(0,a.jsx)(i.$n,{type:"button",onClick:w,disabled:v||!f.trim(),loading:v,className:"w-full",children:v?"LOADING...":"LOAD"}),b&&(0,a.jsx)("div",{className:"p-2",style:{backgroundColor:"color-mix(in srgb, var(--color-warning, #ff4d00) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--color-warning, #ff4d00) 30%, transparent)"},children:(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(l.A,{size:10,style:{color:"var(--color-warning, #ff4d00)"}}),(0,a.jsx)("span",{className:"font-mono text-[9px]",style:{color:"var(--color-warning, #ff4d00)"},children:b})]})}),N&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"p-2",style:{backgroundColor:"var(--color-background-alt, #f4f4f5)",border:"1px solid var(--color-border, #d4d4d8)"},children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,a.jsx)("span",{className:"font-mono text-[11px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:N.name}),(0,a.jsx)("span",{className:"font-mono text-[9px] font-bold",style:{color:"var(--color-text-muted, #6b7280)"},children:N.symbol})]}),"dex"===N.source&&(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("span",{className:"font-mono text-[13px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:["$",parseFloat(N.priceUsd).toFixed(.01>parseFloat(N.priceUsd)?8:4)]}),(0,a.jsxs)("span",{className:"font-mono text-[10px] font-bold",style:{color:C},children:[N.priceChange24h>=0?"+":"",N.priceChange24h.toFixed(2),"%"]})]}),"rpc"===N.source&&(0,a.jsx)("div",{className:"font-mono text-[8px]",style:{color:"var(--color-text-faint, #9ca3af)"},children:"ON-CHAIN ONLY — NO DEX DATA"})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:["dex"===N.source&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"MKT_CAP"}),(0,a.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:k(N.fdv)})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"VOL_24H"}),(0,a.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:k(N.volume24h)})]})]}),"rpc"===N.source&&N.totalSupply&&(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"SUPPLY"}),(0,a.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:parseFloat(N.totalSupply)>=1e9?"".concat((parseFloat(N.totalSupply)/1e9).toFixed(2),"B"):parseFloat(N.totalSupply)>=1e6?"".concat((parseFloat(N.totalSupply)/1e6).toFixed(2),"M"):parseFloat(N.totalSupply).toLocaleString()})]}),"rpc"===N.source&&void 0!==N.decimals&&(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"DECIMALS"}),(0,a.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:N.decimals})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"font-mono text-[9px]",style:{color:"var(--color-text-muted, #888)"},children:"CHAIN"}),(0,a.jsx)("span",{className:"font-mono text-[10px] font-bold",style:{color:"var(--color-text, #0a0a0a)"},children:N.chain.toUpperCase()})]})]}),"dex"===N.source&&N.pairAddress&&(0,a.jsx)("div",{style:{border:"1px solid var(--color-border, #d4d4d8)",height:200,overflow:"hidden"},children:(0,a.jsx)("iframe",{src:"https://dexscreener.com/".concat(N.chain,"/").concat(N.pairAddress,"?embed=1&theme=dark&info=0&trades=0"),title:"Price Chart",width:"100%",height:"100%",style:{border:"none"}})})]})]})}}}]);