panoma 0.1.2 → 0.1.4

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 (203) hide show
  1. package/app/BUILD-INFO.json +2 -2
  2. package/app/apps/web/.next-bundle/BUILD_ID +1 -1
  3. package/app/apps/web/.next-bundle/app-build-manifest.json +129 -129
  4. package/app/apps/web/.next-bundle/app-path-routes-manifest.json +31 -31
  5. package/app/apps/web/.next-bundle/build-manifest.json +2 -2
  6. package/app/apps/web/.next-bundle/prerender-manifest.json +9 -9
  7. package/app/apps/web/.next-bundle/server/app/(app)/agents/page.js +1 -1
  8. package/app/apps/web/.next-bundle/server/app/(app)/agents/page_client-reference-manifest.js +1 -1
  9. package/app/apps/web/.next-bundle/server/app/(app)/ai/page.js +1 -1
  10. package/app/apps/web/.next-bundle/server/app/(app)/ai/page_client-reference-manifest.js +1 -1
  11. package/app/apps/web/.next-bundle/server/app/(app)/bridge/page.js +1 -1
  12. package/app/apps/web/.next-bundle/server/app/(app)/bridge/page_client-reference-manifest.js +1 -1
  13. package/app/apps/web/.next-bundle/server/app/(app)/copies/page.js +1 -1
  14. package/app/apps/web/.next-bundle/server/app/(app)/copies/page_client-reference-manifest.js +1 -1
  15. package/app/apps/web/.next-bundle/server/app/(app)/credentials/page.js +1 -1
  16. package/app/apps/web/.next-bundle/server/app/(app)/credentials/page_client-reference-manifest.js +1 -1
  17. package/app/apps/web/.next-bundle/server/app/(app)/disk/page.js +1 -1
  18. package/app/apps/web/.next-bundle/server/app/(app)/disk/page_client-reference-manifest.js +1 -1
  19. package/app/apps/web/.next-bundle/server/app/(app)/hidden/page.js +1 -1
  20. package/app/apps/web/.next-bundle/server/app/(app)/hidden/page_client-reference-manifest.js +1 -1
  21. package/app/apps/web/.next-bundle/server/app/(app)/p/[slug]/page.js +2 -2
  22. package/app/apps/web/.next-bundle/server/app/(app)/p/[slug]/page_client-reference-manifest.js +1 -1
  23. package/app/apps/web/.next-bundle/server/app/(app)/packages/page.js +1 -1
  24. package/app/apps/web/.next-bundle/server/app/(app)/packages/page_client-reference-manifest.js +1 -1
  25. package/app/apps/web/.next-bundle/server/app/(app)/page.js +1 -1
  26. package/app/apps/web/.next-bundle/server/app/(app)/page_client-reference-manifest.js +1 -1
  27. package/app/apps/web/.next-bundle/server/app/(app)/runs/[id]/page.js +1 -1
  28. package/app/apps/web/.next-bundle/server/app/(app)/runs/[id]/page_client-reference-manifest.js +1 -1
  29. package/app/apps/web/.next-bundle/server/app/(app)/runs/page.js +1 -1
  30. package/app/apps/web/.next-bundle/server/app/(app)/runs/page_client-reference-manifest.js +1 -1
  31. package/app/apps/web/.next-bundle/server/app/(app)/search/page.js +1 -1
  32. package/app/apps/web/.next-bundle/server/app/(app)/search/page_client-reference-manifest.js +1 -1
  33. package/app/apps/web/.next-bundle/server/app/(app)/twin/look/page.js +1 -1
  34. package/app/apps/web/.next-bundle/server/app/(app)/twin/look/page_client-reference-manifest.js +1 -1
  35. package/app/apps/web/.next-bundle/server/app/(app)/twin/page.js +2 -2
  36. package/app/apps/web/.next-bundle/server/app/(app)/twin/page_client-reference-manifest.js +1 -1
  37. package/app/apps/web/.next-bundle/server/app/(app)/unsaved/page_client-reference-manifest.js +1 -1
  38. package/app/apps/web/.next-bundle/server/app/_not-found/page_client-reference-manifest.js +1 -1
  39. package/app/apps/web/.next-bundle/server/app/api/accounts/route.js +1 -1
  40. package/app/apps/web/.next-bundle/server/app/api/accounts/route_client-reference-manifest.js +1 -1
  41. package/app/apps/web/.next-bundle/server/app/api/agent/consult/route_client-reference-manifest.js +1 -1
  42. package/app/apps/web/.next-bundle/server/app/api/agent/context/route_client-reference-manifest.js +1 -1
  43. package/app/apps/web/.next-bundle/server/app/api/agent/journal/route_client-reference-manifest.js +1 -1
  44. package/app/apps/web/.next-bundle/server/app/api/agent/keys/route.js +1 -1
  45. package/app/apps/web/.next-bundle/server/app/api/agent/keys/route_client-reference-manifest.js +1 -1
  46. package/app/apps/web/.next-bundle/server/app/api/agent/log/route_client-reference-manifest.js +1 -1
  47. package/app/apps/web/.next-bundle/server/app/api/agent/mcp/route.js +1 -1
  48. package/app/apps/web/.next-bundle/server/app/api/agent/mcp/route_client-reference-manifest.js +1 -1
  49. package/app/apps/web/.next-bundle/server/app/api/agent/notes/route.js +1 -1
  50. package/app/apps/web/.next-bundle/server/app/api/agent/notes/route_client-reference-manifest.js +1 -1
  51. package/app/apps/web/.next-bundle/server/app/api/agent/tasks/[id]/route_client-reference-manifest.js +1 -1
  52. package/app/apps/web/.next-bundle/server/app/api/agent/tasks/route_client-reference-manifest.js +1 -1
  53. package/app/apps/web/.next-bundle/server/app/api/ai/route.js +1 -1
  54. package/app/apps/web/.next-bundle/server/app/api/ai/route_client-reference-manifest.js +1 -1
  55. package/app/apps/web/.next-bundle/server/app/api/assets/route.js +1 -1
  56. package/app/apps/web/.next-bundle/server/app/api/assets/route_client-reference-manifest.js +1 -1
  57. package/app/apps/web/.next-bundle/server/app/api/assignments/launch/route_client-reference-manifest.js +1 -1
  58. package/app/apps/web/.next-bundle/server/app/api/assignments/route.js +1 -1
  59. package/app/apps/web/.next-bundle/server/app/api/assignments/route_client-reference-manifest.js +1 -1
  60. package/app/apps/web/.next-bundle/server/app/api/catalog/route.js +1 -1
  61. package/app/apps/web/.next-bundle/server/app/api/catalog/route_client-reference-manifest.js +1 -1
  62. package/app/apps/web/.next-bundle/server/app/api/check/route_client-reference-manifest.js +1 -1
  63. package/app/apps/web/.next-bundle/server/app/api/consultations/route.js +1 -1
  64. package/app/apps/web/.next-bundle/server/app/api/consultations/route_client-reference-manifest.js +1 -1
  65. package/app/apps/web/.next-bundle/server/app/api/describe/route.js +2 -2
  66. package/app/apps/web/.next-bundle/server/app/api/describe/route_client-reference-manifest.js +1 -1
  67. package/app/apps/web/.next-bundle/server/app/api/disk/route.js +1 -1
  68. package/app/apps/web/.next-bundle/server/app/api/disk/route_client-reference-manifest.js +1 -1
  69. package/app/apps/web/.next-bundle/server/app/api/enrich/route.js +1 -1
  70. package/app/apps/web/.next-bundle/server/app/api/enrich/route_client-reference-manifest.js +1 -1
  71. package/app/apps/web/.next-bundle/server/app/api/environment/route.js +2 -2
  72. package/app/apps/web/.next-bundle/server/app/api/environment/route_client-reference-manifest.js +1 -1
  73. package/app/apps/web/.next-bundle/server/app/api/hooks/route.js +1 -1
  74. package/app/apps/web/.next-bundle/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  75. package/app/apps/web/.next-bundle/server/app/api/ingest/route.js +1 -1
  76. package/app/apps/web/.next-bundle/server/app/api/ingest/route_client-reference-manifest.js +1 -1
  77. package/app/apps/web/.next-bundle/server/app/api/md/apply/route.js +1 -1
  78. package/app/apps/web/.next-bundle/server/app/api/md/apply/route_client-reference-manifest.js +1 -1
  79. package/app/apps/web/.next-bundle/server/app/api/md/context/route.js +1 -1
  80. package/app/apps/web/.next-bundle/server/app/api/md/context/route_client-reference-manifest.js +1 -1
  81. package/app/apps/web/.next-bundle/server/app/api/md/inspect/route.js +1 -1
  82. package/app/apps/web/.next-bundle/server/app/api/md/inspect/route_client-reference-manifest.js +1 -1
  83. package/app/apps/web/.next-bundle/server/app/api/md/repair/route.js +1 -1
  84. package/app/apps/web/.next-bundle/server/app/api/md/repair/route_client-reference-manifest.js +1 -1
  85. package/app/apps/web/.next-bundle/server/app/api/md/review/route.js +2 -2
  86. package/app/apps/web/.next-bundle/server/app/api/md/review/route_client-reference-manifest.js +1 -1
  87. package/app/apps/web/.next-bundle/server/app/api/north/route.js +1 -1
  88. package/app/apps/web/.next-bundle/server/app/api/north/route_client-reference-manifest.js +1 -1
  89. package/app/apps/web/.next-bundle/server/app/api/notes/route.js +1 -1
  90. package/app/apps/web/.next-bundle/server/app/api/notes/route_client-reference-manifest.js +1 -1
  91. package/app/apps/web/.next-bundle/server/app/api/open/route_client-reference-manifest.js +1 -1
  92. package/app/apps/web/.next-bundle/server/app/api/project/route.js +1 -1
  93. package/app/apps/web/.next-bundle/server/app/api/project/route_client-reference-manifest.js +1 -1
  94. package/app/apps/web/.next-bundle/server/app/api/rescan/route.js +1 -1
  95. package/app/apps/web/.next-bundle/server/app/api/rescan/route_client-reference-manifest.js +1 -1
  96. package/app/apps/web/.next-bundle/server/app/api/roots/route.js +1 -1
  97. package/app/apps/web/.next-bundle/server/app/api/roots/route_client-reference-manifest.js +1 -1
  98. package/app/apps/web/.next-bundle/server/app/api/runs/[id]/route_client-reference-manifest.js +1 -1
  99. package/app/apps/web/.next-bundle/server/app/api/runs/route.js +1 -1
  100. package/app/apps/web/.next-bundle/server/app/api/runs/route_client-reference-manifest.js +1 -1
  101. package/app/apps/web/.next-bundle/server/app/api/scale/route.js +1 -1
  102. package/app/apps/web/.next-bundle/server/app/api/scale/route_client-reference-manifest.js +1 -1
  103. package/app/apps/web/.next-bundle/server/app/api/search/route.js +1 -1
  104. package/app/apps/web/.next-bundle/server/app/api/search/route_client-reference-manifest.js +1 -1
  105. package/app/apps/web/.next-bundle/server/app/api/secrets/route.js +1 -1
  106. package/app/apps/web/.next-bundle/server/app/api/secrets/route_client-reference-manifest.js +1 -1
  107. package/app/apps/web/.next-bundle/server/app/api/tasks/route.js +1 -1
  108. package/app/apps/web/.next-bundle/server/app/api/tasks/route_client-reference-manifest.js +1 -1
  109. package/app/apps/web/.next-bundle/server/app/api/today/route.js +1 -1
  110. package/app/apps/web/.next-bundle/server/app/api/today/route_client-reference-manifest.js +1 -1
  111. package/app/apps/web/.next-bundle/server/app/api/twin/assign/route.js +1 -1
  112. package/app/apps/web/.next-bundle/server/app/api/twin/assign/route_client-reference-manifest.js +1 -1
  113. package/app/apps/web/.next-bundle/server/app/api/twin/classify/route.js +1 -1
  114. package/app/apps/web/.next-bundle/server/app/api/twin/classify/route_client-reference-manifest.js +1 -1
  115. package/app/apps/web/.next-bundle/server/app/api/twin/critique/route.js +1 -1
  116. package/app/apps/web/.next-bundle/server/app/api/twin/critique/route_client-reference-manifest.js +1 -1
  117. package/app/apps/web/.next-bundle/server/app/api/twin/design/route.js +1 -1
  118. package/app/apps/web/.next-bundle/server/app/api/twin/design/route_client-reference-manifest.js +1 -1
  119. package/app/apps/web/.next-bundle/server/app/api/twin/distill/route.js +1 -1
  120. package/app/apps/web/.next-bundle/server/app/api/twin/distill/route_client-reference-manifest.js +1 -1
  121. package/app/apps/web/.next-bundle/server/app/api/twin/look/route.js +1 -1
  122. package/app/apps/web/.next-bundle/server/app/api/twin/look/route_client-reference-manifest.js +1 -1
  123. package/app/apps/web/.next-bundle/server/app/api/twin/mine/route.js +1 -1
  124. package/app/apps/web/.next-bundle/server/app/api/twin/mine/route_client-reference-manifest.js +1 -1
  125. package/app/apps/web/.next-bundle/server/app/api/twin/score/route.js +1 -1
  126. package/app/apps/web/.next-bundle/server/app/api/twin/score/route_client-reference-manifest.js +1 -1
  127. package/app/apps/web/.next-bundle/server/app/api/twin/shot/route.js +1 -1
  128. package/app/apps/web/.next-bundle/server/app/api/twin/shot/route_client-reference-manifest.js +1 -1
  129. package/app/apps/web/.next-bundle/server/app/api/twin/sources/route.js +1 -1
  130. package/app/apps/web/.next-bundle/server/app/api/twin/sources/route_client-reference-manifest.js +1 -1
  131. package/app/apps/web/.next-bundle/server/app/api/twin/synthesize/route.js +1 -1
  132. package/app/apps/web/.next-bundle/server/app/api/twin/synthesize/route_client-reference-manifest.js +1 -1
  133. package/app/apps/web/.next-bundle/server/app/api/twin/taste/route.js +1 -1
  134. package/app/apps/web/.next-bundle/server/app/api/twin/taste/route_client-reference-manifest.js +1 -1
  135. package/app/apps/web/.next-bundle/server/app/api/twin/verdicts/route.js +1 -1
  136. package/app/apps/web/.next-bundle/server/app/api/twin/verdicts/route_client-reference-manifest.js +1 -1
  137. package/app/apps/web/.next-bundle/server/app/api/watch/route.js +1 -1
  138. package/app/apps/web/.next-bundle/server/app/api/watch/route_client-reference-manifest.js +1 -1
  139. package/app/apps/web/.next-bundle/server/app/icon/[id]/route_client-reference-manifest.js +1 -1
  140. package/app/apps/web/.next-bundle/server/app-paths-manifest.json +31 -31
  141. package/app/apps/web/.next-bundle/server/chunks/174.js +3 -0
  142. package/app/apps/web/.next-bundle/server/chunks/2930.js +1 -1
  143. package/app/apps/web/.next-bundle/server/chunks/3377.js +1 -0
  144. package/app/apps/web/.next-bundle/server/chunks/3677.js +1 -1
  145. package/app/apps/web/.next-bundle/server/chunks/4289.js +1 -1
  146. package/app/apps/web/.next-bundle/server/chunks/6790.js +3 -1
  147. package/app/apps/web/.next-bundle/server/chunks/7276.js +1 -1
  148. package/app/apps/web/.next-bundle/server/chunks/7876.js +1 -0
  149. package/app/apps/web/.next-bundle/server/functions-config-manifest.json +10 -10
  150. package/app/apps/web/.next-bundle/server/middleware-manifest.json +5 -5
  151. package/app/apps/web/.next-bundle/server/pages/500.html +1 -1
  152. package/app/apps/web/.next-bundle/server/server-reference-manifest.json +1 -1
  153. package/app/apps/web/.next-bundle/static/chunks/4517-63995539421e71bd.js +1 -0
  154. package/app/apps/web/.next-bundle/static/chunks/7911-ef388a0052b1e0f6.js +1 -0
  155. package/app/apps/web/.next-bundle/static/chunks/app/(app)/agents/page-cdb332736d2b75f9.js +1 -0
  156. package/app/apps/web/.next-bundle/static/chunks/app/(app)/ai/page-60083a1b6a36c928.js +1 -0
  157. package/app/apps/web/.next-bundle/static/chunks/app/(app)/bridge/page-95d7d92ca0b30f20.js +1 -0
  158. package/app/apps/web/.next-bundle/static/chunks/app/(app)/credentials/page-e87253842975daa4.js +1 -0
  159. package/app/apps/web/.next-bundle/static/chunks/app/(app)/disk/page-15cd72dc04ac7de4.js +1 -0
  160. package/app/apps/web/.next-bundle/static/chunks/app/(app)/error-7a9266f6e98936d9.js +1 -0
  161. package/app/apps/web/.next-bundle/static/chunks/app/(app)/hidden/page-4e81219b6c5aeb2a.js +1 -0
  162. package/app/apps/web/.next-bundle/static/chunks/app/(app)/layout-20c619e7c3b1eb97.js +1 -0
  163. package/app/apps/web/.next-bundle/static/chunks/app/(app)/p/[slug]/page-630a1079cd683bad.js +1 -0
  164. package/app/apps/web/.next-bundle/static/chunks/app/(app)/page-bd415d39f80a6370.js +1 -0
  165. package/app/apps/web/.next-bundle/static/chunks/app/(app)/runs/[id]/page-572f84e2016be38a.js +1 -0
  166. package/app/apps/web/.next-bundle/static/chunks/app/(app)/search/page-6e94501b5e36f4b1.js +1 -0
  167. package/app/apps/web/.next-bundle/static/chunks/app/(app)/twin/look/page-8e24b1b376cbdab8.js +1 -0
  168. package/app/apps/web/.next-bundle/static/chunks/app/(app)/twin/page-4d6804060b9830ff.js +1 -0
  169. package/app/node_modules/@panoma/db/dist/index.d.ts +10 -0
  170. package/app/node_modules/@panoma/db/dist/index.js +9 -0
  171. package/dist/{ai-command-XQGHWOY5.js → ai-command-U5V5SDJW.js} +1 -1
  172. package/dist/{check-command-2SZH5KYN.js → check-command-64DBJGYM.js} +3 -3
  173. package/dist/{chunk-JLPWKPLM.js → chunk-3WPD5CHL.js} +1 -1
  174. package/dist/{chunk-ELBBRUIH.js → chunk-FJATGEPD.js} +2 -2
  175. package/dist/{chunk-4ZMDIOH5.js → chunk-JMXXTMGV.js} +2 -2
  176. package/dist/{chunk-VP225OGF.js → chunk-KNPE4SJG.js} +8 -2
  177. package/dist/index.js +11 -11
  178. package/dist/{md-command-76RMDZKU.js → md-command-73QAVNOP.js} +2 -2
  179. package/dist/{next-command-KUHZCZPR.js → next-command-OQWKUMAH.js} +3 -3
  180. package/dist/{north-command-VRD6EQP6.js → north-command-7AVYNCB4.js} +3 -3
  181. package/dist/{review-command-ILJVQMZU.js → review-command-A6V3A5XG.js} +1 -1
  182. package/dist/{twin-command-XJEJ6453.js → twin-command-WSVMZWGC.js} +8 -4
  183. package/npm-shrinkwrap.json +2 -2
  184. package/package.json +1 -1
  185. package/app/apps/web/.next-bundle/server/chunks/5656.js +0 -3
  186. package/app/apps/web/.next-bundle/static/chunks/4517-194aeb1d92d9e4a0.js +0 -1
  187. package/app/apps/web/.next-bundle/static/chunks/7911-22e5c2227cd664f0.js +0 -1
  188. package/app/apps/web/.next-bundle/static/chunks/app/(app)/agents/page-5a6085ab51fd1c22.js +0 -1
  189. package/app/apps/web/.next-bundle/static/chunks/app/(app)/ai/page-ce796543295ea5b8.js +0 -1
  190. package/app/apps/web/.next-bundle/static/chunks/app/(app)/bridge/page-76f2bf4a1a914234.js +0 -1
  191. package/app/apps/web/.next-bundle/static/chunks/app/(app)/credentials/page-4febc07fcac150cd.js +0 -1
  192. package/app/apps/web/.next-bundle/static/chunks/app/(app)/disk/page-3a16dd5767b06f7a.js +0 -1
  193. package/app/apps/web/.next-bundle/static/chunks/app/(app)/error-1352ba2a30039af8.js +0 -1
  194. package/app/apps/web/.next-bundle/static/chunks/app/(app)/hidden/page-cd4dbfd609fee48f.js +0 -1
  195. package/app/apps/web/.next-bundle/static/chunks/app/(app)/layout-d7eece5b47fcac36.js +0 -1
  196. package/app/apps/web/.next-bundle/static/chunks/app/(app)/p/[slug]/page-d8ef4c62b6098da0.js +0 -1
  197. package/app/apps/web/.next-bundle/static/chunks/app/(app)/page-ae8edd375818c9f6.js +0 -1
  198. package/app/apps/web/.next-bundle/static/chunks/app/(app)/runs/[id]/page-7e0f3effeada2264.js +0 -1
  199. package/app/apps/web/.next-bundle/static/chunks/app/(app)/search/page-9c45c680651305fd.js +0 -1
  200. package/app/apps/web/.next-bundle/static/chunks/app/(app)/twin/look/page-1c57d8dce043fb1f.js +0 -1
  201. package/app/apps/web/.next-bundle/static/chunks/app/(app)/twin/page-e1434054df4e5d66.js +0 -1
  202. /package/app/apps/web/.next-bundle/static/{EAuc0Br8TdDur7GG5w5XO → MxyyXPIWuSeoVRswq6wUi}/_buildManifest.js +0 -0
  203. /package/app/apps/web/.next-bundle/static/{EAuc0Br8TdDur7GG5w5XO → MxyyXPIWuSeoVRswq6wUi}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[822],{179:(e,t,n)=>{"use strict";n.d(t,{I18nProvider:()=>s,Ym:()=>c,Zs:()=>d,kj:()=>u});var a=n(9763),r=n(4963),o=n(7911);let i=(0,r.createContext)("en"),l=(0,r.createContext)("panoma");function s(e){let{locale:t,cli:n,children:r}=e;return(0,a.jsx)(i.Provider,{value:t,children:(0,a.jsx)(l.Provider,{value:n,children:r})})}function c(){return(0,r.useContext)(i)}function d(){return(0,r.useContext)(l)}function u(){let e=(0,r.useContext)(i),t=(0,r.useContext)(l);return(0,r.useCallback)((n,a)=>(0,o.t)(e,n,{cli:t,...a}),[e,t])}},3530:(e,t,n)=>{"use strict";n.d(t,{AiPanel:()=>u});var a=n(9763),r=n(4963),o=n(5595),i=n(179);function l(e,t,n){return 0===n?-1:e<0?t>0?0:n-1:(e+t+n)%n}var s=n(8010),c=n(4204);let d={env:"ai.sourceEnv",file:"ai.sourceFile","agent-session":"ai.sourceAgent",login:"ai.sourceLogin"};function u(){var e,t;let n=(0,i.kj)(),[o,l]=(0,r.useState)(null),[s,u]=(0,r.useState)(null),[p,b]=(0,r.useState)(null),[h,g]=(0,r.useState)(null),[v,y]=(0,r.useState)(!1),[j,w]=(0,r.useState)(!1),N=(0,r.useRef)(!0),k=(0,r.useRef)(null);(0,r.useEffect)(()=>(N.current=!0,()=>{var e;N.current=!1,null==(e=k.current)||e.abort()}),[]);let C=(0,r.useCallback)(async()=>{w(!1);let e=window.setTimeout(()=>{N.current&&w(!0)},6e3);try{var t;let e=await fetch("/api/ai",{signal:AbortSignal.timeout(3e4)}),a=await e.json().catch(()=>null);if(!N.current)return;let r=function(e,t){let n=t&&"object"==typeof t?t:void 0,a="string"==typeof(null==n?void 0:n.error)?n.error:void 0;return e.ok&&Array.isArray(null==n?void 0:n.agents)?{kind:"state",state:n}:{kind:"error",text:a}}(e,a);if("state"===r.kind){l(r.state),g(null);return}let o=null!=(t=r.text)?t:n("ai.loadFailed",{status:e.status});g(o),b({text:o,bad:!0})}catch(t){if(!N.current)return;let e=t instanceof DOMException&&"TimeoutError"===t.name?n("ai.loadTimeout"):n("task.unreachable");g(e),b({text:e,bad:!0})}finally{window.clearTimeout(e),N.current&&w(!1)}},[n]);async function O(e,t){if(s)return null;u(e),b(null);try{let e=await fetch("/api/ai",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=await e.json().catch(()=>({}));if(!e.ok){var a;return b({text:[null!=(a=r.error)?a:n("ai.failed"),r.hint].filter(Boolean).join(" "),bad:!0}),null}return await C(),r}catch(e){return b({text:n("task.unreachable"),bad:!0}),null}finally{u(null)}}async function S(e,t){await O("usar:".concat(e),{action:"usar",provider:e})&&b({text:n("ai.nowUsing",{name:t}),bad:!1})}async function E(){let e=await O("probar",{action:"probar"});if(e){var t,a;b({text:n("ai.testOk",{model:String(null!=(t=e.model)?t:""),s:(Number(null!=(a=e.ms)?a:0)/1e3).toFixed(1)}),bad:!1})}}async function P(e,t){let a=await O("entrar:".concat(e),{action:"entrar",provider:e});if(!(null==a?void 0:a.url))return;window.open(String(a.url),"_blank","noopener,noreferrer"),u("entrar:".concat(e)),b({text:n("ai.loginWaiting",{name:t}),bad:!1});let r=Date.now()+36e4;for(k.current=new AbortController;N.current&&Date.now()<r;){let e;if(await new Promise(e=>setTimeout(e,1500)),!N.current)return;try{let t=await fetch("/api/ai",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"entrar-estado"}),signal:k.current.signal});e=await t.json()}catch(e){continue}if("ready"===e.state){u(null),await C(),b({text:n("ai.loginDone",{name:t}),bad:!1});return}if("error"===e.state||"none"===e.state){var o;u(null),b({text:null!=(o=e.error)?o:n("ai.loginFailed"),bad:!0});return}}N.current&&(u(null),b({text:n("ai.loginTimeout"),bad:!0}))}async function D(e,t){await O("modelo",{action:"usar",provider:e,model:t})&&b({text:t.trim()?n("ai.modelSaved",{model:t.trim()}):n("ai.modelCleared"),bad:!1})}async function _(e){let t=await O("olvidar:".concat(e),{action:"olvidar",provider:e});if(t){let e=t.stillInEnv;b({text:e?n("ai.forgottenButEnv",{var:String(e)}):n("ai.forgotten"),bad:!1})}}if((0,r.useEffect)(()=>{C()},[C]),!o)return h?(0,a.jsxs)("div",{className:"mt-10",children:[(0,a.jsx)("p",{role:"status",className:"font-mono text-[11px] leading-relaxed text-fail",children:h}),(0,a.jsx)("button",{type:"button",onClick:()=>{y(!0),C().finally(()=>{N.current&&y(!1)})},disabled:v,className:"mt-3 rounded border border-edge bg-raised px-2 py-0.5 font-mono text-[10px] text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",children:n(v?"ai.retrying":"ai.retry")})]}):(0,a.jsx)("p",{role:"status",className:"mt-10 font-mono text-[11px] text-faint",children:j?n("ai.loadingSlow"):n("ai.loading")});if(o.remote)return(0,a.jsx)("section",{className:"mt-10 rounded-lg border border-edge bg-surface p-6",children:(0,a.jsx)("p",{className:"text-sm text-smoke",children:n("ai.remote")})});if(o.broken)return(0,a.jsxs)("section",{className:"mt-10 rounded-lg border border-edge bg-surface p-6",children:[(0,a.jsx)("h2",{className:"text-sm font-semibold text-chalk",children:n("ai.brokenTitle")}),(0,a.jsx)("pre",{className:"mt-3 overflow-x-auto whitespace-pre-wrap rounded border border-edge bg-raised p-4 font-mono text-[11px] leading-relaxed text-smoke",children:o.broken})]});let{active:T}=o;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("section",{className:"mt-10 rounded-lg border border-edge bg-surface p-5",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-3",children:[(0,a.jsx)("h2",{className:"eyebrow",children:n("ai.activeTitle")}),T&&!T.problem&&(0,a.jsx)(c.rA,{tone:"raised",type:"button",onClick:E,busy:"probar"===s,busyLabel:n("ai.testing"),disabled:null!==s,children:n("ai.test")})]}),T?(0,a.jsxs)("div",{className:"mt-3",children:[(0,a.jsxs)("p",{className:"flex flex-wrap items-baseline gap-x-2 text-sm",children:[(0,a.jsx)("span",{"aria-hidden":!0,className:"inline-block h-2 w-2 rounded-full ".concat(T.problem?"bg-idle":"bg-live")}),(0,a.jsx)("strong",{className:"font-semibold text-chalk",children:T.name}),(0,a.jsx)("span",{className:"font-mono text-[11px] text-faint",children:null!=(e=T.model)?e:n("ai.defaultModel")})]}),T.problem?(0,a.jsx)("p",{className:"mt-1.5 font-mono text-[11px] leading-relaxed text-idle",children:T.problem}):T.source&&(0,a.jsx)("p",{className:"mt-1.5 font-mono text-[11px] text-faint",children:T.masked?n("ai.sourceKey",{source:n(d[T.source]),key:T.masked}):n(d[T.source])}),(0,a.jsx)(m,{active:T,busy:null!==s,saving:"modelo"===s,onSave:e=>D(T.id,e)},"".concat(T.id,":").concat(null!=(t=T.model)?t:""))]}):(0,a.jsx)("p",{className:"mt-3 text-sm text-smoke",children:n("ai.none")}),p&&(0,a.jsx)("p",{className:"mt-3 font-mono text-[11px] leading-relaxed ".concat(p.bad?"text-fail":"text-faint"),children:p.text})]}),(0,a.jsxs)("section",{className:"mt-8",children:[(0,a.jsx)("h2",{className:"eyebrow border-b border-edge pb-2",children:n("ai.subscriptionTitle")}),(0,a.jsx)("p",{className:"mt-3 max-w-2xl text-xs leading-relaxed text-smoke",children:n("ai.subscriptionNote")}),(0,a.jsxs)("ul",{className:"mt-4 space-y-2",children:[o.sessions.map(e=>(0,a.jsxs)("li",{className:"flex flex-wrap items-center gap-x-4 gap-y-2 rounded-lg border border-edge bg-surface p-4",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("p",{className:"flex flex-wrap items-baseline gap-x-2",children:[(0,a.jsx)("strong",{className:"text-sm font-semibold text-chalk",children:e.name}),(0,a.jsxs)("span",{className:"font-mono text-[11px] text-faint",children:[e.connected?n("ai.connected"):n("ai.notConnected"),e.defaultModel&&" \xb7 ".concat(e.defaultModel)]})]}),(0,a.jsx)("p",{className:"mt-0.5 text-xs leading-relaxed text-faint",children:e.description})]}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,a.jsx)(c.rA,{tone:"raised",type:"button",onClick:()=>P(e.id,e.name),busy:s==="entrar:".concat(e.id),busyLabel:n("ai.loggingIn"),disabled:null!==s,children:n(e.connected?"ai.loginAgain":"ai.login")}),e.connected&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(f,{active:e.active,can:!0,busy:null!==s,loading:s==="usar:".concat(e.id),onChoose:()=>S(e.id,e.name)}),(0,a.jsx)("button",{type:"button",onClick:()=>_(e.id),disabled:null!==s,className:"font-mono text-[11px] text-faint transition-colors hover:text-fail disabled:opacity-50",children:n("ai.logout")})]})]})]},e.id)),o.agents.map(e=>{var t;return(0,a.jsxs)("li",{className:"flex flex-wrap items-center gap-x-4 gap-y-2 rounded-lg border border-edge bg-surface p-4",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("p",{className:"flex flex-wrap items-baseline gap-x-2",children:[(0,a.jsx)("strong",{className:"text-sm font-semibold text-chalk",children:e.name}),(0,a.jsx)("span",{className:"font-mono text-[11px] text-faint",children:e.installed?null!=(t=e.version)?t:n("ai.installed"):n("ai.notInstalled",{command:e.command})})]}),(0,a.jsx)("p",{className:"mt-0.5 text-xs leading-relaxed text-faint",children:e.description})]}),(0,a.jsx)(f,{active:e.active,can:e.installed,busy:null!==s,loading:s==="usar:".concat(e.id),onChoose:()=>S(e.id,e.name)})]},e.id)})]})]}),(0,a.jsxs)("section",{className:"mt-8",children:[(0,a.jsx)("h2",{className:"eyebrow border-b border-edge pb-2",children:n("ai.keysTitle")}),(0,a.jsx)("ul",{className:"mt-4 space-y-2",children:o.keys.map(e=>(0,a.jsx)(x,{entry:e,busy:s,onSave:t=>O("clave:".concat(e.id),{action:"clave",provider:e.id,key:t}),onForget:()=>_(e.id),onUsar:()=>S(e.id,e.name)},e.id))})]}),(0,a.jsx)("p",{className:"mt-10 max-w-2xl font-mono text-[11px] leading-relaxed text-faint",children:n("ai.fileNote",{path:o.path})})]})}function m(e){var t,n;let{active:d,busy:u,saving:m,onSave:x}=e,f=(0,i.kj)(),[p,b]=(0,r.useState)(null!=(t=d.model)?t:""),[h,g]=(0,r.useState)(null),[v,y]=(0,r.useState)(!1),[j,w]=(0,r.useState)(!1),[N,k]=(0,r.useState)(!1),[C,O]=(0,r.useState)(null),[S,E]=(0,r.useState)(-1),P=(0,r.useRef)(null),D=(0,r.useRef)(null),_=null!=h?h:d.models,T=function(e,t){if(null===t)return e;let n=t.trim().toLowerCase();return n?e.filter(e=>e.toLowerCase().includes(n)):e}(_,C),L="models-".concat(d.id),M=p.trim()!==(null!=(n=d.model)?n:"").trim();function A(e){var t;b(e),O(null),E(-1),k(!1),null==(t=D.current)||t.focus()}async function F(){y(!0),w(!1);try{var e;let t=await fetch("/api/ai",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"modelos",provider:d.id})}),n=await t.json();(null==(e=n.models)?void 0:e.length)?(g(n.models),O(null),E(-1),k(!0)):w(!0)}catch(e){w(!0)}finally{y(!1)}}return(0,s.y)(P,N,()=>k(!1)),(0,a.jsxs)("form",{onSubmit:e=>{e.preventDefault(),!u&&M&&x(p)},className:"mt-3 border-t border-edge pt-3",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("label",{htmlFor:"model-".concat(d.id),className:"font-mono text-[11px] text-faint",children:f("ai.modelLabel")}),(0,a.jsxs)("div",{className:"model-picker",ref:P,children:[(0,a.jsx)("input",{id:"model-".concat(d.id),ref:D,role:"combobox","aria-expanded":N,"aria-controls":L,"aria-autocomplete":"list","aria-activedescendant":N&&S>=0?"".concat(L,"-").concat(S):void 0,autoComplete:"off",value:p,onChange:e=>{b(e.target.value),O(e.target.value),E(-1),k(!0)},onKeyDown:function(e){if("ArrowDown"===e.key||"ArrowUp"===e.key){e.preventDefault();let t="ArrowDown"===e.key?1:-1;if(!N){O(null),k(!0),E(l(-1,t,_.length));return}E(l(S,t,T.length));return}if("Enter"===e.key&&N&&S>=0){e.preventDefault();let t=T[S];t&&A(t);return}"Escape"===e.key&&N&&(e.preventDefault(),k(!1),E(-1))},placeholder:f("ai.modelPlaceholder"),spellCheck:!1,className:"model-picker__field font-mono text-xs text-chalk placeholder:text-faint"}),(0,a.jsx)("button",{type:"button",className:"model-picker__toggle","aria-label":f("ai.modelsOpen"),"aria-expanded":N,"aria-controls":L,disabled:0===_.length,title:0===_.length?f("ai.modelsEmpty"):void 0,onClick:()=>{var e;let t=!N;O(null),E(-1),k(t),t&&(null==(e=D.current)||e.focus())},children:(0,a.jsx)(o.zKo,{"aria-hidden":!0})}),N&&(0,a.jsx)("ul",{id:L,role:"listbox","aria-label":f("ai.modelsOpen"),className:"model-picker__list",children:0===T.length?(0,a.jsx)("li",{className:"model-picker__empty",children:f("ai.modelsNoMatch")}):T.map((e,t)=>{var n;return(0,a.jsxs)("li",{id:"".concat(L,"-").concat(t),role:"option","aria-selected":e===p,className:"model-picker__item".concat(t===S?" is-highlighted":""),onMouseDown:e=>e.preventDefault(),onMouseEnter:()=>E(t),onClick:()=>A(e),children:[(0,a.jsx)("span",{className:"model-picker__name",children:e}),e===(null!=(n=d.model)?n:"")&&(0,a.jsx)("span",{className:"model-picker__tag",children:f("ai.inUse")})]},e)})})]}),(0,a.jsx)("button",{type:"button",onClick:F,disabled:u||v,className:"rounded border border-edge bg-raised px-3 py-1.5 font-mono text-[11px] text-faint transition-colors hover:border-accent hover:text-accent disabled:opacity-50",children:f(v?"ai.modelsLoading":"ai.modelsFetch")}),(0,a.jsx)(c.rA,{tone:"raised",type:"submit",busy:m,busyLabel:f("ai.saving"),disabled:u||!M,children:f("ai.save")})]}),(0,a.jsx)("p",{className:"mt-1.5 font-mono text-[11px] text-faint",children:h?f("ai.modelsLive",{n:h.length}):j?f("ai.modelsNone"):0===_.length?f("ai.modelsEmpty"):f("ai.modelsHint",{n:_.length})}),d.redirected&&(0,a.jsx)("p",{className:"mt-1 font-mono text-[11px] text-idle",children:f("ai.redirected")})]})}function x(e){var t;let{entry:n,busy:l,onSave:s,onForget:d,onUsar:u}=e,m=(0,i.kj)(),[x,p]=(0,r.useState)("");async function b(e){e.preventDefault();let t=x.trim();t&&!l&&(p(""),await s(t))}let h=n.fromEnv?m("ai.fromEnv",{var:n.fromEnv}):n.masked?m("ai.stored",{key:n.masked}):m("ai.noKey");return(0,a.jsxs)("li",{className:"rounded-lg border border-edge bg-surface p-4",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-start gap-x-4 gap-y-2",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("p",{className:"flex flex-wrap items-baseline gap-x-2",children:[(0,a.jsx)("strong",{className:"text-sm font-semibold text-chalk",children:n.name}),(0,a.jsx)("span",{className:"font-mono text-[11px] text-faint",children:h})]}),(0,a.jsxs)("p",{className:"mt-0.5 text-xs leading-relaxed text-faint",children:[n.description,n.defaultModel&&" \xb7 ".concat(n.defaultModel)]})]}),(0,a.jsx)(f,{active:n.active,can:!!(n.fromEnv||n.masked),busy:null!==l,loading:l==="usar:".concat(n.id),onChoose:u})]}),(0,a.jsxs)("form",{onSubmit:b,className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,a.jsx)("input",{type:"password",value:x,onChange:e=>p(e.target.value),autoComplete:"off",spellCheck:!1,maxLength:500,placeholder:null!=(t=n.envVars[0])?t:m("ai.keyPlaceholder"),"aria-label":m("ai.keyLabel",{name:n.name}),className:"min-w-0 flex-1 rounded border border-edge bg-raised px-2.5 py-1.5 font-mono text-xs text-chalk placeholder:text-faint focus:border-accent focus:outline-none"}),(0,a.jsx)(c.rA,{tone:"raised",type:"submit",busy:l==="clave:".concat(n.id),busyLabel:m("ai.saving"),disabled:null!==l||!x.trim(),children:m("ai.save")}),n.masked&&(0,a.jsx)("button",{type:"button",onClick:d,disabled:null!==l,className:"font-mono text-[11px] text-faint transition-colors hover:text-fail disabled:opacity-50",children:m("ai.forget")}),n.signupUrl&&(0,a.jsxs)("a",{href:n.signupUrl,target:"_blank",rel:"noreferrer noopener",className:"inline-flex items-center gap-1 font-mono text-[11px] text-faint transition-colors hover:text-accent",children:[m("ai.getKey")," ",(0,a.jsx)(o.r9I,{"aria-hidden":!0})]})]})]})}function f(e){let{active:t,can:n,busy:r,loading:l,onChoose:s}=e,c=(0,i.kj)();return t?(0,a.jsxs)("span",{className:"inline-flex shrink-0 items-center gap-1 rounded border border-edge bg-raised px-3 py-1.5 font-mono text-[11px] text-faint",children:[(0,a.jsx)(o.mmf,{"aria-hidden":!0})," ",c("ai.inUse")]}):(0,a.jsx)("button",{type:"button",onClick:s,disabled:r||!n,title:n?void 0:c("ai.cantUse"),className:"shrink-0 rounded border border-edge bg-raised px-3 py-1.5 font-mono text-[11px] text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-40",children:c(l?"ai.choosing":"ai.choose")})}},4204:(e,t,n)=>{"use strict";n.d(t,{rA:()=>m,lZ:()=>d,hV:()=>c,z3:()=>s.z,Pp:()=>i,KW:()=>l});var a=n(9763),r=n(5595),o=n(7911);function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"es";if(!e)return"—";let n=Math.floor((Date.now()-new Date(e).getTime())/864e5);if("en"===t){if(n<=0)return"today";if(1===n)return"yesterday";if(n<30)return"".concat(n," d ago");if(n<365){let e=Math.floor(n/30);return"".concat(e," month").concat(1===e?"":"s"," ago")}let e=Math.floor(n/365);return"".concat(e," year").concat(1===e?"":"s"," ago")}if(n<=0)return"hoy";if(1===n)return"ayer";if(n<30)return"hace ".concat(n," d");if(n<365){let e=Math.floor(n/30);return"hace ".concat(e," ").concat(1===e?"mes":"meses")}let a=Math.floor(n/365);return"hace ".concat(a," a\xf1o").concat(1===a?"":"s")}function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"es",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),a=n-new Date(e).getTime();if(!Number.isFinite(a))return"—";let r="en"===t;if(a<6e4)return r?"just now":"ahora mismo";if(a<36e5){let e=Math.floor(a/6e4);return r?"".concat(e," min ago"):"hace ".concat(e," min")}if(a<1728e5){let e=Math.floor(a/36e5);return r?"".concat(e," h ago"):"hace ".concat(e," h")}return i(e,t)}var s=n(7642);function c(e){let{name:t,src:n,size:i=56,tone:l="brand",locale:s}=e,c="panoma"===t.toLowerCase(),d="demo-runner"===t.toLowerCase()?"/assets/projects/demo-runner.png":null,u=c?"/assets/brand/panoma.svg":null!=n?n:d;return u?(0,a.jsx)("img",{src:u,loading:"lazy",alt:(0,o.t)(s,"common.iconOf",{name:t}),width:i,height:i,className:"shrink-0 rounded-[22%] border border-edge object-cover shadow-sm",style:{width:i,height:i}}):(0,a.jsx)("span",{"aria-hidden":!0,className:"flex shrink-0 items-center justify-center rounded-[22%] border border-edge ".concat("neutral"===l?"project-icon--neutral":"bg-raised text-accent"),style:{width:i,height:i},children:(0,a.jsx)(r.KQe,{style:{width:.46*i,height:.46*i}})})}function d(e){let{text:t,as:n="p",className:r}=e;return(0,a.jsx)(n,{role:"alert",className:"font-mono text-[11px] text-fail".concat(r?" ".concat(r):""),children:t})}let u={raised:"rounded border border-edge bg-raised px-3 py-1.5 font-mono text-[11px] text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",surface:"rounded border border-edge bg-surface px-3 py-1.5 font-mono text-xs text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",plain:"rounded border border-edge px-2.5 py-1 font-mono text-xs text-smoke transition-colors hover:border-chalk disabled:opacity-50",accent:"rounded border border-accent bg-accent px-3 py-1.5 font-mono text-xs text-white transition-opacity hover:opacity-85 disabled:opacity-50"};function m(e){let{tone:t,busy:n=!1,busyLabel:r,disabled:o,className:i,children:l,...s}=e;return(0,a.jsx)("button",{...s,disabled:null!=o?o:n,className:"".concat(u[t]).concat(i?" ".concat(i):""),children:n&&void 0!==r?r:l})}},4305:(e,t,n)=>{Promise.resolve().then(n.bind(n,3530))},4652:(e,t,n)=>{"use strict";n.d(t,{k5:()=>d});var a=n(4963),r={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},o=a.createContext&&a.createContext(r),i=["attr","size","title"];function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(null,arguments)}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach(function(t){var a,r,o;a=e,r=t,o=n[t],(r=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,t||"default");if("object"!=typeof a)return a;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(r))in a?Object.defineProperty(a,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):a[r]=o}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function d(e){return t=>a.createElement(u,l({attr:c({},e.attr)},t),function e(t){return t&&t.map((t,n)=>a.createElement(t.tag,c({key:n},t.attr),e(t.child)))}(e.child))}function u(e){var t=t=>{var n,r=e.attr,o=e.size,s=e.title,d=function(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n={};for(var a in e)if(({}).hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;n[a]=e[a]}return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,i),u=o||t.size||"1em";return t.className&&(n=t.className),e.className&&(n=(n?n+" ":"")+e.className),a.createElement("svg",l({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,r,d,{className:n,style:c(c({color:e.color||t.color},t.style),e.style),height:u,width:u,xmlns:"http://www.w3.org/2000/svg"}),s&&a.createElement("title",null,s),e.children)};return void 0!==o?a.createElement(o.Consumer,null,e=>t(e)):t(r)}},7642:(e,t,n)=>{"use strict";function a(e){return e<1024?"".concat(e," B"):e<1048576?"".concat(Math.round(e/1024)," KB"):e<0x40000000?"".concat((e/1048576).toFixed(1)," MB"):"".concat((e/0x40000000).toFixed(1)," GB")}n.d(t,{z:()=>a})},8010:(e,t,n)=>{"use strict";n.d(t,{y:()=>r});var a=n(4963);function r(e,t,n){let r=(0,a.useRef)(n);(0,a.useEffect)(()=>{r.current=n}),(0,a.useEffect)(()=>{if(!t)return;let n=t=>{var n;(null==(n=e.current)?void 0:n.contains(t.target))||r.current("outside")},a=e=>{"Escape"===e.key&&r.current("escape")};return window.addEventListener("pointerdown",n),window.addEventListener("keydown",a),()=>{window.removeEventListener("pointerdown",n),window.removeEventListener("keydown",a)}},[e,t])}}},e=>{e.O(0,[6587,7911,9643,4737,7358],()=>e(e.s=4305)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2657],{179:(e,t,n)=>{"use strict";n.d(t,{I18nProvider:()=>l,Ym:()=>d,Zs:()=>c,kj:()=>u});var s=n(9763),a=n(4963),i=n(7911);let o=(0,a.createContext)("en"),r=(0,a.createContext)("panoma");function l(e){let{locale:t,cli:n,children:a}=e;return(0,s.jsx)(o.Provider,{value:t,children:(0,s.jsx)(r.Provider,{value:n,children:a})})}function d(){return(0,a.useContext)(o)}function c(){return(0,a.useContext)(r)}function u(){let e=(0,a.useContext)(o),t=(0,a.useContext)(r);return(0,a.useCallback)((n,s)=>(0,i.t)(e,n,{cli:t,...s}),[e,t])}},2695:(e,t,n)=>{"use strict";n.d(t,{BridgeSteps:()=>d});var s=n(9763),a=n(4963),i=n(1723),o=n.n(i),r=n(7244),l=n(179);function d(e){let{report:t,steps:n}=e,i=(0,l.kj)(),d=(0,l.Zs)(),c=(0,r.useRouter)(),[u,x]=(0,a.useState)(null),[h,p]=(0,a.useState)(!1),[g,m]=(0,a.useState)(null),[,b]=(0,a.useTransition)();async function f(){if(!h){p(!0),m(null);try{var e,t,n,s,a;let o=await fetch("/api/hooks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})}),r=await o.json().catch(()=>({}));o.ok?(m(i("bridge.hooksDone",{installed:String(null!=(e=r.installed)?e:0),noRepo:String(null!=(t=r.noRepo)?t:0),foreign:String(null!=(n=r.foreign)?n:0),failed:String(null!=(s=r.failed)?s:0)})),b(()=>c.refresh())):m(null!=(a=r.error)?a:i("bridge.hooksNoCli"))}catch(e){m(i("bridge.hooksNoCli"))}finally{p(!1)}}}async function k(e){try{await navigator.clipboard.writeText(e),x(e),setTimeout(()=>x(null),1600)}catch(e){}}function j(e){return"done"===e?"text-accent":"next"===e?"text-chalk":"text-faint"}let N={catalog:"".concat(d," up ~/Desktop"),agent:"".concat(d,' agent-key "Claude Code" --install'),hooks:"".concat(d," hooks --install")},v={model:"/ai",agent:"/agents"};return(0,s.jsx)("ol",{className:"mt-6 space-y-4",children:n.map(e=>{var n,a,r;return(0,s.jsxs)("li",{className:"flex gap-3 rounded-lg border border-edge bg-surface p-4",children:[(0,s.jsx)("span",{className:"font-mono text-sm ".concat(j(e.state)),"aria-hidden":!0,children:"done"===(r=e.state)?"✓":"next"===r?"→":"\xb7"}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-2",children:[(0,s.jsx)("h3",{className:"text-sm font-semibold ".concat(j(e.state)),children:i("bridge.step.".concat(e.id,".title"))}),(0,s.jsx)("span",{className:"font-mono text-[10px] text-faint",children:i("bridge.step.".concat(e.id,".detail"),{count:String(e.detail.count),total:String(null!=(n=e.detail.total)?n:"")})})]}),"hooks"===e.id&&t.hooks.installed<t.hooks.checked&&(0,s.jsxs)("div",{className:"mt-1.5 space-y-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>void f(),disabled:h,className:"rounded border border-accent px-3 py-1.5 text-xs font-semibold text-accent hover:bg-raised disabled:opacity-60",children:h?i("bridge.step.hooks.installing"):i("bridge.step.hooks.install")}),g&&(0,s.jsx)("p",{className:"text-[11px] leading-relaxed text-smoke",children:g})]}),"done"!==e.state&&(0,s.jsxs)("div",{className:"mt-1.5 space-y-2",children:[(0,s.jsx)("p",{className:"text-xs leading-relaxed text-smoke",children:i("agent"===e.id&&t.agents.keys>0?"bridge.step.agent.keyUnused":"bridge.step.".concat(e.id,".pending"))}),"next"===e.state&&N[e.id]&&(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:["hooks"===e.id&&(0,s.jsx)("span",{className:"text-[11px] text-faint",children:i("bridge.hooksAlt")}),(0,s.jsx)("code",{className:"rounded border border-edge bg-raised px-2 py-1 font-mono text-[11px] text-chalk",children:N[e.id]}),(0,s.jsx)("button",{type:"button",onClick:()=>{var t;k(null!=(t=N[e.id])?t:"")},className:"rounded border border-edge px-2 py-1 text-[11px] text-smoke hover:text-chalk",children:u===N[e.id]?i("bridge.copied"):i("bridge.copy")})]}),"next"===e.state&&v[e.id]&&(0,s.jsx)(o(),{href:null!=(a=v[e.id])?a:"/",className:"inline-block text-xs text-accent underline-offset-2 hover:underline",children:i("bridge.step.".concat(e.id,".go"))}),"next"===e.state&&("agent"===e.id||"hooks"===e.id)&&(0,s.jsx)("p",{className:"text-[11px] leading-relaxed text-faint",children:i("bridge.restartHint")})]})]})]},e.id)})})}},7244:(e,t,n)=>{"use strict";var s=n(3292);n.o(s,"usePathname")&&n.d(t,{usePathname:function(){return s.usePathname}}),n.o(s,"useRouter")&&n.d(t,{useRouter:function(){return s.useRouter}}),n.o(s,"useSearchParams")&&n.d(t,{useSearchParams:function(){return s.useSearchParams}})},8899:(e,t,n)=>{Promise.resolve().then(n.bind(n,2695))}},e=>{e.O(0,[1723,7911,9643,4737,7358],()=>e(e.s=8899)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4138],{179:(e,t,n)=>{"use strict";n.d(t,{I18nProvider:()=>i,Ym:()=>l,Zs:()=>d,kj:()=>u});var r=n(9763),a=n(4963),s=n(7911);let c=(0,a.createContext)("en"),o=(0,a.createContext)("panoma");function i(e){let{locale:t,cli:n,children:a}=e;return(0,r.jsx)(c.Provider,{value:t,children:(0,r.jsx)(o.Provider,{value:n,children:a})})}function l(){return(0,a.useContext)(c)}function d(){return(0,a.useContext)(o)}function u(){let e=(0,a.useContext)(c),t=(0,a.useContext)(o);return(0,a.useCallback)((n,r)=>(0,s.t)(e,n,{cli:t,...r}),[e,t])}},1264:(e,t,n)=>{"use strict";n.d(t,{SecretScan:()=>x});var r=n(9763),a=n(1723),s=n.n(a),c=n(4963),o=n(179),i=n(4584),l=n(4204);let d=new Set(["env-file","key-file","google-service-account","ssh-private-key"]),u={critical:"text-fail border-fail/40 bg-fail/8",high:"text-[#b45309] border-idle/40 bg-idle/[0.08]",medium:"text-smoke border-edge bg-raised"};function x(){let e=(0,o.kj)(),t=t=>{var n;return null!=(n=e("secret.".concat(t.ruleId)))?n:t.label},[n,a]=(0,c.useState)("ready"),[x,h]=(0,c.useState)(null),[f,m]=(0,c.useState)(null);async function p(){a("searching"),m(null);try{var t;let n=await fetch("/api/secrets",{method:"POST"}),r=await n.json();n.ok?h(r):m(null!=(t=r.error)?t:e("scan.failed"))}catch(t){m(e("scan.unreachable"))}finally{a("ready")}}return(0,r.jsxs)("div",{children:[(0,r.jsx)(l.rA,{tone:"surface",type:"button",onClick:p,busy:"searching"===n,busyLabel:e("scan.busy"),children:x?e("scan.again"):e("scan.start")}),f&&(0,r.jsx)(l.lZ,{text:f,className:"mt-2"}),x&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{className:"mt-4 flex flex-wrap gap-x-5 gap-y-1 font-mono text-xs text-faint",children:[(0,r.jsxs)("span",{className:x.total>0?"text-fail":"text-live",children:[e(1===x.total?"scan.findingOne":"scan.findingMany",{n:x.total})," ",e(1===x.results.length?"search.inProjectOne":"search.inProjectMany",{n:x.results.length})]}),(0,r.jsx)("span",{children:e("scan.reposScanned",{n:x.scanned})}),x.skipped>0&&(0,r.jsx)("span",{children:e("scan.skipped",{n:x.skipped})}),x.ignoredPublic>0&&(0,r.jsx)("span",{title:e("scan.publicTitle"),children:e("scan.public",{n:x.ignoredPublic})})]}),0===x.results.length?(0,r.jsx)("p",{className:"mt-4 rounded border border-edge bg-surface p-5 text-sm text-smoke",children:e("scan.clean")}):(0,r.jsx)("ul",{className:"mt-4 space-y-3",children:x.results.map(n=>(0,r.jsxs)("li",{className:"rounded-lg border border-edge bg-surface",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-3 gap-y-1 border-b border-edge px-4 py-2.5",children:[(0,r.jsx)(s(),{href:"/p/".concat(n.slug),className:"text-sm font-medium hover:text-accent",children:n.name}),(0,r.jsx)("span",{className:"font-mono text-[11px] text-faint",title:n.root,children:function(e){let t=e.split("/");return t.length<=3?e:"…/".concat(t.slice(-2).join("/"))}(n.root)}),(0,r.jsx)("span",{className:"ml-auto font-mono text-[11px] text-faint",children:n.findings.length})]}),(0,r.jsx)("ul",{className:"divide-y divide-edge/50",children:n.findings.map((n,a)=>{var s;return(0,r.jsxs)("li",{className:"px-4 py-2",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-2.5 gap-y-1",children:[(0,r.jsx)("span",{className:"rounded border px-1.5 font-mono text-[10px] ".concat(u[n.severity]),title:n.severity,children:e("severity.".concat(n.severity))}),(0,r.jsx)("span",{className:"text-xs text-chalk",children:d.has(n.ruleId)?e("scan.trackedByGit",{label:t(n)}):t(n)}),(0,r.jsxs)("span",{className:"font-mono text-[10px] text-faint",children:[n.file,n.line>0&&":".concat(n.line)]})]}),n.line>0&&(0,r.jsx)("code",{className:"mt-1 block truncate font-mono text-[10px] text-smoke",children:n.excerpt}),(0,r.jsx)("p",{className:"mt-0.5 text-[11px] leading-relaxed text-faint",children:null!=(s=e("secretWhy.".concat(d.has(n.ruleId)?"file":n.ruleId)))?s:n.why})]},"".concat(n.file,":").concat(n.line,":").concat(a))})})]},n.id))}),(0,r.jsxs)("div",{className:"mt-6 rounded border border-edge bg-surface p-4 text-xs leading-relaxed text-smoke",children:[(0,r.jsx)("p",{className:"font-medium text-chalk",children:e("scan.orderTitle")}),(0,r.jsxs)("ol",{className:"mt-2 list-inside list-decimal space-y-1 text-faint",children:[(0,r.jsx)("li",{children:(0,r.jsx)(i.h,{text:e("scan.step1"),slots:{act:(0,r.jsx)("span",{className:"text-smoke",children:e("scan.step1Act")})}})}),(0,r.jsx)("li",{children:(0,r.jsx)("span",{className:"text-smoke",children:e("scan.step2")})}),(0,r.jsx)("li",{children:(0,r.jsx)(i.h,{text:e("scan.step3"),slots:{act:(0,r.jsx)("span",{className:"text-smoke",children:e("scan.step3Act")})}})})]}),(0,r.jsx)("p",{className:"mt-3 font-mono text-[10px]",children:e("scan.notStored")})]})]})]})}},4204:(e,t,n)=>{"use strict";n.d(t,{rA:()=>x,lZ:()=>d,hV:()=>l,z3:()=>i.z,Pp:()=>c,KW:()=>o});var r=n(9763),a=n(5595),s=n(7911);function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"es";if(!e)return"—";let n=Math.floor((Date.now()-new Date(e).getTime())/864e5);if("en"===t){if(n<=0)return"today";if(1===n)return"yesterday";if(n<30)return"".concat(n," d ago");if(n<365){let e=Math.floor(n/30);return"".concat(e," month").concat(1===e?"":"s"," ago")}let e=Math.floor(n/365);return"".concat(e," year").concat(1===e?"":"s"," ago")}if(n<=0)return"hoy";if(1===n)return"ayer";if(n<30)return"hace ".concat(n," d");if(n<365){let e=Math.floor(n/30);return"hace ".concat(e," ").concat(1===e?"mes":"meses")}let r=Math.floor(n/365);return"hace ".concat(r," a\xf1o").concat(1===r?"":"s")}function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"es",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),r=n-new Date(e).getTime();if(!Number.isFinite(r))return"—";let a="en"===t;if(r<6e4)return a?"just now":"ahora mismo";if(r<36e5){let e=Math.floor(r/6e4);return a?"".concat(e," min ago"):"hace ".concat(e," min")}if(r<1728e5){let e=Math.floor(r/36e5);return a?"".concat(e," h ago"):"hace ".concat(e," h")}return c(e,t)}var i=n(7642);function l(e){let{name:t,src:n,size:c=56,tone:o="brand",locale:i}=e,l="panoma"===t.toLowerCase(),d="demo-runner"===t.toLowerCase()?"/assets/projects/demo-runner.png":null,u=l?"/assets/brand/panoma.svg":null!=n?n:d;return u?(0,r.jsx)("img",{src:u,loading:"lazy",alt:(0,s.t)(i,"common.iconOf",{name:t}),width:c,height:c,className:"shrink-0 rounded-[22%] border border-edge object-cover shadow-sm",style:{width:c,height:c}}):(0,r.jsx)("span",{"aria-hidden":!0,className:"flex shrink-0 items-center justify-center rounded-[22%] border border-edge ".concat("neutral"===o?"project-icon--neutral":"bg-raised text-accent"),style:{width:c,height:c},children:(0,r.jsx)(a.KQe,{style:{width:.46*c,height:.46*c}})})}function d(e){let{text:t,as:n="p",className:a}=e;return(0,r.jsx)(n,{role:"alert",className:"font-mono text-[11px] text-fail".concat(a?" ".concat(a):""),children:t})}let u={raised:"rounded border border-edge bg-raised px-3 py-1.5 font-mono text-[11px] text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",surface:"rounded border border-edge bg-surface px-3 py-1.5 font-mono text-xs text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",plain:"rounded border border-edge px-2.5 py-1 font-mono text-xs text-smoke transition-colors hover:border-chalk disabled:opacity-50",accent:"rounded border border-accent bg-accent px-3 py-1.5 font-mono text-xs text-white transition-opacity hover:opacity-85 disabled:opacity-50"};function x(e){let{tone:t,busy:n=!1,busyLabel:a,disabled:s,className:c,children:o,...i}=e;return(0,r.jsx)("button",{...i,disabled:null!=s?s:n,className:"".concat(u[t]).concat(c?" ".concat(c):""),children:n&&void 0!==a?a:o})}},4584:(e,t,n)=>{"use strict";n.d(t,{h:()=>a});var r=n(9763);function a(e){let{text:t,slots:n}=e,a=t.split(/\{(\w+)\}/g);return(0,r.jsx)(r.Fragment,{children:a.map((e,t)=>{var a;return t%2==0?e:(0,r.jsx)("span",{children:null!=(a=n[e])?a:"{".concat(e,"}")},t)})})}},4652:(e,t,n)=>{"use strict";n.d(t,{k5:()=>d});var r=n(4963),a={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},s=r.createContext&&r.createContext(a),c=["attr","size","title"];function o(){return(o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach(function(t){var r,a,s;r=e,a=t,s=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):r[a]=s}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function d(e){return t=>r.createElement(u,o({attr:l({},e.attr)},t),function e(t){return t&&t.map((t,n)=>r.createElement(t.tag,l({key:n},t.attr),e(t.child)))}(e.child))}function u(e){var t=t=>{var n,a=e.attr,s=e.size,i=e.title,d=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,c),u=s||t.size||"1em";return t.className&&(n=t.className),e.className&&(n=(n?n+" ":"")+e.className),r.createElement("svg",o({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,a,d,{className:n,style:l(l({color:e.color||t.color},t.style),e.style),height:u,width:u,xmlns:"http://www.w3.org/2000/svg"}),i&&r.createElement("title",null,i),e.children)};return void 0!==s?r.createElement(s.Consumer,null,e=>t(e)):t(a)}},4801:(e,t,n)=>{Promise.resolve().then(n.bind(n,1264))},7642:(e,t,n)=>{"use strict";function r(e){return e<1024?"".concat(e," B"):e<1048576?"".concat(Math.round(e/1024)," KB"):e<0x40000000?"".concat((e/1048576).toFixed(1)," MB"):"".concat((e/0x40000000).toFixed(1)," GB")}n.d(t,{z:()=>r})}},e=>{e.O(0,[6587,1723,7911,9643,4737,7358],()=>e(e.s=4801)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9885],{179:(e,t,r)=>{"use strict";r.d(t,{I18nProvider:()=>i,Ym:()=>u,Zs:()=>l,kj:()=>d});var n=r(9763),o=r(4963),a=r(7911);let c=(0,o.createContext)("en"),s=(0,o.createContext)("panoma");function i(e){let{locale:t,cli:r,children:o}=e;return(0,n.jsx)(c.Provider,{value:t,children:(0,n.jsx)(s.Provider,{value:r,children:o})})}function u(){return(0,o.useContext)(c)}function l(){return(0,o.useContext)(s)}function d(){let e=(0,o.useContext)(c),t=(0,o.useContext)(s);return(0,o.useCallback)((r,n)=>(0,a.t)(e,r,{cli:t,...n}),[e,t])}},4204:(e,t,r)=>{"use strict";r.d(t,{rA:()=>f,lZ:()=>l,hV:()=>u,z3:()=>i.z,Pp:()=>c,KW:()=>s});var n=r(9763),o=r(5595),a=r(7911);function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"es";if(!e)return"—";let r=Math.floor((Date.now()-new Date(e).getTime())/864e5);if("en"===t){if(r<=0)return"today";if(1===r)return"yesterday";if(r<30)return"".concat(r," d ago");if(r<365){let e=Math.floor(r/30);return"".concat(e," month").concat(1===e?"":"s"," ago")}let e=Math.floor(r/365);return"".concat(e," year").concat(1===e?"":"s"," ago")}if(r<=0)return"hoy";if(1===r)return"ayer";if(r<30)return"hace ".concat(r," d");if(r<365){let e=Math.floor(r/30);return"hace ".concat(e," ").concat(1===e?"mes":"meses")}let n=Math.floor(r/365);return"hace ".concat(n," a\xf1o").concat(1===n?"":"s")}function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"es",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),n=r-new Date(e).getTime();if(!Number.isFinite(n))return"—";let o="en"===t;if(n<6e4)return o?"just now":"ahora mismo";if(n<36e5){let e=Math.floor(n/6e4);return o?"".concat(e," min ago"):"hace ".concat(e," min")}if(n<1728e5){let e=Math.floor(n/36e5);return o?"".concat(e," h ago"):"hace ".concat(e," h")}return c(e,t)}var i=r(7642);function u(e){let{name:t,src:r,size:c=56,tone:s="brand",locale:i}=e,u="panoma"===t.toLowerCase(),l="demo-runner"===t.toLowerCase()?"/assets/projects/demo-runner.png":null,d=u?"/assets/brand/panoma.svg":null!=r?r:l;return d?(0,n.jsx)("img",{src:d,loading:"lazy",alt:(0,a.t)(i,"common.iconOf",{name:t}),width:c,height:c,className:"shrink-0 rounded-[22%] border border-edge object-cover shadow-sm",style:{width:c,height:c}}):(0,n.jsx)("span",{"aria-hidden":!0,className:"flex shrink-0 items-center justify-center rounded-[22%] border border-edge ".concat("neutral"===s?"project-icon--neutral":"bg-raised text-accent"),style:{width:c,height:c},children:(0,n.jsx)(o.KQe,{style:{width:.46*c,height:.46*c}})})}function l(e){let{text:t,as:r="p",className:o}=e;return(0,n.jsx)(r,{role:"alert",className:"font-mono text-[11px] text-fail".concat(o?" ".concat(o):""),children:t})}let d={raised:"rounded border border-edge bg-raised px-3 py-1.5 font-mono text-[11px] text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",surface:"rounded border border-edge bg-surface px-3 py-1.5 font-mono text-xs text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",plain:"rounded border border-edge px-2.5 py-1 font-mono text-xs text-smoke transition-colors hover:border-chalk disabled:opacity-50",accent:"rounded border border-accent bg-accent px-3 py-1.5 font-mono text-xs text-white transition-opacity hover:opacity-85 disabled:opacity-50"};function f(e){let{tone:t,busy:r=!1,busyLabel:o,disabled:a,className:c,children:s,...i}=e;return(0,n.jsx)("button",{...i,disabled:null!=a?a:r,className:"".concat(d[t]).concat(c?" ".concat(c):""),children:r&&void 0!==o?o:s})}},4652:(e,t,r)=>{"use strict";r.d(t,{k5:()=>l});var n=r(4963),o={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},a=n.createContext&&n.createContext(o),c=["attr","size","title"];function s(){return(s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach(function(t){var n,o,a;n=e,o=t,a=r[t],(o=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(o))in n?Object.defineProperty(n,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[o]=a}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function l(e){return t=>n.createElement(d,s({attr:u({},e.attr)},t),function e(t){return t&&t.map((t,r)=>n.createElement(t.tag,u({key:r},t.attr),e(t.child)))}(e.child))}function d(e){var t=t=>{var r,o=e.attr,a=e.size,i=e.title,l=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r={};for(var n in e)if(({}).hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&({}).propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,c),d=a||t.size||"1em";return t.className&&(r=t.className),e.className&&(r=(r?r+" ":"")+e.className),n.createElement("svg",s({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,o,l,{className:r,style:u(u({color:e.color||t.color},t.style),e.style),height:d,width:d,xmlns:"http://www.w3.org/2000/svg"}),i&&n.createElement("title",null,i),e.children)};return void 0!==a?n.createElement(a.Consumer,null,e=>t(e)):t(o)}},7244:(e,t,r)=>{"use strict";var n=r(3292);r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}}),r.o(n,"useSearchParams")&&r.d(t,{useSearchParams:function(){return n.useSearchParams}})},7642:(e,t,r)=>{"use strict";function n(e){return e<1024?"".concat(e," B"):e<1048576?"".concat(Math.round(e/1024)," KB"):e<0x40000000?"".concat((e/1048576).toFixed(1)," MB"):"".concat((e/0x40000000).toFixed(1)," GB")}r.d(t,{z:()=>n})},7964:(e,t,r)=>{"use strict";r.d(t,{MeasureDisk:()=>i});var n=r(9763),o=r(7244),a=r(4963),c=r(179),s=r(4204);function i(e){let{measuredAt:t}=e,r=(0,c.kj)(),i=(0,c.Ym)(),u=(0,o.useRouter)(),[l,d]=(0,a.useState)("ready"),[f,m]=(0,a.useState)(null),[h,b]=(0,a.useState)(null);async function p(){d("measuring"),m(null);try{let t=await fetch("/api/disk",{method:"POST"}),n=await t.json();if(t.ok)b(n),u.refresh();else{var e;m(null!=(e=n.error)?e:r("measure.failed"))}}catch(e){m(r("measure.unreachable"))}finally{d("ready")}}return(0,n.jsxs)("div",{children:[(0,n.jsx)(s.rA,{tone:"surface",type:"button",onClick:p,busy:"measuring"===l,busyLabel:r("measure.busy"),children:t?r("measure.again"):r("measure.start")}),(0,n.jsx)("p",{className:"mt-2 font-mono text-[11px] text-faint",children:"measuring"===l?r("measure.noteBusy"):t?r("measure.noteLast",{when:new Date(t).toLocaleString(i)}):r("measure.noteFirst")}),h&&(0,n.jsxs)("p",{className:"mt-1 font-mono text-[11px] text-live",children:[r("measure.done",{n:h.measured}),h.missing>0&&" \xb7 ".concat(r("measure.missing",{n:h.missing}))]}),f&&(0,n.jsx)(s.lZ,{text:f,className:"mt-1"})]})}},9107:(e,t,r)=>{Promise.resolve().then(r.bind(r,7964)),Promise.resolve().then(r.t.bind(r,1723,23))}},e=>{e.O(0,[6587,1723,7911,9643,4737,7358],()=>e(e.s=9107)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8880],{179:(e,t,r)=>{"use strict";r.d(t,{I18nProvider:()=>c,Ym:()=>s,Zs:()=>u,kj:()=>d});var n=r(9763),o=r(4963),a=r(7911);let l=(0,o.createContext)("en"),i=(0,o.createContext)("panoma");function c(e){let{locale:t,cli:r,children:o}=e;return(0,n.jsx)(l.Provider,{value:t,children:(0,n.jsx)(i.Provider,{value:r,children:o})})}function s(){return(0,o.useContext)(l)}function u(){return(0,o.useContext)(i)}function d(){let e=(0,o.useContext)(l),t=(0,o.useContext)(i);return(0,o.useCallback)((r,n)=>(0,a.t)(e,r,{cli:t,...n}),[e,t])}},236:(e,t,r)=>{"use strict";r.d(t,{K:()=>c,t:()=>i});var n=r(9763),o=r(4963),a=r(5595),l=r(179);function i(){let[e,t]=(0,o.useState)();return(0,o.useEffect)(()=>{let e=!0;return fetch("/api/watch").then(e=>e.json()).then(r=>{e&&t(r)}).catch(()=>void 0),()=>{e=!1}},[]),e}function c(e){let{failure:t}=e,r=(0,l.kj)();return(0,n.jsxs)("section",{className:"catalog-down",role:"alert",children:[(0,n.jsxs)("h2",{children:[(0,n.jsx)(a.z1N,{"aria-hidden":!0}),r("catalog.down.title")]}),(0,n.jsx)("p",{children:r("catalog.down.body",{path:t.path})}),(0,n.jsx)("p",{className:"catalog-down__detail",children:(0,n.jsx)("code",{children:r("catalog.down.detail",{detail:t.detail})})})]})}},4652:(e,t,r)=>{"use strict";r.d(t,{k5:()=>u});var n=r(4963),o={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},a=n.createContext&&n.createContext(o),l=["attr","size","title"];function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach(function(t){var n,o,a;n=e,o=t,a=r[t],(o=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(o))in n?Object.defineProperty(n,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[o]=a}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function u(e){return t=>n.createElement(d,i({attr:s({},e.attr)},t),function e(t){return t&&t.map((t,r)=>n.createElement(t.tag,s({key:r},t.attr),e(t.child)))}(e.child))}function d(e){var t=t=>{var r,o=e.attr,a=e.size,c=e.title,u=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r={};for(var n in e)if(({}).hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&({}).propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,l),d=a||t.size||"1em";return t.className&&(r=t.className),e.className&&(r=(r?r+" ":"")+e.className),n.createElement("svg",i({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,o,u,{className:r,style:s(s({color:e.color||t.color},t.style),e.style),height:d,width:d,xmlns:"http://www.w3.org/2000/svg"}),c&&n.createElement("title",null,c),e.children)};return void 0!==a?n.createElement(a.Consumer,null,e=>t(e)):t(o)}},5456:(e,t,r)=>{Promise.resolve().then(r.bind(r,6408))},6408:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>l});var n=r(9763),o=r(236),a=r(179);function l(e){let{reset:t}=e,r=(0,a.kj)(),l=(0,o.t)();return(0,n.jsx)("div",{id:"app-main",tabIndex:-1,children:(null==l?void 0:l.catalog)?(0,n.jsx)(o.K,{failure:l.catalog}):(0,n.jsxs)("section",{className:"catalog-down",role:"alert",children:[(0,n.jsx)("h2",{children:r("error.title")}),(0,n.jsx)("p",{children:r("error.body")}),(0,n.jsx)("button",{type:"button",className:"catalog-down__button",onClick:t,children:r("error.retry")})]})})}}},e=>{e.O(0,[6587,7911,9643,4737,7358],()=>e(e.s=5456)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9816],{179:(e,t,r)=>{"use strict";r.d(t,{I18nProvider:()=>s,Ym:()=>l,Zs:()=>u,kj:()=>d});var n=r(9763),o=r(4963),a=r(7911);let c=(0,o.createContext)("en"),i=(0,o.createContext)("panoma");function s(e){let{locale:t,cli:r,children:o}=e;return(0,n.jsx)(c.Provider,{value:t,children:(0,n.jsx)(i.Provider,{value:r,children:o})})}function l(){return(0,o.useContext)(c)}function u(){return(0,o.useContext)(i)}function d(){let e=(0,o.useContext)(c),t=(0,o.useContext)(i);return(0,o.useCallback)((r,n)=>(0,a.t)(e,r,{cli:t,...n}),[e,t])}},4204:(e,t,r)=>{"use strict";r.d(t,{rA:()=>f,lZ:()=>u,hV:()=>l,z3:()=>s.z,Pp:()=>c,KW:()=>i});var n=r(9763),o=r(5595),a=r(7911);function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"es";if(!e)return"—";let r=Math.floor((Date.now()-new Date(e).getTime())/864e5);if("en"===t){if(r<=0)return"today";if(1===r)return"yesterday";if(r<30)return"".concat(r," d ago");if(r<365){let e=Math.floor(r/30);return"".concat(e," month").concat(1===e?"":"s"," ago")}let e=Math.floor(r/365);return"".concat(e," year").concat(1===e?"":"s"," ago")}if(r<=0)return"hoy";if(1===r)return"ayer";if(r<30)return"hace ".concat(r," d");if(r<365){let e=Math.floor(r/30);return"hace ".concat(e," ").concat(1===e?"mes":"meses")}let n=Math.floor(r/365);return"hace ".concat(n," a\xf1o").concat(1===n?"":"s")}function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"es",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),n=r-new Date(e).getTime();if(!Number.isFinite(n))return"—";let o="en"===t;if(n<6e4)return o?"just now":"ahora mismo";if(n<36e5){let e=Math.floor(n/6e4);return o?"".concat(e," min ago"):"hace ".concat(e," min")}if(n<1728e5){let e=Math.floor(n/36e5);return o?"".concat(e," h ago"):"hace ".concat(e," h")}return c(e,t)}var s=r(7642);function l(e){let{name:t,src:r,size:c=56,tone:i="brand",locale:s}=e,l="panoma"===t.toLowerCase(),u="demo-runner"===t.toLowerCase()?"/assets/projects/demo-runner.png":null,d=l?"/assets/brand/panoma.svg":null!=r?r:u;return d?(0,n.jsx)("img",{src:d,loading:"lazy",alt:(0,a.t)(s,"common.iconOf",{name:t}),width:c,height:c,className:"shrink-0 rounded-[22%] border border-edge object-cover shadow-sm",style:{width:c,height:c}}):(0,n.jsx)("span",{"aria-hidden":!0,className:"flex shrink-0 items-center justify-center rounded-[22%] border border-edge ".concat("neutral"===i?"project-icon--neutral":"bg-raised text-accent"),style:{width:c,height:c},children:(0,n.jsx)(o.KQe,{style:{width:.46*c,height:.46*c}})})}function u(e){let{text:t,as:r="p",className:o}=e;return(0,n.jsx)(r,{role:"alert",className:"font-mono text-[11px] text-fail".concat(o?" ".concat(o):""),children:t})}let d={raised:"rounded border border-edge bg-raised px-3 py-1.5 font-mono text-[11px] text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",surface:"rounded border border-edge bg-surface px-3 py-1.5 font-mono text-xs text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",plain:"rounded border border-edge px-2.5 py-1 font-mono text-xs text-smoke transition-colors hover:border-chalk disabled:opacity-50",accent:"rounded border border-accent bg-accent px-3 py-1.5 font-mono text-xs text-white transition-opacity hover:opacity-85 disabled:opacity-50"};function f(e){let{tone:t,busy:r=!1,busyLabel:o,disabled:a,className:c,children:i,...s}=e;return(0,n.jsx)("button",{...s,disabled:null!=a?a:r,className:"".concat(d[t]).concat(c?" ".concat(c):""),children:r&&void 0!==o?o:i})}},4652:(e,t,r)=>{"use strict";r.d(t,{k5:()=>u});var n=r(4963),o={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},a=n.createContext&&n.createContext(o),c=["attr","size","title"];function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach(function(t){var n,o,a;n=e,o=t,a=r[t],(o=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(o))in n?Object.defineProperty(n,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[o]=a}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function u(e){return t=>n.createElement(d,i({attr:l({},e.attr)},t),function e(t){return t&&t.map((t,r)=>n.createElement(t.tag,l({key:r},t.attr),e(t.child)))}(e.child))}function d(e){var t=t=>{var r,o=e.attr,a=e.size,s=e.title,u=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r={};for(var n in e)if(({}).hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&({}).propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,c),d=a||t.size||"1em";return t.className&&(r=t.className),e.className&&(r=(r?r+" ":"")+e.className),n.createElement("svg",i({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,o,u,{className:r,style:l(l({color:e.color||t.color},t.style),e.style),height:d,width:d,xmlns:"http://www.w3.org/2000/svg"}),s&&n.createElement("title",null,s),e.children)};return void 0!==a?n.createElement(a.Consumer,null,e=>t(e)):t(o)}},5108:(e,t,r)=>{"use strict";r.d(t,{Readmit:()=>d,Unhide:()=>u});var n=r(9763),o=r(7244),a=r(4963),c=r(179),i=r(4204);function s(){let e=(0,c.kj)(),t=(0,o.useRouter)(),[r,n]=(0,a.useState)(!1),[i,s]=(0,a.useState)(null);return{busy:r,error:i,send:async function(r){n(!0),s(null);try{var o;let n=await fetch("/api/project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});n.ok?t.refresh():s(null!=(o=(await n.json()).error)?o:e("undo.failed"))}catch(t){s(e("undo.unreachable"))}finally{n(!1)}}}}let l="shrink-0 rounded border border-edge px-2.5 py-1 font-mono text-[11px] text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50";function u(e){let{projectId:t}=e,r=(0,c.kj)(),{busy:o,error:a,send:u}=s();return(0,n.jsxs)("span",{className:"inline-flex items-center gap-2",children:[a&&(0,n.jsx)(i.lZ,{as:"span",text:a}),(0,n.jsx)("button",{type:"button",disabled:o,onClick:()=>u({action:"mostrar",id:t}),className:l,children:o?"…":r("undo.unhide")})]})}function d(e){let{root:t}=e,r=(0,c.kj)(),{busy:o,error:a,send:u}=s();return(0,n.jsxs)("span",{className:"inline-flex items-center gap-2",children:[a&&(0,n.jsx)(i.lZ,{as:"span",text:a}),(0,n.jsx)("button",{type:"button",disabled:o,onClick:()=>u({action:"readmitir",root:t}),className:l,children:o?"…":r("undo.readmit")})]})}},7244:(e,t,r)=>{"use strict";var n=r(3292);r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}}),r.o(n,"useSearchParams")&&r.d(t,{useSearchParams:function(){return n.useSearchParams}})},7295:(e,t,r)=>{Promise.resolve().then(r.bind(r,5108)),Promise.resolve().then(r.t.bind(r,1723,23))},7642:(e,t,r)=>{"use strict";function n(e){return e<1024?"".concat(e," B"):e<1048576?"".concat(Math.round(e/1024)," KB"):e<0x40000000?"".concat((e/1048576).toFixed(1)," MB"):"".concat((e/0x40000000).toFixed(1)," GB")}r.d(t,{z:()=>n})}},e=>{e.O(0,[6587,1723,7911,9643,4737,7358],()=>e(e.s=7295)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4944],{179:(e,a,l)=>{"use strict";l.d(a,{I18nProvider:()=>o,Ym:()=>c,Zs:()=>d,kj:()=>u});var t=l(9763),n=l(4963),s=l(7911);let r=(0,n.createContext)("en"),i=(0,n.createContext)("panoma");function o(e){let{locale:a,cli:l,children:n}=e;return(0,t.jsx)(r.Provider,{value:a,children:(0,t.jsx)(i.Provider,{value:l,children:n})})}function c(){return(0,n.useContext)(r)}function d(){return(0,n.useContext)(i)}function u(){let e=(0,n.useContext)(r),a=(0,n.useContext)(i);return(0,n.useCallback)((l,t)=>(0,s.t)(e,l,{cli:a,...t}),[e,a])}},660:e=>{e.exports={style:{fontFamily:"'Inter', 'Inter Fallback'",fontStyle:"normal"},className:"__className_f367f3",variable:"__variable_f367f3"}},2500:()=>{},3731:(e,a,l)=>{"use strict";l.d(a,{AppShell:()=>y});var t=l(9763),n=l(1723),s=l.n(n),r=l(7244),i=l(4963),o=l(5595),c=l(7911),d=l(179),u=l(8384),h=l(7558),p=l(8337);let m=[{href:"/",label:"nav.projects",icon:o.ENP},{href:"/bridge",label:"dest.bridge",icon:o.YT$},{href:"/unsaved",label:"dest.unsaved",icon:o.YUE},{href:"/disk",label:"dest.disk",icon:o.o7e},{href:"/search",label:"dest.searchCode",icon:o.JJh},{href:"/credentials",label:"dest.credentials",icon:o.JPZ},{href:"/agents",label:"dest.agents",icon:o.gj5},{href:"/twin",label:"dest.twin",icon:o.YL0},{href:"/twin/look",label:"dest.look",icon:o.bZk},{href:"/ai",label:"dest.ai",icon:o.K8V},{href:"/packages",label:"nav.packages",icon:o.XVA},{href:"/runs",label:"nav.activity",icon:o.G7A},{href:"/copies",label:"nav.copies",icon:o.Zs_},{href:"/hidden",label:"dest.hidden",icon:o.B3U}];function b(){let e=(0,r.useRouter)(),a=(0,d.kj)(),[l,n]=(0,i.useState)(!1),[s,c]=(0,i.useState)(""),[b,j]=(0,i.useState)(null),[g,x]=(0,i.useState)(0),[k,y]=(0,i.useState)(null),N=(0,i.useRef)(null),w=(0,i.useRef)(null),_=(0,i.useRef)(null);(0,i.useEffect)(()=>{l&&!b&&fetch("/api/catalog").then(e=>e.json()).then(e=>j(e.projects)).catch(()=>j([]))},[l,b]),(0,i.useEffect)(()=>{function e(e){if((e.metaKey||e.ctrlKey)&&"k"===e.key.toLowerCase()){e.preventDefault(),n(e=>!e);return}"Escape"===e.key&&n(!1)}window.addEventListener("keydown",e);let a=()=>n(!0);return window.addEventListener("panoma:palette",a),()=>{window.removeEventListener("keydown",e),window.removeEventListener("panoma:palette",a)}},[]),(0,i.useEffect)(()=>{l&&(c(""),x(0),y(null),requestAnimationFrame(()=>{var e;return null==(e=N.current)?void 0:e.focus()}))},[l]);let{remote:E}=(0,u.b)(l),C=(0,i.useCallback)(async(e,l)=>{y(a("palette.opening",{name:e.name}));try{var t;let s=await fetch("/api/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e.id,tool:l})}),r=await s.json();y(s.ok?null:null!=(t=r.error)?t:a("palette.openFailed")),s.ok&&n(!1)}catch(e){y(a("palette.unreachable"))}},[a]),S=(0,i.useCallback)(a=>{n(!1),e.push(a)},[e]),P=(0,i.useMemo)(()=>{let e=(0,p.A)(s.trim()),a=(null!=b?b:[]).filter(a=>{var l,t,n;return!e||(l=a,t=e,(0,p.A)([l.name,l.root,null!=(n=l.language)?n:""].join(" ")).includes(t))});return e&&a.sort((a,l)=>f(l.name,e)-f(a.name,e)),a.slice(0,8)},[b,s]),[A,L]=(0,i.useState)(0);(0,i.useEffect)(()=>{g<P.length&&L(g)},[g,P.length]);let J=P[Math.min(A,P.length-1)],R=(0,i.useMemo)(()=>{let e=(0,p.A)(s.trim()),l=P.map(e=>({key:"p:".concat(e.id),label:e.name,hint:v(e.root),enter:a(E?"palette.enterCard":"palette.enterEditor"),icon:E?o.wl$:o.KQe,group:"palette.groupProjects",run:()=>E?S("/p/".concat(e.slug)):C(e,"editor")}));for(let t of(J&&(E||(l.push({key:"folder:".concat(J.id),label:a("palette.openFolderOf",{name:J.name}),hint:v(J.root),icon:o.gBk,group:"palette.groupActions",run:()=>C(J,"folder")}),l.push({key:"terminal:".concat(J.id),label:a("palette.openTerminalOf",{name:J.name}),hint:v(J.root),icon:o.Jhl,group:"palette.groupActions",run:()=>C(J,"terminal")})),l.push({key:"card:".concat(J.id),label:a("palette.openCardOf",{name:J.name}),icon:o.wl$,group:"palette.groupActions",run:()=>S("/p/".concat(J.slug))})),e.length>=2&&l.push({key:"search-code",label:a("palette.searchEverywhere",{query:s.trim()}),icon:o.JJh,group:"palette.groupActions",run:()=>S("/search?q=".concat(encodeURIComponent(s.trim())))}),m))(!e||(0,p.A)(a(t.label)).includes(e))&&l.push({key:"go:".concat(t.href),label:a(t.label),icon:t.icon,group:"palette.groupGoTo",run:()=>S(t.href)});return l},[S,P,C,s,E,a,J]);(0,i.useEffect)(()=>{x(e=>Math.min(e,Math.max(0,R.length-1)))},[R.length]);let F=null!==b&&R.length>0;if((0,h.r)(_,l),(0,i.useEffect)(()=>{var e;if(!l)return;let a=null==(e=w.current)?void 0:e.querySelector('[aria-selected="true"]');null==a||a.scrollIntoView({block:"nearest",behavior:"instant"})},[g,l,R.length]),!l)return null;let I="";return(0,t.jsx)("div",{className:"palette-backdrop",role:"presentation",onClick:e=>{e.target===e.currentTarget&&n(!1)},children:(0,t.jsxs)("div",{className:"palette",role:"dialog","aria-modal":"true","aria-label":a("palette.aria"),ref:_,children:[(0,t.jsxs)("div",{className:"palette__search",children:[(0,t.jsx)(o.JJh,{"aria-hidden":!0}),(0,t.jsx)("input",{ref:N,value:s,onChange:e=>{c(e.target.value),x(0)},onKeyDown:function(e){if(null!==b){if("ArrowDown"===e.key)e.preventDefault(),x(e=>(e+1)%Math.max(1,R.length));else if("ArrowUp"===e.key)e.preventDefault(),x(e=>(e-1+R.length)%Math.max(1,R.length));else if("Enter"===e.key){var a;e.preventDefault(),null==(a=R[g])||a.run()}}},placeholder:a("palette.placeholder"),"aria-label":a("palette.searchAria"),role:"combobox","aria-autocomplete":"list","aria-expanded":F,"aria-controls":"palette-results","aria-activedescendant":F?"palette-option-".concat(g):void 0}),(0,t.jsx)("kbd",{children:"esc"})]}),(0,t.jsx)("p",{className:"sr-only",role:"status",children:null===b?a("palette.loading"):a("palette.results",{n:R.length})}),null===b?(0,t.jsx)("p",{className:"palette__empty",children:a("palette.loading")}):0===R.length?(0,t.jsx)("p",{className:"palette__empty",children:a("palette.noMatch",{query:s})}):(0,t.jsx)("ul",{className:"palette__list",id:"palette-results",ref:w,role:"listbox","aria-label":a("palette.aria"),children:R.map((e,l)=>{let n=e.icon,s=e.group!==I?e.group:null;return I=e.group,(0,t.jsxs)(i.Fragment,{children:[s&&(0,t.jsx)("li",{role:"presentation","aria-hidden":!0,children:(0,t.jsx)("p",{className:"palette__group",children:a(s)})}),(0,t.jsx)("li",{role:"presentation",children:(0,t.jsxs)("button",{id:"palette-option-".concat(l),type:"button",role:"option",tabIndex:-1,"aria-selected":l===g,className:l===g?"is-active":void 0,onMouseEnter:()=>x(l),onClick:()=>void e.run(),children:[(0,t.jsx)(n,{"aria-hidden":!0}),(0,t.jsx)("span",{children:e.label}),e.hint&&(0,t.jsx)("span",{className:"palette__hint",children:e.hint}),l===g&&e.enter&&(0,t.jsx)("kbd",{className:"palette__enter",children:e.enter})]})})]},e.key)})}),k&&(0,t.jsx)("p",{className:"palette__notice",role:"status",children:k}),(0,t.jsxs)("p",{className:"palette__footer",children:[(0,t.jsx)("span",{children:a("palette.keysMove")}),(0,t.jsx)("span",{children:a("palette.keysOpen")}),(0,t.jsx)("span",{children:a("palette.keysClose")})]})]})})}function f(e,a){let l=(0,p.A)(e);return l===a?3:l.startsWith(a)?2:+!!l.includes(a)}function v(e){let a=e.split("/");return a.length<=3?e:"…/".concat(a.slice(-2).join("/"))}var j=l(5018),g=l(8010);let x=[{href:"/",label:"nav.projects",icon:o.ENP,exact:!0},{href:"/bridge",label:"nav.bridge",icon:o.YT$},{href:"/runs",label:"nav.activity",icon:o.G7A,badge:"proposedRuns"},{href:"/unsaved",label:"nav.unsaved",icon:o.YUE,badge:"unsaved"},{href:"/agents",label:"nav.agents",icon:o.gj5},{href:"/twin",label:"nav.twin",icon:o.YL0},{href:"/ai",label:"nav.ai",icon:o.K8V},{href:"/packages",label:"nav.packages",icon:o.XVA},{href:"/search",label:"nav.searchCode",icon:o.JJh},{href:"/credentials",label:"nav.credentials",icon:o.JPZ},{href:"/copies",label:"nav.copies",icon:o.Zs_},{href:"/disk",label:"nav.disk",icon:o.o7e}],k="https://github.com/PanomaAI/panoma";function y(e){let{stats:a,ephemeral:l}=e,n=(0,r.usePathname)(),u=(0,r.useRouter)(),h=(0,d.kj)(),p=(0,d.Ym)(),{query:m,setQuery:f}=(0,j.S)(),[v,g]=(0,i.useState)(!0);function y(e){e!==p&&(document.cookie="".concat(c.CL,"=").concat(e,"; path=/; max-age=31536000; samesite=lax"),u.refresh())}return(0,i.useLayoutEffect)(()=>{"hidden"===window.localStorage.getItem("panoma-shell-sidebar")&&g(!1)},[]),(0,i.useLayoutEffect)(()=>(document.documentElement.classList.toggle("sidebar-collapsed",!v),()=>document.documentElement.classList.remove("sidebar-collapsed")),[v]),(0,i.useEffect)(()=>{let e=window.requestAnimationFrame(()=>{document.documentElement.classList.add("sidebar-ready")});return()=>{window.cancelAnimationFrame(e),document.documentElement.classList.remove("sidebar-ready")}},[]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(b,{}),(0,t.jsxs)("header",{className:"app-topbar",children:[(0,t.jsxs)("div",{className:"brand-cluster",children:[(0,t.jsx)("button",{type:"button",className:"sidebar-toggle",onClick:function(){g(e=>{let a=!e;return window.localStorage.setItem("panoma-shell-sidebar",a?"open":"hidden"),a})},"aria-expanded":v,"aria-controls":"app-sidebar","aria-label":h(v?"shell.hideSidebar":"shell.showSidebar"),title:h(v?"shell.hideSidebar":"shell.showSidebar"),children:v?(0,t.jsx)(o.Y48,{"aria-hidden":!0}):(0,t.jsx)(o.ngD,{"aria-hidden":!0})}),(0,t.jsxs)(s(),{href:"/",className:"brand-lockup","aria-label":h("shell.brandHome"),children:[(0,t.jsx)("img",{src:"/assets/brand/panoma.svg",alt:"",width:38,height:38}),(0,t.jsx)("span",{children:"Panoma"})]})]}),(0,t.jsxs)("form",{className:"global-search",role:"search",onSubmit:function(e){e.preventDefault();let a=new URLSearchParams;m.trim()&&a.set("q",m.trim()),u.push(a.size>0?"/?".concat(a.toString()):"/")},children:[(0,t.jsx)(o.JJh,{"aria-hidden":!0}),(0,t.jsx)("input",{value:m,onChange:e=>f(e.target.value),placeholder:h("shell.searchPlaceholder"),"aria-label":h("shell.searchPlaceholder")}),(0,t.jsx)("button",{type:"button",onClick:()=>window.dispatchEvent(new CustomEvent("panoma:palette")),"aria-label":h("shell.openPalette"),children:(0,t.jsx)("kbd",{children:"⌘ K"})})]}),(0,t.jsx)(N,{ephemeral:l})]}),(0,t.jsxs)("aside",{id:"app-sidebar",className:"app-sidebar","aria-label":h("shell.sections"),children:[(0,t.jsxs)("div",{className:"sidebar-scroll",children:[(0,t.jsx)("nav",{children:x.map(e=>{let l=e.icon,r=e.exact?n===e.href:n.startsWith(e.href),i=e.badge?null==a?void 0:a[e.badge]:void 0;return(0,t.jsxs)(s(),{href:e.href,className:r?"is-active":void 0,title:v?void 0:h(e.label),children:[(0,t.jsx)(l,{"aria-hidden":!0}),(0,t.jsx)("span",{className:"nav-label",children:h(e.label)}),"number"==typeof i&&i>0&&(0,t.jsx)("span",{className:"nav-badge","aria-label":h("shell.pending",{n:i}),children:i}),(0,t.jsx)(_,{})]},e.label)})}),a&&(0,t.jsxs)("div",{className:"catalog-summary","aria-label":h("shell.summary"),children:[(0,t.jsxs)("div",{className:"catalog-summary__title",children:[(0,t.jsx)(o.ENP,{"aria-hidden":!0}),(0,t.jsxs)("p",{children:[(0,t.jsx)("strong",{children:h("shell.summaryProjects",{n:a.projects})}),(0,t.jsx)("span",{children:h("shell.summaryScope")})]}),(0,t.jsx)("strong",{className:"catalog-summary__count",title:"".concat(h("shell.summaryProjects",{n:a.projects})," \xb7 ").concat(h("shell.summaryScope")),"aria-hidden":!0,children:a.projects})]}),(0,t.jsxs)("dl",{children:[(0,t.jsx)(w,{label:h("shell.live"),value:a.live,tone:"live"}),(0,t.jsx)(w,{label:h("shell.paused"),value:a.paused,tone:"paused"}),(0,t.jsx)(w,{label:h("shell.dormant"),value:a.dormant,tone:"dormant"}),(0,t.jsx)(w,{label:h("shell.noGit"),value:a.noGit,tone:"muted"})]}),(0,t.jsxs)("dl",{className:"catalog-summary__aside",children:[(0,t.jsx)(w,{label:h("shell.copies"),value:a.copies,tone:"muted"}),a.hidden>0&&(0,t.jsx)(w,{label:h("shell.hidden"),value:a.hidden,tone:"muted"})]})]})]}),(0,t.jsxs)("div",{className:"sidebar-foot",children:[(0,t.jsxs)("p",{className:"sidebar-update",children:[(0,t.jsx)("span",{children:h("shell.footerLocal")}),(0,t.jsx)("span",{children:h("shell.footerPrivate")}),(0,t.jsx)("a",{href:k,target:"_blank",rel:"noreferrer",children:h("shell.footerSource")})]}),(0,t.jsxs)("div",{className:"lang-toggle",role:"group","aria-label":h("shell.language"),children:[(0,t.jsx)("button",{type:"button",onClick:()=>y("es"),className:"es"===p?"is-active":void 0,"aria-pressed":"es"===p,title:"Espa\xf1ol",children:"ES"}),(0,t.jsx)("button",{type:"button",onClick:()=>y("en"),className:"en"===p?"is-active":void 0,"aria-pressed":"en"===p,title:"English",children:"EN"})]})]})]})]})}function N(e){let{ephemeral:a}=e,l=(0,d.kj)(),[n,s]=(0,i.useState)(!1),r=(0,i.useRef)(null),c=(0,i.useRef)(null);return(0,g.y)(r,n,e=>{var a;s(!1),"escape"===e&&(null==(a=c.current)||a.focus())}),(0,t.jsxs)("div",{className:"account-holder",ref:r,children:[(0,t.jsx)("button",{ref:c,type:"button",className:"account-button","aria-expanded":n,"aria-label":l("shell.localAccount"),title:l("shell.localAccount"),onClick:()=>s(e=>!e),children:(0,t.jsx)(o.vsK,{"aria-hidden":!0})}),n&&(0,t.jsxs)("div",{className:"account-card",role:"dialog","aria-label":l("shell.localAccount"),children:[(0,t.jsx)("strong",{children:l("shell.footerLocal")}),(0,t.jsx)("p",{children:l("shell.accountNone")}),a&&(0,t.jsxs)("p",{className:"account-ephemeral",children:[(0,t.jsx)("strong",{children:l("shell.ephemeral")}),(0,t.jsx)("br",{}),l("shell.ephemeralDetail")]}),(0,t.jsx)("a",{href:k,target:"_blank",rel:"noreferrer",children:l("shell.footerSource")})]})]})}function w(e){let{label:a,value:l,tone:n}=e;return(0,t.jsx)("div",{children:(0,t.jsxs)("dt",{title:a,children:[(0,t.jsx)("span",{className:"summary-dot summary-dot--".concat(n),"aria-hidden":!0}),(0,t.jsxs)("span",{className:"summary-figure",children:[l," ",(0,t.jsx)("span",{className:"summary-label",children:a})]})]})})}function _(){let{pending:e}=(0,n.useLinkStatus)();return e?(0,t.jsx)("span",{className:"nav-pending","aria-hidden":!0}):null}},3866:(e,a,l)=>{Promise.resolve().then(l.t.bind(l,2500,23)),Promise.resolve().then(l.bind(l,3731)),Promise.resolve().then(l.bind(l,179)),Promise.resolve().then(l.bind(l,5018)),Promise.resolve().then(l.t.bind(l,660,23))},8384:(e,a,l)=>{"use strict";let t;l.d(a,{R:()=>o,b:()=>r});var n=l(4963);let s={remote:!1,editor:null,editors:[],apps:[],agents:[]};function r(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],[a,l]=(0,n.useState)(s);return(0,n.useEffect)(()=>{if(!e)return;null!=t||(t=fetch("/api/open").then(e=>e.json()).catch(()=>s));let a=!0;return t.then(e=>{a&&l(e)}),()=>{a=!1}},[e]),a}let i={cursor:"cursor",code:"vscode",windsurf:"windsurf",zed:"zed"};function o(e,a,l,t){let n=i[null!=e?e:"code"];if(!n)return null;let s=encodeURI("".concat(a.replace(/\/$/,""),"/").concat(l)).replace(/#/g,"%23").replace(/\?/g,"%3F");return"".concat(n,"://file").concat(s.startsWith("/")?"":"/").concat(s,":").concat(t)}}},e=>{e.O(0,[4237,9010,6587,1723,7911,5465,9643,4737,7358],()=>e(e.s=3866)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[664],{73:(e,t,n)=>{"use strict";n.d(t,{Resume:()=>p});var a=n(9763),s=n(4963),r=n(9294);let i=/^[A-Za-z0-9_@%+=:,./-]+$/,l=/^[A-Za-z0-9_+=:,./\\-]+$/;function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"posix";return e.join("powershell"===t?"; ":" && ")}var c=n(179);let d=["install","start","tests","build"],u={install:"purpose.install",start:"purpose.start",tests:"purpose.tests",build:"purpose.build"};function p(e){let{runbook:t,recentCommits:n,root:p,shell:x}=e,h=(0,c.kj)(),j=(0,c.Ym)(),[f,b]=(0,s.useState)(null);(0,s.useEffect)(()=>{0!==t.runtimes.length&&fetch("/api/environment").then(e=>e.json()).then(e=>b(e.tools)).catch(()=>b({}))},[t.runtimes.length]);let g=[...t.commands].sort((e,t)=>d.indexOf(e.purpose)-d.indexOf(t.purpose)),y=function(e){let t=e[0];if(!t)return[];let n=new Date(t.at).getTime()-864e5,a=e.filter(e=>new Date(e.at).getTime()>=n);return(a.length>=3?a:e.slice(0,3)).slice(0,5)}(n);return(0,a.jsxs)("div",{className:"grid gap-5 md:grid-cols-2",children:[y.length>0&&(0,a.jsx)(m,{title:h("project.lastYouDid"),children:(0,a.jsx)("ul",{className:"space-y-1",children:y.map(e=>(0,a.jsxs)("li",{className:"flex gap-2.5 text-xs leading-relaxed",children:[(0,a.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-faint",children:e.sha.slice(0,7)}),(0,a.jsx)("span",{className:"min-w-0 flex-1 text-smoke",children:e.subject}),e.agent&&(0,a.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-accent",title:h("changes.signedBy",{agent:e.agent}),children:e.agent})]},e.sha))})}),g.length>0&&(0,a.jsx)(m,{title:h("project.howToStart"),children:(0,a.jsx)("ul",{className:"space-y-1.5",children:g.map(e=>(0,a.jsxs)("li",{className:"flex flex-wrap items-baseline gap-2",children:[(0,a.jsx)("span",{className:"w-16 shrink-0 font-mono text-[10px] text-faint",children:h(u[e.purpose])}),(0,a.jsx)(r.CopyCommand,{command:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"posix",a="string"==typeof t?[t]:t,s=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"posix";return"powershell"===t?""!==e&&l.test(e)?e:"'".concat(e.replace(/'/g,"''"),"'"):""!==e&&i.test(e)?e:"'".concat(e.replace(/'/g,"'\\''"),"'")}(e,n);return"powershell"===n?"cd ".concat(s,"; if ($?) { ").concat(o(a,n)," }"):"cd ".concat(s," && ").concat(o(a,n))}(p,e.command,x),label:e.command,locale:j}),(0,a.jsx)("span",{className:"min-w-0 truncate font-mono text-[10px] text-faint",title:e.source,children:e.source})]},e.command))})}),t.runtimes.length>0&&(0,a.jsx)(m,{title:h("project.whatItNeeds"),children:(0,a.jsx)("ul",{className:"space-y-1.5",children:t.runtimes.map(e=>{var t,n;let s=null!=(n=null==f||null==(t=f[e.id])?void 0:t.version)?n:null;return(0,a.jsxs)("li",{className:"flex flex-wrap items-baseline gap-x-2.5 gap-y-1 font-mono text-[11px]",children:[(0,a.jsx)("span",{className:"text-chalk",children:e.name}),(0,a.jsx)("span",{className:"text-smoke",children:e.required}),null===f?(0,a.jsx)("span",{className:"text-faint",children:h("project.runtimeChecking")}):s?(0,a.jsx)("span",{className:"text-live",children:h("project.runtimeHave",{version:s})}):(0,a.jsx)("span",{className:"text-idle",children:h("project.runtimeMissing")}),(0,a.jsx)("span",{className:"text-faint",children:e.source})]},"".concat(e.id,"-").concat(e.required))})})}),t.missingEnv.length>0&&(0,a.jsxs)(m,{title:h("project.missingEnv",{n:t.missingEnv.length}),children:[(0,a.jsxs)("p",{className:"mb-2 text-xs leading-relaxed text-smoke",children:[h("project.envDeclaredIn")," ",(0,a.jsx)("code",{className:"font-mono text-chalk",children:t.envExample})," ",h("project.envNoValue")," ",(0,a.jsx)("code",{className:"font-mono text-chalk",children:".env"}),". ",h("project.envWhy")]}),(0,a.jsx)("ul",{className:"flex flex-wrap gap-1.5",children:t.missingEnv.map(e=>(0,a.jsx)("li",{className:"rounded border border-edge bg-raised px-1.5 py-0.5 font-mono text-[10px] text-smoke",children:e},e))})]})]})}function m(e){let{title:t,children:n}=e;return(0,a.jsxs)("section",{className:"rounded-lg border border-edge bg-surface p-4",children:[(0,a.jsx)("h3",{className:"eyebrow mb-2.5",children:t}),n]})}},121:(e,t,n)=>{"use strict";n.d(t,{Describe:()=>c});var a=n(9763),s=n(4963),r=n(5595),i=n(179),l=n(4204),o=n(7209);function c(e){var t;let{slug:n,initial:c}=e,d=(0,i.kj)(),u=(0,i.Ym)(),[p,m]=(0,s.useState)("ready"),[x,h]=(0,s.useState)(c),[j,f]=(0,s.useState)(null);async function b(){m("writing"),f(null);try{let e=await fetch("/api/describe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:n})}),t=await e.json();e.ok?h({text:t.text,model:t.model,at:new Date().toISOString(),lang:u}):f([t.error,t.hint].filter(Boolean).join(" \xb7 "))}catch(e){f(d("project.unreachable"))}finally{m("ready")}}return(0,a.jsxs)("div",{className:"project-describe",children:[x?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{className:"text-sm leading-relaxed text-chalk",children:x.text}),(0,a.jsxs)("p",{className:"mt-3 flex flex-wrap items-center gap-x-3 gap-y-1 border-t border-edge pt-2.5 font-mono text-[11px] text-faint",children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)(r.tZt,{className:"h-3.5 w-3.5","aria-hidden":!0}),d("project.aiWrittenBy",{model:null!=(t=x.model)?t:d("project.aiSomeModel")})]}),x.at&&(0,a.jsx)("span",{children:new Date(x.at).toLocaleDateString(u)}),(0,a.jsx)(o.b,{lang:x.lang}),(0,a.jsx)("button",{type:"button",onClick:b,disabled:"writing"===p,className:"project-describe__rewrite ml-auto disabled:opacity-50",children:d("writing"===p?"project.aiWriting":"project.aiRewrite")})]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{type:"button",onClick:b,disabled:"writing"===p,className:"project-describe__ask inline-flex items-center gap-2 px-3 py-1.5 font-mono text-xs disabled:opacity-50",children:[(0,a.jsx)(r.tZt,{className:"h-4 w-4","aria-hidden":!0}),d("writing"===p?"project.aiReading":"project.aiExplain")]}),(0,a.jsxs)("p",{className:"mt-2 font-mono text-[11px] leading-relaxed text-faint",children:[d("project.aiNoteBefore")," ",(0,a.jsx)("code",{children:"panoma ai use"}),"."," ",d("project.aiNoteAfter")]})]}),j&&(0,a.jsx)(l.lZ,{text:j,className:"mt-2"})]})}},460:(e,t,n)=>{"use strict";n.d(t,{ProjectAccounts:()=>k,ProjectAccountsQuick:()=>v});var a=n(9763),s=n(4963),r=n(7244),i=n(5595);let l=/^https?:\/\//i,o=/^[a-z][a-z0-9+.-]*:/i,c=/^[^\s/?#@:]+:\d{1,5}([/?#]|$)/;function d(e){var t;let n=null==e?void 0:e.trim();if(!n)return{kind:"empty"};if(l.test(n))return u(n,n);if(o.test(n)&&!c.test(n))return{kind:"unusable",text:n};let a=null!=(t=n.split(/[/?#]/,1)[0])?t:"",s=a.replace(/:\d+$/,"");return a!==s||s.includes(".")||s.startsWith("[")?u("".concat(!function(e){let t=e.toLowerCase();return!!("localhost"===t||t.endsWith(".localhost")||"[::1]"===t||"0.0.0.0"===t||t.endsWith(".local")||!t.includes(".")||/^127\./.test(t)||/^10\./.test(t)||/^192\.168\./.test(t))||/^172\.(1[6-9]|2\d|3[01])\./.test(t)}(s)?"https":"http","://").concat(n),n):{kind:"unusable",text:n}}function u(e,t){let n;try{n=new URL(e)}catch(e){return{kind:"unusable",text:t}}return!n.hostname||n.username||n.password?{kind:"unusable",text:t}:{kind:"url",url:e}}function p(e){return e.length>0?e:[{label:""}]}var m=n(9733),x=n(179),h=n(8462),j=n(4204);let f="panoma:accounts",b={urls:[],labels:[]};function g(e){let{url:t,label:n}=e,[r,i]=(0,s.useState)(!1),l=(()=>{try{return t?new URL(t).origin:void 0}catch(e){return}})();if(!l||r){var o;return(0,a.jsx)("span",{className:"project-account-chip","aria-hidden":!0,children:(null!=(o=n.trim()[0])?o:"\xb7").toUpperCase()})}return(0,a.jsx)("img",{className:"project-account-favicon",src:"".concat(l,"/favicon.ico"),alt:"",width:16,height:16,loading:"lazy",onError:()=>i(!0)})}function y(e){let{entry:t}=e,n=(0,x.kj)(),{copied:s,copy:r}=(0,h.K)();return(0,a.jsxs)("li",{className:"project-account-row",children:[(0,a.jsx)(g,{url:t.url,label:t.label}),(0,a.jsxs)("div",{className:"project-account-body",children:[(0,a.jsx)("strong",{children:t.label}),t.url&&(0,a.jsxs)("span",{className:"project-account-line",children:[(0,a.jsx)("a",{href:t.url,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:function(e){try{return new URL(e).host}catch(t){return e}}(t.url)}),(0,a.jsx)("button",{type:"button",onClick:()=>r(t.url),title:t.url,children:s?n("accounts.copied"):"⧉"})]}),t.email&&(0,a.jsxs)("span",{className:"project-account-line",children:[(0,a.jsx)("code",{children:t.email}),(0,a.jsx)("button",{type:"button",onClick:()=>r(t.email),children:s?n("accounts.copied"):"⧉"})]}),t.note&&(0,a.jsx)("span",{className:"project-accounts-note",children:t.note})]})]})}function v(e){let{entries:t}=e,n=(0,x.kj)();return(0,a.jsxs)("div",{className:"project-accounts",children:[0===t.length?(0,a.jsx)("p",{className:"project-muted-message",children:n("accounts.empty")}):(0,a.jsx)("ul",{className:"project-accounts-list",children:t.slice(0,6).map((e,t)=>(0,a.jsx)(y,{entry:e},"".concat(e.label,":").concat(t)))}),(0,a.jsxs)("a",{className:"project-accounts-go",href:"#accounts",onClick:()=>window.dispatchEvent(new CustomEvent(f)),children:[(0,a.jsx)(i.YUE,{className:"h-3.5 w-3.5","aria-hidden":!0}),n(0===t.length?"accounts.addFirst":"accounts.editList")]})]})}function k(e){let{slug:t,initial:n}=e,l=(0,x.kj)(),o=(0,r.useRouter)(),[c,u]=(0,s.useState)(!1),[h,g]=(0,s.useState)(n),[v,k]=(0,s.useState)("ready"),[N,w]=(0,s.useState)(null),[S,C]=(0,s.useState)(b),T=(0,s.useRef)(null),P=(0,s.useCallback)(()=>{g(p),u(!0)},[]);function O(e,t,n){g(a=>a.map((a,s)=>s===e?{...a,[t]:n}:a)),C(n=>(function(e,t,n){if("label"!==n&&"url"!==n)return e;let a="label"===n?"labels":"urls";return e[a].includes(t)?{...e,[a]:e[a].filter(e=>e!==t)}:e})(n,e,t))}async function E(){let e=function(e){let t=[],n=[];return e.forEach((e,a)=>{"unusable"===d(e.url).kind&&t.push(a),[e.url,e.email,e.note].some(e=>null==e?void 0:e.trim())&&!e.label.trim()&&n.push(a)}),{urls:t,labels:n}}(h);if(C(e),e.urls.length>0||e.labels.length>0)return void w(null);k("saving"),w(null);let n=h.filter(e=>e.label.trim()).map(e=>{let t=d(e.url);return{...e,url:"url"===t.kind?t.url:void 0}}),a=await (0,m.B)("/api/accounts",{slug:t,accounts:n},l("project.unreachable"));a.ok?(g(n),u(!1),o.refresh()):w(a.message),k("ready")}return((0,s.useEffect)(()=>(window.addEventListener(f,P),()=>window.removeEventListener(f,P)),[P]),(0,s.useEffect)(()=>{if(!c)return;let e=setTimeout(()=>{var e;return null==(e=T.current)?void 0:e.focus()},0);return()=>clearTimeout(e)},[c]),c)?(0,a.jsx)("div",{className:"project-accounts project-accounts--full",children:(0,a.jsxs)("div",{className:"project-accounts-form",children:[h.map((e,t)=>{var n,s,r;return(0,a.jsxs)("div",{className:"project-accounts-row",children:[(0,a.jsx)("input",{ref:0===t?T:void 0,value:e.label,onChange:e=>O(t,"label",e.target.value),placeholder:l("accounts.label"),maxLength:80,"aria-invalid":S.labels.includes(t)||void 0}),(0,a.jsx)("input",{value:null!=(n=e.url)?n:"",onChange:e=>O(t,"url",e.target.value),placeholder:"vercel.com/… \xb7 localhost:3000",maxLength:300,"aria-invalid":S.urls.includes(t)||void 0}),(0,a.jsx)("input",{value:null!=(s=e.email)?s:"",onChange:e=>O(t,"email",e.target.value),placeholder:l("accounts.email"),maxLength:120}),(0,a.jsx)("input",{value:null!=(r=e.note)?r:"",onChange:e=>O(t,"note",e.target.value),placeholder:l("accounts.note"),maxLength:300}),(0,a.jsx)("button",{type:"button",onClick:()=>g(e=>e.filter((e,n)=>n!==t)),"aria-label":l("accounts.remove"),className:"text-faint transition-colors hover:text-fail",children:"\xd7"})]},t)}),(0,a.jsxs)("div",{className:"project-accounts-actions",children:[(0,a.jsx)("button",{type:"button",onClick:()=>g(e=>[...e,{label:""}]),disabled:h.length>=24,className:"rounded border border-edge px-2.5 py-1 font-mono text-[11px] text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",children:l("accounts.addRow")}),(0,a.jsx)("button",{type:"button",onClick:E,disabled:"saving"===v,className:"rounded border border-accent bg-accent px-2.5 py-1 font-mono text-[11px] text-white transition-opacity hover:opacity-85 disabled:opacity-50",children:l("saving"===v?"accounts.saving":"accounts.save")}),(0,a.jsx)("button",{type:"button",onClick:()=>{g(n),C(b),w(null),u(!1)},className:"font-mono text-[11px] text-faint transition-colors hover:text-smoke",children:l("accounts.cancel")})]}),(0,a.jsxs)("p",{className:"project-accounts-warning",children:[(0,a.jsx)(i.JPZ,{className:"h-3.5 w-3.5","aria-hidden":!0}),l("accounts.noSecrets")]}),S.urls.length>0&&(0,a.jsx)(j.lZ,{text:l("accounts.badUrl")}),S.labels.length>0&&(0,a.jsx)(j.lZ,{text:l("accounts.needsLabel")}),N&&(0,a.jsx)(j.lZ,{text:N})]})}):(0,a.jsxs)("div",{className:"project-accounts project-accounts--full",children:[0===h.length?(0,a.jsx)("p",{className:"project-muted-message",children:l("accounts.empty")}):(0,a.jsx)("ul",{className:"project-accounts-list",children:h.map((e,t)=>(0,a.jsx)(y,{entry:e},"".concat(e.label,":").concat(t)))}),(0,a.jsxs)("button",{type:"button",onClick:P,className:"mt-3 inline-flex items-center gap-1.5 rounded border border-edge px-2.5 py-1 font-mono text-[11px] text-smoke transition-colors hover:border-accent hover:text-accent",children:[(0,a.jsx)(i.YUE,{className:"h-3.5 w-3.5","aria-hidden":!0}),l(0===h.length?"accounts.addFirst":"accounts.edit")]})]})}},839:(e,t,n)=>{"use strict";n.d(t,{OpenFolder:()=>c});var a=n(9763),s=n(4963),r=n(5595),i=n(7911),l=n(6859);let o={folder:{idle:"open.folder",busy:"open.busy",done:"open.doneFolder"},editor:{idle:"open.editor",busy:"open.busy",done:"open.done"},terminal:{idle:"open.terminal",busy:"open.busy",done:"open.done"}};function c(e){let{projectId:t,path:n,tool:c="folder",appearance:d="inline",locale:u}=e,[p,m]=(0,s.useState)("ready"),[x,h]=(0,s.useState)(null);async function j(){m("opening"),h(null);let e=await (0,l.A)({id:t,tool:c},(0,i.t)(u,"open.unreachable"));e.ok?(m("open"),setTimeout(()=>m("ready"),2e3)):(m("ready"),h(e.message))}let f=o[c],b=(0,i.t)(u,f.idle),g="editor"===c?r.KQe:"terminal"===c?r.Jhl:r.mUU;return(0,a.jsxs)("span",{className:"open-project-action open-project-action--".concat(d),children:[(0,a.jsxs)("button",{type:"button",onClick:j,disabled:"opening"===p,title:"".concat(b," \xb7 ").concat(n),children:[(0,a.jsx)(g,{"aria-hidden":!0}),"opening"===p?(0,i.t)(u,f.busy):"open"===p?(0,i.t)(u,f.done):b]}),x&&(0,a.jsx)("span",{className:"open-project-action__error",children:x})]})}},905:(e,t,n)=>{"use strict";n.d(t,{ProjectBuildCheck:()=>c});var a=n(9763),s=n(4963),r=n(7244),i=n(5595),l=n(179),o=n(4204);function c(e){let{slug:t,initial:n}=e,c=(0,l.kj)(),d=(0,l.Ym)(),u=(0,r.useRouter)(),[p,m]=(0,s.useState)(n),[x,h]=(0,s.useState)(!1),[j,f]=(0,s.useState)(null);async function b(){h(!0),f(null);try{let n=await fetch("/api/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:t})}),a=await n.json();if(n.ok&&a.ok&&a.verdict)m(a.verdict),u.refresh();else{var e;f(null!=(e=a.error)?e:String(n.status))}}catch(e){f(c("project.unreachable"))}finally{h(!1)}}let g=(0,a.jsxs)("button",{type:"button",onClick:b,disabled:x,className:"inline-flex items-center gap-1.5 rounded border border-edge px-2.5 py-1 font-mono text-[11px] text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",children:[(0,a.jsx)(i.ax_,{className:"h-3.5 w-3.5","aria-hidden":!0}),c(p?"check.rerun":"check.run")]});if(x)return(0,a.jsx)("div",{className:"project-build-check",children:(0,a.jsx)("p",{className:"project-muted-message",children:c("check.running")})});if(!p)return(0,a.jsxs)("div",{className:"project-build-check",children:[(0,a.jsx)("p",{className:"project-muted-message",children:c("check.none")}),g,j&&(0,a.jsx)(o.lZ,{text:j,className:"mt-2"})]});let y="ok"===p.status||"failed"===p.status,v=new Date(p.at).toLocaleDateString(d,{day:"numeric",month:"short",year:"numeric"}),k=Math.max(1,Math.round(p.durationMs/1e3));return(0,a.jsxs)("div",{className:"project-build-check",children:[(0,a.jsxs)("p",{className:"flex items-center gap-1.5 text-sm",children:["ok"===p.status?(0,a.jsx)(i.CU3,{className:"h-4 w-4 shrink-0 text-emerald-600","aria-hidden":!0}):"failed"===p.status?(0,a.jsx)(i.oNX,{className:"h-4 w-4 shrink-0 text-fail","aria-hidden":!0}):null,(0,a.jsx)("strong",{children:c("ok"===p.status?"check.ok":"failed"===p.status?"check.broken":"check.inconclusive")}),y&&(0,a.jsx)("span",{className:"font-mono text-[11px] text-faint",children:c("check.checkedOn",{date:v,seconds:String(k)})})]}),(0,a.jsx)("p",{className:"mt-1 text-[13px] text-smoke",children:p.summary}),p.dirty&&(0,a.jsx)("p",{className:"mt-1 font-mono text-[11px] text-amber-600",children:c("check.dirty")}),p.reason&&(0,a.jsx)("pre",{className:"project-build-check-reason",children:p.reason}),p.isolationNote&&(0,a.jsx)("p",{className:"mt-1 text-[11px] text-faint",children:p.isolationNote}),(0,a.jsx)("div",{className:"mt-2",children:g}),j&&(0,a.jsx)(o.lZ,{text:j,className:"mt-2"})]})}},2473:(e,t,n)=>{"use strict";n.d(t,{MdRepair:()=>c});var a=n(9763),s=n(4963),r=n(7244),i=n(9733),l=n(179),o=n(4204);function c(e){let{slug:t,path:n,fixable:c,onDone:d}=e,u=(0,l.kj)(),p=(0,r.useRouter)(),[m,x]=(0,s.useState)("ready"),[h,j]=(0,s.useState)(null),[f,b]=(0,s.useState)(null);async function g(){x("working"),b(null);let e=await (0,i.B)("/api/md/repair",{slug:t,...n?{path:n}:{}},u("project.unreachable"));if(e.ok){var a,s;let t=null!=(a=e.data.applied)?a:0,n=null!=(s=e.data.remaining)?s:0;j(0===n?u("project.mdRepairDoneAll",{n:t}):u("project.mdRepairDone",{n:t,m:n})),d?setTimeout(d,1800):setTimeout(()=>p.refresh(),2200)}else b(e.message);x("ready")}return(0,a.jsxs)("span",{className:"project-md-repair",children:[(0,a.jsx)("button",{type:"button",onClick:g,disabled:"working"===m,className:"inline-flex items-center rounded border border-accent bg-accent px-2.5 py-1 font-mono text-[11px] text-white transition-opacity hover:opacity-85 disabled:opacity-50",children:"working"===m?u("project.mdRepairWorking"):u("project.mdRepairButton",{n:c})}),h&&(0,a.jsx)("span",{className:"ml-2 text-xs text-live",children:h}),f&&(0,a.jsx)(o.lZ,{as:"span",text:f,className:"ml-2"})]})}},2625:(e,t,n)=>{"use strict";n.d(t,{Critiques:()=>o});var a=n(9763),s=n(4963),r=n(7244),i=n(179),l=n(4204);function o(e){let{slug:t,findings:n,queued:o,discarded:c=[],review:d=null}=e,u=(0,i.kj)(),p=(0,r.useRouter)(),[,m]=(0,s.useTransition)(),[x,h]=(0,s.useState)(o),[j,f]=(0,s.useState)(()=>new Set(c)),b=JSON.stringify(Object.entries(o).sort()),g=JSON.stringify([...c].sort());(0,s.useEffect)(()=>{h(Object.fromEntries(JSON.parse(b)))},[b]),(0,s.useEffect)(()=>{f(new Set(JSON.parse(g)))},[g]);let[y,v]=(0,s.useState)(null),[k,N]=(0,s.useState)({}),[w,S]=(0,s.useState)(!1);if(0===n.length)return(0,a.jsx)("p",{className:"mt-4 font-mono text-[11px] leading-relaxed text-faint",children:null===d?u("critique.never"):"".concat(u("critique.clean",{n:d.sourcesRead})).concat(d.truncated?" ".concat(u("critique.partial")):"")});function C(e,t){N(n=>({...n,[e]:t}))}async function T(e,n){if(null===y){v(e.index);try{let s=await fetch("/api/twin/critique",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:t,finding:e.index,key:e.key,decision:n})}),r=await s.json().catch(()=>({}));if(!s.ok){var a;r.id&&h(t=>({...t,[e.key]:r.id})),C(e.index,{text:null!=(a=r.error)?a:String(s.status),bad:409!==s.status||void 0===r.id});return}"discard"===n?(f(t=>new Set(t).add(e.key)),h(t=>{let n={...t};return delete n[e.key],n}),C(e.index,{text:u("critique.dismissed"),bad:!1})):(r.id&&h(t=>({...t,[e.key]:r.id})),f(t=>{let n=new Set(t);return n.delete(e.key),n}),C(e.index,{text:u("critique.queued"),bad:!1})),m(()=>p.refresh())}catch(t){C(e.index,{text:u("task.unreachable"),bad:!0})}finally{v(null)}}}return(0,a.jsxs)("div",{className:"mt-4 rounded-lg border border-edge bg-surface px-4 py-3",children:[(0,a.jsx)("button",{type:"button",onClick:()=>S(e=>!e),className:"font-mono text-xs text-smoke transition-colors hover:text-chalk",children:w?u("critique.hide"):1===n.length?u("critique.showOne"):u("critique.showMany",{findings:n.length})}),w&&(0,a.jsx)("ol",{className:"mt-3 flex flex-col gap-3",children:n.map(e=>{let t=x[e.key],n=j.has(e.key),s=k[e.index];return(0,a.jsxs)("li",{className:"flex flex-col gap-1",children:[(0,a.jsxs)("p",{className:"max-w-2xl text-sm leading-relaxed",children:[e.claim,e.hint?(0,a.jsxs)("span",{className:"text-smoke",children:[" \xb7 ",e.hint]}):null]}),e.file&&(0,a.jsxs)("p",{className:"max-w-2xl font-mono text-xs text-faint",children:[e.file,e.line?":".concat(e.line):""]}),(0,a.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(l.rA,{tone:"plain",type:"button",onClick:()=>void T(e,"queue"),disabled:null!==y||void 0!==t,children:void 0!==t?u("look.assigned"):u("look.assignButton")}),!n&&(0,a.jsx)("button",{type:"button",onClick:()=>void T(e,"discard"),disabled:null!==y,className:"rounded border border-edge px-2.5 py-1 font-mono text-xs text-faint transition-colors hover:border-chalk hover:text-smoke disabled:opacity-50",children:u("look.dismissButton")}),n&&(0,a.jsx)("span",{className:"font-mono text-xs text-faint",children:u("look.dismissed")})]}),s&&(0,a.jsx)("p",{className:"max-w-2xl font-mono text-xs ".concat(s.bad?"text-fail":"text-smoke"),children:s.text})]},e.key)})})]})}},2922:(e,t,n)=>{"use strict";n.d(t,{q:()=>p});var a=n(9763),s=n(4963),r=n(5595),i=n(2574),l=n(7911),o=n(6859),c=n(8010),d=n(8384),u=n(5035);function p(e){var t,n;let{projectId:p,path:x,locale:h,onOpenChange:j,closed:f,compact:b}=e,{remote:g,editors:y,apps:v,agents:k}=(0,d.b)(),[N,w]=(0,s.useState)(!1),[S,C]=(0,s.useState)("ready"),[T,P]=(0,s.useState)(null),[O,E]=(0,u.F)("open:preferred-destination","app:claude-app"),A=(0,s.useRef)(null);if((0,s.useEffect)(()=>{f&&w(!1)},[f]),(0,c.y)(A,N,()=>w(!1)),g)return null;async function R(e){w(!1),C("opening"),P(null);let t=await (0,o.A)({id:p,tool:e.tool,with:e.target},(0,l.t)(h,"open.unreachable"));t.ok?(C("open"),setTimeout(()=>C("ready"),2e3)):(C("ready"),P(t.message))}let B=[...y.map(e=>{var t;return{key:"editor:".concat(e.id),tool:"editor",target:e.id,name:e.name,icon:null!=(t=i.L[e.id])?t:r.mUU}}),...v.map(e=>{var t;return{key:"app:".concat(e.id),tool:"app",target:e.id,name:e.name,sub:"catalog.appSub",icon:null!=(t=i.L[e.id])?t:r.mUU}}),...k.filter(e=>!e.broken).map(e=>{var t;return{key:"agent:".concat(e.id),tool:"agent",target:e.id,name:e.name,sub:"catalog.agentSub",icon:null!=(t=i.L[e.id])?t:r.Jhl}}),{key:"terminal",tool:"terminal",name:(0,l.t)(h,"catalog.terminal"),sub:"catalog.terminalSub",icon:r.Jhl},{key:"folder",tool:"folder",name:(0,l.t)(h,"catalog.folder"),sub:"catalog.folderSub",icon:r.mUU}],_=null!=(n=null!=(t=B.find(e=>e.key===O))?t:B.find(e=>"app:claude-app"===e.key))?n:B[0],L=_.icon;return(0,a.jsxs)("div",{className:b?"open-menu open-menu--compact":"open-menu",ref:A,children:[(0,a.jsxs)("div",{className:"open-menu__split",children:[(0,a.jsxs)("button",{type:"button",className:"open-menu__primary",onClick:()=>void R(_),disabled:"opening"===S,title:"".concat(_.name," \xb7 ").concat(x),children:[(0,a.jsx)(L,{"aria-hidden":!0}),"opening"===S?(0,l.t)(h,"open.busy"):"open"===S?(0,l.t)(h,"open.done"):(0,l.t)(h,"open.openWith",{name:_.name})]}),B.length>1&&(0,a.jsx)("button",{type:"button",className:"open-menu__toggle","aria-label":(0,l.t)(h,"open.moreDestinations"),"aria-expanded":N,"aria-haspopup":"menu",onClick:()=>{let e=!N;w(e),null==j||j(e)},children:(0,a.jsx)(r.zKo,{"aria-hidden":!0})})]}),N&&(0,a.jsx)("div",{className:"open-menu__list",role:"menu",children:B.map((e,t)=>{let n=e.icon,s=e.key===_.key,i=B[t-1],o=void 0!==i&&m(i)!==m(e);return(0,a.jsxs)("button",{type:"button",role:"menuitemradio","aria-checked":s,className:"open-menu__item".concat(o?" is-first-of-group":"").concat(s?" is-default":""),onClick:()=>{E(e.key),R(e)},children:[(0,a.jsx)(n,{"aria-hidden":!0}),(0,a.jsxs)("span",{className:"open-menu__item-copy",children:[(0,a.jsx)("span",{children:e.name}),(e.sub||s)&&(0,a.jsxs)("small",{children:[e.sub&&(0,l.t)(h,e.sub),e.sub&&s&&" \xb7 ",s&&(0,a.jsx)("b",{children:(0,l.t)(h,"open.defaultDestination")})]})]}),s&&(0,a.jsx)(r.mmf,{className:"open-menu__default-check","aria-hidden":!0})]},e.key)})}),T&&(0,a.jsx)("span",{className:"open-menu__error",children:T})]})}function m(e){return"editor"===e.tool||"app"===e.tool?"app":"folder"===e.tool?"finder":"terminal"}},3231:(e,t,n)=>{"use strict";n.d(t,{ProjectBoard:()=>o});var a=n(9763),s=n(4963),r=n(179);let i=[{id:"all",hashes:["","all"],label:"project.navAll"},{id:"resumen",hashes:["summary","resumen"],label:"project.navSummary"},{id:"actividad",hashes:["activity","actividad"],label:"project.navChanges"},{id:"retomar",hashes:["resume","retomar"],label:"project.navResume"},{id:"cuentas",hashes:["accounts","cuentas"],label:"project.navAccounts"},{id:"encargos",hashes:["assignments","encargos"],label:"project.navAssignments"},{id:"md",hashes:["md"],label:"project.navMd"},{id:"dependencias",hashes:["dependencies","dependencias","security","seguridad"],label:"project.navDeps"},{id:"agentes",hashes:["agents","agentes","log","bitacora"],label:"project.navAgents"},{id:"detalles",hashes:["details","detalles","stack","tecnologias"],label:"project.navDetails"}];function l(e){var t;null==(t=document.querySelector(".project-detail-page"))||t.setAttribute("data-view",e)}function o(e){let{sidebar:t,children:n}=e,o=(0,r.kj)(),[c,d]=(0,s.useState)("all");return(0,s.useEffect)(()=>{let e=()=>{let e=function(e){let t=e.replace(/^#/,"");if("unsaved"===t||"respaldo"===t)return"resumen";for(let e of i)if(e.hashes.includes(t))return e.id;return"all"}(window.location.hash);d(e),l(e)};return e(),window.addEventListener("hashchange",e),()=>window.removeEventListener("hashchange",e)},[]),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("nav",{className:"project-subnav","aria-label":o("project.sections"),children:i.map(e=>{let t="all"===e.id?"#all":"#".concat(e.hashes[0]),n=c===e.id;return(0,a.jsx)("a",{href:t,className:n?"is-active":void 0,"aria-current":n?"page":void 0,onClick:n=>{n.preventDefault();let a=window.location.pathname+window.location.search;if("all"!==e.id&&c===e.id){window.history.replaceState(null,"",a),d("all"),l("all");return}window.history.replaceState(null,"","all"===e.id?a:"".concat(a).concat(t)),d(e.id),l(e.id)},children:o(e.label)},e.id)})}),(0,a.jsxs)("div",{className:"project-detail-layout",id:"summary",children:[(0,a.jsx)("div",{className:"project-primary-column",children:n}),(0,a.jsx)("aside",{className:"project-secondary-column",children:t})]})]})}},4982:(e,t,n)=>{"use strict";n.d(t,{ProjectActionBar:()=>m});var a=n(9763),s=n(7244),r=n(4963),i=n(5595),l=n(2922),o=n(179),c=n(7558);function d(e){let{projectId:t,name:n,hidden:l,redirectTo:c,appearance:d="inline"}=e,p=(0,o.kj)(),m=(0,s.useRouter)(),[x,h]=(0,r.useState)(!1),[j,f]=(0,r.useState)(!1),[b,g]=(0,r.useState)(null);async function y(e,n){h(!0),g(null);try{let s=await fetch("/api/project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,id:t,confirmation:n})}),r=await s.json();if(s.ok)m.refresh();else{var a;g(null!=(a=r.error)?a:p("project.actionFailed"))}}catch(e){g(p("project.unreachable"))}finally{h(!1)}}return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("span",{className:"menu"===d?"project-menu-actions":"inline-flex flex-wrap items-baseline gap-2",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>y(l?"mostrar":"ocultar"),disabled:x,title:p(l?"project.showTitle":"project.hideTitle"),className:"menu"===d?"project-menu-item":"inline-flex items-center gap-1.5 rounded border border-edge px-2 py-0.5 font-mono text-[11px] text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",children:[l?(0,a.jsx)(i.bZk,{className:"h-3.5 w-3.5","aria-hidden":!0}):(0,a.jsx)(i.EgV,{className:"h-3.5 w-3.5","aria-hidden":!0}),p(l?"project.show":"project.hide")]}),(0,a.jsxs)("button",{type:"button",onClick:()=>f(!0),disabled:x,title:p("project.removeTitle"),className:"menu"===d?"project-menu-item project-menu-item--danger":"inline-flex items-center gap-1.5 rounded border border-edge px-2 py-0.5 font-mono text-[11px] text-smoke transition-colors hover:border-fail hover:text-fail disabled:opacity-50",children:[(0,a.jsx)(i.yRo,{className:"h-3.5 w-3.5","aria-hidden":!0}),p("project.remove")]}),b&&(0,a.jsx)("span",{className:"menu"===d?"project-menu-error":"font-mono text-[11px] text-fail",children:b})]}),j&&(0,a.jsx)(u,{name:n,busy:x,onCancel:()=>f(!1),onConfirm:async e=>{h(!0),g(null);try{let a=await fetch("/api/project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"excluir",id:t,confirmation:e})}),s=await a.json();if(a.ok)f(!1),c?m.push(c):m.refresh();else{var n;g(null!=(n=s.error)?n:p("project.actionFailed")),f(!1)}}catch(e){g(p("project.unreachable")),f(!1)}finally{h(!1)}}})]})}function u(e){let{name:t,busy:n,onCancel:s,onConfirm:i}=e,l=(0,o.kj)(),[d,u]=(0,r.useState)(""),p=(0,r.useRef)(null),m=(0,r.useRef)(null),x=d.trim()===t;return(0,c.r)(m,!0),(0,r.useEffect)(()=>{requestAnimationFrame(()=>{var e;return null==(e=p.current)?void 0:e.focus()});let e=e=>{"Escape"===e.key&&s()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[s]),(0,a.jsx)("div",{className:"palette-backdrop",role:"presentation",onClick:e=>{e.target===e.currentTarget&&s()},children:(0,a.jsxs)("form",{ref:m,className:"confirm-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"confirm-title",onSubmit:e=>{e.preventDefault(),x&&!n&&i(d.trim())},children:[(0,a.jsx)("h2",{id:"confirm-title",children:l("project.removeHeading",{name:t})}),(0,a.jsx)("p",{children:l("project.removeBody")}),(0,a.jsxs)("p",{className:"confirm-dialog__safe",children:[(0,a.jsx)("strong",{children:l("project.removeSafeStrong")})," ",l("project.removeSafeBody")]}),(0,a.jsxs)("label",{children:[(0,a.jsxs)("span",{children:[l("project.removeTypeBefore")," ",(0,a.jsx)("code",{children:t})," ",l("project.removeTypeAfter")]}),(0,a.jsx)("input",{ref:p,value:d,onChange:e=>u(e.target.value),autoComplete:"off",spellCheck:!1,"aria-label":l("project.removeTypeAria",{name:t})})]}),(0,a.jsxs)("div",{className:"confirm-dialog__actions",children:[(0,a.jsx)("button",{type:"button",onClick:s,disabled:n,children:l("project.cancel")}),(0,a.jsx)("button",{type:"submit",disabled:!x||n,className:"is-danger",children:l(n?"project.removing":"project.removeConfirm")})]})]})})}var p=n(8010);function m(e){let{projectId:t,projectName:n,path:c,hidden:u}=e,m=(0,o.kj)(),x=(0,o.Ym)(),h=(0,s.useRouter)(),j=(0,r.useRef)(null),[f,b]=(0,r.useState)(!1),[g,y]=(0,r.useState)(null),[v,k]=(0,r.useState)("ok"),[N,w]=(0,r.useState)(!1);async function S(){try{await navigator.clipboard.writeText(c),k("ok"),y(m("project.pathCopied")),setTimeout(()=>y(null),1800)}catch(e){k("error"),y(m("project.pathCopyFailed"))}}async function C(){w(!0),y(null);try{let n=await fetch("/api/rescan",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:t})}),a=await n.json();if(!n.ok||!a.ok){var e;throw Error(null!=(e=a.error)?e:m("project.rescanFailed"))}k("ok"),y(m("project.rescanned")),h.refresh()}catch(e){k("error"),y(e.message)}finally{w(!1)}}return(0,p.y)(j,f,()=>b(!1)),(0,a.jsxs)("div",{className:"project-action-bar",ref:j,children:[(0,a.jsxs)("div",{className:"project-action-bar__primary",children:[(0,a.jsx)(l.q,{projectId:t,path:c,locale:x,closed:f,onOpenChange:e=>e&&b(!1)}),(0,a.jsx)("button",{type:"button",className:"project-more-button","aria-label":m("project.moreActions"),"aria-expanded":f,"aria-haspopup":"menu",onClick:()=>b(e=>!e),children:(0,a.jsx)(i.zMq,{"aria-hidden":!0})})]}),f&&(0,a.jsxs)("div",{className:"project-overflow-menu",role:"menu",children:[(0,a.jsxs)("button",{type:"button",role:"menuitem",className:"project-menu-item",onClick:S,children:[(0,a.jsx)(i.hru,{"aria-hidden":!0}),m("project.copyPath")]}),(0,a.jsxs)("button",{type:"button",role:"menuitem",className:"project-menu-item",onClick:C,disabled:N,children:[(0,a.jsx)(i.efr,{"aria-hidden":!0,className:N?"is-spinning":void 0}),m(N?"project.rescanning":"project.rescan")]}),g&&(0,a.jsxs)("p",{className:"project-menu-notice project-menu-notice--".concat(v),role:"status",children:["ok"===v?(0,a.jsx)(i.mmf,{"aria-hidden":!0}):(0,a.jsx)(i.f9d,{"aria-hidden":!0}),g]}),(0,a.jsx)("div",{className:"project-menu-divider"}),(0,a.jsx)(d,{projectId:t,name:n,hidden:u,redirectTo:"/",appearance:"menu"})]})]})}},5035:(e,t,n)=>{"use strict";n.d(t,{F:()=>s});var a=n(4963);function s(e,t,n){let[s,r]=(0,a.useState)(t);return(0,a.useEffect)(()=>{try{let t=window.localStorage.getItem("panoma:".concat(e));if(null!==t)return void r(JSON.parse(t));if(!n)return;let a=window.localStorage.getItem("panoma:".concat(n));if(null===a)return;r(JSON.parse(a)),window.localStorage.setItem("panoma:".concat(e),a),window.localStorage.removeItem("panoma:".concat(n))}catch(e){}},[e,n]),[s,function(t){r(t);try{window.localStorage.setItem("panoma:".concat(e),JSON.stringify(t))}catch(e){}}]}},5666:(e,t,n)=>{"use strict";n.d(t,{MdApply:()=>c});var a=n(9763),s=n(4963),r=n(7244),i=n(9733),l=n(179),o=n(4204);function c(e){let{slug:t,action:n,label:c}=e,d=(0,l.kj)(),u=(0,r.useRouter)(),[p,m]=(0,s.useState)("ready"),[x,h]=(0,s.useState)(null),[j,f]=(0,s.useState)(null);async function b(){m("working"),f(null),h(null);let e=await (0,i.B)("/api/md/apply",{slug:t,action:n},d("project.unreachable"));if(e.ok){var a;let t=null!=(a=e.data.file)?a:"AGENTS.md",s=e.data.created?d("project.mdInitDone",{file:t}):e.data.changed?"init"===n?d("project.mdBlockAdded",{file:t}):d("project.mdSyncDone",{file:t}):d("project.mdSyncSame");h(e.data.bridged?"".concat(s," ").concat(d("project.mdBridgeWritten")):s),setTimeout(()=>u.refresh(),2200)}else f(e.message);m("ready")}return(0,a.jsxs)("div",{className:"project-md-apply",children:[(0,a.jsx)("button",{type:"button",onClick:b,disabled:"working"===p,className:"inline-flex items-center gap-2 rounded border border-accent bg-accent px-3 py-1.5 font-mono text-xs text-white transition-opacity hover:opacity-85 disabled:opacity-50",children:"working"===p?d("project.mdApplyWorking"):c}),x&&(0,a.jsx)("p",{className:"mt-2 text-xs leading-relaxed text-live",children:x}),j&&(0,a.jsx)(o.lZ,{text:j,className:"mt-2"})]})}},5704:(e,t,n)=>{"use strict";n.d(t,{RunButton:()=>o});var a=n(9763),s=n(4963),r=n(7244),i=n(179);let l={ok:"text-live",quiet:"text-faint",warn:"text-idle",bad:"text-fail"};function o(e){let t=(0,i.kj)(),[n,o]=(0,s.useTransition)(),[c,d]=(0,s.useState)(null),[u,p]=(0,s.useState)("quiet"),[m,x]=(0,s.useState)(!1),[h,j]=(0,s.useState)(!1),f=(0,r.useRouter)();async function b(){let n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];j(!0),d(null),x(!1);try{var a,s;let r=await fetch("/api/runs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:e.slug,...e.security?{security:!0}:{packageName:e.packageName,targetVersion:e.targetVersion},...n?{force:!0}:{}})}),i=await r.json().catch(()=>null),l=function(e,t){var n;let a=t&&"object"==typeof t?t:{};return a.skipped&&a.knownFailure?{kind:"known-failure",summary:a.knownFailure.summary,runId:a.knownFailure.runId,hint:a.hint,forceable:!0,tone:"warn"}:!e.ok||a.error?{kind:"error",text:a.error,hint:a.hint,status:e.status,forceable:!1,tone:"bad"}:a.runId?{kind:"done",text:a.summary,tone:(n=a,"failed"===n.status?"bad":"no-changes"===n.status?"quiet":"proposed"===n.status?n.verified?"ok":"warn":"quiet")}:{kind:"unknown",status:e.status,tone:"bad"}}(r,i);p(l.tone),"known-failure"===l.kind?(x(l.forceable),d([t("project.alreadyFailed"),l.summary,l.hint].filter(Boolean).join(" "))):"error"===l.kind?d([null!=(a=l.text)?a:t("project.proposeRefused",{status:l.status}),l.hint].filter(Boolean).join(" ")):"unknown"===l.kind?d(t("project.proposeUnreadable",{status:l.status})):d(null!=(s=l.text)?s:t("project.proposeDone")),"known-failure"!==l.kind&&o(()=>f.refresh())}catch(e){p("bad"),d(t("project.runUnreachable"))}finally{j(!1)}}let g=h||n;return(0,a.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,a.jsx)("button",{type:"button",onClick:()=>void b(),disabled:g,className:"rounded border border-edge bg-raised px-2 py-0.5 font-mono text-[10px] text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",children:t(g?"project.proposing":"project.propose")}),m&&!g&&(0,a.jsx)("button",{type:"button",onClick:()=>void b(!0),className:"rounded border border-idle/40 bg-raised px-2 py-0.5 font-mono text-[10px] text-idle transition-colors hover:border-idle hover:text-accent",children:t("project.tryAnyway")}),c&&(0,a.jsx)("span",{role:"status",className:"font-mono text-[10px] ".concat(l[u]),children:c})]})}},5733:(e,t,n)=>{"use strict";let a;n.d(t,{q:()=>r});var s=n(4963);function r(){let[e,t]=(0,s.useState)({available:!1,agent:null});return(0,s.useEffect)(()=>{null!=a||(a=fetch("/api/assignments/launch").then(e=>e.json()).catch(()=>({available:!1,agent:null})));let e=!0;return a.then(n=>{e&&t(n)}),()=>{e=!1}},[]),e}},5838:(e,t,n)=>{"use strict";n.d(t,{ProjectHooks:()=>o});var a=n(9763),s=n(4963),r=n(7244),i=n(179),l=n(4204);function o(e){let{slug:t,installed:n}=e,o=(0,i.kj)(),c=(0,r.useRouter)(),[d,u]=(0,s.useState)(!1),[p,m]=(0,s.useState)(null),[,x]=(0,s.useTransition)();if(n)return(0,a.jsxs)("p",{className:"font-mono text-[11px] leading-relaxed text-faint",children:[(0,a.jsx)("span",{className:"text-accent",children:"✓"})," ",o("projectHooks.on")]});async function h(){if(!d){u(!0),m(null);try{var e,n;let a=await fetch("/api/hooks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:t})}),s=await a.json().catch(()=>({}));a.ok&&(null!=(e=s.installed)?e:0)>0?x(()=>c.refresh()):m(null!=(n=s.error)?n:o("bridge.hooksNoCli"))}catch(e){m(o("bridge.hooksNoCli"))}finally{u(!1)}}}return(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("p",{className:"font-mono text-[11px] leading-relaxed text-faint",children:o("projectHooks.off")}),(0,a.jsx)(l.rA,{tone:"raised",busy:d,disabled:d,onClick:()=>void h(),children:o("projectHooks.install")})]}),p&&(0,a.jsx)(l.lZ,{text:p})]})}},6298:(e,t,n)=>{"use strict";n.d(t,{UnusedAssets:()=>o});var a=n(9763),s=n(4963),r=n(179),i=n(7642),l=n(4204);function o(e){let{projectId:t}=e,n=(0,r.kj)(),[o,c]=(0,s.useState)("ready"),[d,u]=(0,s.useState)(null),[p,m]=(0,s.useState)(null);async function x(){c("searching"),m(null);try{var e;let a=await fetch("/api/assets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:t})}),s=await a.json();a.ok?u(s):m(null!=(e=s.error)?e:n("project.assetsFailed"))}catch(e){m(n("project.unreachable"))}finally{c("ready")}}return d?(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-mono text-[11px] text-faint",children:n("project.assetsStats",{n:d.analyzed,platform:d.skippedPlatform,sources:d.sourcesRead})}),0===d.unused.length?(0,a.jsx)("p",{className:"mt-3 rounded border border-edge bg-surface p-4 text-sm text-smoke",children:n("project.assetsAllUsed")}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("p",{className:"mt-3 font-display text-2xl font-semibold",children:[n("project.assetsUnused",{n:d.unused.length})," ",(0,a.jsx)("span",{className:"font-mono text-sm font-normal text-faint",children:(0,i.z)(d.unusedBytes)})]}),(0,a.jsx)("ul",{className:"mt-3 space-y-0.5",children:d.unused.map(e=>(0,a.jsxs)("li",{className:"flex items-baseline justify-between gap-3 border-b border-edge/50 py-1.5 font-mono text-xs",children:[(0,a.jsx)("span",{className:"truncate text-smoke",title:e.reason,children:e.path}),(0,a.jsx)("span",{className:"shrink-0 text-faint",children:(0,i.z)(e.bytes)})]},e.path))})]}),d.dynamicDirs.length>0&&(0,a.jsx)("p",{className:"mt-4 rounded border border-edge bg-surface p-3 font-mono text-[11px] text-smoke",children:n("project.assetsDynamic",{dirs:d.dynamicDirs.join(", ")})}),(0,a.jsx)("p",{className:"mt-3 font-mono text-[11px] text-faint",children:n("project.assetsCaveat")})]}):(0,a.jsxs)("div",{children:[(0,a.jsx)(l.rA,{tone:"surface",type:"button",onClick:x,busy:"searching"===o,busyLabel:n("project.assetsReading"),children:n("project.assetsSearch")}),p&&(0,a.jsx)(l.lZ,{text:p,className:"mt-2"}),(0,a.jsx)("p",{className:"mt-2 font-mono text-[11px] text-faint",children:n("project.assetsSlow")})]})}},6455:(e,t,n)=>{"use strict";n.d(t,{ProjectMemory:()=>o});var a=n(9763),s=n(4963),r=n(7244),i=n(179),l=n(4204);function o(e){let{slug:t,notes:n,usage:o}=e,c=(0,i.kj)(),[d,u]=(0,s.useState)(""),[p,m]=(0,s.useState)(!1),[x,h]=(0,s.useState)(null),[j,f]=(0,s.useState)(null),[b,g]=(0,s.useTransition)(),y=(0,r.useRouter)(),v=n.filter(e=>"approved"===e.status),k=n.filter(e=>"proposed"===e.status),N=n.filter(e=>"challenged"===e.status),w=p||null!==x||b;async function S(e,n){if(!w){m(void 0===n),h(null!=n?n:null),f(null);try{let n=await fetch("/api/notes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:t,...e})}),s=await n.json().catch(()=>({}));if(n.ok)u(""),g(()=>y.refresh());else{var a;f(null!=(a=s.error)?a:c("notes.saveFailed"))}}catch(e){f(c("notes.saveFailed"))}finally{m(!1),h(null)}}}return(0,a.jsxs)("section",{className:"rounded-lg border border-edge bg-surface p-4",children:[(0,a.jsxs)("div",{className:"mb-2.5 flex items-baseline justify-between gap-3",children:[(0,a.jsx)("h3",{className:"eyebrow",children:c("notes.title")}),(0,a.jsxs)("span",{className:"font-mono text-[10px] text-faint",children:[o.used,"/",o.budget]})]}),(0,a.jsx)("p",{className:"mb-3 font-mono text-[11px] leading-relaxed text-faint",children:c("notes.hint")}),(0,a.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=d.trim();t&&S({action:"add",body:t})},className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("input",{value:d,onChange:e=>u(e.target.value),maxLength:500,placeholder:c("notes.addPlaceholder"),"aria-label":c("notes.title"),className:"min-w-0 flex-1 rounded border border-edge bg-raised px-2.5 py-1.5 text-xs text-chalk placeholder:text-faint focus:border-accent focus:outline-none"}),(0,a.jsx)(l.rA,{tone:"raised",type:"submit",busy:p,disabled:w||!d.trim(),children:c("notes.add")})]}),j&&(0,a.jsx)(l.lZ,{text:j,className:"mt-2"}),0===v.length&&0===k.length&&0===N.length&&(0,a.jsx)("p",{className:"mt-3 text-xs text-faint",children:c("notes.empty")}),v.length>0&&(0,a.jsx)("ul",{className:"mt-3 space-y-1.5 border-t border-edge pt-3",children:v.map(e=>(0,a.jsxs)("li",{className:"flex flex-wrap items-baseline gap-2 text-xs",children:[(0,a.jsx)("span",{className:"min-w-0 flex-1 leading-relaxed text-smoke",children:e.body}),e.trigger&&(0,a.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-faint",children:c("notes.sleepsAt",{trigger:e.trigger})}),(0,a.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-faint",children:e.createdBy}),(0,a.jsx)(l.rA,{tone:"plain",busy:x===e.id,disabled:w,onClick:()=>void S({action:"discard",id:e.id},e.id),children:c("notes.discard")})]},e.id))}),N.length>0&&(0,a.jsxs)("div",{className:"mt-3 border-t border-edge pt-3",children:[(0,a.jsx)("h4",{className:"eyebrow mb-2",children:c("notes.challengedTitle")}),(0,a.jsx)("ul",{className:"space-y-1.5",children:N.map(e=>{var t,n,s,r,i;return(0,a.jsxs)("li",{className:"flex flex-wrap items-baseline gap-2 text-xs",children:[(0,a.jsx)("span",{className:"min-w-0 flex-1 leading-relaxed text-smoke",children:e.body}),(0,a.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-faint",children:c("notes.challengedEvidence",{target:null!=(r=null==(n=e.challenge)||null==(t=n.sentinel)?void 0:t.target)?r:"?",observed:null!=(i=null==(s=e.challenge)?void 0:s.observed)?i:"?"})}),(0,a.jsx)(l.rA,{tone:"raised",busy:x===e.id,disabled:w,onClick:()=>void S({action:"approve",id:e.id},e.id),children:c("notes.reapprove")}),(0,a.jsx)(l.rA,{tone:"plain",busy:x===e.id,disabled:w,onClick:()=>void S({action:"discard",id:e.id},e.id),children:c("notes.discard")})]},e.id)})})]}),k.length>0&&(0,a.jsxs)("div",{className:"mt-3 border-t border-edge pt-3",children:[(0,a.jsx)("h4",{className:"eyebrow mb-2",children:c("notes.pendingTitle")}),(0,a.jsx)("ul",{className:"space-y-1.5",children:k.map(e=>(0,a.jsxs)("li",{className:"flex flex-wrap items-baseline gap-2 text-xs",children:[(0,a.jsx)("span",{className:"min-w-0 flex-1 leading-relaxed text-smoke",children:e.body}),(0,a.jsxs)("span",{className:"shrink-0 font-mono text-[10px] text-faint",children:[e.trigger?"".concat(c("notes.sleepsAt",{trigger:e.trigger})," \xb7 "):"",c("notes.proposedBy",{agent:e.createdBy})]}),(0,a.jsx)(l.rA,{tone:"raised",busy:x===e.id,disabled:w,onClick:()=>void S({action:"approve",id:e.id},e.id),children:c("notes.approve")}),(0,a.jsx)(l.rA,{tone:"plain",busy:x===e.id,disabled:w,onClick:()=>void S({action:"discard",id:e.id},e.id),children:c("notes.discard")})]},e.id))})]})]})}},6541:(e,t,n)=>{"use strict";n.d(t,{ProjectDouble:()=>o});var a=n(9763),s=n(4963),r=n(7244),i=n(179),l=n(4204);function o(e){let{slug:t,consultations:n}=e,o=(0,i.kj)(),[c,d]=(0,s.useState)(null),[u,p]=(0,s.useState)(null),[m,x]=(0,s.useTransition)(),h=(0,r.useRouter)();if(0===n.length)return null;let j=null!==c||m;async function f(e,n){if(!j){d(e),p(null);try{var a;let s=await fetch("/api/consultations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:t,id:e,verdict:n})}),r=await s.json().catch(()=>({}));s.ok?x(()=>h.refresh()):p(null!=(a=r.error)?a:o("double.saveFailed"))}catch(e){p(o("double.saveFailed"))}finally{d(null)}}}return(0,a.jsxs)("section",{className:"rounded-lg border border-edge bg-surface p-4",children:[(0,a.jsxs)("div",{className:"mb-2.5 flex items-baseline justify-between gap-3",children:[(0,a.jsx)("h3",{className:"eyebrow",children:o("double.title")}),(0,a.jsx)("span",{className:"font-mono text-[10px] text-faint",children:o("double.shadowTag")})]}),(0,a.jsx)("p",{className:"mb-3 font-mono text-[11px] leading-relaxed text-faint",children:o("double.hint")}),u&&(0,a.jsx)(l.lZ,{text:u,className:"mb-2"}),(0,a.jsx)("ul",{className:"space-y-3",children:n.map(e=>(0,a.jsxs)("li",{className:"border-t border-edge pt-2.5 text-xs first:border-t-0 first:pt-0",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-baseline gap-2",children:[(0,a.jsx)("span",{className:"min-w-0 flex-1 leading-relaxed text-chalk",children:e.question}),(0,a.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-faint",children:o("double.askedBy",{agent:e.agent})})]}),"drafting"===e.status&&(0,a.jsx)("p",{className:"mt-1 text-[11px] text-faint",children:o("double.drafting")}),"abstained"===e.status&&(0,a.jsx)("p",{className:"mt-1 text-[11px] text-faint",children:o("double.abstained")}),"drafted"===e.status&&e.cited.length>0&&(0,a.jsxs)("p",{className:"mt-1 font-mono text-[10px] leading-relaxed text-faint",children:[o("double.cites")," ",e.cited.join(" \xb7 ")]}),"drafted"===e.status&&(0,a.jsxs)("div",{className:"mt-1 flex flex-wrap items-baseline gap-2",children:[(0,a.jsx)("span",{className:"min-w-0 flex-1 leading-relaxed text-smoke",children:e.answer}),null===e.verdict?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.rA,{tone:"raised",busy:c===e.id,disabled:j,onClick:()=>void f(e.id,"backed"),children:o("double.backed")}),(0,a.jsx)(l.rA,{tone:"plain",busy:c===e.id,disabled:j,onClick:()=>void f(e.id,"vetoed"),children:o("double.vetoed")})]}):(0,a.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-faint",children:"backed"===e.verdict?o("double.labeledBacked"):o("double.labeledVetoed")})]})]},e.id))})]})}},6859:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(9733);async function s(e,t){let n=await (0,a.B)("/api/open",{id:e.id,tool:e.tool,...e.with?{with:e.with}:{}},t,e=>[e.error,e.hint].filter(Boolean).join(" "));return n.ok?{ok:!0}:{ok:!1,message:n.message}}},7209:(e,t,n)=>{"use strict";n.d(t,{b:()=>i});var a=n(9763),s=n(179);let r={es:"lang.es",en:"lang.en"};function i(e){let{lang:t}=e,n=(0,s.kj)(),i=(0,s.Ym)(),l="en"===t?"en":"es";return l===i?null:(0,a.jsx)("span",{children:n("project.aiWrittenIn",{lang:n(r[l])})})}},7346:(e,t,n)=>{"use strict";n.d(t,{MdReview:()=>c});var a=n(9763),s=n(4963),r=n(5595),i=n(179),l=n(4204),o=n(7209);function c(e){var t;let{slug:n,initial:c,stale:d}=e,u=(0,i.kj)(),p=(0,i.Ym)(),[m,x]=(0,s.useState)("ready"),[h,j]=(0,s.useState)(c),[f,b]=(0,s.useState)(!1),[g,y]=(0,s.useState)(null);async function v(){x("writing"),y(null);try{let e=await fetch("/api/md/review",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:n})}),t=await e.json();e.ok?(j({text:t.text,model:t.model,at:new Date().toISOString(),lang:p}),b(!0)):y([t.error,t.hint].filter(Boolean).join(" \xb7 "))}catch(e){y(u("project.unreachable"))}finally{x("ready")}}return(0,a.jsxs)("div",{className:"rounded-lg border border-edge bg-surface p-4",children:[h?(0,a.jsxs)(a.Fragment,{children:[d&&!f&&(0,a.jsx)("p",{className:"mb-2 font-mono text-[11px] text-amber-600",children:u("project.mdReviewStale")}),(0,a.jsx)("p",{className:"whitespace-pre-line text-sm leading-relaxed text-chalk",children:h.text}),(0,a.jsxs)("p",{className:"mt-3 flex flex-wrap items-center gap-x-3 gap-y-1 border-t border-edge pt-2.5 font-mono text-[11px] text-faint",children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)(r.tZt,{className:"h-3.5 w-3.5","aria-hidden":!0}),u("project.aiWrittenBy",{model:null!=(t=h.model)?t:u("project.aiSomeModel")})]}),h.at&&(0,a.jsx)("span",{children:new Date(h.at).toLocaleDateString(p)}),(0,a.jsx)(o.b,{lang:h.lang}),(0,a.jsx)("button",{type:"button",onClick:v,disabled:"writing"===m,className:"ml-auto transition-colors hover:text-accent disabled:opacity-50",children:u("writing"===m?"project.mdReviewAsking":"project.mdReviewAgain")})]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{type:"button",onClick:v,disabled:"writing"===m,className:"inline-flex items-center gap-2 rounded border border-edge px-3 py-1.5 font-mono text-xs text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",children:[(0,a.jsx)(r.tZt,{className:"h-4 w-4","aria-hidden":!0}),u("writing"===m?"project.mdReviewAsking":"project.mdReviewAsk")]}),(0,a.jsxs)("p",{className:"mt-2 font-mono text-[11px] leading-relaxed text-faint",children:[u("project.mdReviewNote")," ",u("project.aiNoteBefore")," ",(0,a.jsx)("code",{children:"panoma ai use"}),"."]})]}),g&&(0,a.jsx)(l.lZ,{text:g,className:"mt-2"})]})}},7558:(e,t,n)=>{"use strict";n.d(t,{r:()=>s});var a=n(4963);function s(e,t){(0,a.useEffect)(()=>{if(!t)return;let n=document.activeElement,a=t=>{if("Tab"!==t.key)return;let n=e.current;if(!n)return;let a=[...n.querySelectorAll('a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])')].filter(e=>e.tabIndex>=0&&e.getClientRects().length>0);if(0===a.length)return void t.preventDefault();let s=a[0],r=a[a.length-1],i=document.activeElement,l=!n.contains(i);(t.shiftKey?i===s||l:i===r||l)&&(t.preventDefault(),(t.shiftKey?r:s).focus())};return window.addEventListener("keydown",a,!0),()=>{var e;window.removeEventListener("keydown",a,!0),null==n||null==(e=n.focus)||e.call(n)}},[e,t])}},8010:(e,t,n)=>{"use strict";n.d(t,{y:()=>s});var a=n(4963);function s(e,t,n){let s=(0,a.useRef)(n);(0,a.useEffect)(()=>{s.current=n}),(0,a.useEffect)(()=>{if(!t)return;let n=t=>{var n;(null==(n=e.current)?void 0:n.contains(t.target))||s.current("outside")},a=e=>{"Escape"===e.key&&s.current("escape")};return window.addEventListener("pointerdown",n),window.addEventListener("keydown",a),()=>{window.removeEventListener("pointerdown",n),window.removeEventListener("keydown",a)}},[e,t])}},8156:(e,t,n)=>{"use strict";n.d(t,{CaptureTask:()=>p});var a=n(9763),s=n(4963),r=n(7244);let i=["open","in-progress"];var l=n(7911);let o={open:"text-chalk border-edge","in-progress":"text-accent border-accent/30",done:"text-live border-live/30",discarded:"text-faint border-edge"};function c(e){var t,n;let{status:s,locale:r}=e;return(0,a.jsx)("span",{className:"rounded border bg-raised px-1.5 py-0.5 font-mono text-[10px] ".concat(null!=(t=o[s])?t:o.open),title:s,children:null!=(n=(0,l.t)(r,"taskState.".concat(s)))?n:s})}var d=n(179),u=n(4204);function p(e){let{slug:t,tasks:n}=e,l=(0,d.kj)(),o=(0,d.Ym)(),[p,m]=(0,s.useState)(""),[x,h]=(0,s.useState)(!1),[j,f]=(0,s.useState)(null),[b,g]=(0,s.useTransition)(),y=(0,r.useRouter)(),v=n.filter(e=>i.includes(e.status)),k=x||b;async function N(e){e.preventDefault();let n=p.trim();if(n&&!k){h(!0),f(null);try{let e=await fetch("/api/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:t,title:n})}),s=await e.json().catch(()=>({}));if(e.ok)m(""),g(()=>y.refresh());else{var a;f(null!=(a=s.error)?a:l("task.saveFailed"))}}catch(e){f(l("task.unreachable"))}finally{h(!1)}}}return(0,a.jsxs)("section",{className:"rounded-lg border border-edge bg-surface p-4",children:[(0,a.jsxs)("div",{className:"mb-2.5 flex items-baseline justify-between gap-3",children:[(0,a.jsx)("h3",{className:"eyebrow",children:l("task.title")}),v.length>0&&(0,a.jsx)("span",{className:"font-mono text-[10px] text-faint",children:l(1===v.length?"task.openOne":"task.openMany",{n:v.length})})]}),(0,a.jsxs)("form",{onSubmit:N,className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("input",{value:p,onChange:e=>m(e.target.value),maxLength:160,placeholder:l("task.placeholder"),"aria-label":l("task.fieldLabel"),className:"min-w-0 flex-1 rounded border border-edge bg-raised px-2.5 py-1.5 text-xs text-chalk placeholder:text-faint focus:border-accent focus:outline-none"}),(0,a.jsx)(u.rA,{tone:"raised",type:"submit",busy:x,busyLabel:l("task.saving"),disabled:k||!p.trim(),children:l("task.save")})]}),(0,a.jsx)("p",{className:"mt-2 font-mono text-[11px] leading-relaxed text-faint",children:l("task.mcpNote")}),j&&(0,a.jsx)(u.lZ,{text:j,className:"mt-2"}),v.length>0&&(0,a.jsx)("ul",{className:"mt-3 space-y-1.5 border-t border-edge pt-3",children:v.map(e=>{var t;return(0,a.jsxs)("li",{className:"flex flex-wrap items-baseline gap-2 text-xs",children:[(0,a.jsx)(c,{status:e.status,locale:o}),(0,a.jsx)("span",{className:"min-w-0 flex-1 leading-relaxed text-smoke",children:e.title}),(0,a.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-faint",children:null!=(t=e.agentName)?t:"human"===e.createdBy?l("task.byHuman"):e.createdBy})]},e.id)})})]})}},8452:(e,t,n)=>{Promise.resolve().then(n.bind(n,9196)),Promise.resolve().then(n.bind(n,8156)),Promise.resolve().then(n.bind(n,9294)),Promise.resolve().then(n.bind(n,2625)),Promise.resolve().then(n.bind(n,121)),Promise.resolve().then(n.bind(n,5666)),Promise.resolve().then(n.bind(n,9730)),Promise.resolve().then(n.bind(n,2473)),Promise.resolve().then(n.bind(n,7346)),Promise.resolve().then(n.bind(n,839)),Promise.resolve().then(n.bind(n,460)),Promise.resolve().then(n.bind(n,4982)),Promise.resolve().then(n.bind(n,3231)),Promise.resolve().then(n.bind(n,905)),Promise.resolve().then(n.bind(n,8601)),Promise.resolve().then(n.bind(n,6541)),Promise.resolve().then(n.bind(n,5838)),Promise.resolve().then(n.bind(n,6455)),Promise.resolve().then(n.bind(n,73)),Promise.resolve().then(n.bind(n,5704)),Promise.resolve().then(n.bind(n,6298)),Promise.resolve().then(n.t.bind(n,1723,23))},8462:(e,t,n)=>{"use strict";n.d(t,{K:()=>s});var a=n(4963);function s(){let[e,t]=(0,a.useState)(!1),[n,s]=(0,a.useState)(!1);return{copied:e,failed:n,copy:(0,a.useCallback)(async e=>{try{await navigator.clipboard.writeText(e),s(!1),t(!0),setTimeout(()=>t(!1),1600)}catch(e){s(!0)}},[])}}},8601:(e,t,n)=>{"use strict";n.d(t,{CommitActivityChart:()=>h,HealthScoreRing:()=>x});var a=n(9763),s=n(4963),r=n(9795),i=n(8323),l=n(162),o=n(7378),c=n(8607),d=n(2984),u=n(4085),p=n(179);let m={es:["D","L","M","M","J","V","S"],en:["S","M","T","W","T","F","S"]};function x(e){let{score:t}=e,n=(0,p.kj)(),s=Math.max(0,Math.min(100,t)),l=s>=70?"#189a5b":s>=55?"#b0800f":"#cd3d3d";return(0,a.jsxs)("div",{className:"health-score-ring","aria-label":n("project.healthTitle",{n:s}),children:[(0,a.jsx)(r.D,{width:138,height:138,cx:69,cy:69,innerRadius:48,outerRadius:59,barSize:10,data:[{value:s,fill:l}],startAngle:90,endAngle:-270,children:(0,a.jsx)(i.ZB,{dataKey:"value",background:{fill:"#ececec"},cornerRadius:8})}),(0,a.jsx)("span",{className:"health-score-ring__value",children:s}),(0,a.jsx)("span",{className:"health-score-ring__total",children:n("project.outOf100")})]})}function h(e){let{week:t}=e,n=(0,p.kj)(),r=(0,p.Ym)(),i=(0,s.useMemo)(()=>t.map((e,n)=>({day:m[r][e.weekday],value:e.value,current:n===t.length-1})),[t,r]);return(0,a.jsx)("div",{className:"commit-activity-chart","aria-label":n("project.commitChartAria"),children:(0,a.jsx)(l.u,{width:"100%",height:"100%",children:(0,a.jsxs)(o.E,{data:i,margin:{top:4,right:0,left:0,bottom:0},children:[(0,a.jsx)(c.W,{dataKey:"day",axisLine:!1,tickLine:!1,tick:{fill:"#5c5c5c",fontSize:10}}),(0,a.jsx)(d.yP,{dataKey:"value",radius:[2,2,0,0],minPointSize:4,maxBarSize:17,children:i.map((e,t)=>(0,a.jsx)(u.f,{fill:e.current?"#0a0a0a":"#e6e6e6"},"".concat(e.day,"-").concat(t)))})]})})})}},9196:(e,t,n)=>{"use strict";n.d(t,{Assignments:()=>p});var a=n(9763),s=n(4963),r=n(7244),i=n(5595),l=n(5704),o=n(179),c=n(8462),d=n(5733),u=n(4204);function p(e){let{slug:t,assignments:n,queuedKinds:c,securityOpen:u,outdatedDeps:p}=e,h=(0,o.kj)(),j=(0,r.useRouter)(),[,f]=(0,s.useTransition)(),b=(0,d.q)(),[g,y]=(0,s.useState)(()=>new Set(c)),v=c.join(" ");(0,s.useEffect)(()=>{y(new Set(""===v?[]:v.split(" ")))},[v]);let[k,N]=(0,s.useState)(null),[w,S]=(0,s.useState)(null),[C,T]=(0,s.useState)(null),[P,O]=(0,s.useState)({});function E(e,t){O(n=>{let a={...n};return t?a[e]=t:delete a[e],a})}async function A(e){if(!k){N(e),E(e,null);try{var n,a;let s=await fetch("/api/assignments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:t,kind:e})}),r=await s.json().catch(()=>({}));s.ok?(y(t=>new Set(t).add(e)),E(e,{text:h("assignment.queuedNote"),bad:!1}),f(()=>j.refresh())):409===s.status?(y(t=>new Set(t).add(e)),E(e,{text:null!=(n=r.error)?n:h("assignment.queuedNote"),bad:!1})):E(e,{text:[null!=(a=r.error)?a:h("assignment.failed"),r.hint].filter(Boolean).join(" "),bad:!0})}catch(t){E(e,{text:h("task.unreachable"),bad:!0})}finally{N(null)}}}async function R(e){if(!C){T(e),E(e,null);try{let a=await fetch("/api/assignments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:t,kind:e,action:"withdraw"})}),s=await a.json().catch(()=>({}));if(a.ok)y(t=>{let n=new Set(t);return n.delete(e),n}),E(e,{text:h("assignment.withdrawn"),bad:!1}),f(()=>j.refresh());else{var n;409===a.status&&y(t=>{let n=new Set(t);return n.delete(e),n}),E(e,{text:[null!=(n=s.error)?n:h("assignment.withdrawFailed"),s.hint].filter(Boolean).join(" "),bad:409!==a.status})}}catch(t){E(e,{text:h("task.unreachable"),bad:!0})}finally{T(null)}}}async function B(e){if(!w){S(e),E(e,null);try{var n,a;let s=await fetch("/api/assignments/launch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:t,kind:e})}),r=await s.json().catch(()=>({}));E(e,s.ok?{text:h("assignment.launched",{agent:null!=(n=r.agent)?n:""}),bad:!1}:{text:[null!=(a=r.error)?a:h("assignment.launchFailed"),r.hint].filter(Boolean).join(" "),bad:!0})}catch(t){E(e,{text:h("task.unreachable"),bad:!0})}finally{S(null)}}}return(0,a.jsxs)("div",{className:"rounded-lg border border-edge bg-surface px-4 py-1",children:[n.map(e=>(0,a.jsx)(m,{assignment:e,agent:b,enCola:g.has(e.kind),launching:w===e.kind,assigning:k===e.kind,withdrawing:C===e.kind,ocupado:null!==w||null!==k||null!==C,grade:P[e.kind],onLaunch:()=>B(e.kind),onAssign:()=>A(e.kind),onWithdraw:()=>R(e.kind)},e.kind)),u&&(0,a.jsx)(x,{title:h("assignment.securityTitle"),promise:h("assignment.securityPromise"),actions:(0,a.jsx)(l.RunButton,{slug:t,security:!0})}),p>0&&(0,a.jsx)(x,{title:h("assignment.depsTitle"),promise:h(1===p?"assignment.depsPromiseOne":"assignment.depsPromiseMany",{n:p}),actions:(0,a.jsxs)("a",{href:"#dependencies",className:"inline-flex items-center gap-1 rounded border border-edge bg-raised px-3 py-1.5 font-mono text-[11px] text-smoke transition-colors hover:border-accent hover:text-accent",children:[h("assignment.depsChoose")," ",(0,a.jsx)(i.r9I,{"aria-hidden":!0})]})})]})}function m(e){var t;let{assignment:n,agent:r,enCola:l,launching:c,assigning:d,withdrawing:p,ocupado:m,grade:j,onLaunch:f,onAssign:b,onWithdraw:g}=e,y=(0,o.kj)(),[v,k]=(0,s.useState)(!1);return(0,a.jsxs)(x,{title:n.title,promise:n.promise,actions:(0,a.jsxs)(a.Fragment,{children:[r.available&&(0,a.jsx)("button",{type:"button",onClick:f,disabled:m,title:y("assignment.launchTitle",{agent:null!=(t=r.agent)?t:""}),className:"rounded border border-accent bg-accent px-3 py-1.5 font-mono text-[11px] text-white transition-opacity hover:opacity-85 disabled:opacity-50",children:y(c?"assignment.launching":"assignment.launch")}),l?(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 rounded border border-edge bg-raised px-3 py-1.5 font-mono text-[11px] text-faint",children:[(0,a.jsx)(i.mmf,{"aria-hidden":!0})," ",y("assignment.queued")]}):(0,a.jsx)(u.rA,{tone:"raised",type:"button",onClick:b,busy:d,busyLabel:y("assignment.sending"),disabled:m,title:y("assignment.sendTitle"),children:y("assignment.send")})]}),children:[(0,a.jsxs)("div",{className:"mt-1.5 flex flex-wrap items-center gap-x-3 font-mono text-[11px]",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>k(!v),"aria-expanded":v,className:"inline-flex items-center gap-1 text-faint transition-colors hover:text-smoke",children:[(0,a.jsx)(i.ngD,{className:"h-3 w-3 transition-transform ".concat(v?"rotate-90":""),"aria-hidden":!0}),y("assignment.see")]}),(0,a.jsx)(h,{body:n.body}),l&&(0,a.jsx)("button",{type:"button",onClick:g,disabled:m,className:"text-faint transition-colors hover:text-smoke disabled:opacity-50",children:y(p?"assignment.withdrawing":"assignment.withdraw")})]}),v&&(0,a.jsx)("pre",{className:"mt-2 max-h-72 overflow-auto whitespace-pre-wrap rounded border border-edge bg-raised p-3 font-mono text-[11px] leading-relaxed text-smoke",children:n.body}),j&&(0,a.jsx)("p",{className:"mt-1.5 font-mono text-[11px] ".concat(j.bad?"text-fail":"text-faint"),children:j.text})]})}function x(e){let{title:t,promise:n,actions:s,children:r}=e;return(0,a.jsxs)("article",{className:"flex flex-wrap items-start gap-x-4 gap-y-2 border-t border-edge py-3.5 first:border-t-0",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("h3",{className:"text-sm font-semibold text-chalk",children:t}),(0,a.jsx)("p",{className:"mt-0.5 text-xs leading-relaxed text-faint",children:n}),r]}),(0,a.jsx)("div",{className:"flex shrink-0 items-center gap-2 pt-0.5",children:s})]})}function h(e){let{body:t}=e,n=(0,o.kj)(),{copied:s,failed:r,copy:i}=(0,c.K)();return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{type:"button",onClick:()=>i(t),className:"text-faint transition-colors hover:text-smoke",children:n(s?"assignment.copied":"assignment.copy")}),r&&(0,a.jsx)("span",{role:"status",className:"text-fail",children:n("assignment.copyFailed")})]})}},9294:(e,t,n)=>{"use strict";n.d(t,{CopyCommand:()=>i});var a=n(9763),s=n(7911),r=n(8462);function i(e){let{command:t,label:n,locale:i}=e,{copied:l,copy:o}=(0,r.K)();return(0,a.jsxs)("button",{type:"button",onClick:()=>o(t),title:(0,s.t)(i,"copy.command",{command:t}),className:"inline-flex items-center gap-1.5 rounded border border-edge bg-raised px-2 py-0.5 font-mono text-[11px] text-smoke transition-colors hover:border-accent hover:text-accent",children:[(0,a.jsx)("span",{children:null!=n?n:t}),(0,a.jsx)("span",{className:"text-faint",children:l?(0,s.t)(i,"copy.done"):"⧉"})]})}},9730:(e,t,n)=>{"use strict";n.d(t,{MdInspect:()=>o});var a=n(9763),s=n(4963),r=n(179),i=n(2473),l=n(4204);function o(e){let{slug:t,path:n}=e,o=(0,r.kj)(),[c,d]=(0,s.useState)("ready"),[u,p]=(0,s.useState)([]),[m,x]=(0,s.useState)(!1),[h,j]=(0,s.useState)(null);async function f(){d("working"),j(null);try{var e,a;let s=await fetch("/api/md/inspect",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:t,path:n})}),r=await s.json();s.ok&&r.findings?(p(r.findings),x(null!=(e=r.truncated)&&e),d("done")):(j(null!=(a=r.error)?a:String(s.status)),d("ready"))}catch(e){j(o("project.unreachable")),d("ready")}}return"done"!==c?(0,a.jsxs)("span",{className:"project-md-inspect",children:[(0,a.jsx)("button",{type:"button",onClick:f,disabled:"working"===c,className:"inline-flex items-center rounded border border-edge px-2 py-0.5 font-mono text-[11px] text-smoke transition-colors hover:border-accent hover:text-accent disabled:opacity-50",children:o("working"===c?"project.mdInspectWorking":"project.mdInspectButton")}),h&&(0,a.jsx)(l.lZ,{as:"span",text:h,className:"ml-2"})]}):(0,a.jsxs)("div",{className:"project-md-inspect-result",children:[0===u.length?(0,a.jsx)("p",{className:"project-md-clean",children:o("project.mdClean")}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{className:"project-md-count",children:1===u.length?o("project.mdFindingOne"):o("project.mdFindings",{n:u.length})}),(0,a.jsx)("ul",{className:"project-md-findings",children:u.map(e=>(0,a.jsxs)("li",{children:[(0,a.jsx)("span",{className:"project-md-line",children:o("project.mdLine",{n:e.line})}),(0,a.jsx)("code",{children:e.claim}),(0,a.jsx)("span",{className:"project-md-reason",children:function(e){if("broken-block"===e.kind)return o("project.mdBlockBroken");if("wrong-version"===e.kind){var t;return o("project.mdVersionWrong",{v:null!=(t=e.hint)?t:"?"})}return"missing-env"===e.kind?e.hint?o("project.mdEnvNear",{names:e.hint}):o("project.mdEnvMissing"):"missing-path"===e.kind?e.hint?o("project.mdPathMovedTo",{path:e.hint}):o("project.mdPathMissing"):e.hint?o("project.mdScriptNear",{names:e.hint}):o("project.mdScriptMissing")}(e)})]},"".concat(e.line,":").concat(e.claim)))})]}),(()=>{let e=u.filter(e=>e.hint&&("missing-path"===e.kind||"wrong-version"===e.kind||"missing-script"===e.kind&&!e.hint.includes(","))).length;return e>0?(0,a.jsx)("div",{className:"project-md-actions",children:(0,a.jsx)(i.MdRepair,{slug:t,path:n,fixable:e,onDone:f})}):null})(),m&&(0,a.jsx)("p",{className:"project-md-hint",children:o("project.mdTruncated")})]})}}},e=>{e.O(0,[6587,3052,2583,1723,3885,7911,4517,9643,4737,7358],()=>e(e.s=8452)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9415],{236:(e,t,a)=>{"use strict";a.d(t,{K:()=>o,t:()=>r});var n=a(9763),s=a(4963),i=a(5595),l=a(179);function r(){let[e,t]=(0,s.useState)();return(0,s.useEffect)(()=>{let e=!0;return fetch("/api/watch").then(e=>e.json()).then(a=>{e&&t(a)}).catch(()=>void 0),()=>{e=!1}},[]),e}function o(e){let{failure:t}=e,a=(0,l.kj)();return(0,n.jsxs)("section",{className:"catalog-down",role:"alert",children:[(0,n.jsxs)("h2",{children:[(0,n.jsx)(i.z1N,{"aria-hidden":!0}),a("catalog.down.title")]}),(0,n.jsx)("p",{children:a("catalog.down.body",{path:t.path})}),(0,n.jsx)("p",{className:"catalog-down__detail",children:(0,n.jsx)("code",{children:a("catalog.down.detail",{detail:t.detail})})})]})}},2922:(e,t,a)=>{"use strict";a.d(t,{q:()=>u});var n=a(9763),s=a(4963),i=a(5595),l=a(2574),r=a(7911),o=a(6859),c=a(8010),d=a(8384),h=a(5035);function u(e){var t,a;let{projectId:u,path:p,locale:f,onOpenChange:x,closed:j,compact:g}=e,{remote:b,editors:y,apps:v,agents:w}=(0,d.b)(),[k,N]=(0,s.useState)(!1),[_,S]=(0,s.useState)("ready"),[C,M]=(0,s.useState)(null),[T,O]=(0,h.F)("open:preferred-destination","app:claude-app"),P=(0,s.useRef)(null);if((0,s.useEffect)(()=>{j&&N(!1)},[j]),(0,c.y)(P,k,()=>N(!1)),b)return null;async function A(e){N(!1),S("opening"),M(null);let t=await (0,o.A)({id:u,tool:e.tool,with:e.target},(0,r.t)(f,"open.unreachable"));t.ok?(S("open"),setTimeout(()=>S("ready"),2e3)):(S("ready"),M(t.message))}let I=[...y.map(e=>{var t;return{key:"editor:".concat(e.id),tool:"editor",target:e.id,name:e.name,icon:null!=(t=l.L[e.id])?t:i.mUU}}),...v.map(e=>{var t;return{key:"app:".concat(e.id),tool:"app",target:e.id,name:e.name,sub:"catalog.appSub",icon:null!=(t=l.L[e.id])?t:i.mUU}}),...w.filter(e=>!e.broken).map(e=>{var t;return{key:"agent:".concat(e.id),tool:"agent",target:e.id,name:e.name,sub:"catalog.agentSub",icon:null!=(t=l.L[e.id])?t:i.Jhl}}),{key:"terminal",tool:"terminal",name:(0,r.t)(f,"catalog.terminal"),sub:"catalog.terminalSub",icon:i.Jhl},{key:"folder",tool:"folder",name:(0,r.t)(f,"catalog.folder"),sub:"catalog.folderSub",icon:i.mUU}],R=null!=(a=null!=(t=I.find(e=>e.key===T))?t:I.find(e=>"app:claude-app"===e.key))?a:I[0],D=R.icon;return(0,n.jsxs)("div",{className:g?"open-menu open-menu--compact":"open-menu",ref:P,children:[(0,n.jsxs)("div",{className:"open-menu__split",children:[(0,n.jsxs)("button",{type:"button",className:"open-menu__primary",onClick:()=>void A(R),disabled:"opening"===_,title:"".concat(R.name," \xb7 ").concat(p),children:[(0,n.jsx)(D,{"aria-hidden":!0}),"opening"===_?(0,r.t)(f,"open.busy"):"open"===_?(0,r.t)(f,"open.done"):(0,r.t)(f,"open.openWith",{name:R.name})]}),I.length>1&&(0,n.jsx)("button",{type:"button",className:"open-menu__toggle","aria-label":(0,r.t)(f,"open.moreDestinations"),"aria-expanded":k,"aria-haspopup":"menu",onClick:()=>{let e=!k;N(e),null==x||x(e)},children:(0,n.jsx)(i.zKo,{"aria-hidden":!0})})]}),k&&(0,n.jsx)("div",{className:"open-menu__list",role:"menu",children:I.map((e,t)=>{let a=e.icon,s=e.key===R.key,l=I[t-1],o=void 0!==l&&m(l)!==m(e);return(0,n.jsxs)("button",{type:"button",role:"menuitemradio","aria-checked":s,className:"open-menu__item".concat(o?" is-first-of-group":"").concat(s?" is-default":""),onClick:()=>{O(e.key),A(e)},children:[(0,n.jsx)(a,{"aria-hidden":!0}),(0,n.jsxs)("span",{className:"open-menu__item-copy",children:[(0,n.jsx)("span",{children:e.name}),(e.sub||s)&&(0,n.jsxs)("small",{children:[e.sub&&(0,r.t)(f,e.sub),e.sub&&s&&" \xb7 ",s&&(0,n.jsx)("b",{children:(0,r.t)(f,"open.defaultDestination")})]})]}),s&&(0,n.jsx)(i.mmf,{className:"open-menu__default-check","aria-hidden":!0})]},e.key)})}),C&&(0,n.jsx)("span",{className:"open-menu__error",children:C})]})}function m(e){return"editor"===e.tool||"app"===e.tool?"app":"folder"===e.tool?"finder":"terminal"}},3385:(e,t,a)=>{"use strict";a.d(t,{ProjectStore:()=>el});var n=a(9763),s=a(1723),i=a.n(s),l=a(7244),r=a(4963),o=a(5595),c=a(3570),d=a(7911);let h=new Set(["flutter","react native","expo","android","ios","swift","kotlin","dart"]),u=new Set(["next.js","react","vue","nuxt","svelte","sveltekit","angular","astro","remix / react router","solidjs","vite","tailwind css","shadcn/ui","electron","tauri"]),m=new Set(["express","fastify","nestjs","hono","django","flask","fastapi","ruby on rails","laravel","symfony","sinatra","gin","echo","fiber","axum","actix web"]),p=new Set(["mcp"]),f=new Set(["html","css","scss"]),x=new Set(["python","go","rust","ruby","php","java","c#","elixir"]),j=new Set(["dart","swift","kotlin","objective-c"]),g=new Set(["postgresql","mysql","mongodb","redis","mariadb"]),b=new Set(["vercel","netlify","cloudflare workers"]);var y=a(179),v=a(4204);function w(e){let{id:t,name:a}=e,s=(0,y.kj)(),[i,l]=(0,r.useState)("ready");async function o(){l("opening");try{let e=await fetch("/api/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:t,tool:"editor"})});l(e.ok?"ready":"error")}catch(e){l("error")}}return(0,n.jsx)("button",{type:"button",onClick:o,disabled:"opening"===i,title:s("today.openNamed",{name:a}),className:"shrink-0 rounded-md border border-edge bg-surface px-2.5 py-1 text-xs font-semibold text-chalk transition hover:border-edge-bright hover:bg-raised disabled:opacity-60",children:s("opening"===i?"today.opening":"error"===i?"today.openFailed":"today.resume")})}function k(e){var t,a,s,l;let{report:c}=e,d=(0,y.kj)(),h=(0,y.Ym)(),{summary:u}=c,[m,p]=(0,r.useState)(!1),f=c.critic,x=(null!=(a=null==f?void 0:f.lookFindings)?a:0)+(null!=(s=null==f?void 0:f.reviewFindings)?s:0),j=u.commits>0||u.proposals>0||u.born>0||u.touchedProjects>0||x>0,g=c.since?d("today.since",{when:(0,v.KW)(c.since,h)}):d("today.last24h");return j?(0,n.jsxs)("section",{className:"brief","aria-label":d("today.title"),children:[(0,n.jsxs)("button",{type:"button",className:"brief__line",onClick:()=>p(!m),"aria-expanded":m,children:[(0,n.jsx)(o.efr,{"aria-hidden":!0}),(0,n.jsx)("strong",{children:d("today.title")}),(0,n.jsxs)("span",{className:"brief__facts",children:[u.proposals>0&&(0,n.jsx)("span",{className:"brief__decision",children:d(1===u.proposals?"today.waitingOne":"today.waitingMany",{n:u.proposals})}),u.commits>0&&(0,n.jsxs)("span",{children:[d(1===u.touchedProjects?"today.inProjectsOne":"today.inProjectsMany",{c:d(1===u.commits?"today.commitOne":"today.commitMany",{n:u.commits}),n:u.touchedProjects}),u.byAgents>0&&" ".concat(d("today.fromAgents",{n:u.byAgents}))]}),u.born>0&&(0,n.jsx)("span",{children:d(1===u.born?"today.bornOne":"today.bornMany",{n:u.born})}),x>0&&(0,n.jsx)("span",{className:"brief__decision",children:d(1===x?"today.criticOne":"today.criticMany",{n:x})})]}),(0,n.jsx)("span",{className:"brief__when",children:g}),(0,n.jsx)(o.bv7,{className:"brief__arrow","aria-hidden":!0})]}),m&&(0,n.jsxs)("div",{className:"brief__detail",children:[c.proposals.length>0&&(0,n.jsxs)("div",{className:"brief__decisions",children:[(0,n.jsx)("p",{className:"brief__label",children:d("proposals.waiting")}),(0,n.jsx)("ul",{children:c.proposals.slice(0,4).map(e=>(0,n.jsxs)("li",{children:[(0,n.jsxs)(i(),{href:"/runs/".concat(e.id),children:[e.pkgName,e.a?" → ".concat(e.a):""]}),(0,n.jsx)("span",{className:"brief__where",children:d("today.inProject",{project:e.project})}),e.repeats>1&&(0,n.jsx)("span",{className:"brief__attempts",children:d("today.attempts",{n:e.repeats})}),(0,n.jsxs)("span",{className:"brief__meta",children:[d(e.verified?"proposals.testsGreen":"proposals.unverified")," \xb7 ",(0,v.KW)(e.when,h)]})]},e.id))})]}),(null!=(l=null==f||null==(t=f.where)?void 0:t.length)?l:0)>0&&(0,n.jsxs)("div",{className:"brief__decisions",children:[(0,n.jsx)("p",{className:"brief__label",children:d("today.criticWhere")}),(0,n.jsx)("ul",{children:f.where.slice(0,4).map(e=>(0,n.jsxs)("li",{children:[(0,n.jsx)(i(),{href:"/p/".concat(e.slug,"#assignments"),children:e.name}),(0,n.jsx)("span",{className:"brief__meta",children:d(1===e.findings?"today.criticFindingOne":"today.criticFindingMany",{n:e.findings})})]},e.slug))})]}),c.projects.length>0&&(0,n.jsx)("ul",{className:"brief__projects",children:c.projects.slice(0,5).map(e=>(0,n.jsxs)("li",{children:[(0,n.jsxs)("div",{children:[(0,n.jsx)(i(),{href:"/p/".concat(e.slug),children:e.name}),e.commits[0]&&(0,n.jsxs)("p",{className:"brief__subject",children:[e.commits[0].subject,e.commits[0].agent&&(0,n.jsx)("span",{className:"brief__agent",children:e.commits[0].agent})]}),(0,n.jsxs)("p",{className:"brief__meta",children:[e.commits.length>0&&(0,n.jsxs)(n.Fragment,{children:[d(1===e.commits.length?"today.commitOne":"today.commitMany",{n:e.commits.length})," \xb7 ",(0,v.KW)(e.commits[0].at,h)]}),e.agents.length>0&&(0,n.jsxs)(n.Fragment,{children:[e.commits.length>0&&" \xb7 ",e.agents.map(e=>d("today.agentNoted",{name:e.name,n:e.activities})).join(", ")]})]})]}),(0,n.jsx)(w,{id:e.id,name:e.name})]},e.slug))}),c.born.length>0&&(0,n.jsxs)("p",{className:"brief__born",children:[d("today.born")," ",c.born.slice(0,4).map((e,t)=>(0,n.jsxs)("span",{children:[t>0&&", ",(0,n.jsx)(i(),{href:"/p/".concat(e.slug),children:e.name})]},e.slug))]})]})]}):(0,n.jsxs)("p",{className:"brief brief--quiet",children:[(0,n.jsx)(o.efr,{"aria-hidden":!0}),(0,n.jsx)("span",{children:d("today.nothing",{period:g})})]})}var N=a(236);function _(){let e=(0,y.kj)(),t=(0,N.t)();return(null==t?void 0:t.catalog)?(0,n.jsx)(N.K,{failure:t.catalog}):(null==t?void 0:t.active)!==!1?null:(0,n.jsxs)("p",{className:"brief brief--alert",role:"status",children:[(0,n.jsx)(o.z1N,{"aria-hidden":!0}),(0,n.jsx)("span",{children:e("watch.off")})]})}function S(e){let{total:t}=e,a=(0,y.kj)(),s=(0,l.useRouter)(),[,i]=(0,r.useTransition)(),[c,d]=(0,r.useState)(null),[h,u]=(0,r.useState)(!1),[m,p]=(0,r.useState)(""),[f,x]=(0,r.useState)(!1),[j,g]=(0,r.useState)(!1),[b,v]=(0,r.useState)(null),[w,k]=(0,r.useState)(null),N=(0,r.useCallback)(async()=>{try{var e;let t=await fetch("/api/roots"),a=await t.json();d(null!=(e=a.roots)?e:[])}catch(e){d([])}},[]);(0,r.useEffect)(()=>{N()},[N]);let[_,S]=(0,r.useState)(null);async function M(e,t){if(!f&&t.trim()){x(!0),k(null);try{var n,l,r;let o=await fetch("/api/roots",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,path:t.trim()})}),c=await o.json().catch(()=>({}));if(!o.ok)return void k({text:null!=(n=c.error)?n:a("sites.failed"),bad:!0});if(p(""),await N(),"add"===e){let e=null!=(l=c.found)?l:0;k({text:a(1===e?"sites.addedOne":"sites.addedMany",{n:e}),bad:!1}),i(()=>s.refresh())}else k({text:a("sites.removed",{n:null!=(r=c.removed)?r:0}),bad:!1}),i(()=>s.refresh())}catch(e){k({text:a("task.unreachable"),bad:!0})}finally{x(!1)}}}async function T(){if(!j&&!f){g(!0),k(null);try{var e,t;let n=await fetch("/api/roots",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"search"})}),s=await n.json();v(null!=(e=s.candidates)?e:[]),0===(null!=(t=s.candidates)?t:[]).length&&k({text:a("sites.searchNone"),bad:!1})}catch(e){k({text:a("task.unreachable"),bad:!0})}finally{g(!1)}}}if(!c||0===c.length)return null;let O=c.map(e=>C(e.path));return(0,n.jsxs)("div",{className:"sites",children:[(0,n.jsxs)("button",{type:"button",className:"sites__line",onClick:()=>u(!h),"aria-expanded":h,children:[(0,n.jsx)(o.gBk,{"aria-hidden":!0}),(0,n.jsx)("span",{children:a(1===t?"sites.summaryOne":"sites.summaryMany",{n:t,where:O.slice(0,2).join(", "),extra:O.length>2?" ".concat(a("sites.andMore",{n:O.length-2})):""})}),(0,n.jsx)("span",{className:"sites__action",children:a(h?"sites.close":"sites.manage")})]}),h&&(0,n.jsxs)("div",{className:"sites__detail",children:[(0,n.jsx)("ul",{children:c.map(e=>(0,n.jsxs)("li",{children:[(0,n.jsx)("code",{title:e.path,children:C(e.path)}),(0,n.jsxs)("span",{children:[a(1===e.projects?"sites.countOne":"sites.countMany",{n:e.projects}),!e.exists&&" \xb7 ".concat(a("sites.missing"))]}),_===e.path?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",onClick:()=>{S(null),M("remove",e.path)},disabled:f,className:"text-fail",children:a("sites.removeConfirm",{n:e.projects})}),(0,n.jsx)("button",{type:"button",onClick:()=>S(null),disabled:f,children:a("accounts.cancel")})]}):(0,n.jsx)("button",{type:"button",onClick:()=>S(e.path),disabled:f,children:a("sites.remove")})]},e.path))}),(0,n.jsxs)("form",{onSubmit:e=>{e.preventDefault(),M("add",m)},children:[(0,n.jsx)("input",{value:m,onChange:e=>p(e.target.value),placeholder:a("sites.placeholder"),"aria-label":a("sites.fieldLabel"),spellCheck:!1}),(0,n.jsxs)("button",{type:"submit",disabled:f||!m.trim(),children:[(0,n.jsx)(o.K0m,{"aria-hidden":!0}),a(f?"sites.adding":"sites.add")]})]}),(0,n.jsxs)("div",{className:"sites__search",children:[(0,n.jsxs)("button",{type:"button",onClick:T,disabled:j||f,children:[(0,n.jsx)(o.JJh,{"aria-hidden":!0}),a(j?"sites.searching":"sites.search")]}),(0,n.jsx)("span",{children:a("sites.searchHint")})]}),b&&b.length>0&&(0,n.jsx)("ul",{className:"sites__candidates",children:b.map(e=>(0,n.jsxs)("li",{children:[(0,n.jsx)("code",{title:e.path,children:C(e.path)}),(0,n.jsx)("span",{children:a(1===e.projects?"sites.countOne":"sites.countMany",{n:e.projects})}),(0,n.jsx)("button",{type:"button",onClick:()=>{v(t=>(null!=t?t:[]).filter(t=>t.path!==e.path)),M("add",e.path)},disabled:f,children:a("sites.add")})]},e.path))}),(0,n.jsx)("p",{className:"sites__note",children:a("sites.note")}),w&&(0,n.jsx)("p",{className:w.bad?"sites__error":"sites__note",children:w.text})]})]})}function C(e){return e.replace(/^\/Users\/[^/]+/,"~")}var M=a(5035),T=a(8010),O=a(7558);let P="#0e0f11",A="#5c6169",I="#8b9098",R="#e7e8ea",D="#ffffff",E='"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif';function F(e){return String(Math.max(0,Math.trunc(e)))}function U(e){return e>=75?"#2eaa63":e>=50?"#e4a30b":"#ea5a58"}function W(e,t,a,n,s,i){e.beginPath(),e.moveTo(t+i,a),e.arcTo(t+n,a,t+n,a+s,i),e.arcTo(t+n,a+s,t,a+s,i),e.arcTo(t,a+s,t,a,i),e.arcTo(t,a,t+n,a,i),e.closePath()}function L(e){return new Promise(t=>{let a=new Image;a.onload=()=>t(a),a.onerror=()=>t(null),a.src=e})}function H(e){let{data:t,discreet:a,onClose:s}=e,i=(0,y.kj)(),l=(0,y.Ym)(),h=(0,r.useRef)(null),u=(0,r.useRef)(null),m=(0,r.useRef)(null);(0,T.y)(u,!0,s),(0,O.r)(u,!0),(0,r.useEffect)(()=>{let e=requestAnimationFrame(()=>{var e;return null==(e=m.current)?void 0:e.focus()});return()=>cancelAnimationFrame(e)},[]);let[p,f]=(0,M.F)("share:user","","compartir:usuario"),[x,j]=(0,M.F)("share:language",l,"compartir:idioma"),[g,b]=(0,r.useState)(!a),[v,w]=(0,r.useState)(!1),[k,N]=(0,r.useState)("idle"),[_,S]=(0,r.useState)("idle"),C=(0,r.useCallback)((e,t)=>(0,d.t)(x,e,t),[x]),H=(0,r.useCallback)(async()=>{let e=h.current;if(!e)return;let a=await L("/assets/brand/panoma.svg"),n=function(e,t,a){let n=Math.max(0,Math.trunc(t));if(n<=8&&e.length>=n)return e.slice(0,n);let s=e.slice(0,Math.min(7,n)),i=Math.max(0,n-s.length);return i>0?[...s,a(i)]:s}(g?(await Promise.all(t.featuredProjects.slice(0,8).map(async e=>({...e,loadedIcon:await L(e.icon)})))).flatMap(e=>{let{loadedIcon:t,...a}=e;return t?[{...a,icon:t}]:[]}):t.featuredProjects.slice(0,8).map((e,t)=>({name:C("store.hidden",{n:t+1}),health:e.health,icon:null,concealed:!0})),t.projects,e=>({name:C("share.more",{n:e}),health:0,icon:a,panomaMark:!0,summary:!0}));!function(e,t){var a,n,s;let i=e.getContext("2d");if(!i)return;e.width=1600,e.height=900,i.fillStyle=D,i.fillRect(0,0,1600,900),i.strokeStyle=R,i.lineWidth=2,i.strokeRect(1,1,1598,898),function(e,t,a,n){if(t)try{e.drawImage(t,t.naturalWidth*(280/1024),t.naturalHeight*(222/1024),.515625*t.naturalWidth,t.naturalHeight*(586/1024),82,66,60,66)}catch(e){}e.fillStyle=P,e.font="650 42px ".concat(E),e.fillText("panoma",a+66+22,n+48)}(i,t.logo,82,66),i.font="500 25px ".concat(E),i.fillStyle=I,i.textAlign="right",i.fillText(t.domain,1518,105),i.textAlign="left",i.fillStyle=P,function(e,t,a,n){let s=n;for(e.font="650 ".concat(s,"px ").concat(E);s>62&&e.measureText(t).width>1436;)s-=2,e.font="650 ".concat(s,"px ").concat(E)}(i,t.texts.title,1436,t.featuredProjects.length>0?86:102),i.fillText(t.texts.title,82,t.featuredProjects.length>0?278:350),t.featuredProjects.length>0&&function(e,t,a,n,s){let i=t.slice(0,8),l=1436/i.length,r=398,o=Math.min(122,l-28);e.fillStyle=I,e.font="600 18px ".concat(E),e.fillText(s.health.toUpperCase(),a,n),function(e,t,a,n){let s=[[n.healthGood,"#2eaa63"],[n.healthReview,"#e4a30b"],[n.healthAttention,"#ea5a58"]];e.font="550 17px ".concat(E);let i=t-(s.map(t=>{let[a]=t;return 14+e.measureText(a).width}).reduce((e,t)=>e+t,0)+28*(s.length-1));for(let[t,n]of s)e.fillStyle=n,e.beginPath(),e.arc(i+5,a-6,5,0,2*Math.PI),e.fill(),e.fillStyle=A,e.fillText(t,i+16,a),i+=14+e.measureText(t).width+28}(e,1600-a,n,s),i.forEach((t,n)=>{let s=a+l*n+l/2,i=s-37;if(e.save(),W(e,i,r,74,74,18),e.clip(),e.fillStyle=D,e.fill(),t.concealed){var c,d=e,h=i,u=r,m=74,p=n;d.fillStyle="#111316",d.fillRect(h,u,74,m),d.save(),d.strokeStyle="rgba(255, 255, 255, 0.085)",d.lineWidth=1.5;let t=null!=(c=[0,7,-5,12][p%4])?c:0;for(let e=-m;e<2*m;e+=17)d.beginPath(),d.moveTo(h+e+t,u+m),d.lineTo(h+e+m+t,u),d.stroke();d.restore(),d.save(),d.shadowColor="rgba(255, 255, 255, 0.12)",d.shadowBlur=6,d.fillStyle="#f4f4f2",W(d,h+(m-44)/2,u+(m-10)/2,44,10,6),d.fill(),d.restore(),d.fillStyle="rgba(77, 81, 88, 0.7)";for(let e=0;e<4;e+=1)W(d,h+m/2-11+7*e,u+m/2-2,2,4,1),d.fill()}else if(t.icon)try{t.panomaMark&&t.icon instanceof HTMLImageElement?function(e,t,a,n,s,i,l){let r=document.createElement("canvas");r.width=Math.round(88),r.height=Math.round(100);let o=r.getContext("2d");o&&(o.drawImage(t,t.naturalWidth*(280/1024),t.naturalHeight*(222/1024),.515625*t.naturalWidth,t.naturalHeight*(586/1024),0,0,r.width,r.height),o.globalCompositeOperation="source-in",o.fillStyle=l,o.fillRect(0,0,r.width,r.height),e.drawImage(r,a,n,s,i))}(e,t.icon,i+15,r+11,44,50,t.summary?P:U(t.health)):e.drawImage(t.icon,i,r,74,74)}catch(e){}if(e.restore(),e.strokeStyle=R,e.lineWidth=1.5,W(e,i,r,74,74,18),e.stroke(),e.fillStyle=P,e.font="600 21px ".concat(E),e.textAlign="center",e.fillText(function(e,t,a){if(e.measureText(t).width<=a)return t;let n=t;for(;n.length>1&&e.measureText("".concat(n,"…")).width>a;)n=n.slice(0,-1);return"".concat(n,"…")}(e,t.name,l-16),s,r+104),t.summary){e.textAlign="left";return}let f=s-o/2,x=r+128;e.fillStyle=R,W(e,f,x,o,10,5),e.fill(),e.fillStyle=U(t.health),W(e,f,x,Math.max(10,o*(Math.min(100,Math.max(0,t.health))/100)),10,5),e.fill(),e.fillStyle=U(t.health),e.font="650 19px ".concat(E),e.fillText("".concat(t.health,"/100"),s,r+171),e.textAlign="left"})}(i,t.featuredProjects,82,348,t.texts);let l=t.featuredProjects.length>0?655:505;a=i,n=82,s=l,a.strokeStyle=R,a.lineWidth=1.5,a.beginPath(),a.moveTo(82,s),a.lineTo(n+1436,s),a.stroke(),function(e,t,a,n){let s=[[F(t.projects),t.texts.projects],[F(t.commits),t.texts.commits],[F(t.technologies),t.texts.technologies]];null!==t.agents&&s.push(["".concat(t.agents,"%"),t.texts.agents]);let i=1436/s.length;s.forEach((t,s)=>{let[l,r]=t,o=a+i*s;s>0&&(e.strokeStyle=R,e.lineWidth=1.5,e.beginPath(),e.moveTo(o-34,n-10),e.lineTo(o-34,n+79),e.stroke()),e.fillStyle=P,e.font="650 54px ".concat(E),e.fillText(l,o,n+45),e.fillStyle=I,e.font="500 22px ".concat(E),e.fillText(r,o,n+78)})}(i,t,82,l+51),t.user&&(i.fillStyle=A,i.font="550 27px ".concat(E),i.fillText(t.user,82,839)),i.fillStyle=I,i.font="500 23px ".concat(E),i.textAlign="right",i.fillText(t.texts.localFirst,1518,839),i.textAlign="left"}(e,{...t,logo:a,featuredProjects:n,user:p.trim()?p.trim().replace(/^@?/,"@"):void 0,domain:K,texts:{title:C("share.titulo",{n:t.projects}),projects:C("share.proyectos"),technologies:C("share.tecnologias"),commits:C("share.commits"),agents:C("share.agentes"),health:C("share.salud"),healthGood:C("share.saludBien"),healthReview:C("share.saludRevisar"),healthAttention:C("share.saludAtencion"),localFirst:C("share.local")}})},[g,t,C,p]);async function G(){let e=await z(h.current);e&&J(e)}async function Z(){try{await navigator.clipboard.writeText(V(t,C)),w(!0),setTimeout(()=>w(!1),1800)}catch(e){}}async function Y(){N("preparing");let e=await z(h.current);if(!e)return void N("failed");let a=V(t,C),n=new File([e],B,{type:"image/png"});if(function(e){if("function"!=typeof navigator.share||"function"!=typeof navigator.canShare)return!1;try{return navigator.canShare({files:[e]})}catch(e){return!1}}(n))try{await navigator.share({files:[n],text:a,title:"Panoma"}),N("idle");return}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)return void N("idle")}let s=await q(e);s||J(e),N(s?"copied":"downloaded"),window.setTimeout(()=>N("idle"),2600)}async function $(){S("preparing");let e=function(e){if(!e)return null;try{let t=e.toDataURL("image/png"),a=t.slice(t.indexOf(",")+1),n=window.atob(a),s=new Uint8Array(n.length);for(let e=0;e<n.length;e+=1)s[e]=n.charCodeAt(e);return new Blob([s],{type:"image/png"})}catch(e){return null}}(h.current);if(!e)return void S("failed");let a=q(e);var n=V(t,C);let s=document.createElement("a");s.href="https://x.com/intent/post?text=".concat(encodeURIComponent(n)),s.target="_blank",s.rel="noreferrer noopener",s.click();let i=await a;i||J(e),S(i?"copied":"downloaded"),window.setTimeout(()=>S("idle"),2600)}return(0,r.useEffect)(()=>{H()},[H]),(0,n.jsxs)("div",{className:"share",role:"dialog","aria-modal":"true","aria-label":i("share.abrir"),children:[(0,n.jsxs)("div",{className:"share__box",ref:u,children:[(0,n.jsxs)("header",{children:[(0,n.jsx)("h2",{children:i("share.abrir")}),(0,n.jsx)("button",{ref:m,type:"button",onClick:s,"aria-label":i("share.cerrar"),children:(0,n.jsx)(o.fZH,{"aria-hidden":!0})})]}),(0,n.jsx)("canvas",{ref:h,className:"share__canvas",width:1600,height:900,role:"img","aria-label":i("share.preview")}),(0,n.jsxs)("div",{className:"share__options",children:[(0,n.jsxs)("div",{className:"share__language",children:[(0,n.jsx)("span",{children:i("share.idioma")}),(0,n.jsxs)("div",{role:"group","aria-label":i("share.idioma"),children:[(0,n.jsx)("button",{type:"button",className:"es"===x?"is-active":void 0,"aria-pressed":"es"===x,onClick:()=>j("es"),children:"Espa\xf1ol"}),(0,n.jsx)("button",{type:"button",className:"en"===x?"is-active":void 0,"aria-pressed":"en"===x,onClick:()=>j("en"),children:"English"})]})]}),(0,n.jsxs)("label",{children:[(0,n.jsx)("span",{children:i("share.usuario")}),(0,n.jsx)("input",{value:p,onChange:e=>f(e.target.value),placeholder:i("share.usuarioVacio"),spellCheck:!1,maxLength:40})]}),(0,n.jsx)("button",{type:"button",className:"share__visibility".concat(g?"":" is-private"),onClick:()=>b(e=>!e),"aria-pressed":!g,"aria-label":i(g?"store.hideNames":"store.showNames"),title:i(g?"store.hideNames":"store.showNames"),children:g?(0,n.jsx)(o.bZk,{"aria-hidden":!0}):(0,n.jsx)(o.EgV,{"aria-hidden":!0})})]}),(0,n.jsx)("p",{className:"share__note",children:i("share.nota")}),(0,n.jsxs)("footer",{children:[(0,n.jsxs)("button",{type:"button",className:"share__primary",onClick:G,children:[(0,n.jsx)(o.Dho,{"aria-hidden":!0}),i("share.descargar")]}),(0,n.jsx)("button",{type:"button",onClick:Z,children:i(v?"share.textoCopiado":"share.copiarTexto")}),(0,n.jsxs)("button",{type:"button",onClick:Y,disabled:"preparing"===k,children:[(0,n.jsx)(o.XcM,{"aria-hidden":!0}),i("share.image.".concat(k))]}),(0,n.jsxs)("button",{type:"button",onClick:$,disabled:"preparing"===_,children:[(0,n.jsx)(c.vIh,{"aria-hidden":!0}),i("share.x.".concat(_))]})]})]}),(0,n.jsx)("button",{type:"button",className:"share__backdrop",onClick:s,"aria-label":i("share.cerrar")})]})}let K="panoma.ai",B="panoma-projects.png";function z(e){return new Promise(t=>{if(!e)return void t(null);e.toBlob(t,"image/png")})}function J(e){let t=URL.createObjectURL(e),a=document.createElement("a");a.href=t,a.download=B,a.click(),URL.revokeObjectURL(t)}async function q(e){var t;if("undefined"==typeof ClipboardItem||"function"!=typeof(null==(t=navigator.clipboard)?void 0:t.write))return!1;try{return await navigator.clipboard.write([new ClipboardItem({"image/png":e})]),!0}catch(e){return!1}}function V(e,t){return t("share.texto",{n:e.projects,domain:K})}var G=a(2922),Z=a(5018),Y=a(8337);let $={typescript:{icon:c.cyb,color:"#3178c6"},"next.js":{icon:c.wlC,color:"#111111"},nextjs:{icon:c.wlC,color:"#111111"},react:{icon:c.GWR,color:"#149eca"},flutter:{icon:c.FuR,color:"#02569b"},dart:{icon:c.A7B,color:"#0175c2"},"node.js":{icon:c.h$$,color:"#5fa04e"},nodejs:{icon:c.h$$,color:"#5fa04e"},python:{icon:c.ptC,color:"#3776ab"},rust:{icon:c.xZd,color:"#111111"},go:{icon:c.ZRx,color:"#00add8"},vue:{icon:c.Zmg,color:"#42b883"},"vue.js":{icon:c.Zmg,color:"#42b883"},svelte:{icon:c.Qmm,color:"#ff3e00"},swift:{icon:c.cp,color:"#f05138"},kotlin:{icon:c.sjH,color:"#7f52ff"},ruby:{icon:c.LfU,color:"#cc342d"},php:{icon:c.XeU,color:"#777bb4"},express:{icon:c.t5I,color:"#111111"},tailwind:{icon:c.IR8,color:"#06b6d4"},tailwindcss:{icon:c.IR8,color:"#06b6d4"},docker:{icon:c.tih,color:"#2496ed"},postgresql:{icon:c.$Wy,color:"#4169e1"},supabase:{icon:c.lLb,color:"#3ecf8e"},firebase:{icon:c.iWE,color:"#ffca28"}},X=["all","attention","favorites","not-mine","web","mobile","backend","tools","ai","other"],Q={all:"filter.all",attention:"filter.attention",favorites:"filter.favorites","not-mine":"filter.notMine",web:"filter.web",mobile:"filter.mobile",backend:"filter.backend",tools:"filter.tools",ai:"filter.ai",other:"filter.other"};function ee(e){let{name:t,onOpen:a}=e,s=(0,y.kj)();return(0,n.jsx)("button",{type:"button",className:"open-handle",title:s("catalog.openHandle",{name:t}),"aria-label":s("catalog.openHandle",{name:t}),onClick:e=>{e.stopPropagation(),a()},onDoubleClick:e=>e.stopPropagation(),children:(0,n.jsx)(o.OvC,{"aria-hidden":!0})})}function et(){let e=(0,y.kj)();return(0,n.jsx)("span",{className:"opening-spinner",role:"status","aria-label":e("catalog.opening")})}function ea(e){var t;return null!=(t=e.proposedRuns)?t:0}function en(e){return ea(e)>0||e.risks.length>0||e.vulnCount>0||e.outdatedDeps>0||!!e.depsUnresolved}function es(e){return"A"===e||"B"===e?"good":"C"===e?"warn":"bad"}function ei(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function el(e){var t,a;let{projects:s,report:c}=e,d=(0,l.useRouter)(),v=(0,y.kj)(),{query:w,setQuery:N}=(0,Z.S)(),[C,T]=(0,M.F)("filter","all","filtro"),O=X.includes(C)?C:"all",[P,A]=(0,M.F)("sort","recent","orden"),[I,R]=(0,M.F)("view","grid","vista"),[D,E]=(0,M.F)("discreet",!1,"discreto"),[F,U]=(0,r.useState)(!1),[W,L]=(0,M.F)("favorites",[],"favoritos"),K=(0,r.useMemo)(()=>new Set(W),[W]),[B,z]=(0,r.useState)(null!=(a=null==(t=s[0])?void 0:t.id)?a:null),J=(0,r.useRef)(!1),q=(0,r.useRef)(null),[V,G]=(0,r.useState)(null),[$,ee]=(0,r.useState)(null),et=s[0],ea=(0,r.useMemo)(()=>s.filter(en).length,[s]),es=(0,r.useMemo)(()=>s.filter(e=>K.has(e.id)).length,[K,s]),ei=(0,r.useMemo)(()=>{let e=(0,Y.A)(w.trim());return s.filter(t=>{let a=!e||(0,Y.A)([t.name,t.description,t.primaryLanguage,...t.technologies.flatMap(e=>[e.name,e.version]),...t.agents.map(e=>e.name)].filter(Boolean).join(" ")).includes(e),n="all"===O||("attention"===O?en(t):"favorites"===O?K.has(t.id):"not-mine"===O?"foreign"===t.originKind||"forked"===t.originKind||"template"===t.originKind:(function(e){var t;let a=new Set,n=(null!=(t=e.primaryLanguage)?t:"").toLowerCase();for(let t of e.technologies){let e=t.name.toLowerCase();"model"===t.kind&&a.add("ai"),h.has(e)&&a.add("mobile"),(u.has(e)||b.has(e))&&a.add("web"),(m.has(e)||g.has(e))&&a.add("backend"),p.has(e)&&a.add("tools")}return j.has(n)&&a.add("mobile"),f.has(n)&&a.add("web"),x.has(n)&&a.add("backend"),0===a.size&&/\b(cli|tool|tools|runner|script|scripts|terminal|bot|daemon|agent)\b/.test(e.name.toLowerCase())&&a.add("tools"),0===a.size&&e.technologies.some(e=>"runtime"===e.kind&&["node.js","deno","bun"].includes(e.name.toLowerCase()))&&a.add("backend"),0===a.size&&a.add("other"),a})(t).has(O));return a&&n}).sort((e,t)=>{let a=Number(K.has(t.id))-Number(K.has(e.id));return 0!==a?a:"name"===P?e.name.localeCompare(t.name,"es"):"health"===P?t.healthScore-e.healthScore:(t.lastCommitAt?Date.parse(t.lastCommitAt):0)-(e.lastCommitAt?Date.parse(e.lastCommitAt):0)})},[K,O,s,w,P]),el=(0,r.useMemo)(()=>ei.findIndex(e=>e.id===B),[ei,B]),ed=-1===el?null:ei[el];(0,r.useEffect)(()=>{if(J.current)return;let e=ei[0];e&&e.id!==B&&z(e.id)},[ei,B]);let eh=(0,r.useCallback)(e=>{J.current=!0,z(e),G(null)},[]),[eu,em]=(0,r.useTransition)(),[ef,ex]=(0,r.useState)(null),ej=(0,r.useCallback)(e=>{ex(e.id),em(()=>d.push("/p/".concat(e.slug)))},[d]),eg=(0,r.useCallback)(()=>{var e;let t=null==(e=q.current)?void 0:e.querySelectorAll("[data-index]"),a=null==t?void 0:t[0];if(!a)return 1;let n=a.offsetTop,s=0;for(let e of t){if(e.offsetTop!==n)break;s+=1}return Math.max(1,s)},[]);function eb(e){var t,a;if(0===ei.length)return;let n=ei.findIndex(e=>e.id===B),s=-1===n?0:Math.min(ei.length-1,Math.max(0,n+e)),i=ei[s];i&&(eh(i.id),null==(a=q.current)||null==(t=a.querySelector('[data-index="'.concat(s,'"]')))||t.focus())}async function ey(e){var t,a,n;let i;G(null);try{i=await fetch("/api/project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"ocultar",id:e})})}catch(e){G(v("project.unreachable"));return}if(!i.ok)return void G(null!=(a=(await i.json().catch(()=>({}))).error)?a:v("project.actionFailed"));B===e&&eh(null),ee({id:e,name:null!=(n=null==(t=s.find(t=>t.id===e))?void 0:t.name)?n:""}),d.refresh()}async function ev(e){G(null);try{let a=await fetch("/api/project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"mostrar",id:e})});if(!a.ok){var t;let e=await a.json().catch(()=>({}));G(null!=(t=e.error)?t:v("project.actionFailed"));return}}catch(e){G(v("project.unreachable"));return}ee(null),d.refresh()}let ew={attention:ea,favorites:es};return et?(0,n.jsx)("main",{id:"app-main",tabIndex:-1,className:"app-main catalog-screen",children:(0,n.jsxs)("div",{className:"catalog-screen__inner",children:[(0,n.jsx)(k,{report:c}),(0,n.jsx)(_,{}),$&&(0,n.jsxs)("p",{className:"brief brief--dismissed",role:"status",children:[(0,n.jsx)(o.EgV,{"aria-hidden":!0}),(0,n.jsx)("span",{children:v("store.justHidden",{name:$.name})}),(0,n.jsx)("button",{type:"button",onClick:()=>void ev($.id),children:v("store.undoHide")}),(0,n.jsx)(i(),{href:"/hidden",children:v("store.seeHidden")})]}),(0,n.jsxs)("div",{className:"catalog-bar",children:[(0,n.jsxs)("h1",{children:[v("catalog.title"),(0,n.jsx)("span",{children:ei.length===s.length?v(1===s.length?"catalog.countOne":"catalog.count",{n:s.length}):"".concat(ei.length," / ").concat(s.length)})]}),(0,n.jsxs)("div",{className:"catalog-bar__tools",children:[(0,n.jsx)("p",{className:"catalog-hint",children:v("catalog.hint")}),(0,n.jsxs)("label",{className:"catalog-sort",children:[(0,n.jsx)("span",{className:"sr-only",children:v("store.sortLabel")}),(0,n.jsxs)("select",{value:P,onChange:e=>A(e.target.value),children:[(0,n.jsx)("option",{value:"recent",children:v("store.sortRecent")}),(0,n.jsx)("option",{value:"name",children:v("store.sortName")}),(0,n.jsx)("option",{value:"health",children:v("store.sortHealth")})]})]}),(0,n.jsx)("button",{type:"button",className:"catalog-tool".concat(D?" is-active":""),onClick:()=>E(!D),"aria-pressed":D,title:v(D?"store.showNames":"store.hideNames"),children:D?(0,n.jsx)(o.EgV,{"aria-hidden":!0}):(0,n.jsx)(o.bZk,{"aria-hidden":!0})}),(0,n.jsx)("button",{type:"button",className:"catalog-tool",onClick:()=>U(!0),"aria-label":v("share.abrir"),title:v("share.abrir"),children:(0,n.jsx)(o.XcM,{"aria-hidden":!0})}),(0,n.jsxs)("div",{className:"view-switch",role:"group","aria-label":v("store.viewAria"),children:[(0,n.jsx)("button",{type:"button",onClick:()=>R("list"),className:"list"===I?"is-active":void 0,"aria-label":v("store.viewList"),"aria-pressed":"list"===I,children:(0,n.jsx)(o.$mg,{"aria-hidden":!0})}),(0,n.jsx)("button",{type:"button",onClick:()=>R("grid"),className:"grid"===I?"is-active":void 0,"aria-label":v("store.viewGrid"),"aria-pressed":"grid"===I,children:(0,n.jsx)(o.ENP,{"aria-hidden":!0})})]})]})]}),(0,n.jsx)("div",{className:"catalog-filters",role:"group","aria-label":v("store.filterAria"),children:X.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>T(e),className:O===e?"is-active":void 0,"aria-pressed":O===e,children:[v(Q[e]),ew[e]?(0,n.jsx)("span",{children:ew[e]}):null]},e))}),(0,n.jsx)(er,{project:et,discreet:D,index:Math.max(0,s.findIndex(e=>e.id===et.id))}),(0,n.jsx)(S,{total:s.length}),F&&(0,n.jsx)(H,{data:function(e){let t=e.reduce((e,t)=>{var a;return e+(null!=(a=t.gitCommitCount)?a:0)},0),a=new Set(e.flatMap(e=>e.technologies.map(e=>e.name))),n=e.reduce((e,t)=>e+t.agents.reduce((e,t)=>e+t.commits,0),0);return{projects:e.length,technologies:a.size,commits:t,agents:t>0&&n>0?Math.min(100,Math.round(n/t*100)):null,featuredProjects:e.filter(e=>e.hasIcon).slice(0,8).map(e=>({name:e.name,health:e.healthScore,icon:"/icon/".concat(e.id)}))}}(s),discreet:D,onClose:()=>U(!1)}),(0,n.jsxs)("div",{className:"catalog-split","data-open":ed?"true":"false",children:[(0,n.jsx)("div",{className:"catalog-body",children:ei.length>0?(0,n.jsxs)(n.Fragment,{children:["list"===I&&(0,n.jsxs)("div",{className:"catalog-columns","aria-hidden":!0,children:[(0,n.jsx)("span",{children:v("catalog.colProject")}),(0,n.jsx)("span",{children:v("catalog.colHealth")}),(0,n.jsx)("span",{children:v("catalog.colStack")}),(0,n.jsx)("span",{children:v("catalog.colActivity")})]}),(0,n.jsx)("div",{ref:q,role:"listbox","aria-label":v("catalog.rowsAria"),className:"catalog-rows catalog-rows--".concat(I),onKeyDown:function(e){let t="grid"===I?eg():1,a={ArrowDown:t,ArrowUp:-t,..."grid"===I?{ArrowRight:1,ArrowLeft:-1}:{}}[e.key];if(void 0!==a){e.preventDefault(),eb(a);return}if("Home"===e.key||"End"===e.key){e.preventDefault(),eb("Home"===e.key?-ei.length:ei.length);return}"Escape"===e.key&&B&&(e.preventDefault(),eh(null))},children:ei.map((e,t)=>{let a={project:e,index:t,selected:e.id===B,tabbable:t===(-1===el?0:el),favorite:K.has(e.id),opening:eu&&ef===e.id,discreet:D,onSelect:()=>eh(e.id),onOpen:()=>ej(e)};return"list"===I?(0,n.jsx)(eo,{...a},e.id):(0,n.jsx)(ec,{...a},e.id)})})]}):(0,n.jsxs)("div",{className:"catalog-empty",role:"status",children:[(0,n.jsx)(o.ENP,{"aria-hidden":!0}),(0,n.jsx)("h2",{children:v("store.noResults")}),(0,n.jsx)("p",{children:v("store.noResultsBody")}),(0,n.jsx)("button",{type:"button",onClick:()=>{T("all"),N(""),window.location.search&&d.replace("/",{scroll:!1})},children:v("store.clearFilters")})]})}),ed&&(0,n.jsx)(ep,{project:ed,discreet:D,index:Math.max(0,ei.findIndex(e=>e.id===ed.id)),favorite:K.has(ed.id),onFavorite:()=>{var e;return e=ed.id,void L(K.has(e)?W.filter(t=>t!==e):[...W,e])},onHide:()=>ey(ed.id),onClose:()=>eh(null),error:V},ed.id)]})]})}):null}function er(e){let{project:t,discreet:a,index:s}=e,i=(0,y.kj)(),l=(0,y.Ym)(),r=a?i("store.hidden",{n:s+1}):t.name;return(0,n.jsxs)("section",{className:"resume-strip","aria-label":i("store.resume"),children:[(0,n.jsx)(o.cyc,{"aria-hidden":!0}),(0,n.jsxs)("p",{children:[(0,n.jsx)("strong",{children:r}),(0,n.jsx)("span",{children:t.lastCommitSubject||function(e,t){if(e.description)return e.description;let a=e.technologies.find(e=>"framework"===e.kind||"language"===e.kind);return a?t("store.builtWith",{tech:a.name}):t("store.detected")}(t,i)})]}),(0,n.jsx)("span",{className:"resume-strip__when",children:(0,v.Pp)(t.lastCommitAt,l)}),(0,n.jsx)(G.q,{projectId:t.id,path:t.root,locale:l,compact:!0})]})}function eo(e){let{project:t,index:a,selected:s,tabbable:i,favorite:l,opening:r,discreet:c,onSelect:h,onOpen:u}=e,m=(0,y.kj)(),p=(0,y.Ym)(),f=ea(t);return(0,n.jsxs)("div",{id:"catalog-".concat(t.id),role:"option","aria-selected":s,"aria-busy":r,tabIndex:i?0:-1,"data-index":a,className:"catalog-row",title:c?m("store.hidden",{n:a+1}):t.root,onClick:h,onDoubleClick:u,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),u())," "===e.key&&(e.preventDefault(),h())},children:[(0,n.jsxs)("span",{className:"catalog-row__identity",children:[c?(0,n.jsx)(ed,{size:"row",variant:a}):(0,n.jsx)(v.hV,{locale:p,name:t.name,src:t.hasIcon?"/icon/".concat(t.id):null,size:40,tone:"neutral"}),(0,n.jsxs)("span",{className:"catalog-row__names",children:[(0,n.jsxs)("span",{className:"catalog-row__name",children:[(0,n.jsx)("span",{children:c?m("store.hidden",{n:a+1}):t.name}),l&&(0,n.jsx)(o.K7t,{className:"catalog-row__star","aria-hidden":!0}),f>0&&(0,n.jsxs)("span",{className:"waiting-badge",title:m(1===f?"store.proposalsWaitingOne":"store.proposalsWaitingMany",{n:f}),children:[(0,n.jsx)("span",{"aria-hidden":!0,children:f}),(0,n.jsx)("span",{className:"sr-only",children:m(1===f?"store.proposalsWaitingOne":"store.proposalsWaitingMany",{n:f})})]}),t.risks.length>0&&(0,n.jsx)(o.Dco,{className:"risk-mark",title:t.risks.map(e=>(0,d.P3)(m,e)).join(" \xb7 ")})]}),!c&&(0,n.jsxs)("span",{className:"catalog-row__path",children:[ei(t.root),t.copyCount>0&&(0,n.jsxs)("span",{title:m("store.alsoCopiesTitle"),children:[" ",m("store.alsoCopies",{n:t.copyCount})]})]})]})]}),(0,n.jsx)(eh,{score:t.healthScore,grade:t.healthGrade}),(0,n.jsx)(eu,{technologies:t.technologies}),(0,n.jsxs)("span",{className:"catalog-row__activity",children:[(0,n.jsx)(em,{state:t.state}),(0,v.Pp)(t.lastCommitAt,p)]}),(0,n.jsx)("span",{className:"catalog-row__handle",children:r?(0,n.jsx)(et,{}):(0,n.jsx)(ee,{name:c?m("store.hidden",{n:a+1}):t.name,onOpen:u})})]})}function ec(e){let{project:t,index:a,selected:s,tabbable:i,favorite:l,opening:r,discreet:c,onSelect:h,onOpen:u}=e,m=(0,y.Ym)(),p=(0,y.kj)();return(0,n.jsxs)("div",{id:"catalog-".concat(t.id),role:"option","aria-selected":s,"aria-busy":r,tabIndex:i?0:-1,"data-index":a,className:"catalog-tile",title:c?p("store.hidden",{n:a+1}):t.root,onClick:h,onDoubleClick:u,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),u())," "===e.key&&(e.preventDefault(),h())},children:[(0,n.jsx)(eh,{score:t.healthScore,grade:t.healthGrade}),(0,n.jsx)("span",{className:"catalog-tile__handle",children:r?(0,n.jsx)(et,{}):(0,n.jsx)(ee,{name:c?p("store.hidden",{n:a+1}):t.name,onOpen:u})}),c?(0,n.jsx)(ed,{size:"tile",variant:a}):(0,n.jsx)(v.hV,{locale:m,name:t.name,src:t.hasIcon?"/icon/".concat(t.id):null,size:54,tone:"neutral"}),(0,n.jsxs)("span",{className:"catalog-tile__name",children:[l&&(0,n.jsx)(o.K7t,{"aria-hidden":!0}),(0,n.jsx)("span",{children:c?p("store.hidden",{n:a+1}):t.name}),!c&&t.copyCount>0&&(0,n.jsx)(o.Zs_,{title:p("store.alsoCopiesMark",{n:t.copyCount})})]}),(0,n.jsxs)("span",{className:"catalog-tile__meta",children:[(0,n.jsx)(em,{state:t.state}),(0,v.Pp)(t.lastCommitAt,m),t.risks.length>0&&(0,n.jsx)(o.Dco,{className:"risk-mark",title:t.risks.map(e=>(0,d.P3)(p,e)).join(" \xb7 ")})]})]})}function ed(e){let{size:t,variant:a}=e;return(0,n.jsx)("span",{className:"catalog-private-mark catalog-private-mark--".concat(t),"data-variant":a%4,"aria-hidden":!0,children:(0,n.jsx)("span",{className:"catalog-private-mark__seal"})})}function eh(e){let{score:t,grade:a}=e,s=(0,y.kj)(),i=2*Math.PI*11,l=Math.max(0,Math.min(100,t))/100*i;return(0,n.jsxs)("span",{className:"health-dial health-dial--".concat(es(a)),title:s("catalog.healthOf",{n:t}),children:[(0,n.jsxs)("svg",{viewBox:"0 0 26 26","aria-hidden":!0,children:[(0,n.jsx)("circle",{className:"health-dial__track",cx:"13",cy:"13",r:11}),(0,n.jsx)("circle",{className:"health-dial__arc",cx:"13",cy:"13",r:11,strokeDasharray:"".concat(l," ").concat(i)})]}),(0,n.jsx)("span",{children:t})]})}function eu(e){let{technologies:t}=e,a=t.find(e=>"framework"===e.kind||"language"===e.kind);if(!a)return(0,n.jsx)("span",{className:"stack-mark stack-mark--empty",children:"—"});let s=$[a.name.toLowerCase()],i=null==s?void 0:s.icon;return(0,n.jsxs)("span",{className:"stack-mark",children:[i?(0,n.jsx)(i,{"aria-hidden":!0,style:{color:s.color}}):null,(0,n.jsx)("span",{children:a.name})]})}function em(e){let{state:t}=e,a=(0,y.kj)();return(0,n.jsx)("span",{className:"state-dot state-dot--".concat(t),title:a(ef(t)),children:(0,n.jsx)("span",{className:"sr-only",children:a(ef(t))})})}function ep(e){var t,a;let{project:s,discreet:l,index:r,favorite:c,onFavorite:h,onHide:u,onClose:m,error:p}=e,f=(0,y.kj)(),x=(0,y.Ym)(),j=ea(s),g=es(s.healthGrade),b=l?f("store.hidden",{n:r+1}):s.name,w=!1===s.gitVersioned?f("catalog.noGit"):s.gitRemoteUrl?f("catalog.remote"):f("catalog.localOnly"),k="foreign"===s.originKind?f("origin.foreign"):"forked"===s.originKind?f("origin.forked"):"template"===s.originKind?f("origin.template"):null;return(0,n.jsxs)("aside",{className:"detail-panel","aria-label":f("catalog.detailsOf",{name:b}),children:[(0,n.jsxs)("header",{className:"detail-panel__head",children:[l?(0,n.jsx)(ed,{size:"row",variant:r}):(0,n.jsx)(v.hV,{locale:x,name:s.name,src:s.hasIcon?"/icon/".concat(s.id):null,size:38,tone:"neutral"}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h2",{children:b}),!l&&(0,n.jsx)("p",{title:s.root,children:ei(s.root)})]}),(0,n.jsx)("button",{type:"button",onClick:m,"aria-label":f("catalog.close"),children:(0,n.jsx)(o.fZH,{"aria-hidden":!0})})]}),(0,n.jsx)("div",{className:"detail-panel__open",children:(0,n.jsx)(G.q,{projectId:s.id,path:s.root,locale:x})}),(0,n.jsxs)("section",{className:"detail-health detail-health--".concat(g),children:[(0,n.jsxs)("p",{children:[(0,n.jsx)(em,{state:s.state}),f("catalog.colHealth")]}),(0,n.jsxs)("p",{className:"detail-health__score",children:[(0,n.jsx)("strong",{children:s.healthScore}),(0,n.jsx)("span",{children:"/100"})]}),(0,n.jsx)("span",{className:"detail-health__meter",children:(0,n.jsx)("span",{style:{width:"".concat(Math.max(0,Math.min(100,s.healthScore)),"%")}})})]}),(0,n.jsxs)("dl",{className:"detail-facts",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("dt",{children:f("catalog.colStack")}),(0,n.jsx)("dd",{children:(0,n.jsx)(eu,{technologies:s.technologies})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("dt",{children:f("catalog.colActivity")}),(0,n.jsx)("dd",{children:(0,v.Pp)(s.lastCommitAt,x)})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("dt",{children:f("catalog.commits")}),(0,n.jsx)("dd",{children:null!=(t=s.gitCommitCount)?t:"—"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("dt",{children:f("catalog.repository")}),(0,n.jsx)("dd",{children:w})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("dt",{children:f("catalog.size")}),(0,n.jsx)("dd",{children:(0,v.z3)(s.sourceBytes)})]}),k&&(0,n.jsxs)("div",{children:[(0,n.jsx)("dt",{children:f("catalog.origin")}),(0,n.jsx)("dd",{title:null!=(a=s.originStartedBy)?a:void 0,children:k})]})]}),en(s)&&(0,n.jsxs)("section",{className:"detail-review",children:[(0,n.jsx)("h3",{children:f("catalog.needsReview")}),j>0&&(0,n.jsxs)(i(),{href:"/p/".concat(s.slug,"#propuestas"),className:"detail-review__waiting",children:[(0,n.jsx)(o.V83,{"aria-hidden":!0}),(0,n.jsx)("span",{children:f(1===j?"store.proposalsWaitingOne":"store.proposalsWaitingMany",{n:j})})]}),(0,n.jsxs)("ul",{children:[s.risks.map(e=>(0,n.jsx)("li",{className:"is-danger",children:(0,n.jsx)(i(),{href:"/p/".concat(s.slug,"#unsaved"),title:f("catalog.reviewUnsaved"),children:(0,d.P3)(f,e)})},e.code)),s.vulnCount>0&&(0,n.jsx)("li",{className:"is-danger",children:(0,n.jsx)(i(),{href:"/p/".concat(s.slug,"#security"),title:f("catalog.reviewSecurity"),children:1===s.vulnCount?f("store.noticeOne"):f("store.noticesMany",{n:s.vulnCount})})}),s.outdatedDeps>0&&(0,n.jsx)("li",{children:(0,n.jsx)(i(),{href:"/p/".concat(s.slug,"#dependencies"),title:f("catalog.reviewDeps"),children:f("store.depsBehindRatio",{n:s.outdatedDeps,total:s.directDeps||0})})}),s.depsUnresolved&&(0,n.jsx)("li",{children:(0,n.jsx)(i(),{href:"/p/".concat(s.slug,"#dependencies"),title:f("project.depsUncheckedWhy",{file:s.depsUnresolved}),children:f("store.depsUnchecked")})})]})]}),p&&(0,n.jsx)("p",{className:"detail-panel__error",role:"alert",children:p}),(0,n.jsxs)("footer",{className:"detail-panel__foot",children:[(0,n.jsxs)(i(),{href:"/p/".concat(s.slug),children:[f("catalog.fullDetail")," ",(0,n.jsx)(o.OvC,{"aria-hidden":!0})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("button",{type:"button",onClick:h,"aria-label":c?f("store.favoriteRemove",{name:s.name}):f("store.favoriteAdd",{name:s.name}),"aria-pressed":c,children:c?(0,n.jsx)(o.K7t,{"aria-hidden":!0}):(0,n.jsx)(o.sdO,{"aria-hidden":!0})}),(0,n.jsx)("button",{type:"button",onClick:u,"aria-label":f("store.hideNamed",{name:s.name}),children:(0,n.jsx)(o.EgV,{"aria-hidden":!0})})]})]})]})}function ef(e){return"active"===e?"state.active":"paused"===e?"state.paused":"dormant"===e?"state.dormant":"state.no-git"}},5035:(e,t,a)=>{"use strict";a.d(t,{F:()=>s});var n=a(4963);function s(e,t,a){let[s,i]=(0,n.useState)(t);return(0,n.useEffect)(()=>{try{let t=window.localStorage.getItem("panoma:".concat(e));if(null!==t)return void i(JSON.parse(t));if(!a)return;let n=window.localStorage.getItem("panoma:".concat(a));if(null===n)return;i(JSON.parse(n)),window.localStorage.setItem("panoma:".concat(e),n),window.localStorage.removeItem("panoma:".concat(a))}catch(e){}},[e,a]),[s,function(t){i(t);try{window.localStorage.setItem("panoma:".concat(e),JSON.stringify(t))}catch(e){}}]}},5805:(e,t,a)=>{Promise.resolve().then(a.bind(a,3385))},6859:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(9733);async function s(e,t){let a=await (0,n.B)("/api/open",{id:e.id,tool:e.tool,...e.with?{with:e.with}:{}},t,e=>[e.error,e.hint].filter(Boolean).join(" "));return a.ok?{ok:!0}:{ok:!1,message:a.message}}}},e=>{e.O(0,[6587,3052,2583,1723,7911,4517,5465,9643,4737,7358],()=>e(e.s=5805)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[668],{179:(e,t,n)=>{"use strict";n.d(t,{I18nProvider:()=>o,Ym:()=>u,Zs:()=>c,kj:()=>d});var r=n(9763),s=n(4963),a=n(7911);let l=(0,s.createContext)("en"),i=(0,s.createContext)("panoma");function o(e){let{locale:t,cli:n,children:s}=e;return(0,r.jsx)(l.Provider,{value:t,children:(0,r.jsx)(i.Provider,{value:n,children:s})})}function u(){return(0,s.useContext)(l)}function c(){return(0,s.useContext)(i)}function d(){let e=(0,s.useContext)(l),t=(0,s.useContext)(i);return(0,s.useCallback)((n,r)=>(0,a.t)(e,n,{cli:t,...r}),[e,t])}},4584:(e,t,n)=>{"use strict";n.d(t,{h:()=>s});var r=n(9763);function s(e){let{text:t,slots:n}=e,s=t.split(/\{(\w+)\}/g);return(0,r.jsx)(r.Fragment,{children:s.map((e,t)=>{var s;return t%2==0?e:(0,r.jsx)("span",{children:null!=(s=n[e])?s:"{".concat(e,"}")},t)})})}},6623:(e,t,n)=>{Promise.resolve().then(n.bind(n,9988)),Promise.resolve().then(n.t.bind(n,1723,23))},7244:(e,t,n)=>{"use strict";var r=n(3292);n.o(r,"usePathname")&&n.d(t,{usePathname:function(){return r.usePathname}}),n.o(r,"useRouter")&&n.d(t,{useRouter:function(){return r.useRouter}}),n.o(r,"useSearchParams")&&n.d(t,{useSearchParams:function(){return r.useSearchParams}})},9988:(e,t,n)=>{"use strict";n.d(t,{RunActions:()=>o});var r=n(9763),s=n(7244),a=n(4963),l=n(179),i=n(4584);function o(e){let{runId:t,branch:n}=e,o=(0,l.kj)(),u=(0,s.useRouter)(),[c,d]=(0,a.useState)(null),[x,h]=(0,a.useState)(null);async function p(e){d(e),h(null);try{var n,r;let s=await fetch("/api/runs/".concat(t),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e})}),a=await s.json();h({ok:!!a.ok,detail:null!=(r=null!=(n=a.detail)?n:a.error)?r:o("runActions.noDetail")}),a.ok&&u.refresh()}catch(e){h({ok:!1,detail:o("runActions.unreachable")})}finally{d(null)}}return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,r.jsx)("button",{onClick:()=>p("aplicar"),disabled:null!==c,className:"rounded-lg bg-accent px-4 py-2 text-sm font-semibold text-white disabled:opacity-50",children:"aplicar"===c?o("runActions.merging"):o("runActions.apply")}),(0,r.jsx)("button",{onClick:()=>p("descartar"),disabled:null!==c,className:"rounded-lg border border-edge px-4 py-2 text-sm text-smoke hover:text-chalk disabled:opacity-50",children:"descartar"===c?o("runActions.discarding"):o("runActions.discard")})]}),(0,r.jsx)("p",{className:"mt-2 font-mono text-[11px] text-faint",children:(0,r.jsx)(i.h,{text:o("runActions.note"),slots:{branch:(0,r.jsx)("span",{className:"text-smoke",children:n})}})}),x&&(0,r.jsx)("p",{className:"mt-3 rounded border px-3 py-2 text-xs ".concat(x.ok?"border-live/30 bg-live/10 text-live":"border-idle/30 bg-idle/10 text-idle"),children:x.detail})]})}}},e=>{e.O(0,[1723,7911,9643,4737,7358],()=>e(e.s=6623)),_N_E=e.O()}]);