@ai-development-environment/server 0.0.29 → 0.0.30

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 (325) hide show
  1. package/package.json +1 -1
  2. package/prisma-runtime/prisma/migrations/20260719010000_add_build_reports/migration.sql +29 -0
  3. package/prisma-runtime/prisma/schema.prisma +23 -0
  4. package/standalone/.next/BUILD_ID +1 -1
  5. package/standalone/.next/app-path-routes-manifest.json +2 -0
  6. package/standalone/.next/build-manifest.json +6 -6
  7. package/standalone/.next/prerender-manifest.json +3 -3
  8. package/standalone/.next/routes-manifest.json +17 -0
  9. package/standalone/.next/server/app/[locale]/actions/page/build-manifest.json +3 -3
  10. package/standalone/.next/server/app/[locale]/actions/page.js.nft.json +1 -1
  11. package/standalone/.next/server/app/[locale]/actions/page_client-reference-manifest.js +1 -1
  12. package/standalone/.next/server/app/[locale]/agents/[id]/page/build-manifest.json +3 -3
  13. package/standalone/.next/server/app/[locale]/agents/[id]/page.js.nft.json +1 -1
  14. package/standalone/.next/server/app/[locale]/agents/[id]/page_client-reference-manifest.js +1 -1
  15. package/standalone/.next/server/app/[locale]/agents/page/build-manifest.json +3 -3
  16. package/standalone/.next/server/app/[locale]/agents/page.js.nft.json +1 -1
  17. package/standalone/.next/server/app/[locale]/agents/page_client-reference-manifest.js +1 -1
  18. package/standalone/.next/server/app/[locale]/build-data/page/build-manifest.json +3 -3
  19. package/standalone/.next/server/app/[locale]/build-data/page.js.nft.json +1 -1
  20. package/standalone/.next/server/app/[locale]/build-data/page_client-reference-manifest.js +1 -1
  21. package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page/app-paths-manifest.json +3 -0
  22. package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page/build-manifest.json +16 -0
  23. package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page/next-font-manifest.json +11 -0
  24. package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page/react-loadable-manifest.json +1 -0
  25. package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page/server-reference-manifest.json +4 -0
  26. package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page.js +16 -0
  27. package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page.js.map +5 -0
  28. package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page.js.nft.json +1 -0
  29. package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page_client-reference-manifest.js +3 -0
  30. package/standalone/.next/server/app/[locale]/builds/[buildId]/page/build-manifest.json +3 -3
  31. package/standalone/.next/server/app/[locale]/builds/[buildId]/page.js.nft.json +1 -1
  32. package/standalone/.next/server/app/[locale]/builds/[buildId]/page_client-reference-manifest.js +1 -1
  33. package/standalone/.next/server/app/[locale]/builds/page/build-manifest.json +3 -3
  34. package/standalone/.next/server/app/[locale]/builds/page.js.nft.json +1 -1
  35. package/standalone/.next/server/app/[locale]/builds/page_client-reference-manifest.js +1 -1
  36. package/standalone/.next/server/app/[locale]/codebases/[codebaseId]/page/build-manifest.json +3 -3
  37. package/standalone/.next/server/app/[locale]/codebases/[codebaseId]/page.js.nft.json +1 -1
  38. package/standalone/.next/server/app/[locale]/codebases/[codebaseId]/page_client-reference-manifest.js +1 -1
  39. package/standalone/.next/server/app/[locale]/codebases/page/build-manifest.json +3 -3
  40. package/standalone/.next/server/app/[locale]/codebases/page.js.nft.json +1 -1
  41. package/standalone/.next/server/app/[locale]/codebases/page_client-reference-manifest.js +1 -1
  42. package/standalone/.next/server/app/[locale]/codebases/repositories/[repositoryId]/page/build-manifest.json +3 -3
  43. package/standalone/.next/server/app/[locale]/codebases/repositories/[repositoryId]/page.js.nft.json +1 -1
  44. package/standalone/.next/server/app/[locale]/codebases/repositories/[repositoryId]/page_client-reference-manifest.js +1 -1
  45. package/standalone/.next/server/app/[locale]/comments/page/build-manifest.json +3 -3
  46. package/standalone/.next/server/app/[locale]/comments/page.js.nft.json +1 -1
  47. package/standalone/.next/server/app/[locale]/comments/page_client-reference-manifest.js +1 -1
  48. package/standalone/.next/server/app/[locale]/jira/cache/page/build-manifest.json +3 -3
  49. package/standalone/.next/server/app/[locale]/jira/cache/page.js.nft.json +1 -1
  50. package/standalone/.next/server/app/[locale]/jira/cache/page_client-reference-manifest.js +1 -1
  51. package/standalone/.next/server/app/[locale]/jira/cache/tickets/[issueKey]/page/build-manifest.json +3 -3
  52. package/standalone/.next/server/app/[locale]/jira/cache/tickets/[issueKey]/page.js.nft.json +1 -1
  53. package/standalone/.next/server/app/[locale]/jira/cache/tickets/[issueKey]/page_client-reference-manifest.js +1 -1
  54. package/standalone/.next/server/app/[locale]/jira/tickets/[issueKey]/page/build-manifest.json +3 -3
  55. package/standalone/.next/server/app/[locale]/jira/tickets/[issueKey]/page.js.nft.json +1 -1
  56. package/standalone/.next/server/app/[locale]/jira/tickets/[issueKey]/page_client-reference-manifest.js +1 -1
  57. package/standalone/.next/server/app/[locale]/jira/tickets/page/build-manifest.json +3 -3
  58. package/standalone/.next/server/app/[locale]/jira/tickets/page.js.nft.json +1 -1
  59. package/standalone/.next/server/app/[locale]/jira/tickets/page_client-reference-manifest.js +1 -1
  60. package/standalone/.next/server/app/[locale]/jobs/[jobId]/page/build-manifest.json +3 -3
  61. package/standalone/.next/server/app/[locale]/jobs/[jobId]/page.js.nft.json +1 -1
  62. package/standalone/.next/server/app/[locale]/jobs/[jobId]/page_client-reference-manifest.js +1 -1
  63. package/standalone/.next/server/app/[locale]/page/build-manifest.json +3 -3
  64. package/standalone/.next/server/app/[locale]/page.js.nft.json +1 -1
  65. package/standalone/.next/server/app/[locale]/page_client-reference-manifest.js +1 -1
  66. package/standalone/.next/server/app/[locale]/pull-requests/[owner]/[repository]/[number]/page/build-manifest.json +3 -3
  67. package/standalone/.next/server/app/[locale]/pull-requests/[owner]/[repository]/[number]/page.js.nft.json +1 -1
  68. package/standalone/.next/server/app/[locale]/pull-requests/[owner]/[repository]/[number]/page_client-reference-manifest.js +1 -1
  69. package/standalone/.next/server/app/[locale]/pull-requests/page/build-manifest.json +3 -3
  70. package/standalone/.next/server/app/[locale]/pull-requests/page.js.nft.json +1 -1
  71. package/standalone/.next/server/app/[locale]/pull-requests/page_client-reference-manifest.js +1 -1
  72. package/standalone/.next/server/app/[locale]/settings/page/build-manifest.json +3 -3
  73. package/standalone/.next/server/app/[locale]/settings/page.js.nft.json +1 -1
  74. package/standalone/.next/server/app/[locale]/settings/page_client-reference-manifest.js +1 -1
  75. package/standalone/.next/server/app/[locale]/skills/[skillId]/page/build-manifest.json +3 -3
  76. package/standalone/.next/server/app/[locale]/skills/[skillId]/page.js.nft.json +1 -1
  77. package/standalone/.next/server/app/[locale]/skills/[skillId]/page_client-reference-manifest.js +1 -1
  78. package/standalone/.next/server/app/[locale]/skills/groups/[groupId]/page/build-manifest.json +3 -3
  79. package/standalone/.next/server/app/[locale]/skills/groups/[groupId]/page.js.nft.json +1 -1
  80. package/standalone/.next/server/app/[locale]/skills/groups/[groupId]/page_client-reference-manifest.js +1 -1
  81. package/standalone/.next/server/app/[locale]/skills/groups/page/build-manifest.json +3 -3
  82. package/standalone/.next/server/app/[locale]/skills/groups/page.js.nft.json +1 -1
  83. package/standalone/.next/server/app/[locale]/skills/groups/page_client-reference-manifest.js +1 -1
  84. package/standalone/.next/server/app/[locale]/skills/page/build-manifest.json +3 -3
  85. package/standalone/.next/server/app/[locale]/skills/page.js.nft.json +1 -1
  86. package/standalone/.next/server/app/[locale]/skills/page_client-reference-manifest.js +1 -1
  87. package/standalone/.next/server/app/[locale]/skills/sync/[runId]/page/build-manifest.json +3 -3
  88. package/standalone/.next/server/app/[locale]/skills/sync/[runId]/page.js.nft.json +1 -1
  89. package/standalone/.next/server/app/[locale]/skills/sync/[runId]/page_client-reference-manifest.js +1 -1
  90. package/standalone/.next/server/app/[locale]/tools/page/build-manifest.json +3 -3
  91. package/standalone/.next/server/app/[locale]/tools/page.js.nft.json +1 -1
  92. package/standalone/.next/server/app/[locale]/tools/page_client-reference-manifest.js +1 -1
  93. package/standalone/.next/server/app/[locale]/usage/page/build-manifest.json +3 -3
  94. package/standalone/.next/server/app/[locale]/usage/page.js.nft.json +1 -1
  95. package/standalone/.next/server/app/[locale]/usage/page_client-reference-manifest.js +1 -1
  96. package/standalone/.next/server/app/[locale]/worktrees/[worktreeId]/page/build-manifest.json +3 -3
  97. package/standalone/.next/server/app/[locale]/worktrees/[worktreeId]/page.js.nft.json +1 -1
  98. package/standalone/.next/server/app/[locale]/worktrees/[worktreeId]/page_client-reference-manifest.js +1 -1
  99. package/standalone/.next/server/app/[locale]/worktrees/page/build-manifest.json +3 -3
  100. package/standalone/.next/server/app/[locale]/worktrees/page.js.nft.json +1 -1
  101. package/standalone/.next/server/app/[locale]/worktrees/page_client-reference-manifest.js +1 -1
  102. package/standalone/.next/server/app/_global-error/page/build-manifest.json +3 -3
  103. package/standalone/.next/server/app/_global-error.html +1 -1
  104. package/standalone/.next/server/app/_global-error.rsc +1 -1
  105. package/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  106. package/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  107. package/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  108. package/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  109. package/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  110. package/standalone/.next/server/app/_not-found/page/build-manifest.json +3 -3
  111. package/standalone/.next/server/app/_not-found.html +1 -1
  112. package/standalone/.next/server/app/_not-found.rsc +1 -1
  113. package/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  114. package/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  115. package/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  116. package/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  117. package/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  118. package/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  119. package/standalone/.next/server/app/api/build-artifact-uploads/[uploadId]/route.js +1 -1
  120. package/standalone/.next/server/app/api/build-artifact-uploads/[uploadId]/route.js.nft.json +1 -1
  121. package/standalone/.next/server/app/api/worktrees/[worktreeId]/diff-image/route/app-paths-manifest.json +3 -0
  122. package/standalone/.next/server/app/api/worktrees/[worktreeId]/diff-image/route/build-manifest.json +9 -0
  123. package/standalone/.next/server/app/api/worktrees/[worktreeId]/diff-image/route/server-reference-manifest.json +4 -0
  124. package/standalone/.next/server/app/api/worktrees/[worktreeId]/diff-image/route.js +10 -0
  125. package/standalone/.next/server/app/api/worktrees/[worktreeId]/diff-image/route.js.map +5 -0
  126. package/standalone/.next/server/app/api/worktrees/[worktreeId]/diff-image/route.js.nft.json +1 -0
  127. package/standalone/.next/server/app/api/worktrees/[worktreeId]/diff-image/route_client-reference-manifest.js +3 -0
  128. package/standalone/.next/server/app-paths-manifest.json +2 -0
  129. package/standalone/.next/server/chunks/1oeh_server_app_api_worktrees_[worktreeId]_diff-image_route_actions_0nie5n3.js +3 -0
  130. package/standalone/.next/server/chunks/[root-of-the-server]__09v6swg._.js +3 -0
  131. package/standalone/.next/server/chunks/[root-of-the-server]__0aiyd05._.js +3 -0
  132. package/standalone/.next/server/chunks/[root-of-the-server]__0rwpsai._.js +3 -0
  133. package/standalone/.next/server/chunks/[root-of-the-server]__0zyqmd4._.js +122 -0
  134. package/standalone/.next/server/chunks/[root-of-the-server]__15_clsj._.js +3 -0
  135. package/standalone/.next/server/chunks/{[root-of-the-server]__0c02fce._.js → [root-of-the-server]__1oa-sy6._.js} +2 -2
  136. package/standalone/.next/server/chunks/[root-of-the-server]__1vxtcsq._.js +3 -0
  137. package/standalone/.next/server/chunks/_0exkna-._.js +143 -8
  138. package/standalone/.next/server/chunks/_0jurkow._.js +1 -1
  139. package/standalone/.next/server/chunks/_0rx5rfm._.js +1 -1
  140. package/standalone/.next/server/chunks/_0tufgj0._.js +213 -78
  141. package/standalone/.next/server/chunks/_0w2eghf._.js +143 -8
  142. package/standalone/.next/server/chunks/_152rnkf._.js +17 -17
  143. package/standalone/.next/server/chunks/_16x77b_._.js +1 -1
  144. package/standalone/.next/server/chunks/_1dbqy8c._.js +17 -17
  145. package/standalone/.next/server/chunks/_1vrixpc._.js +17 -17
  146. package/standalone/.next/server/chunks/_1yfz-9u._.js +17 -17
  147. package/standalone/.next/server/chunks/src_0o4-snj._.js +1 -1
  148. package/standalone/.next/server/chunks/ssr/1oeh_server_app_[locale]_builds_[buildId]_coverage_page_actions_20i_0zd.js +3 -0
  149. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__08bbv6z._.js +9 -0
  150. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ckj6wg._.js +13 -0
  151. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__0eit075._.js +3 -0
  152. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__0tsac-e._.js +15 -0
  153. package/standalone/.next/server/chunks/ssr/{_19fwji0._.js → [root-of-the-server]__0uo4dhz._.js} +2 -2
  154. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__10-ftkj._.js +3 -0
  155. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__15v1geo._.js +3 -0
  156. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__1qm_j4s._.js +3 -0
  157. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__1s6_fta._.js +3 -0
  158. package/standalone/.next/server/chunks/ssr/_0-o77zz._.js +3 -0
  159. package/standalone/.next/server/chunks/ssr/_00m30gw._.js +3 -0
  160. package/standalone/.next/server/chunks/ssr/_03961l6._.js +3 -0
  161. package/standalone/.next/server/chunks/ssr/{_00ye62k._.js → _08q5hnx._.js} +2 -2
  162. package/standalone/.next/server/chunks/ssr/_093--4s._.js +3 -0
  163. package/standalone/.next/server/chunks/ssr/{_1kaz2gq._.js → _09lh67h._.js} +2 -2
  164. package/standalone/.next/server/chunks/ssr/_0a1ligo._.js +3 -0
  165. package/standalone/.next/server/chunks/ssr/{_1r2rmfp._.js → _0cw_tqx._.js} +2 -8
  166. package/standalone/.next/server/chunks/ssr/_0dq-84j._.js +22 -0
  167. package/standalone/.next/server/chunks/ssr/_0dy1ovj._.js +3 -0
  168. package/standalone/.next/server/chunks/ssr/_0ezo890._.js +3 -0
  169. package/standalone/.next/server/chunks/ssr/_0id1774._.js +13 -0
  170. package/standalone/.next/server/chunks/ssr/_0j48up8._.js +1 -1
  171. package/standalone/.next/server/chunks/ssr/_0nhtqty._.js +1 -1
  172. package/standalone/.next/server/chunks/ssr/_0oh246z._.js +3 -0
  173. package/standalone/.next/server/chunks/ssr/_0q8sy0w._.js +3 -0
  174. package/standalone/.next/server/chunks/ssr/_0qra30j._.js +3 -0
  175. package/standalone/.next/server/chunks/ssr/_0t2jwg3._.js +109 -0
  176. package/standalone/.next/server/chunks/ssr/{_1zyjq9y._.js → _0ufkrvm._.js} +2 -2
  177. package/standalone/.next/server/chunks/ssr/{_07tglcd._.js → _0vjihfb._.js} +2 -10
  178. package/standalone/.next/server/chunks/ssr/_0xh-lyy._.js +3 -0
  179. package/standalone/.next/server/chunks/ssr/_15erjna._.js +3 -0
  180. package/standalone/.next/server/chunks/ssr/_17a3xuq._.js +3 -0
  181. package/standalone/.next/server/chunks/ssr/_17p59oz._.js +1 -1
  182. package/standalone/.next/server/chunks/ssr/_1bzibio._.js +109 -0
  183. package/standalone/.next/server/chunks/ssr/{_12ws_f2._.js → _1c2fde9._.js} +2 -2
  184. package/standalone/.next/server/chunks/ssr/{_0mr9u9p._.js → _1dnm1d4._.js} +2 -2
  185. package/standalone/.next/server/chunks/ssr/_1ekznx8._.js +3 -0
  186. package/standalone/.next/server/chunks/ssr/_1k1tyz4._.js +3 -0
  187. package/standalone/.next/server/chunks/ssr/{_1_1j9nd._.js → _1n9rteq._.js} +3 -7
  188. package/standalone/.next/server/chunks/ssr/_1och_zk._.js +3 -0
  189. package/standalone/.next/server/chunks/ssr/{_0xrpdyy._.js → _1tpguta._.js} +2 -2
  190. package/standalone/.next/server/chunks/ssr/_1v1lo7c._.js +3 -0
  191. package/standalone/.next/server/chunks/ssr/_1vv-dg-._.js +3 -0
  192. package/standalone/.next/server/chunks/ssr/_1zgu74l._.js +1 -1
  193. package/standalone/.next/server/chunks/ssr/messages_de_json_[json]_cjs_1uig1ud._.js +1 -1
  194. package/standalone/.next/server/chunks/ssr/messages_en_json_[json]_cjs_206072-._.js +1 -1
  195. package/standalone/.next/server/chunks/ssr/messages_es_json_[json]_cjs_082yukd._.js +1 -1
  196. package/standalone/.next/server/chunks/ssr/messages_fr_json_[json]_cjs_0j6-w0i._.js +1 -1
  197. package/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uzalot.js +4 -0
  198. package/standalone/.next/server/chunks/ssr/src_components_builds_build-detail-page_tsx_0q1lvps._.js +14 -8
  199. package/standalone/.next/server/chunks/ssr/src_components_builds_coverage-report-page_tsx_1nhwba1._.js +11 -0
  200. package/standalone/.next/server/chunks/ssr/src_components_codebases_repository-detail-page_tsx_20_7wk_._.js +5 -5
  201. package/standalone/.next/server/chunks/ssr/src_components_jira_cache-page_tsx_1znt1yl._.js +1 -1
  202. package/standalone/.next/server/chunks/ssr/src_components_skills_skill-sync-page_tsx_15sidhb._.js +1 -1
  203. package/standalone/.next/server/chunks/ssr/src_components_skills_skills-page_tsx_0o1nlbg._.js +3 -3
  204. package/standalone/.next/server/chunks/ssr/src_components_worktrees_worktree-detail-page_tsx_1oexgu_._.js +13 -5
  205. package/standalone/.next/server/functions-config-manifest.json +3 -0
  206. package/standalone/.next/server/middleware-build-manifest.js +6 -6
  207. package/standalone/.next/server/next-font-manifest.js +1 -1
  208. package/standalone/.next/server/next-font-manifest.json +4 -0
  209. package/standalone/.next/server/pages/404.html +1 -1
  210. package/standalone/.next/server/pages/500.html +1 -1
  211. package/standalone/.next/server/server-reference-manifest.js +1 -1
  212. package/standalone/.next/server/server-reference-manifest.json +1 -1
  213. package/standalone/.next/static/chunks/041g9raf1naqv.js +48 -0
  214. package/standalone/.next/static/chunks/08ujwkhzkokhf.js +1 -0
  215. package/standalone/.next/static/chunks/{16tfdsma_h0r5.js → 0a82bgw37ev__.js} +1 -1
  216. package/standalone/.next/static/chunks/0cw4z7_m01m5f.js +31 -0
  217. package/standalone/.next/static/chunks/0emxr8tr7kji0.js +33 -0
  218. package/standalone/.next/static/chunks/0h8zu6aywqh1-.js +27 -0
  219. package/standalone/.next/static/chunks/0ng892ycfzv2q.js +1 -0
  220. package/standalone/.next/static/chunks/0tgtji0dbbefa.js +107 -0
  221. package/standalone/.next/static/chunks/15_8kla24ff9f.js +1 -0
  222. package/standalone/.next/static/chunks/16-l4kp9o217d.js +1 -0
  223. package/standalone/.next/static/chunks/1c7ci5ai5qyfo.js +1 -0
  224. package/standalone/.next/static/chunks/1egccqmgk3kbi.js +1 -0
  225. package/standalone/.next/static/chunks/1gwvywh0e6i17.js +3 -0
  226. package/standalone/.next/static/chunks/1hehq94hslvbl.js +7 -0
  227. package/standalone/.next/static/chunks/1k5cw41bd4e5r.js +51 -0
  228. package/standalone/.next/static/chunks/{2rjf8o4g23no8.js → 1mprxk0uebv70.js} +1 -1
  229. package/standalone/.next/static/chunks/1rus13s58mkxy.js +1 -0
  230. package/standalone/.next/static/chunks/{2fzxwi39odugq.js → 1rwqeg_l_plzt.js} +1 -1
  231. package/standalone/.next/static/chunks/1u_jwc-bo10k3.js +1 -0
  232. package/standalone/.next/static/chunks/1ut0xkaqsykm4.js +7 -0
  233. package/standalone/.next/static/chunks/1w_zvfx_jdyv_.js +29 -0
  234. package/standalone/.next/static/chunks/2-wrd12dmwbo-.js +1 -0
  235. package/standalone/.next/static/chunks/23kut2_l2y2-w.js +9 -0
  236. package/standalone/.next/static/chunks/{1nnp0crt0mi_-.js → 23xyv764-kx8z.js} +12 -12
  237. package/standalone/.next/static/chunks/{1wihkuyju-wa-.js → 25haryfoj4x3h.js} +1 -1
  238. package/standalone/.next/static/chunks/{0fr0zp4cwlyrr.js → 28ljy-uz6n_g9.js} +2 -2
  239. package/standalone/.next/static/chunks/29zl8lgsa28tb.js +1 -0
  240. package/standalone/.next/static/chunks/{4013cp3x6bvuw.js → 2__bi79el56lb.js} +5 -5
  241. package/standalone/.next/static/chunks/2aq80hyo4l8a2.js +7 -0
  242. package/standalone/.next/static/chunks/{24a_ux27e8jj4.js → 2l_wayk-ioguc.js} +1 -1
  243. package/standalone/.next/static/chunks/2swvzbwm_dr9y.js +1 -0
  244. package/standalone/.next/static/chunks/{0m26h4h36cb_0.js → 3120xcqaqci82.js} +1 -1
  245. package/standalone/.next/static/chunks/{3-u7pvogc5_bx.js → 315cis1es_5t3.js} +12 -12
  246. package/standalone/.next/static/chunks/321feys_9vp2v.js +33 -0
  247. package/standalone/.next/static/chunks/{0d-e51sawr2y8.js → 34oyci46fsc5w.js} +1 -1
  248. package/standalone/.next/static/chunks/37mczlawlcx5l.js +1 -0
  249. package/standalone/.next/static/chunks/{1tcqtaedz7922.js → 3d4ijy7zglgv5.js} +1 -1
  250. package/standalone/.next/static/chunks/3ir4b8po439x7.js +40 -0
  251. package/standalone/.next/static/chunks/3p7wbgo7qd6_m.css +1 -0
  252. package/standalone/.next/static/chunks/3q0q6_ntq8aa5.js +51 -0
  253. package/standalone/.next/static/chunks/3r-6igcofcwxj.js +107 -0
  254. package/standalone/.next/static/chunks/{0m--47yk9j-ec.js → 3tycetq7o8g3h.js} +1 -1
  255. package/standalone/.next/static/chunks/3vg6y29m047x9.js +31 -0
  256. package/standalone/.next/static/chunks/{0biu8z1f8c42u.js → 40ovzayigkz_-.js} +1 -1
  257. package/standalone/.next/static/chunks/41wq-96yyl0uw.js +1 -0
  258. package/standalone/.next/static/chunks/44xu63hsh11xp.js +1 -0
  259. package/standalone/.next/static/chunks/{turbopack-1rw7om86c18dg.js → turbopack-1v9ogj_5hv56l.js} +1 -1
  260. package/standalone/src/services/builds/builds.service.test.ts +55 -0
  261. package/standalone/src/services/builds/builds.service.ts +399 -0
  262. package/standalone/.next/server/chunks/[root-of-the-server]__1oahp4o._.js +0 -122
  263. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__0361lgt._.js +0 -33
  264. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__06f05jg._.js +0 -3
  265. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ay4_3d._.js +0 -37
  266. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__0dm8osz._.js +0 -3
  267. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__1349-us._.js +0 -3
  268. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__1xv798-._.js +0 -3
  269. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__1z955gh._.js +0 -3
  270. package/standalone/.next/server/chunks/ssr/_0bvpmhm._.js +0 -101
  271. package/standalone/.next/server/chunks/ssr/_0eb36qa._.js +0 -3
  272. package/standalone/.next/server/chunks/ssr/_0ndnmkz._.js +0 -3
  273. package/standalone/.next/server/chunks/ssr/_0nm6upn._.js +0 -3
  274. package/standalone/.next/server/chunks/ssr/_0pe56xv._.js +0 -3
  275. package/standalone/.next/server/chunks/ssr/_0quhjav._.js +0 -3
  276. package/standalone/.next/server/chunks/ssr/_0w05v7m._.js +0 -3
  277. package/standalone/.next/server/chunks/ssr/_0xozjkz._.js +0 -3
  278. package/standalone/.next/server/chunks/ssr/_1-1mnp6._.js +0 -3
  279. package/standalone/.next/server/chunks/ssr/_1-7r8vu._.js +0 -3
  280. package/standalone/.next/server/chunks/ssr/_1-grolz._.js +0 -3
  281. package/standalone/.next/server/chunks/ssr/_10evhql._.js +0 -3
  282. package/standalone/.next/server/chunks/ssr/_142x9wn._.js +0 -22
  283. package/standalone/.next/server/chunks/ssr/_1_ta7g1._.js +0 -3
  284. package/standalone/.next/server/chunks/ssr/_1ey5mmy._.js +0 -3
  285. package/standalone/.next/server/chunks/ssr/_1fdyu2w._.js +0 -3
  286. package/standalone/.next/server/chunks/ssr/_1g3i459._.js +0 -15
  287. package/standalone/.next/server/chunks/ssr/_1g_aflc._.js +0 -3
  288. package/standalone/.next/server/chunks/ssr/_1h3p6oi._.js +0 -3
  289. package/standalone/.next/server/chunks/ssr/_1lcwubl._.js +0 -3
  290. package/standalone/.next/server/chunks/ssr/_1lseili._.js +0 -3
  291. package/standalone/.next/server/chunks/ssr/_1za3z6k._.js +0 -101
  292. package/standalone/.next/server/chunks/ssr/_20ufqtr._.js +0 -3
  293. package/standalone/.next/static/chunks/0a3s519wuzjet.js +0 -1
  294. package/standalone/.next/static/chunks/0newuocvg03xy.js +0 -3
  295. package/standalone/.next/static/chunks/0rlomhlt6030e.js +0 -1
  296. package/standalone/.next/static/chunks/1802j8gq2g47d.js +0 -7
  297. package/standalone/.next/static/chunks/1_tnhhn4f122y.js +0 -9
  298. package/standalone/.next/static/chunks/1eny65xy2ho48.js +0 -1
  299. package/standalone/.next/static/chunks/1joeb4m-mmn69.js +0 -7
  300. package/standalone/.next/static/chunks/1l4bkigul15i3.js +0 -25
  301. package/standalone/.next/static/chunks/1qd6cse_d9ae1.js +0 -99
  302. package/standalone/.next/static/chunks/2-mxmazwsh-wz.js +0 -1
  303. package/standalone/.next/static/chunks/24sd_kmnetibb.js +0 -1
  304. package/standalone/.next/static/chunks/27k7_zc-iuppd.js +0 -1
  305. package/standalone/.next/static/chunks/2baaj4mpr6i-i.js +0 -1
  306. package/standalone/.next/static/chunks/2cj2ndz_e0hbz.js +0 -1
  307. package/standalone/.next/static/chunks/2fzwgr2iq_783.css +0 -1
  308. package/standalone/.next/static/chunks/2hv6pkoloju0g.js +0 -33
  309. package/standalone/.next/static/chunks/2jbygfc0lzu0t.js +0 -55
  310. package/standalone/.next/static/chunks/2n7u72nxziv_5.js +0 -7
  311. package/standalone/.next/static/chunks/2sqprazdqp7f7.js +0 -1
  312. package/standalone/.next/static/chunks/2x8qovg070057.js +0 -1
  313. package/standalone/.next/static/chunks/3-zh9b0tcttiw.js +0 -33
  314. package/standalone/.next/static/chunks/31wyih3wwkeid.js +0 -1
  315. package/standalone/.next/static/chunks/33y_b6dqfx3tk.js +0 -1
  316. package/standalone/.next/static/chunks/3h1pxh5fd97ym.js +0 -27
  317. package/standalone/.next/static/chunks/3jbfibit05k5o.js +0 -29
  318. package/standalone/.next/static/chunks/3jd8_7lna-j_x.js +0 -40
  319. package/standalone/.next/static/chunks/3jv2gnnn4vx-j.js +0 -43
  320. package/standalone/.next/static/chunks/3k0oakdayt9yt.js +0 -40
  321. package/standalone/.next/static/chunks/3pgngh8lg3be3.js +0 -99
  322. package/standalone/.next/static/chunks/43gw6_6hbw18w.js +0 -51
  323. /package/standalone/.next/static/{8uBWJ8MOV-OEPe88M3PhU → ePu377E66yy0icQx3ykQJ}/_buildManifest.js +0 -0
  324. /package/standalone/.next/static/{8uBWJ8MOV-OEPe88M3PhU → ePu377E66yy0icQx3ykQJ}/_clientMiddlewareManifest.js +0 -0
  325. /package/standalone/.next/static/{8uBWJ8MOV-OEPe88M3PhU → ePu377E66yy0icQx3ykQJ}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- module.exports=[345962,a=>{"use strict";var b=a.i(187924),c=a.i(979762),d=a.i(219107),e=a.i(787037);let f=(0,a.i(164831).default)("arrow-up-to-line",[["path",{d:"M5 3h14",key:"7usisc"}],["path",{d:"m18 13-6-6-6 6",key:"1kf1n9"}],["path",{d:"M12 7v14",key:"1akyts"}]]);var g=a.i(752562),h=a.i(585650),i=a.i(536670),j=a.i(19895),k=a.i(980180),l=a.i(32886),m=a.i(415925),n=a.i(572131),o=a.i(844873),p=a.i(124348),q=a.i(786304),r=a.i(699570),s=a.i(591119),t=a.i(814574),u=a.i(46524),v=a.i(866718),w=a.i(870430),x=a.i(580701),y=a.i(668684),z=a.i(555027),A=a.i(873555),B=a.i(460280),C=a.i(974135),D=a.i(657068);let E=`
1
+ module.exports=[345962,a=>{"use strict";var b=a.i(187924),c=a.i(979762),d=a.i(219107),e=a.i(787037),f=a.i(164831);let g=(0,f.default)("arrow-up-to-line",[["path",{d:"M5 3h14",key:"7usisc"}],["path",{d:"m18 13-6-6-6 6",key:"1kf1n9"}],["path",{d:"M12 7v14",key:"1akyts"}]]);var h=a.i(752562),i=a.i(585650),j=a.i(536670);let k=(0,f.default)("file-braces",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]]),l=(0,f.default)("chart-no-axes-column",[["path",{d:"M5 21v-6",key:"1hz6c0"}],["path",{d:"M12 21V3",key:"1lcnhd"}],["path",{d:"M19 21V9",key:"unv183"}]]);var m=a.i(589027),n=a.i(141146),o=a.i(19895),p=a.i(980180),q=a.i(32886),r=a.i(415925),s=a.i(572131),t=a.i(844873),u=a.i(124348),v=a.i(786304),w=a.i(699570),x=a.i(591119),y=a.i(814574),z=a.i(46524),A=a.i(866718),B=a.i(870430),C=a.i(580701),D=a.i(668684),E=a.i(875083),F=a.i(206015),G=a.i(555027),H=a.i(873555),I=a.i(460280),J=a.i(710145),K=a.i(974135),L=a.i(657068);let M=`
2
2
  id requestId jobId status action destinationType destination snapshot commandSummary artifactDirectory errorCode error outOfDate
3
3
  createdAt startedAt finishedAt durationMs updatedAt
4
4
  configuration {
@@ -6,16 +6,22 @@ module.exports=[345962,a=>{"use strict";var b=a.i(187924),c=a.i(979762),d=a.i(21
6
6
  source { id kind relativePath }
7
7
  }
8
8
  artifacts { id kind relativePath sizeBytes checksum metadata createdAt }
9
+ reports {
10
+ id kind source status summary data error createdAt updatedAt finishedAt
11
+ artifact { id kind relativePath sizeBytes checksum metadata createdAt }
12
+ }
9
13
  scriptExecutions { id phase position nameSnapshot status exitCode durationMs causedBuildFailure outputRelativePath error }
10
14
  deployments { id batchId destination status commandSummary outputRelativePath error createdAt startedAt finishedAt }
11
15
  exports { id status settings commandSummary outputRelativePath error createdAt startedAt finishedAt }
12
- `,F="id scope scopeId sequence phase level stream message createdAt";function G(a){return a.toLocaleLowerCase().split("_").filter(Boolean).map(a=>`${a.charAt(0).toLocaleUpperCase()}${a.slice(1)}`).join(" ")}function H({label:a,value:c,mono:d=!1}){return(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("dd",{className:d?"mt-0.5 break-all font-mono text-xs":"mt-0.5",children:c})]})}function I({buildId:a,open:c,onOpenChange:d,onSaved:e}){let f=(0,m.useTranslations)("builds"),[g,h]=(0,n.useState)("DEBUGGING"),[i,j]=(0,n.useState)("AUTOMATIC"),[k,l]=(0,n.useState)(""),[o,q]=(0,n.useState)(!1),[s,u]=(0,n.useState)(null),z=async()=>{q(!0);try{await (0,B.controlPlaneRequest)(`mutation ExportArchive($input: ExportBuildArchiveInput!) {
16
+ `,N="id scope scopeId sequence phase level stream message createdAt";function O(a){return a.toLocaleLowerCase().split("_").filter(Boolean).map(a=>`${a.charAt(0).toLocaleUpperCase()}${a.slice(1)}`).join(" ")}let P=["packageResolution","disablePackageRepositoryCache","signingStyle","developmentTeam","codeSignIdentity","provisioningProfileSpecifier","productBundleIdentifier","allowProvisioningUpdates","allowProvisioningDeviceRegistration","testPlan","codeCoverage","parseTestResults","parallelTesting","parallelTestingWorkers","onlyTesting","skipTesting","buildSettingOverrides","priorBuildForTestingId","priorTestProductsPath","priorXctestrunPath"],Q={packageResolution:"DEFAULT",disablePackageRepositoryCache:!1,signingStyle:"PROJECT_DEFAULT",developmentTeam:null,codeSignIdentity:null,provisioningProfileSpecifier:null,productBundleIdentifier:null,allowProvisioningUpdates:!1,allowProvisioningDeviceRegistration:!1,testPlan:null,codeCoverage:!1,parseTestResults:!0,parallelTesting:null,parallelTestingWorkers:null,onlyTesting:[],skipTesting:[],buildSettingOverrides:{},priorBuildForTestingId:null,priorTestProductsPath:null,priorXctestrunPath:null};function R({settings:a}){let c=(0,r.useTranslations)("builds"),d={packageResolution:c("packageResolution"),disablePackageRepositoryCache:c("disablePackageRepositoryCache"),signingStyle:c("signingStyle"),developmentTeam:c("developmentTeam"),codeSignIdentity:c("codeSignIdentity"),provisioningProfileSpecifier:c("provisioningProfileSpecifier"),productBundleIdentifier:c("productBundleIdentifier"),allowProvisioningUpdates:c("allowProvisioningUpdates"),allowProvisioningDeviceRegistration:c("allowProvisioningDeviceRegistration"),testPlan:c("testPlan"),codeCoverage:c("codeCoverage"),parseTestResults:c("parseTestResults"),parallelTesting:c("parallelTesting"),parallelTestingWorkers:c("parallelTestingWorkers"),onlyTesting:c("onlyTesting"),skipTesting:c("skipTesting"),buildSettingOverrides:c("buildSettingOverrides"),priorBuildForTestingId:c("priorBuildForTesting"),priorTestProductsPath:c("priorTestProductsPath"),priorXctestrunPath:c("priorXctestrunPath")},e=new Set(P),f=a?[...P.filter(b=>Object.hasOwn(a,b)),...Object.keys(a).filter(a=>!e.has(a)).sort()].filter(b=>{var c;return c=a[b],Object.hasOwn(Q,b)?JSON.stringify(c)!==JSON.stringify(Q[b]):null!=c&&""!==c&&!1!==c&&(Array.isArray(c)?c.length>0:"object"!=typeof c||Object.keys(c).length>0)}):[];return a&&f.length?(0,b.jsxs)(x.Card,{children:[(0,b.jsx)(x.CardHeader,{children:(0,b.jsx)(x.CardTitle,{children:c("advancedSettings")})}),(0,b.jsx)(x.CardContent,{children:(0,b.jsx)("dl",{className:"space-y-3 text-sm",children:f.map(c=>(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{className:"text-xs text-muted-foreground",children:d[c]??O(c.replace(/([a-z0-9])([A-Z])/g,"$1_$2").replaceAll("-","_"))}),(0,b.jsx)("dd",{className:"mt-0.5 min-w-0",children:(0,b.jsx)(S,{value:a[c]})})]},c))})})]}):null}function S({value:a}){let c=(0,r.useTranslations)("builds");if("boolean"==typeof a)return(0,b.jsx)(v.Badge,{variant:a?"default":"secondary",children:c(a?"settingsEnabled":"settingsDisabled")});if(null==a||""===a)return(0,b.jsx)(b.Fragment,{children:"—"});if(Array.isArray(a))return a.length?(0,b.jsx)("span",{className:"break-words font-mono text-xs",children:a.map(String).join(", ")}):(0,b.jsx)(b.Fragment,{children:"—"});if("object"==typeof a){let c=JSON.stringify(a);return c&&"{}"!==c?(0,b.jsx)("span",{className:"break-all font-mono text-xs",children:c}):(0,b.jsx)(b.Fragment,{children:"—"})}return"string"==typeof a&&/^[A-Z][A-Z0-9_]*$/.test(a)?(0,b.jsx)(b.Fragment,{children:O(a)}):(0,b.jsx)("span",{className:"break-words font-mono text-xs",children:String(a)})}function T(a){return"string"==typeof a&&a.trim()?a:null}function U(a,b){return"ALL"===b||String(a.result??"unknown").toLocaleUpperCase()===b}function V({report:a}){let c=(0,r.useTranslations)("builds"),[d,e]=(0,s.useState)("ALL"),f=Array.isArray(a.data.tests)?a.data.tests:[],g=Array.isArray(a.data.devices)?a.data.devices:[],h=b=>"number"==typeof a.summary[b]?Number(a.summary[b]):0,i=(function(a){let b=new Map;for(let c of a){let a=T(c.bundle),d=T(c.suite),e=T(c.plan),f=T(c.configuration),g=d??a,h=JSON.stringify([e,f,a,g]),i=b.get(h)??{key:h,name:g,bundle:a,plan:e,configuration:f,tests:[]};i.tests.push(c),b.set(h,i)}return[...b.values()].sort((a,b)=>(a.name??"").localeCompare(b.name??"",void 0,{numeric:!0,sensitivity:"base"}))})(f).filter(a=>a.tests.some(a=>U(a,d)));return(0,b.jsxs)(x.Card,{children:[(0,b.jsx)(x.CardHeader,{children:(0,b.jsx)(x.CardTitle,{children:c("testResults")})}),(0,b.jsx)(x.CardContent,{className:"space-y-4",children:"FAILED"===a.status?(0,b.jsx)(u.Alert,{variant:"destructive",children:(0,b.jsx)(u.AlertDescription,{children:a.error??c("testResultsFailed")})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(v.Badge,{variant:"outline",children:c("testTotal",{count:h("total")})}),(0,b.jsx)(v.Badge,{className:"bg-emerald-600 text-white dark:bg-emerald-700",children:c("testPassed",{count:h("passed")})}),(0,b.jsx)(v.Badge,{variant:h("failed")?"destructive":"outline",children:c("testFailed",{count:h("failed")})}),(0,b.jsx)(v.Badge,{className:"border-amber-500/40 bg-amber-500/10 text-amber-700 dark:text-amber-300",variant:"outline",children:c("testSkipped",{count:h("skipped")})}),g.map((a,c)=>(0,b.jsxs)(v.Badge,{variant:"outline",children:[String(a.deviceName??a.modelName??"Device")," ·"," ",String(a.osVersion??"—")]},c))]}),(0,b.jsx)("div",{className:"overflow-x-auto pb-1",children:(0,b.jsx)(E.Tabs,{onValueChange:a=>e(a),value:d,children:(0,b.jsxs)(E.TabsList,{"aria-label":c("testResultFilters"),children:[(0,b.jsx)(E.TabsTrigger,{value:"ALL",children:c("testFilterAll",{count:f.length})}),(0,b.jsx)(E.TabsTrigger,{value:"PASSED",children:c("testFilterPassed",{count:h("passed")})}),(0,b.jsx)(E.TabsTrigger,{value:"FAILED",children:c("testFilterFailed",{count:h("failed")})}),(0,b.jsx)(E.TabsTrigger,{value:"SKIPPED",children:c("testFilterSkipped",{count:h("skipped")})})]})})}),(0,b.jsx)("div",{className:"divide-y rounded-md border",children:i.map(a=>(0,b.jsx)(W,{filter:d,group:a},a.key))})]})})]})}function W({filter:a,group:c}){let d=(0,r.useTranslations)("builds"),e=(0,q.useLocale)(),[f,g]=(0,s.useState)(!1),h=c.name??d("testsWithoutSuite"),i=c.tests.filter(a=>"Passed"===a.result).length,j=c.tests.length?i/c.tests.length:0,k=new Intl.NumberFormat(e,{style:"percent",maximumFractionDigits:1}).format(j),l=c.tests.filter(b=>U(b,a)),o=new Map;for(let a of l){let b=function(a){let b=T(a.file);if(b)return b;let c=T(a.suite);return c||(T(a.identifier)?.split("/")[0]??null)}(a)??d("testsWithoutFile");o.set(b,[...o.get(b)??[],a])}let p=[c.bundle,c.configuration,c.plan].filter(Boolean).join(" · ");return(0,b.jsxs)("div",{children:[(0,b.jsxs)("button",{"aria-expanded":f,"aria-label":d(f?"collapseTestSuite":"expandTestSuite",{suite:h}),className:"flex min-h-8 w-full items-center gap-2 px-2 py-1.5 text-left hover:bg-muted/40",onClick:()=>g(a=>!a),type:"button",children:[f?(0,b.jsx)(m.ChevronDown,{className:"size-3.5 shrink-0"}):(0,b.jsx)(n.ChevronRight,{className:"size-3.5 shrink-0"}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-xs",children:h}),p&&(0,b.jsx)("span",{className:"hidden shrink-0 text-xs text-muted-foreground sm:inline",children:p}),(0,b.jsx)(v.Badge,{className:1===j?"border-emerald-500/40 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300":j>=.5?"border-amber-500/40 bg-amber-500/10 text-amber-700 dark:text-amber-300":"",variant:j<.5?"destructive":"outline",children:d("testSuitePassed",{passed:i,total:c.tests.length,percent:k})})]}),f&&(0,b.jsx)("div",{className:"border-t bg-muted/10 p-2",children:(0,b.jsx)("div",{className:"divide-y rounded-md border bg-background",children:[...o.entries()].sort(([a],[b])=>a.localeCompare(b,e,{numeric:!0,sensitivity:"base"})).map(([a,c])=>(0,b.jsx)(X,{file:a,tests:c},a))})})]})}function X({file:a,tests:c}){let d=(0,r.useTranslations)("builds"),[e,f]=(0,s.useState)(!1);return(0,b.jsxs)("div",{children:[(0,b.jsxs)("button",{"aria-expanded":e,"aria-label":d(e?"collapseTestFile":"expandTestFile",{file:a}),className:"flex min-h-8 w-full items-center gap-2 px-2 py-1.5 text-left hover:bg-muted/40",onClick:()=>f(a=>!a),type:"button",children:[e?(0,b.jsx)(m.ChevronDown,{className:"size-3.5 shrink-0"}):(0,b.jsx)(n.ChevronRight,{className:"size-3.5 shrink-0"}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-xs",title:a,children:a}),(0,b.jsx)(v.Badge,{variant:"outline",children:d("testTotal",{count:c.length})})]}),e&&(0,b.jsx)("div",{className:"border-t overflow-auto",children:(0,b.jsxs)(F.Table,{"aria-label":a,className:"min-w-[38rem] text-xs",children:[(0,b.jsx)(F.TableHeader,{children:(0,b.jsxs)(F.TableRow,{children:[(0,b.jsx)(F.TableHead,{className:"h-8 px-2",children:d("testStatus")}),(0,b.jsx)(F.TableHead,{className:"h-8 px-2",children:d("testName")}),(0,b.jsx)(F.TableHead,{className:"h-8 px-2 text-right",children:d("testDuration")})]})}),(0,b.jsx)(F.TableBody,{children:c.map((a,c)=>{let d=Array.isArray(a.details)?a.details.filter(a=>"string"==typeof a):[],e=Array.isArray(a.tags)?a.tags.filter(a=>"string"==typeof a):[],f=String(a.name??"—"),g=T(a.identifier);return(0,b.jsxs)(F.TableRow,{children:[(0,b.jsx)(F.TableCell,{className:"px-2 py-1.5",children:(0,b.jsx)(Y,{result:String(a.result??"unknown")})}),(0,b.jsxs)(F.TableCell,{className:"max-w-xl px-2 py-1.5 whitespace-normal",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)("span",{className:"font-mono font-medium",children:f}),e.map(a=>(0,b.jsx)(v.Badge,{variant:"outline",children:a},a))]}),g&&g!==f&&(0,b.jsx)("p",{className:"truncate font-mono text-muted-foreground",title:g,children:g}),d.map((a,c)=>(0,b.jsx)("p",{className:"mt-1 text-destructive",children:a},c))]}),(0,b.jsx)(F.TableCell,{className:"px-2 py-1.5 text-right tabular-nums",children:"number"==typeof a.durationSeconds?`${a.durationSeconds.toFixed(3)}s`:"—"})]},`${g??f}:${c}`)})})]})})]})}function Y({result:a}){let c=a.toLocaleLowerCase();return(0,b.jsx)(v.Badge,{className:"passed"===c?"border-emerald-500/40 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300":"skipped"===c?"border-amber-500/40 bg-amber-500/10 text-amber-700 dark:text-amber-300":"expected failure"===c?"border-violet-500/40 bg-violet-500/10 text-violet-700 dark:text-violet-300":"",variant:"failed"===c?"destructive":"outline",children:a})}function Z({label:a,value:c,mono:d=!1}){return(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("dd",{className:d?"mt-0.5 break-all font-mono text-xs":"mt-0.5",children:c})]})}function $({buildId:a,open:c,onOpenChange:d,onSaved:e}){let f=(0,r.useTranslations)("builds"),[g,h]=(0,s.useState)("DEBUGGING"),[i,j]=(0,s.useState)("AUTOMATIC"),[k,l]=(0,s.useState)(""),[m,n]=(0,s.useState)(!1),[o,p]=(0,s.useState)(null),q=async()=>{n(!0);try{await (0,I.controlPlaneRequest)(`mutation ExportArchive($input: ExportBuildArchiveInput!) {
13
17
  exportBuildArchive(input: $input) { id status }
14
- }`,{input:{buildId:a,requestId:(0,A.createClientId)(),settings:{method:g,signingStyle:i,teamId:k||null,signingCertificate:null,provisioningProfiles:{},uploadSymbols:!0,manageAppVersionAndBuildNumber:!0,testFlightInternalTestingOnly:!1}}}),await e(),d(!1)}catch(a){u(a instanceof Error?a.message:String(a))}finally{q(!1)}};return(0,b.jsx)(t.Dialog,{onOpenChange:d,open:c,children:(0,b.jsxs)(t.DialogContent,{children:[(0,b.jsxs)(t.DialogHeader,{children:[(0,b.jsx)(t.DialogTitle,{children:f("exportArchive")}),(0,b.jsx)(t.DialogDescription,{children:f("exportArchiveDescription")})]}),s&&(0,b.jsx)(p.Alert,{variant:"destructive",children:(0,b.jsx)(p.AlertDescription,{children:s})}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(w.Label,{children:f("distributionMethod")}),(0,b.jsxs)(x.Select,{onValueChange:h,value:g,children:[(0,b.jsx)(x.SelectTrigger,{children:(0,b.jsx)(x.SelectValue,{})}),(0,b.jsx)(x.SelectContent,{children:["DEBUGGING","RELEASE_TESTING","ENTERPRISE","APP_STORE_CONNECT"].map(a=>(0,b.jsx)(x.SelectItem,{value:a,children:a},a))})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(w.Label,{children:f("signingStyle")}),(0,b.jsxs)(x.Select,{onValueChange:j,value:i,children:[(0,b.jsx)(x.SelectTrigger,{children:(0,b.jsx)(x.SelectValue,{})}),(0,b.jsxs)(x.SelectContent,{children:[(0,b.jsx)(x.SelectItem,{value:"AUTOMATIC",children:f("automatic")}),(0,b.jsx)(x.SelectItem,{value:"MANUAL",children:f("manual")})]})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(w.Label,{htmlFor:"export-team-id",children:f("developmentTeam")}),(0,b.jsx)(v.Input,{id:"export-team-id",onChange:a=>l(a.target.value),value:k})]})]}),(0,b.jsxs)(t.DialogFooter,{children:[(0,b.jsx)(r.Button,{onClick:()=>d(!1),variant:"outline",children:f("cancel")}),(0,b.jsxs)(r.Button,{disabled:o,onClick:()=>void z(),children:[o&&(0,b.jsx)(y.Spinner,{})," ",f("exportArchive")]})]})]})})}a.s(["BuildDetailPage",0,function({buildId:a}){let t=(0,m.useTranslations)("builds"),v=(0,l.useLocale)(),w=(0,z.useRouter)(),[x,J]=(0,n.useState)(null),[K,L]=(0,n.useState)([]),[M,N]=(0,n.useState)(!0),[O,P]=(0,n.useState)(null),[Q,R]=(0,n.useState)(!1),[S,T]=(0,n.useState)(!1),[U,V]=(0,n.useState)(!1),[W,X]=(0,n.useState)(!1),Y=(0,n.useRef)(null),Z=(0,n.useCallback)(async()=>{try{let b=await (0,B.controlPlaneRequest)(`query BuildDetail($id: ID!) {
15
- build(id: $id) { ${E} }
16
- buildLogs(buildId: $id, first: 5000) { ${F} }
17
- }`,{id:a});J(b.build),L(b.buildLogs),P(null)}catch(a){P(a instanceof Error?a.message:String(a))}finally{N(!1)}},[a]);(0,n.useEffect)(()=>{let a=window.setTimeout(()=>void Z(),0);return()=>window.clearTimeout(a)},[Z]),(0,n.useEffect)(()=>{let b=(0,B.controlPlaneSubscriptions)().subscribe({query:"subscription BuildChanged($id: ID!) { buildChanged(id: $id) { id } }",variables:{id:a}},{next:()=>void Z(),error:()=>void 0,complete:()=>void 0}),c=(0,B.controlPlaneSubscriptions)().subscribe({query:`subscription BuildLogAdded($buildId: ID!) {
18
- buildLogAdded(buildId: $buildId) { ${F} }
19
- }`,variables:{buildId:a}},{next:a=>{let b=a.data?.buildLogAdded;b&&L(a=>a.some(a=>a.id===b.id)?a:[...a,b])},error:()=>void 0,complete:()=>void 0});return()=>{b(),c()}},[a,Z]);let $=null!==x&&(["QUEUED","PREPARING","RUNNING"].includes(x.status)||x.deployments.some(a=>["QUEUED","RUNNING"].includes(a.status))||x.exports.some(a=>["QUEUED","RUNNING"].includes(a.status)));(0,n.useEffect)(()=>{if(!$)return;let a=window.setInterval(()=>void Z(),2e3);return()=>window.clearInterval(a)},[$,Z]),(0,n.useEffect)(()=>{$&&Y.current&&(Y.current.scrollTop=Y.current.scrollHeight)},[$,K]),(0,n.useEffect)(()=>{if(!W)return;let a=window.setTimeout(()=>X(!1),2e3);return()=>window.clearTimeout(a)},[W]);let _=async()=>{R(!0);try{await (0,B.controlPlaneRequest)("mutation CancelBuild($id: ID!) { cancelBuild(id: $id) { id status } }",{id:a}),await Z()}catch(a){P(a instanceof Error?a.message:String(a))}finally{R(!1)}},aa=async()=>{R(!0),P(null);try{await (0,B.controlPlaneRequest)("mutation DeleteBuild($ids: [ID!]!) { deleteBuilds(ids: $ids) }",{ids:[a]}),w.replace("/builds")}catch(a){P(a instanceof Error?a.message:String(a)),V(!1)}finally{R(!1)}},ab=x?.artifacts.some(a=>"RUNNABLE_APP"===a.kind),ac=x?.artifacts.some(a=>"ARCHIVE"===a.kind),ad=x?.snapshot??{},ae=ad.repository,af=ad.worktree,ag=ad.configuration,ah=a=>a?new Date(a).toLocaleString(v):"—",ai=async a=>{try{await (0,A.copyText)(a),X(!0)}catch{P(t("copyFailed"))}},aj=a=>{let b=Y.current;b&&b.scrollTo({behavior:"smooth",top:"top"===a?0:b.scrollHeight})};return M?(0,b.jsxs)("p",{className:"mx-auto flex max-w-6xl items-center gap-2 text-muted-foreground",children:[(0,b.jsx)(y.Spinner,{})," ",t("loading")]}):x?(0,b.jsxs)("section",{className:"mx-auto flex w-full max-w-6xl flex-col gap-5",children:[(0,b.jsx)("div",{children:(0,b.jsx)(r.Button,{asChild:!0,className:"-ml-2",size:"sm",variant:"ghost",children:(0,b.jsxs)(z.Link,{href:"/builds",children:[(0,b.jsx)(d.ArrowLeft,{})," ",t("backToBuilds")]})})}),O&&(0,b.jsx)(p.Alert,{variant:"destructive",children:(0,b.jsx)(p.AlertDescription,{children:O})}),x.error&&(0,b.jsx)(p.Alert,{variant:"destructive",children:(0,b.jsxs)(p.AlertDescription,{children:[x.errorCode?`${x.errorCode}: `:"",x.error]})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:ae?.name??"—"}),(0,b.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-2",children:[(0,b.jsx)("h1",{className:"text-2xl font-semibold",children:ag?.name??x.id}),(0,b.jsx)(q.Badge,{variant:"FAILED"===x.status?"destructive":"SUCCEEDED"===x.status?"default":"secondary",children:t(`statuses.${x.status}`)}),(0,b.jsx)(q.Badge,{variant:"outline",children:t(`actions.${x.action}`)}),x.outOfDate&&(0,b.jsx)(q.Badge,{className:"border-amber-500/40 text-amber-700 dark:text-amber-300",variant:"outline",children:t("outOfDate")})]}),(0,b.jsxs)("p",{className:"mt-1 font-mono text-xs text-muted-foreground",children:[af?.branch??af?.folder??"—"," ·"," ",x.destination.name]}),(0,b.jsxs)("p",{className:"mt-1 font-mono text-xs text-muted-foreground",children:[t("buildId"),": ",x.id]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(C.RebuildButton,{buildId:x.id,onCompleted:a=>w.push(`/builds/${a.id}`),onError:P}),["QUEUED","PREPARING","RUNNING"].includes(x.status)&&(0,b.jsxs)(r.Button,{disabled:Q,onClick:()=>void _(),variant:"destructive",children:[Q?(0,b.jsx)(y.Spinner,{}):(0,b.jsx)(j.Square,{})," ",t("cancelBuild")]}),"SUCCEEDED"===x.status&&ab&&(0,b.jsx)(D.RunBuildControls,{buildId:x.id,destinationType:x.destinationType,onCompleted:Z,onError:P,preferredDestination:x.destination}),"SUCCEEDED"===x.status&&ac&&(0,b.jsxs)(r.Button,{onClick:()=>T(!0),variant:"outline",children:[(0,b.jsx)(c.Archive,{})," ",t("exportArchive")]}),(0,b.jsxs)(r.Button,{disabled:Q||["QUEUED","PREPARING","RUNNING"].includes(x.status),onClick:()=>V(!0),variant:"destructive",children:[(0,b.jsx)(k.Trash2,{})," ",t("deleteBuild")]})]})]}),(0,b.jsxs)("div",{className:"grid gap-5 lg:grid-cols-[minmax(0,2fr)_minmax(18rem,1fr)]",children:[(0,b.jsxs)("div",{className:"space-y-5",children:[(0,b.jsxs)(s.Card,{children:[(0,b.jsxs)(s.CardHeader,{children:[(0,b.jsx)(s.CardTitle,{children:t("logs")}),(0,b.jsxs)(s.CardAction,{className:"flex gap-1",children:[(0,b.jsx)(r.Button,{"aria-label":t("scrollLogsToTop"),onClick:()=>aj("top"),size:"icon-sm",type:"button",variant:"outline",children:(0,b.jsx)(f,{})}),(0,b.jsx)(r.Button,{"aria-label":t("scrollLogsToBottom"),onClick:()=>aj("bottom"),size:"icon-sm",type:"button",variant:"outline",children:(0,b.jsx)(e.ArrowDownToLine,{})})]})]}),(0,b.jsx)(s.CardContent,{children:(0,b.jsx)("pre",{className:"max-h-[36rem] overflow-auto rounded-lg bg-neutral-950 p-3 text-xs whitespace-pre-wrap text-neutral-100",ref:Y,children:K.length?K.map(a=>`[${a.phase}] ${a.message}`).join("\n"):t("noLogs")})})]}),(0,b.jsxs)(s.Card,{children:[(0,b.jsxs)(s.CardHeader,{children:[(0,b.jsx)(s.CardTitle,{children:t("commandSummary")}),(0,b.jsx)(s.CardAction,{children:(0,b.jsx)(r.Button,{"aria-label":W?t("commandCopied"):t("copyCommand"),onClick:()=>void ai(x.commandSummary),size:"icon-sm",type:"button",variant:"ghost",children:W?(0,b.jsx)(g.Check,{}):(0,b.jsx)(h.Copy,{})})})]}),(0,b.jsx)(s.CardContent,{children:(0,b.jsx)("pre",{className:"overflow-x-auto rounded-lg bg-muted p-3 text-xs whitespace-pre-wrap",children:x.commandSummary})})]}),(0,b.jsxs)(s.Card,{children:[(0,b.jsx)(s.CardHeader,{children:(0,b.jsx)(s.CardTitle,{children:t("scripts")})}),(0,b.jsx)(s.CardContent,{className:"space-y-2",children:x.scriptExecutions.length?x.scriptExecutions.map(a=>(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 rounded-lg border p-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("p",{className:"text-sm font-medium",children:[a.nameSnapshot," · ",a.phase]}),a.error&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:a.error})]}),(0,b.jsx)(q.Badge,{variant:"FAILED"===a.status?"destructive":"outline",children:a.status})]},a.id)):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:t("noScriptExecutions")})})]})]}),(0,b.jsxs)("div",{className:"space-y-5",children:[(0,b.jsxs)(s.Card,{children:[(0,b.jsx)(s.CardHeader,{children:(0,b.jsx)(s.CardTitle,{children:t("overview")})}),(0,b.jsx)(s.CardContent,{children:(0,b.jsxs)("dl",{className:"space-y-3 text-sm",children:[(0,b.jsx)(H,{label:t("buildId"),value:x.id,mono:!0}),(0,b.jsx)(H,{label:t("scheme"),value:ag?.scheme??"—",mono:!0}),(0,b.jsx)(H,{label:t("configuration"),value:ag?.buildConfiguration??"—",mono:!0}),(0,b.jsx)(H,{label:t("head"),value:af?.headSha??"—",mono:!0}),(0,b.jsx)(H,{label:t("startedAt"),value:ah(x.startedAt)}),(0,b.jsx)(H,{label:t("finishedAt"),value:ah(x.finishedAt)}),(0,b.jsx)(H,{label:t("artifactDirectory"),value:x.artifactDirectory,mono:!0})]})})]}),(0,b.jsxs)(s.Card,{children:[(0,b.jsx)(s.CardHeader,{children:(0,b.jsx)(s.CardTitle,{children:t("artifacts")})}),(0,b.jsx)(s.CardContent,{className:"space-y-2",children:x.artifacts.length?x.artifacts.map(a=>(0,b.jsxs)("div",{className:"rounded-lg border p-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)(q.Badge,{variant:"outline",children:G(a.kind)}),(0,b.jsx)(r.Button,{asChild:!0,size:"sm",variant:"outline",children:(0,b.jsxs)("a",{download:!0,href:`/api/builds/${encodeURIComponent(x.id)}/artifacts/${encodeURIComponent(a.id)}`,children:[(0,b.jsx)(i.Download,{})," ",t("downloadArtifact")]})})]}),(0,b.jsx)("p",{className:"mt-1 break-all font-mono text-xs text-muted-foreground",children:a.relativePath})]},a.id)):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:t("noArtifacts")})})]}),(0,b.jsxs)(s.Card,{children:[(0,b.jsx)(s.CardHeader,{children:(0,b.jsx)(s.CardTitle,{children:t("runsAndExports")})}),(0,b.jsxs)(s.CardContent,{className:"space-y-2",children:[x.deployments.map(a=>(0,b.jsxs)("div",{className:"rounded-lg border p-2",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:a.destination.name}),(0,b.jsxs)("div",{className:"flex flex-col items-end gap-1",children:[(0,b.jsx)(q.Badge,{variant:"FAILED"===a.status?"destructive":"outline",children:G(a.status)}),(0,b.jsx)("time",{className:"text-xs text-muted-foreground",children:ah(a.finishedAt??a.startedAt??a.createdAt)})]})]}),a.error&&(0,b.jsx)("p",{className:"mt-1 text-xs text-destructive",children:a.error})]},a.id)),x.exports.map(a=>(0,b.jsxs)("div",{className:"rounded-lg border p-2",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:t("archiveExport")}),(0,b.jsxs)("div",{className:"flex flex-col items-end gap-1",children:[(0,b.jsx)(q.Badge,{variant:"FAILED"===a.status?"destructive":"outline",children:G(a.status)}),(0,b.jsx)("time",{className:"text-xs text-muted-foreground",children:ah(a.finishedAt??a.startedAt??a.createdAt)})]})]}),a.outputRelativePath&&(0,b.jsx)("p",{className:"mt-1 font-mono text-xs",children:a.outputRelativePath}),a.error&&(0,b.jsx)("p",{className:"mt-1 text-xs text-destructive",children:a.error})]},a.id)),!x.deployments.length&&!x.exports.length&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:t("noRunsOrExports")})]})]})]})]}),S&&(0,b.jsx)(I,{buildId:x.id,onOpenChange:T,onSaved:Z,open:S}),(0,b.jsx)(o.ConfirmationDialog,{actionLabel:t("deleteBuild"),cancelLabel:t("cancel"),description:t("deleteBuildDescription"),onConfirm:aa,onOpenChange:V,open:U,title:t("deleteBuildTitle")})]}):(0,b.jsxs)(u.Empty,{className:"mx-auto max-w-6xl border py-12",children:[(0,b.jsxs)(u.EmptyHeader,{children:[(0,b.jsx)(u.EmptyTitle,{children:t("buildNotFound")}),(0,b.jsx)(u.EmptyDescription,{children:t("buildNotFoundDescription")})]}),(0,b.jsx)(r.Button,{asChild:!0,variant:"outline",children:(0,b.jsxs)(z.Link,{href:"/builds",children:[(0,b.jsx)(d.ArrowLeft,{})," ",t("backToBuilds")]})})]})}],345962)}];
18
+ }`,{input:{buildId:a,requestId:(0,H.createClientId)(),settings:{method:g,signingStyle:i,teamId:k||null,signingCertificate:null,provisioningProfiles:{},uploadSymbols:!0,manageAppVersionAndBuildNumber:!0,testFlightInternalTestingOnly:!1}}}),await e(),d(!1)}catch(a){p(a instanceof Error?a.message:String(a))}finally{n(!1)}};return(0,b.jsx)(y.Dialog,{onOpenChange:d,open:c,children:(0,b.jsxs)(y.DialogContent,{children:[(0,b.jsxs)(y.DialogHeader,{children:[(0,b.jsx)(y.DialogTitle,{children:f("exportArchive")}),(0,b.jsx)(y.DialogDescription,{children:f("exportArchiveDescription")})]}),o&&(0,b.jsx)(u.Alert,{variant:"destructive",children:(0,b.jsx)(u.AlertDescription,{children:o})}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(B.Label,{children:f("distributionMethod")}),(0,b.jsxs)(C.Select,{onValueChange:h,value:g,children:[(0,b.jsx)(C.SelectTrigger,{children:(0,b.jsx)(C.SelectValue,{})}),(0,b.jsx)(C.SelectContent,{children:["DEBUGGING","RELEASE_TESTING","ENTERPRISE","APP_STORE_CONNECT"].map(a=>(0,b.jsx)(C.SelectItem,{value:a,children:a},a))})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(B.Label,{children:f("signingStyle")}),(0,b.jsxs)(C.Select,{onValueChange:j,value:i,children:[(0,b.jsx)(C.SelectTrigger,{children:(0,b.jsx)(C.SelectValue,{})}),(0,b.jsxs)(C.SelectContent,{children:[(0,b.jsx)(C.SelectItem,{value:"AUTOMATIC",children:f("automatic")}),(0,b.jsx)(C.SelectItem,{value:"MANUAL",children:f("manual")})]})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(B.Label,{htmlFor:"export-team-id",children:f("developmentTeam")}),(0,b.jsx)(A.Input,{id:"export-team-id",onChange:a=>l(a.target.value),value:k})]})]}),(0,b.jsxs)(y.DialogFooter,{children:[(0,b.jsx)(w.Button,{onClick:()=>d(!1),variant:"outline",children:f("cancel")}),(0,b.jsxs)(w.Button,{disabled:m,onClick:()=>void q(),children:[m&&(0,b.jsx)(D.Spinner,{})," ",f("exportArchive")]})]})]})})}a.s(["BuildDetailPage",0,function({buildId:a}){let f=(0,r.useTranslations)("builds"),y=(0,q.useLocale)(),A=(0,G.useRouter)(),[B,C]=(0,s.useState)(null),[E,F]=(0,s.useState)([]),[P,Q]=(0,s.useState)(!0),[S,T]=(0,s.useState)(null),[U,W]=(0,s.useState)(!1),[X,Y]=(0,s.useState)(null),[_,aa]=(0,s.useState)(!1),[ab,ac]=(0,s.useState)(!1),[ad,ae]=(0,s.useState)(!1),[af,ag]=(0,s.useState)(!0),ah=(0,s.useRef)(null),ai=(0,s.useCallback)(async()=>{try{let b=await (0,I.controlPlaneRequest)(`query BuildDetail($id: ID!) {
19
+ build(id: $id) { ${M} }
20
+ buildLogs(buildId: $id, first: 5000) { ${N} }
21
+ }`,{id:a});C(b.build),F(b.buildLogs),T(null)}catch(a){T(a instanceof Error?a.message:String(a))}finally{Q(!1)}},[a]);(0,s.useEffect)(()=>{let a=window.setTimeout(()=>void ai(),0);return()=>window.clearTimeout(a)},[ai]),(0,s.useEffect)(()=>{let b=(0,I.controlPlaneSubscriptions)().subscribe({query:"subscription BuildChanged($id: ID!) { buildChanged(id: $id) { id } }",variables:{id:a}},{next:()=>void ai(),error:()=>void 0,complete:()=>void 0}),c=(0,I.controlPlaneSubscriptions)().subscribe({query:`subscription BuildLogAdded($buildId: ID!) {
22
+ buildLogAdded(buildId: $buildId) { ${N} }
23
+ }`,variables:{buildId:a}},{next:a=>{let b=a.data?.buildLogAdded;b&&F(a=>a.some(a=>a.id===b.id)?a:[...a,b])},error:()=>void 0,complete:()=>void 0});return()=>{b(),c()}},[a,ai]);let aj=null!==B&&(["QUEUED","PREPARING","RUNNING"].includes(B.status)||B.deployments.some(a=>["QUEUED","RUNNING"].includes(a.status))||B.exports.some(a=>["QUEUED","RUNNING"].includes(a.status)));(0,s.useEffect)(()=>{if(!aj)return;let a=window.setInterval(()=>void ai(),2e3);return()=>window.clearInterval(a)},[aj,ai]),(0,s.useEffect)(()=>{aj&&ah.current&&(ah.current.scrollTop=ah.current.scrollHeight)},[aj,E]),(0,s.useEffect)(()=>{if(!ad)return;let a=window.setTimeout(()=>ae(!1),2e3);return()=>window.clearTimeout(a)},[ad]);let ak=async()=>{W(!0);try{await (0,I.controlPlaneRequest)("mutation CancelBuild($id: ID!) { cancelBuild(id: $id) { id status } }",{id:a}),await ai()}catch(a){T(a instanceof Error?a.message:String(a))}finally{W(!1)}},al=async()=>{W(!0),T(null);try{await (0,I.controlPlaneRequest)("mutation DeleteBuild($ids: [ID!]!) { deleteBuilds(ids: $ids) }",{ids:[a]}),A.replace("/builds")}catch(a){T(a instanceof Error?a.message:String(a)),ac(!1)}finally{W(!1)}},am=B?.artifacts.some(a=>"RUNNABLE_APP"===a.kind),an=B?.artifacts.some(a=>"ARCHIVE"===a.kind),ao=B?.reports?.find(a=>"TEST_RESULTS"===a.kind),ap=B?.reports?.find(a=>"CODE_COVERAGE"===a.kind),aq=B?.artifacts.find(a=>"RESULT_BUNDLE"===a.kind),ar=!!B&&["TEST","TEST_WITHOUT_BUILDING"].includes(B.action),as=B?.snapshot??{},at=as.repository,au=as.worktree,av=as.configuration,aw=aq?.metadata.coverageAvailable===!0||av?.advancedSettings?.codeCoverage===!0,ax=a=>a?new Date(a).toLocaleString(y):"—",ay=async a=>{try{await (0,H.copyText)(a),ae(!0)}catch{T(f("copyFailed"))}},az=async b=>{Y(b),T(null);try{let c="TEST_RESULTS"===b?"parseBuildTestResults":"generateBuildCoverageReport";await (0,I.controlPlaneRequest)(`mutation GenerateBuildReport($buildId: ID!, $requestId: ID!) {
24
+ ${c}(buildId: $buildId, requestId: $requestId) { id status error }
25
+ }`,{buildId:a,requestId:(0,H.createClientId)()}),await ai()}catch(a){T(a instanceof Error?a.message:String(a))}finally{Y(null)}},aA=a=>{let b=ah.current;b&&b.scrollTo({behavior:"smooth",top:"top"===a?0:b.scrollHeight})};return P?(0,b.jsxs)("p",{className:"mx-auto flex max-w-6xl items-center gap-2 text-muted-foreground",children:[(0,b.jsx)(D.Spinner,{})," ",f("loading")]}):B?(0,b.jsxs)("section",{className:"mx-auto flex min-w-0 w-full max-w-6xl flex-col gap-5",children:[(0,b.jsx)("div",{children:(0,b.jsx)(w.Button,{asChild:!0,className:"-ml-2",size:"sm",variant:"ghost",children:(0,b.jsxs)(G.Link,{href:"/builds",children:[(0,b.jsx)(d.ArrowLeft,{})," ",f("backToBuilds")]})})}),S&&(0,b.jsx)(u.Alert,{variant:"destructive",children:(0,b.jsx)(u.AlertDescription,{children:S})}),B.error&&(0,b.jsx)(u.Alert,{variant:"destructive",children:(0,b.jsxs)(u.AlertDescription,{children:[B.errorCode?`${B.errorCode}: `:"",B.error]})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:at?.name??"—"}),(0,b.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-2",children:[(0,b.jsx)("h1",{className:"text-2xl font-semibold",children:av?.name??B.id}),(0,b.jsx)(v.Badge,{variant:(0,J.buildStatusVariant)(B.status),children:f(`statuses.${B.status}`)}),(0,b.jsx)(v.Badge,{variant:"outline",children:f(`actions.${B.action}`)}),B.outOfDate&&(0,b.jsx)(v.Badge,{className:"border-amber-500/40 text-amber-700 dark:text-amber-300",variant:"outline",children:f("outOfDate")})]}),(0,b.jsxs)("p",{className:"mt-1 font-mono text-xs text-muted-foreground",children:[au?.branch??au?.folder??"—"," ·"," ",B.destination.name]}),(0,b.jsxs)("p",{className:"mt-1 font-mono text-xs text-muted-foreground",children:[f("buildId"),": ",B.id]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(K.RebuildButton,{buildId:B.id,onCompleted:a=>A.push(`/builds/${a.id}`),onError:T}),["QUEUED","PREPARING","RUNNING"].includes(B.status)&&(0,b.jsxs)(w.Button,{disabled:U,onClick:()=>void ak(),variant:"destructive",children:[U?(0,b.jsx)(D.Spinner,{}):(0,b.jsx)(o.Square,{})," ",f("cancelBuild")]}),"SUCCEEDED"===B.status&&am&&(0,b.jsx)(L.RunBuildControls,{buildId:B.id,destinationType:B.destinationType,onCompleted:ai,onError:T,preferredDestination:B.destination}),"SUCCEEDED"===B.status&&an&&(0,b.jsxs)(w.Button,{onClick:()=>aa(!0),variant:"outline",children:[(0,b.jsx)(c.Archive,{})," ",f("exportArchive")]}),!aj&&ar&&aq&&ao?.status!=="READY"&&(0,b.jsxs)(w.Button,{disabled:null!==X,onClick:()=>void az("TEST_RESULTS"),variant:"outline",children:["TEST_RESULTS"===X?(0,b.jsx)(D.Spinner,{}):(0,b.jsx)(k,{}),ao?.status==="FAILED"?f("retryParseTestResults"):f("parseTestResultsAction")]}),!aj&&aq&&aw&&ap?.status!=="READY"&&(0,b.jsxs)(w.Button,{disabled:null!==X,onClick:()=>void az("CODE_COVERAGE"),variant:"outline",children:["CODE_COVERAGE"===X?(0,b.jsx)(D.Spinner,{}):(0,b.jsx)(l,{}),ap?.status==="FAILED"?f("retryCoverageReport"):f("generateCoverageReport")]}),ap?.status==="READY"&&(0,b.jsx)(w.Button,{asChild:!0,variant:"outline",children:(0,b.jsxs)(G.Link,{href:`/builds/${B.id}/coverage`,children:[(0,b.jsx)(l,{})," ",f("viewCoverageReport")]})}),(0,b.jsxs)(w.Button,{disabled:U||["QUEUED","PREPARING","RUNNING"].includes(B.status),onClick:()=>ac(!0),variant:"destructive",children:[(0,b.jsx)(p.Trash2,{})," ",f("deleteBuild")]})]})]}),ao&&(0,b.jsx)(V,{report:ao}),(0,b.jsxs)("div",{className:"grid min-w-0 gap-5 lg:grid-cols-[minmax(0,2fr)_minmax(18rem,1fr)]",children:[(0,b.jsxs)("div",{className:"min-w-0 space-y-5",children:[(0,b.jsxs)(x.Card,{className:"gap-0 py-0",children:[(0,b.jsx)(x.CardHeader,{className:af?"border-b bg-muted/40 py-3":"bg-muted/40 py-3",children:(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)(w.Button,{"aria-expanded":af,className:"-m-2 h-auto min-w-0 flex-1 justify-start p-2 text-left aria-expanded:bg-transparent aria-expanded:hover:bg-muted dark:aria-expanded:bg-transparent dark:aria-expanded:hover:bg-muted/50",onClick:()=>ag(a=>!a),type:"button",variant:"ghost",children:(0,b.jsx)("span",{className:"truncate font-medium",children:f("logs")})}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[af&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(w.Button,{"aria-label":f("scrollLogsToTop"),onClick:()=>aA("top"),size:"icon-xs",type:"button",variant:"outline",children:(0,b.jsx)(g,{})}),(0,b.jsx)(w.Button,{"aria-label":f("scrollLogsToBottom"),onClick:()=>aA("bottom"),size:"icon-xs",type:"button",variant:"outline",children:(0,b.jsx)(e.ArrowDownToLine,{})})]}),(0,b.jsx)(w.Button,{"aria-expanded":af,"aria-label":f(af?"collapseLogs":"expandLogs"),onClick:()=>ag(a=>!a),size:"icon-sm",title:f(af?"collapseLogs":"expandLogs"),type:"button",variant:"ghost",children:af?(0,b.jsx)(m.ChevronDown,{className:"size-5"}):(0,b.jsx)(n.ChevronRight,{className:"size-5"})})]})]})}),af&&(0,b.jsx)(x.CardContent,{className:"py-4",children:(0,b.jsx)("pre",{className:"max-h-[calc(100svh-8rem)] w-full min-w-0 max-w-full overflow-auto rounded-lg bg-neutral-950 p-3 text-xs whitespace-pre-wrap text-neutral-100 [overflow-wrap:anywhere] sm:max-h-[48rem]",ref:ah,children:E.length?E.map(a=>`[${a.phase}] ${a.message}`).join("\n"):f("noLogs")})})]}),(0,b.jsxs)(x.Card,{children:[(0,b.jsxs)(x.CardHeader,{children:[(0,b.jsx)(x.CardTitle,{children:f("commandSummary")}),(0,b.jsx)(x.CardAction,{children:(0,b.jsx)(w.Button,{"aria-label":ad?f("commandCopied"):f("copyCommand"),onClick:()=>void ay(B.commandSummary),size:"icon-sm",type:"button",variant:"ghost",children:ad?(0,b.jsx)(h.Check,{}):(0,b.jsx)(i.Copy,{})})})]}),(0,b.jsx)(x.CardContent,{children:(0,b.jsx)("pre",{className:"w-full min-w-0 max-w-full overflow-x-auto rounded-lg bg-muted p-3 text-xs whitespace-pre-wrap [overflow-wrap:anywhere]",children:B.commandSummary})})]}),(0,b.jsxs)(x.Card,{children:[(0,b.jsx)(x.CardHeader,{children:(0,b.jsx)(x.CardTitle,{children:f("scripts")})}),(0,b.jsx)(x.CardContent,{className:"space-y-2",children:B.scriptExecutions.length?B.scriptExecutions.map(a=>(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 rounded-lg border p-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("p",{className:"text-sm font-medium",children:[a.nameSnapshot," ·"," ",O(a.phase)]}),a.error&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:a.error})]}),(0,b.jsx)(v.Badge,{variant:"FAILED"===a.status?"destructive":"outline",children:O(a.status)})]},a.id)):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:f("noScriptExecutions")})})]})]}),(0,b.jsxs)("div",{className:"min-w-0 space-y-5",children:[(0,b.jsxs)(x.Card,{children:[(0,b.jsx)(x.CardHeader,{children:(0,b.jsx)(x.CardTitle,{children:f("overview")})}),(0,b.jsx)(x.CardContent,{children:(0,b.jsxs)("dl",{className:"space-y-3 text-sm",children:[(0,b.jsx)(Z,{label:f("buildId"),value:B.id,mono:!0}),(0,b.jsx)(Z,{label:f("scheme"),value:av?.scheme??"—",mono:!0}),(0,b.jsx)(Z,{label:f("configuration"),value:av?.buildConfiguration??"—",mono:!0}),(0,b.jsx)(Z,{label:f("head"),value:au?.headSha??"—",mono:!0}),(0,b.jsx)(Z,{label:f("startedAt"),value:ax(B.startedAt)}),(0,b.jsx)(Z,{label:f("finishedAt"),value:ax(B.finishedAt)}),(0,b.jsx)(Z,{label:f("artifactDirectory"),value:B.artifactDirectory,mono:!0})]})})]}),(0,b.jsx)(R,{settings:av?.advancedSettings}),(0,b.jsxs)(x.Card,{children:[(0,b.jsx)(x.CardHeader,{children:(0,b.jsx)(x.CardTitle,{children:f("artifacts")})}),(0,b.jsx)(x.CardContent,{className:"space-y-2",children:B.artifacts.length?B.artifacts.map(a=>(0,b.jsxs)("div",{className:"rounded-lg border p-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)(v.Badge,{variant:"outline",children:O(a.kind)}),(0,b.jsx)(w.Button,{asChild:!0,size:"sm",variant:"outline",children:(0,b.jsxs)("a",{download:!0,href:`/api/builds/${encodeURIComponent(B.id)}/artifacts/${encodeURIComponent(a.id)}`,children:[(0,b.jsx)(j.Download,{})," ",f("downloadArtifact")]})})]}),(0,b.jsx)("p",{className:"mt-1 break-all font-mono text-xs text-muted-foreground",children:a.relativePath})]},a.id)):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:f("noArtifacts")})})]}),(0,b.jsxs)(x.Card,{children:[(0,b.jsx)(x.CardHeader,{children:(0,b.jsx)(x.CardTitle,{children:f("runsAndExports")})}),(0,b.jsxs)(x.CardContent,{className:"space-y-2",children:[B.deployments.map(a=>(0,b.jsxs)("div",{className:"rounded-lg border p-2",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:a.destination.name}),(0,b.jsxs)("div",{className:"flex flex-col items-end gap-1",children:[(0,b.jsx)(v.Badge,{variant:"FAILED"===a.status?"destructive":"outline",children:O(a.status)}),(0,b.jsx)("time",{className:"text-xs text-muted-foreground",children:ax(a.finishedAt??a.startedAt??a.createdAt)})]})]}),a.error&&(0,b.jsx)("p",{className:"mt-1 text-xs text-destructive",children:a.error})]},a.id)),B.exports.map(a=>(0,b.jsxs)("div",{className:"rounded-lg border p-2",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-sm font-medium",children:f("archiveExport")}),(0,b.jsxs)("div",{className:"flex flex-col items-end gap-1",children:[(0,b.jsx)(v.Badge,{variant:"FAILED"===a.status?"destructive":"outline",children:O(a.status)}),(0,b.jsx)("time",{className:"text-xs text-muted-foreground",children:ax(a.finishedAt??a.startedAt??a.createdAt)})]})]}),a.outputRelativePath&&(0,b.jsx)("p",{className:"mt-1 font-mono text-xs",children:a.outputRelativePath}),a.error&&(0,b.jsx)("p",{className:"mt-1 text-xs text-destructive",children:a.error})]},a.id)),!B.deployments.length&&!B.exports.length&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:f("noRunsOrExports")})]})]})]})]}),_&&(0,b.jsx)($,{buildId:B.id,onOpenChange:aa,onSaved:ai,open:_}),(0,b.jsx)(t.ConfirmationDialog,{actionLabel:f("deleteBuild"),cancelLabel:f("cancel"),description:f("deleteBuildDescription"),onConfirm:al,onOpenChange:ac,open:ab,title:f("deleteBuildTitle")})]}):(0,b.jsxs)(z.Empty,{className:"mx-auto max-w-6xl border py-12",children:[(0,b.jsxs)(z.EmptyHeader,{children:[(0,b.jsx)(z.EmptyTitle,{children:f("buildNotFound")}),(0,b.jsx)(z.EmptyDescription,{children:f("buildNotFoundDescription")})]}),(0,b.jsx)(w.Button,{asChild:!0,variant:"outline",children:(0,b.jsxs)(G.Link,{href:"/builds",children:[(0,b.jsx)(d.ArrowLeft,{})," ",f("backToBuilds")]})})]})}],345962)}];
20
26
 
21
27
  //# sourceMappingURL=src_components_builds_build-detail-page_tsx_0q1lvps._.js.map
@@ -0,0 +1,11 @@
1
+ module.exports=[208309,a=>{"use strict";var b=a.i(187924),c=a.i(347929),d=a.i(219107),e=a.i(327598);let f=(0,a.i(164831).default)("arrow-up-down",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]);var g=a.i(589027),h=a.i(141146),i=a.i(233540),j=a.i(32886),k=a.i(415925),l=a.i(572131),m=a.i(124348),n=a.i(786304),o=a.i(699570),p=a.i(591119),q=a.i(46524),r=a.i(866718),s=a.i(668684),t=a.i(206015),u=a.i(555027),v=a.i(460280);function w(a){return Math.max(0,a.executableLines-a.coveredLines)}function x(a,b){let c=a.replaceAll("\\","/"),d=b?.replaceAll("\\","/").replace(/\/$/,"");return d?c===d?".":c.startsWith(`${d}/`)?c.slice(d.length+1):c:c}function y({activeSort:a,align:c="left",ariaLabel:d,label:e,onSort:f,sortKey:g}){let h=a.key===g;return(0,b.jsx)(z,{active:h,align:c,ariaLabel:d,direction:a.direction,label:e,onSort:()=>f(g)})}function z({active:a,align:d,ariaLabel:g,direction:h,label:i,onSort:j}){return(0,b.jsx)(t.TableHead,{"aria-sort":a?"asc"===h?"ascending":"descending":"none",className:"h-8 px-2",children:(0,b.jsxs)(o.Button,{"aria-label":g,className:`-mx-2 h-7 px-2 text-xs ${"right"===d?"w-[calc(100%+1rem)] justify-end":"justify-start"}`,onClick:j,size:"sm",title:g,type:"button",variant:"ghost",children:[i,a?"asc"===h?(0,b.jsx)(e.ArrowUp,{}):(0,b.jsx)(c.ArrowDown,{}):(0,b.jsx)(f,{})]})})}function A({value:a,percent:c,size:d="compact"}){if("number"!=typeof a)return(0,b.jsx)(b.Fragment,{children:"—"});let e=Math.max(0,Math.min(1,a));return(0,b.jsxs)("span",{className:`inline-flex items-center justify-end tabular-nums ${"metric"===d?"gap-2 text-2xl font-semibold":"gap-1.5"}`,children:[c(a),(0,b.jsx)("span",{"aria-hidden":"true",className:`${"metric"===d?"size-7":"size-3.5"} shrink-0 rounded-full ring-1 ring-foreground/10 ${e>=.8?"text-emerald-500":e>=.5?"text-amber-500":"text-red-500"}`,"data-coverage-indicator":!0,style:{background:`conic-gradient(currentColor ${360*e}deg, var(--muted) 0deg)`}})]})}function B({label:a,percentage:c,value:d}){return(0,b.jsx)(p.Card,{children:(0,b.jsxs)(p.CardContent,{children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"mt-1",children:"number"==typeof c?(0,b.jsx)(A,{percent:()=>d,size:"metric",value:c}):(0,b.jsx)("p",{className:"text-2xl font-semibold tabular-nums",children:d})})]})})}function C({coverageFiles:a,files:c,percent:d,worktreeFolder:e}){let f=(0,k.useTranslations)("builds"),g=(0,j.useLocale)(),[h,m]=(0,l.useState)(""),[n,o]=(0,l.useState)({key:"filename",direction:"asc"}),p=c.map(b=>{var c;let d=x(b.path,e),f=a.filter(a=>x(a.path,e)===d);return{...b,displayName:f[0]?.name??(c=d).replaceAll("\\","/").split("/").filter(Boolean).at(-1)??c,displayPath:d}}).filter(a=>`${a.displayName} ${a.displayPath} ${a.changeType??""}`.toLocaleLowerCase().includes(h.trim().toLocaleLowerCase())).toSorted((a,b)=>{let c=(a,b)=>a.localeCompare(b,g,{numeric:!0,sensitivity:"base"}),d=0;return 0!==(d="filename"===n.key?c(a.displayName,b.displayName)||c(a.displayPath,b.displayPath):"changeType"===n.key?c(a.changeType??"",b.changeType??""):"coveredLines"===n.key?a.changedCoveredLines-b.changedCoveredLines:(a.changedLineCoverage??-1)-(b.changedLineCoverage??-1))?"asc"===n.direction?d:-d:c(a.displayPath,b.displayPath)}),q=a=>{o(b=>b.key===a?{key:a,direction:"asc"===b.direction?"desc":"asc"}:{key:a,direction:"coveredLines"===a||"lineCoverage"===a?"desc":"asc"})};return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"relative max-w-xl",children:[(0,b.jsx)(i.Search,{className:"absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)(r.Input,{"aria-label":f("searchChangedCoverageFiles"),className:"pl-9",onChange:a=>m(a.target.value),placeholder:f("searchChangedCoverageFiles"),value:h})]}),(0,b.jsx)("div",{className:"overflow-auto rounded-md border",children:(0,b.jsxs)(t.Table,{"aria-label":f("changedFilesCoverage"),className:"text-xs",children:[(0,b.jsx)(t.TableHeader,{children:(0,b.jsxs)(t.TableRow,{children:[(0,b.jsx)(D,{activeSort:n,ariaLabel:f("sortCoverageFiles",{column:f("coverageFile")}),label:f("coverageFile"),onSort:q,sortKey:"filename"}),(0,b.jsx)(D,{activeSort:n,ariaLabel:f("sortCoverageFiles",{column:f("changeType")}),label:f("changeType"),onSort:q,sortKey:"changeType"}),(0,b.jsx)(D,{activeSort:n,align:"right",ariaLabel:f("sortCoverageFiles",{column:f("coveredLines")}),label:f("coveredLines"),onSort:q,sortKey:"coveredLines"}),(0,b.jsx)(D,{activeSort:n,align:"right",ariaLabel:f("sortCoverageFiles",{column:f("coverage")}),label:f("coverage"),onSort:q,sortKey:"lineCoverage"})]})}),(0,b.jsx)(t.TableBody,{children:p.map(a=>(0,b.jsxs)(t.TableRow,{children:[(0,b.jsx)(t.TableCell,{className:"max-w-xl px-2 py-1.5",children:(0,b.jsxs)("div",{className:"flex min-w-0 items-baseline gap-2",children:[(0,b.jsx)("span",{className:"shrink-0 font-medium",children:a.displayName}),(0,b.jsx)("span",{className:"min-w-0 truncate font-mono text-muted-foreground",title:a.path,children:a.displayPath})]})}),(0,b.jsx)(t.TableCell,{className:"px-2 py-1.5",children:a.changeType??"—"}),(0,b.jsxs)(t.TableCell,{className:"px-2 py-1.5 text-right",children:[a.changedCoveredLines," / ",a.changedExecutableLines]}),(0,b.jsx)(t.TableCell,{className:"px-2 py-1.5 text-right",children:(0,b.jsx)(A,{percent:d,value:a.changedLineCoverage})})]},a.path))})]})})]})}function D({activeSort:a,align:c="left",ariaLabel:d,label:e,onSort:f,sortKey:g}){let h=a.key===g;return(0,b.jsx)(z,{active:h,align:c,ariaLabel:d,direction:a.direction,label:e,onSort:()=>f(g)})}a.s(["CoverageReportPage",0,function({buildId:a}){let c=(0,k.useTranslations)("builds"),e=(0,j.useLocale)(),[f,z]=(0,l.useState)(null),[D,E]=(0,l.useState)(a),[F,G]=(0,l.useState)(null),[H,I]=(0,l.useState)(!0),[J,K]=(0,l.useState)(null),[L,M]=(0,l.useState)(""),[N,O]=(0,l.useState)(!1),[P,Q]=(0,l.useState)({key:"filename",direction:"asc"}),R=(0,l.useCallback)(async()=>{try{let b=await (0,v.controlPlaneRequest)(`query CoverageReport($id: ID!) {
2
+ build(id: $id) {
3
+ id snapshot
4
+ reports {
5
+ id kind source status summary data error createdAt updatedAt finishedAt
6
+ artifact { id kind relativePath sizeBytes checksum metadata createdAt }
7
+ }
8
+ }
9
+ }`,{id:a}),c=b.build?.reports.find(a=>"CODE_COVERAGE"===a.kind);z(c??null);let d=b.build?.snapshot.configuration,e=b.build?.snapshot.worktree;E(d?.name??a),G(e?.folder??null),K(null)}catch(a){K(a instanceof Error?a.message:String(a))}finally{I(!1)}},[a]);(0,l.useEffect)(()=>{let a=window.setTimeout(()=>void R(),0);return()=>window.clearTimeout(a)},[R]);let S=(0,l.useMemo)(()=>Array.isArray(f?.data.files)?f.data.files:[],[f]),T=(0,l.useMemo)(()=>{let a=S.filter(a=>`${a.target} ${a.name} ${x(a.path,F)}`.toLocaleLowerCase().includes(L.trim().toLocaleLowerCase())),b=(a,b)=>a.localeCompare(b,e,{numeric:!0,sensitivity:"base"});return a.toSorted((a,c)=>{let d=0;return 0!==(d="filename"===P.key?b(a.name,c.name):"target"===P.key?b(a.target,c.target):"lineCoverage"===P.key?a.lineCoverage-c.lineCoverage:w(a)-w(c))?"asc"===P.direction?d:-d:b(a.name,c.name)||b(a.target,c.target)||b(a.path,c.path)})},[e,S,L,P,F]),U=Array.isArray(f?.data.changedFiles)?f.data.changedFiles:[],V=a=>"number"==typeof a?new Intl.NumberFormat(e,{style:"percent",maximumFractionDigits:1}).format(a):"—",W=a=>{Q(b=>b.key===a?{key:a,direction:"asc"===b.direction?"desc":"asc"}:{key:a,direction:"lineCoverage"===a||"uncoveredLines"===a?"desc":"asc"})};return H?(0,b.jsxs)("p",{className:"mx-auto flex max-w-6xl items-center gap-2 text-muted-foreground",children:[(0,b.jsx)(s.Spinner,{})," ",c("loadingCoverageReport")]}):f?(0,b.jsxs)("section",{className:"mx-auto flex w-full max-w-7xl flex-col gap-5",children:[(0,b.jsx)("div",{children:(0,b.jsx)(o.Button,{asChild:!0,className:"-ml-2",size:"sm",variant:"ghost",children:(0,b.jsxs)(u.Link,{href:`/builds/${a}`,children:[(0,b.jsx)(d.ArrowLeft,{})," ",c("backToBuild")]})})}),J&&(0,b.jsx)(m.Alert,{variant:"destructive",children:(0,b.jsx)(m.AlertDescription,{children:J})}),f.error&&(0,b.jsx)(m.Alert,{variant:"destructive",children:(0,b.jsx)(m.AlertDescription,{children:f.error})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:c("coverageReport")}),(0,b.jsx)("h1",{className:"text-2xl font-semibold",children:D})]}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:[(0,b.jsx)(B,{label:c("overallCoverage"),percentage:f.summary.lineCoverage,value:V(f.summary.lineCoverage)}),(0,b.jsx)(B,{label:c("coveredLines"),value:String(f.summary.coveredLines??0)}),(0,b.jsx)(B,{label:c("executableLines"),value:String(f.summary.executableLines??0)}),(0,b.jsx)(B,{label:c("changedCoverage"),percentage:f.summary.changedLineCoverage,value:V(f.summary.changedLineCoverage)})]}),U.length>0&&(0,b.jsxs)(p.Card,{children:[(0,b.jsx)(p.CardHeader,{children:(0,b.jsx)(p.CardTitle,{children:c("changedFilesCoverage")})}),(0,b.jsx)(p.CardContent,{children:(0,b.jsx)(C,{coverageFiles:S,files:U,percent:V,worktreeFolder:F})})]}),(0,b.jsxs)(p.Card,{className:"gap-0 py-0",children:[(0,b.jsx)(p.CardHeader,{className:N?"border-b bg-muted/40 py-3":"bg-muted/40 py-3",children:(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)(o.Button,{"aria-expanded":N,className:"-m-2 h-auto min-w-0 flex-1 justify-start p-2 text-left aria-expanded:bg-transparent aria-expanded:hover:bg-muted dark:aria-expanded:bg-transparent dark:aria-expanded:hover:bg-muted/50",onClick:()=>O(a=>!a),type:"button",variant:"ghost",children:(0,b.jsx)("span",{className:"truncate font-medium",children:c("allCoverageFiles")})}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsx)(n.Badge,{children:S.length}),(0,b.jsx)(o.Button,{"aria-expanded":N,"aria-label":c(N?"collapseCoverageFiles":"expandCoverageFiles"),onClick:()=>O(a=>!a),size:"icon-sm",title:c(N?"collapseCoverageFiles":"expandCoverageFiles"),type:"button",variant:"ghost",children:N?(0,b.jsx)(g.ChevronDown,{className:"size-5"}):(0,b.jsx)(h.ChevronRight,{className:"size-5"})})]})]})}),N&&(0,b.jsxs)(p.CardContent,{className:"space-y-4 py-4",children:[(0,b.jsxs)("div",{className:"relative max-w-xl",children:[(0,b.jsx)(i.Search,{className:"absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)(r.Input,{"aria-label":c("searchCoverageFiles"),className:"pl-9",onChange:a=>M(a.target.value),placeholder:c("searchCoverageFiles"),value:L})]}),(0,b.jsx)("div",{className:"overflow-auto rounded-md border",children:(0,b.jsxs)(t.Table,{"aria-label":c("allCoverageFiles"),className:"min-w-[60rem] text-xs",children:[(0,b.jsx)(t.TableHeader,{children:(0,b.jsxs)(t.TableRow,{children:[(0,b.jsx)(y,{activeSort:P,ariaLabel:c("sortCoverageFiles",{column:c("coverageTarget")}),label:c("coverageTarget"),onSort:W,sortKey:"target"}),(0,b.jsx)(y,{activeSort:P,ariaLabel:c("sortCoverageFiles",{column:c("coverageFile")}),label:c("coverageFile"),onSort:W,sortKey:"filename"}),(0,b.jsx)(t.TableHead,{className:"h-8 px-2 text-right",children:c("coveredLines")}),(0,b.jsx)(y,{activeSort:P,align:"right",ariaLabel:c("sortCoverageFiles",{column:c("uncoveredLines")}),label:c("uncoveredLines"),onSort:W,sortKey:"uncoveredLines"}),(0,b.jsx)(y,{activeSort:P,align:"right",ariaLabel:c("sortCoverageFiles",{column:c("coverage")}),label:c("coverage"),onSort:W,sortKey:"lineCoverage"})]})}),(0,b.jsx)(t.TableBody,{children:T.map((a,c)=>(0,b.jsxs)(t.TableRow,{children:[(0,b.jsx)(t.TableCell,{className:"px-2 py-1.5",children:(0,b.jsx)(n.Badge,{variant:"outline",children:a.target})}),(0,b.jsx)(t.TableCell,{className:"max-w-xl px-2 py-1.5",children:(0,b.jsxs)("div",{className:"flex min-w-0 items-baseline gap-2",children:[(0,b.jsx)("span",{className:"shrink-0 font-medium",children:a.name}),(0,b.jsx)("span",{className:"min-w-0 truncate font-mono text-muted-foreground",title:a.path,children:x(a.path,F)})]})}),(0,b.jsxs)(t.TableCell,{className:"px-2 py-1.5 text-right tabular-nums",children:[a.coveredLines," / ",a.executableLines]}),(0,b.jsx)(t.TableCell,{className:"px-2 py-1.5 text-right tabular-nums",children:w(a)}),(0,b.jsx)(t.TableCell,{className:"px-2 py-1.5 text-right font-medium",children:(0,b.jsx)(A,{percent:V,value:a.lineCoverage})})]},`${a.target}:${a.path}:${c}`))})]})})]})]})]}):(0,b.jsxs)(q.Empty,{className:"mx-auto max-w-6xl border py-12",children:[(0,b.jsxs)(q.EmptyHeader,{children:[(0,b.jsx)(q.EmptyTitle,{children:c("coverageReportNotFound")}),(0,b.jsx)(q.EmptyDescription,{children:c("coverageReportNotFoundDescription")})]}),(0,b.jsx)(o.Button,{asChild:!0,variant:"outline",children:(0,b.jsxs)(u.Link,{href:`/builds/${a}`,children:[(0,b.jsx)(d.ArrowLeft,{})," ",c("backToBuild")]})})]})}],208309)}];
10
+
11
+ //# sourceMappingURL=src_components_builds_coverage-report-page_tsx_1nhwba1._.js.map
@@ -21,18 +21,18 @@ module.exports=[413651,a=>{"use strict";var b=a.i(187924),c=a.i(219107),d=a.i(31
21
21
  reparseBuildConfiguration(configurationId: $configurationId, worktreeId: $worktreeId, requestId: $requestId) { id status }
22
22
  }`,{configurationId:a.id,worktreeId:F,requestId:(0,z.createClientId)()}),await R()}catch(a){M(a instanceof Error?a.message:String(a))}finally{K(!1)}}},U=async a=>{K(!0);try{await (0,A.controlPlaneRequest)("mutation DeleteBuildConfiguration($id: ID!) { deleteBuildConfiguration(id: $id) }",{id:a}),await R()}catch(a){M(a instanceof Error?a.message:String(a))}finally{K(!1)}},V=async(a,b)=>{let c=s?.allowedScripts.map(a=>a.script.id)??[],d=b?[...c,a]:c.filter(b=>b!==a);try{await (0,A.controlPlaneRequest)(`mutation SetAllowedBuildScripts($codebaseId: ID!, $scriptIds: [ID!]!) {
23
23
  setCodebaseBuildScripts(codebaseId: $codebaseId, scriptIds: $scriptIds) { id }
24
- }`,{codebaseId:e,scriptIds:d}),await R()}catch(a){M(a instanceof Error?a.message:String(a))}};return H?(0,b.jsxs)("p",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,b.jsx)(x.Spinner,{})," ",d("loading")]}):(0,b.jsxs)("div",{className:"space-y-5",children:[L&&(0,b.jsx)(n.Alert,{variant:"destructive",children:(0,b.jsx)(n.AlertDescription,{children:L})}),c&&c.length>0&&(0,b.jsxs)(q.Card,{children:[(0,b.jsx)(q.CardHeader,{children:(0,b.jsx)(q.CardTitle,{children:d("parseCheckout")})}),(0,b.jsxs)(q.CardContent,{className:"space-y-2",children:[(0,b.jsxs)(w.Select,{disabled:J,onValueChange:a=>{I(!0),h(a)},value:e,children:[(0,b.jsx)(w.SelectTrigger,{"aria-label":d("parseCheckout"),children:(0,b.jsx)(w.SelectValue,{})}),(0,b.jsx)(w.SelectContent,{children:c.map(a=>(0,b.jsxs)(w.SelectItem,{disabled:!a.available,value:a.codebaseId,children:[a.label,a.available?"":` \xb7 ${d("checkoutUnavailable")}`]},a.codebaseId))})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d("parseCheckoutDescription")})]})]}),s?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Alert,{children:(0,b.jsx)(n.AlertDescription,{children:d("sharedProjectDescription")})}),(0,b.jsxs)(q.Card,{children:[(0,b.jsxs)(q.CardHeader,{className:"flex-row items-center justify-between",children:[(0,b.jsx)(q.CardTitle,{children:d("buildConfigurations")}),(0,b.jsxs)(p.Button,{disabled:!F,onClick:()=>{O(null),Q(!0)},size:"sm",children:[(0,b.jsx)(j.Plus,{})," ",d("newConfiguration")]})]}),(0,b.jsx)(q.CardContent,{children:s.configurations.length?(0,b.jsx)("div",{className:"grid gap-3 lg:grid-cols-2",children:s.configurations.map(a=>(0,b.jsx)(q.Card,{children:(0,b.jsxs)(q.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("h3",{className:"flex items-center gap-2 font-medium",children:[(0,b.jsx)(B.ConfigurationIcon,{iconKey:a.iconKey}),a.name]}),(0,b.jsx)("p",{className:"font-mono text-xs text-muted-foreground",children:a.source.relativePath})]}),(0,b.jsx)(o.Badge,{variant:a.observation?.status==="ERROR"||a.observation?.status==="INVALID"?"destructive":"outline",children:a.observation?.status??"UNPARSED"})]}),(0,b.jsxs)("div",{className:"rounded-lg border bg-muted/20 p-3 text-sm",children:[(0,b.jsxs)("p",{children:[a.scheme," ·"," ",a.buildConfiguration]}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:[a.observation?.lastParsedAt?d("lastParsed",{value:new Date(a.observation.lastParsedAt).toLocaleString()}):d("neverParsed"),a.observation?.stale?` \xb7 ${d("stale")}`:""]}),a.observation?.error&&(0,b.jsx)("p",{className:"mt-1 text-xs text-destructive",children:a.observation.error})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsxs)(p.Button,{disabled:J||!F,onClick:()=>void T(a),size:"sm",variant:"outline",children:[(0,b.jsx)(k.RefreshCw,{})," ",d("reparse")]}),(0,b.jsxs)(p.Button,{onClick:()=>{O(a),Q(!0)},size:"sm",variant:"outline",children:[(0,b.jsx)(l.Settings2,{})," ",d("edit")]}),(0,b.jsx)(p.Button,{"aria-label":d("deleteConfiguration"),disabled:J,onClick:()=>void U(a.id),size:"icon-sm",variant:"destructive",children:(0,b.jsx)(m.Trash2,{})})]})]})},a.id))}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:d("noConfigurations")})})]}),(0,b.jsxs)(q.Card,{children:[(0,b.jsx)(q.CardHeader,{children:(0,b.jsx)(q.CardTitle,{children:d("allowedScripts")})}),(0,b.jsx)(q.CardContent,{className:"space-y-2",children:v.length?v.map(a=>{let c=s.allowedScripts.some(b=>b.script.id===a.id);return(0,b.jsxs)("label",{className:"flex items-center gap-2 rounded-lg border p-2",children:[(0,b.jsx)(r.Checkbox,{checked:c,onCheckedChange:b=>void V(a.id,!!b)}),(0,b.jsx)("span",{className:"text-sm",children:a.name}),a.enabledByDefault&&(0,b.jsx)(o.Badge,{variant:"outline",children:d("defaultEnabled")})]},a.id)}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:d("createScriptsOnBuildsPage")})})]})]}):(0,b.jsxs)(t.Empty,{className:"border py-12",children:[(0,b.jsxs)(t.EmptyHeader,{children:[(0,b.jsx)(t.EmptyMedia,{variant:"icon",children:(0,b.jsx)(i.Hammer,{})}),(0,b.jsx)(t.EmptyTitle,{children:d("addIosProject")}),(0,b.jsx)(t.EmptyDescription,{children:d("addIosProjectDescription")})]}),(0,b.jsxs)(p.Button,{disabled:J,onClick:()=>void S(),children:[J?(0,b.jsx)(x.Spinner,{}):(0,b.jsx)(j.Plus,{})," ",d("addIosProject")]})]}),P&&F&&(0,b.jsx)(E,{codebaseId:e,configuration:N,onOpenChange:Q,onSaved:R,open:P,worktreeId:F})]})}function E({codebaseId:a,worktreeId:c,configuration:d,open:e,onOpenChange:h,onSaved:i}){let j=(0,f.useTranslations)("builds"),[l,m]=(0,g.useState)(d?.name??""),[r,t]=(0,g.useState)(d?.iconKey??"none"),[B,C]=(0,g.useState)([]),[D,F]=(0,g.useState)(d?.source.relativePath??""),[G,H]=(0,g.useState)(d?.source.kind??"PROJECT"),[I,J]=(0,g.useState)(d?.observation?{source:d.source,schemes:d.observation.schemes,configurations:d.observation.configurations,testPlans:d.observation.testPlans,headSha:d.observation.headSha,xcodeVersion:d.observation.xcodeVersion}:null),[K,L]=(0,g.useState)(d?.observation?.status??"UNPARSED"),[M,N]=(0,g.useState)(d?.observation?.stale??!1),[O,P]=(0,g.useState)(d?.scheme??""),[Q,R]=(0,g.useState)(d?.buildConfiguration??""),[S,T]=(0,g.useState)(d?.defaultAction??"BUILD"),[U,V]=(0,g.useState)(JSON.stringify(d?.advancedSettings??{},null,2)),[W,X]=(0,g.useState)("string"==typeof d?.advancedSettings?.testPlan?d.advancedSettings.testPlan:"__SCHEME_DEFAULT__"),[Y,Z]=(0,g.useState)(!1),[$,_]=(0,g.useState)(!1),[aa,ab]=(0,g.useState)(!1),[ac,ad]=(0,g.useState)(null),ae=(0,g.useCallback)(async()=>{Z(!0);try{let a=await (0,A.controlPlaneRequest)(`mutation DiscoverBuildSources($worktreeId: ID!, $requestId: ID!) {
24
+ }`,{codebaseId:e,scriptIds:d}),await R()}catch(a){M(a instanceof Error?a.message:String(a))}};return H?(0,b.jsxs)("p",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,b.jsx)(x.Spinner,{})," ",d("loading")]}):(0,b.jsxs)("div",{className:"space-y-5",children:[L&&(0,b.jsx)(n.Alert,{variant:"destructive",children:(0,b.jsx)(n.AlertDescription,{children:L})}),c&&c.length>0&&(0,b.jsxs)(q.Card,{children:[(0,b.jsx)(q.CardHeader,{children:(0,b.jsx)(q.CardTitle,{children:d("parseCheckout")})}),(0,b.jsxs)(q.CardContent,{className:"space-y-2",children:[(0,b.jsxs)(w.Select,{disabled:J,onValueChange:a=>{I(!0),h(a)},value:e,children:[(0,b.jsx)(w.SelectTrigger,{"aria-label":d("parseCheckout"),children:(0,b.jsx)(w.SelectValue,{})}),(0,b.jsx)(w.SelectContent,{children:c.map(a=>(0,b.jsxs)(w.SelectItem,{disabled:!a.available,value:a.codebaseId,children:[a.label,a.available?"":` \xb7 ${d("checkoutUnavailable")}`]},a.codebaseId))})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:d("parseCheckoutDescription")})]})]}),s?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Alert,{children:(0,b.jsx)(n.AlertDescription,{children:d("sharedProjectDescription")})}),(0,b.jsxs)(q.Card,{children:[(0,b.jsxs)(q.CardHeader,{className:"flex-row items-center justify-between",children:[(0,b.jsx)(q.CardTitle,{children:d("buildConfigurations")}),(0,b.jsxs)(p.Button,{disabled:!F,onClick:()=>{O(null),Q(!0)},size:"sm",children:[(0,b.jsx)(j.Plus,{})," ",d("newConfiguration")]})]}),(0,b.jsx)(q.CardContent,{children:s.configurations.length?(0,b.jsx)("div",{className:"grid gap-3 lg:grid-cols-2",children:s.configurations.map(a=>(0,b.jsx)(q.Card,{children:(0,b.jsxs)(q.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("h3",{className:"flex items-center gap-2 font-medium",children:[(0,b.jsx)(B.ConfigurationIcon,{iconKey:a.iconKey}),a.name]}),(0,b.jsx)("p",{className:"font-mono text-xs text-muted-foreground",children:a.source.relativePath})]}),(0,b.jsx)(o.Badge,{variant:a.observation?.status==="ERROR"||a.observation?.status==="INVALID"?"destructive":"outline",children:a.observation?.status??"UNPARSED"})]}),(0,b.jsxs)("div",{className:"rounded-lg border bg-muted/20 p-3 text-sm",children:[(0,b.jsxs)("p",{children:[a.scheme," ·"," ",a.buildConfiguration]}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:[a.observation?.lastParsedAt?d("lastParsed",{value:new Date(a.observation.lastParsedAt).toLocaleString()}):d("neverParsed"),a.observation?.stale?` \xb7 ${d("stale")}`:""]}),a.observation?.error&&(0,b.jsx)("p",{className:"mt-1 text-xs text-destructive",children:a.observation.error})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsxs)(p.Button,{disabled:J||!F,onClick:()=>void T(a),size:"sm",variant:"outline",children:[(0,b.jsx)(k.RefreshCw,{})," ",d("reparse")]}),(0,b.jsxs)(p.Button,{onClick:()=>{O(a),Q(!0)},size:"sm",variant:"outline",children:[(0,b.jsx)(l.Settings2,{})," ",d("edit")]}),(0,b.jsx)(p.Button,{"aria-label":d("deleteConfiguration"),disabled:J,onClick:()=>void U(a.id),size:"icon-sm",variant:"destructive",children:(0,b.jsx)(m.Trash2,{})})]})]})},a.id))}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:d("noConfigurations")})})]}),(0,b.jsxs)(q.Card,{children:[(0,b.jsx)(q.CardHeader,{children:(0,b.jsx)(q.CardTitle,{children:d("allowedScripts")})}),(0,b.jsx)(q.CardContent,{className:"space-y-2",children:v.length?v.map(a=>{let c=s.allowedScripts.some(b=>b.script.id===a.id);return(0,b.jsxs)("label",{className:"flex items-center gap-2 rounded-lg border p-2",children:[(0,b.jsx)(r.Checkbox,{checked:c,onCheckedChange:b=>void V(a.id,!!b)}),(0,b.jsx)("span",{className:"text-sm",children:a.name}),a.enabledByDefault&&(0,b.jsx)(o.Badge,{variant:"outline",children:d("defaultEnabled")})]},a.id)}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:d("createScriptsOnBuildsPage")})})]})]}):(0,b.jsxs)(t.Empty,{className:"border py-12",children:[(0,b.jsxs)(t.EmptyHeader,{children:[(0,b.jsx)(t.EmptyMedia,{variant:"icon",children:(0,b.jsx)(i.Hammer,{})}),(0,b.jsx)(t.EmptyTitle,{children:d("addIosProject")}),(0,b.jsx)(t.EmptyDescription,{children:d("addIosProjectDescription")})]}),(0,b.jsxs)(p.Button,{disabled:J,onClick:()=>void S(),children:[J?(0,b.jsx)(x.Spinner,{}):(0,b.jsx)(j.Plus,{})," ",d("addIosProject")]})]}),P&&F&&(0,b.jsx)(E,{codebaseId:e,configuration:N,onOpenChange:Q,onSaved:R,open:P,worktreeId:F})]})}function E({codebaseId:a,worktreeId:c,configuration:d,open:e,onOpenChange:h,onSaved:i}){let j=(0,f.useTranslations)("builds"),[l,m]=(0,g.useState)(d?.name??""),[t,B]=(0,g.useState)(d?.iconKey??"none"),[C,D]=(0,g.useState)([]),[F,G]=(0,g.useState)(d?.source.relativePath??""),[H,I]=(0,g.useState)(d?.source.kind??"PROJECT"),[J,K]=(0,g.useState)(d?.observation?{source:d.source,schemes:d.observation.schemes,configurations:d.observation.configurations,testPlans:d.observation.testPlans,headSha:d.observation.headSha,xcodeVersion:d.observation.xcodeVersion}:null),[L,M]=(0,g.useState)(d?.observation?.status??"UNPARSED"),[N,O]=(0,g.useState)(d?.observation?.stale??!1),[P,Q]=(0,g.useState)(d?.scheme??""),[R,S]=(0,g.useState)(d?.buildConfiguration??""),[T,U]=(0,g.useState)(d?.defaultAction??"BUILD"),[V,W]=(0,g.useState)(JSON.stringify(d?.advancedSettings??{},null,2)),[X,Y]=(0,g.useState)(d?.advancedSettings?.parseTestResults!==!1),[Z,$]=(0,g.useState)("string"==typeof d?.advancedSettings?.testPlan?d.advancedSettings.testPlan:"__SCHEME_DEFAULT__"),[_,aa]=(0,g.useState)(!1),[ab,ac]=(0,g.useState)(!1),[ad,ae]=(0,g.useState)(!1),[af,ag]=(0,g.useState)(null),ah=(0,g.useCallback)(async()=>{aa(!0);try{let a=await (0,A.controlPlaneRequest)(`mutation DiscoverBuildSources($worktreeId: ID!, $requestId: ID!) {
25
25
  discoverBuildSources(worktreeId: $worktreeId, requestId: $requestId) { kind relativePath }
26
- }`,{worktreeId:c,requestId:(0,z.createClientId)()});C(a.discoverBuildSources)}catch(a){ad(a instanceof Error?a.message:String(a))}finally{Z(!1)}},[c]);(0,g.useEffect)(()=>{let a=window.setTimeout(()=>void ae(),0);return()=>window.clearTimeout(a)},[ae]);let af=async(a,b)=>{_(!0),ad(null);try{let d=await (0,A.controlPlaneRequest)(`mutation InspectBuildSource($input: InspectBuildSourceInput!) {
26
+ }`,{worktreeId:c,requestId:(0,z.createClientId)()});D(a.discoverBuildSources)}catch(a){ag(a instanceof Error?a.message:String(a))}finally{aa(!1)}},[c]);(0,g.useEffect)(()=>{let a=window.setTimeout(()=>void ah(),0);return()=>window.clearTimeout(a)},[ah]);let ai=async(a,b)=>{ac(!0),ag(null);try{let d=await (0,A.controlPlaneRequest)(`mutation InspectBuildSource($input: InspectBuildSourceInput!) {
27
27
  inspectBuildSource(input: $input) {
28
28
  source { kind relativePath }
29
29
  schemes configurations testPlans headSha xcodeVersion
30
30
  }
31
- }`,{input:{worktreeId:c,sourceKind:a.kind,sourcePath:a.relativePath,scheme:b||null,requestId:(0,z.createClientId)()}});J(d.inspectBuildSource),L("VALID"),N(!1),F(a.relativePath),H(a.kind),b||(P(d.inspectBuildSource.schemes[0]??O),R(d.inspectBuildSource.configurations[0]??Q))}catch(a){L("ERROR"),N(!!I),ad(a instanceof Error?a.message:String(a))}finally{_(!1)}},ag=async()=>{ab(!0),ad(null);try{let b;try{if(!(b=JSON.parse(U))||"object"!=typeof b||Array.isArray(b))throw Error()}catch{throw Error(j("advancedJsonInvalid"))}b={...b,testPlan:"__SCHEME_DEFAULT__"===W?null:W};let e=await (0,A.controlPlaneRequest)(`mutation SaveBuildConfiguration($input: SaveBuildConfigurationInput!) {
31
+ }`,{input:{worktreeId:c,sourceKind:a.kind,sourcePath:a.relativePath,scheme:b||null,requestId:(0,z.createClientId)()}});K(d.inspectBuildSource),M("VALID"),O(!1),G(a.relativePath),I(a.kind),b||(Q(d.inspectBuildSource.schemes[0]??P),S(d.inspectBuildSource.configurations[0]??R))}catch(a){M("ERROR"),O(!!J),ag(a instanceof Error?a.message:String(a))}finally{ac(!1)}},aj=async()=>{ae(!0),ag(null);try{let b;try{if(!(b=JSON.parse(V))||"object"!=typeof b||Array.isArray(b))throw Error()}catch{throw Error(j("advancedJsonInvalid"))}b={...b,testPlan:"__SCHEME_DEFAULT__"===Z?null:Z,parseTestResults:X};let e=await (0,A.controlPlaneRequest)(`mutation SaveBuildConfiguration($input: SaveBuildConfigurationInput!) {
32
32
  saveBuildConfiguration(input: $input) { id }
33
- }`,{input:{id:d?.id??null,codebaseId:a,name:l,iconKey:"none"===r?null:r,sourceKind:G,sourcePath:D,scheme:O,buildConfiguration:Q,defaultAction:S,advancedSettings:b}});await (0,A.controlPlaneRequest)(`mutation ReparseSavedBuildConfiguration($configurationId: ID!, $worktreeId: ID!, $requestId: ID!) {
33
+ }`,{input:{id:d?.id??null,codebaseId:a,name:l,iconKey:"none"===t?null:t,sourceKind:H,sourcePath:F,scheme:P,buildConfiguration:R,defaultAction:T,advancedSettings:b}});await (0,A.controlPlaneRequest)(`mutation ReparseSavedBuildConfiguration($configurationId: ID!, $worktreeId: ID!, $requestId: ID!) {
34
34
  reparseBuildConfiguration(configurationId: $configurationId, worktreeId: $worktreeId, requestId: $requestId) { id status }
35
- }`,{configurationId:e.saveBuildConfiguration.id,worktreeId:c,requestId:(0,z.createClientId)()}),await i(),h(!1)}catch(a){ad(a instanceof Error?a.message:String(a))}finally{ab(!1)}};return(0,b.jsx)(s.Dialog,{onOpenChange:h,open:e,children:(0,b.jsxs)(s.DialogContent,{className:"sm:max-w-3xl",children:[(0,b.jsxs)(s.DialogHeader,{children:[(0,b.jsx)(s.DialogTitle,{children:d?j("editConfiguration"):j("newConfiguration")}),(0,b.jsx)(s.DialogDescription,{children:j("configurationDescription")})]}),ac&&(0,b.jsx)(n.Alert,{variant:"destructive",children:(0,b.jsx)(n.AlertDescription,{children:ac})}),(0,b.jsxs)("div",{className:"space-y-5",children:[(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(v.Label,{htmlFor:"configuration-name",children:j("name")}),(0,b.jsx)(u.Input,{id:"configuration-name",onChange:a=>m(a.target.value),value:l})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(v.Label,{children:j("icon")}),(0,b.jsxs)(w.Select,{onValueChange:t,value:r,children:[(0,b.jsx)(w.SelectTrigger,{children:(0,b.jsx)(w.SelectValue,{})}),(0,b.jsx)(w.SelectContent,{children:["none","smartphone","hammer","play","test-tube","archive","rocket"].map(a=>(0,b.jsx)(w.SelectItem,{value:a,children:a},a))})]})]})]}),(0,b.jsx)(q.Card,{children:(0,b.jsxs)(q.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"font-medium",children:j("source")}),(0,b.jsx)("p",{className:"font-mono text-xs text-muted-foreground",children:D||j("selectSource")})]}),I&&(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[M&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:j("stale")}),(0,b.jsx)(o.Badge,{variant:"VALID"===K?"outline":"destructive",children:K})]})]}),(0,b.jsxs)(w.Select,{disabled:Y||$,onValueChange:a=>{let b=B.find(b=>b.relativePath===a);b&&af(b)},value:B.some(a=>a.relativePath===D)?D:"",children:[(0,b.jsx)(w.SelectTrigger,{children:(0,b.jsx)(w.SelectValue,{placeholder:Y?j("loadingSources"):j("selectSource")})}),(0,b.jsx)(w.SelectContent,{children:B.map(a=>(0,b.jsx)(w.SelectItem,{value:a.relativePath,children:a.relativePath},a.relativePath))})]}),I&&(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(v.Label,{children:j("scheme")}),(0,b.jsxs)(w.Select,{onValueChange:a=>{P(a),af(I.source,a)},value:O,children:[(0,b.jsx)(w.SelectTrigger,{children:(0,b.jsx)(w.SelectValue,{})}),(0,b.jsxs)(w.SelectContent,{children:[O&&!I.schemes.includes(O)&&(0,b.jsxs)(w.SelectItem,{value:O,children:[O," · ",j("savedValueUnavailable")]}),I.schemes.map(a=>(0,b.jsx)(w.SelectItem,{value:a,children:a},a))]})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(v.Label,{children:j("configuration")}),(0,b.jsxs)(w.Select,{onValueChange:R,value:Q,children:[(0,b.jsx)(w.SelectTrigger,{children:(0,b.jsx)(w.SelectValue,{})}),(0,b.jsxs)(w.SelectContent,{children:[Q&&!I.configurations.includes(Q)&&(0,b.jsxs)(w.SelectItem,{value:Q,children:[Q," ·"," ",j("savedValueUnavailable")]}),I.configurations.map(a=>(0,b.jsx)(w.SelectItem,{value:a,children:a},a))]})]})]})]}),(0,b.jsxs)(p.Button,{disabled:!D||$,onClick:()=>void af({kind:G,relativePath:D},O),size:"sm",variant:"outline",children:[$?(0,b.jsx)(x.Spinner,{}):(0,b.jsx)(k.RefreshCw,{})," ",j("reparse")]})]})}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(v.Label,{children:j("defaultAction")}),(0,b.jsxs)(w.Select,{onValueChange:a=>T(a),value:S,children:[(0,b.jsx)(w.SelectTrigger,{children:(0,b.jsx)(w.SelectValue,{})}),(0,b.jsx)(w.SelectContent,{children:["BUILD","TEST","ANALYZE","ARCHIVE","BUILD_FOR_TESTING","TEST_WITHOUT_BUILDING"].map(a=>(0,b.jsx)(w.SelectItem,{value:a,children:j(`actions.${a}`)},a))})]})]}),["TEST","BUILD_FOR_TESTING","TEST_WITHOUT_BUILDING"].includes(S)&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(v.Label,{children:j("testPlan")}),(0,b.jsxs)(w.Select,{onValueChange:X,value:W,children:[(0,b.jsx)(w.SelectTrigger,{children:(0,b.jsx)(w.SelectValue,{})}),(0,b.jsxs)(w.SelectContent,{children:[(0,b.jsx)(w.SelectItem,{value:"__SCHEME_DEFAULT__",children:j("schemeDefaultTestPlan")}),"__SCHEME_DEFAULT__"!==W&&!I?.testPlans.includes(W)&&(0,b.jsxs)(w.SelectItem,{value:W,children:[W," · ",j("savedValueUnavailable")]}),I?.testPlans.map(a=>(0,b.jsx)(w.SelectItem,{value:a,children:a},a))]})]})]}),(0,b.jsxs)("details",{className:"rounded-xl border p-3",children:[(0,b.jsx)("summary",{className:"cursor-pointer font-medium",children:j("advancedSettings")}),(0,b.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,b.jsx)(v.Label,{htmlFor:"configuration-advanced-json",children:j("advancedJson")}),(0,b.jsx)(y.Textarea,{className:"font-mono text-xs",id:"configuration-advanced-json",onChange:a=>V(a.target.value),rows:10,value:U})]})]})]}),(0,b.jsxs)(s.DialogFooter,{children:[(0,b.jsx)(p.Button,{onClick:()=>h(!1),variant:"outline",children:j("cancel")}),(0,b.jsxs)(p.Button,{disabled:aa||$||!l.trim()||!D||!O||!Q,onClick:()=>void ag(),children:[aa&&(0,b.jsx)(x.Spinner,{})," ",j("save")]})]})]})})}var F=a.i(875083),G=a.i(555027);let H=`
35
+ }`,{configurationId:e.saveBuildConfiguration.id,worktreeId:c,requestId:(0,z.createClientId)()}),await i(),h(!1)}catch(a){ag(a instanceof Error?a.message:String(a))}finally{ae(!1)}};return(0,b.jsx)(s.Dialog,{onOpenChange:h,open:e,children:(0,b.jsxs)(s.DialogContent,{className:"sm:max-w-3xl",children:[(0,b.jsxs)(s.DialogHeader,{children:[(0,b.jsx)(s.DialogTitle,{children:d?j("editConfiguration"):j("newConfiguration")}),(0,b.jsx)(s.DialogDescription,{children:j("configurationDescription")})]}),af&&(0,b.jsx)(n.Alert,{variant:"destructive",children:(0,b.jsx)(n.AlertDescription,{children:af})}),(0,b.jsxs)("div",{className:"space-y-5",children:[(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(v.Label,{htmlFor:"configuration-name",children:j("name")}),(0,b.jsx)(u.Input,{id:"configuration-name",onChange:a=>m(a.target.value),value:l})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(v.Label,{children:j("icon")}),(0,b.jsxs)(w.Select,{onValueChange:B,value:t,children:[(0,b.jsx)(w.SelectTrigger,{children:(0,b.jsx)(w.SelectValue,{})}),(0,b.jsx)(w.SelectContent,{children:["none","smartphone","hammer","play","test-tube","archive","rocket"].map(a=>(0,b.jsx)(w.SelectItem,{value:a,children:a},a))})]})]})]}),(0,b.jsx)(q.Card,{children:(0,b.jsxs)(q.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"font-medium",children:j("source")}),(0,b.jsx)("p",{className:"font-mono text-xs text-muted-foreground",children:F||j("selectSource")})]}),J&&(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[N&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:j("stale")}),(0,b.jsx)(o.Badge,{variant:"VALID"===L?"outline":"destructive",children:L})]})]}),(0,b.jsxs)(w.Select,{disabled:_||ab,onValueChange:a=>{let b=C.find(b=>b.relativePath===a);b&&ai(b)},value:C.some(a=>a.relativePath===F)?F:"",children:[(0,b.jsx)(w.SelectTrigger,{children:(0,b.jsx)(w.SelectValue,{placeholder:_?j("loadingSources"):j("selectSource")})}),(0,b.jsx)(w.SelectContent,{children:C.map(a=>(0,b.jsx)(w.SelectItem,{value:a.relativePath,children:a.relativePath},a.relativePath))})]}),J&&(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(v.Label,{children:j("scheme")}),(0,b.jsxs)(w.Select,{onValueChange:a=>{Q(a),ai(J.source,a)},value:P,children:[(0,b.jsx)(w.SelectTrigger,{children:(0,b.jsx)(w.SelectValue,{})}),(0,b.jsxs)(w.SelectContent,{children:[P&&!J.schemes.includes(P)&&(0,b.jsxs)(w.SelectItem,{value:P,children:[P," · ",j("savedValueUnavailable")]}),J.schemes.map(a=>(0,b.jsx)(w.SelectItem,{value:a,children:a},a))]})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(v.Label,{children:j("configuration")}),(0,b.jsxs)(w.Select,{onValueChange:S,value:R,children:[(0,b.jsx)(w.SelectTrigger,{children:(0,b.jsx)(w.SelectValue,{})}),(0,b.jsxs)(w.SelectContent,{children:[R&&!J.configurations.includes(R)&&(0,b.jsxs)(w.SelectItem,{value:R,children:[R," ·"," ",j("savedValueUnavailable")]}),J.configurations.map(a=>(0,b.jsx)(w.SelectItem,{value:a,children:a},a))]})]})]})]}),(0,b.jsxs)(p.Button,{disabled:!F||ab,onClick:()=>void ai({kind:H,relativePath:F},P),size:"sm",variant:"outline",children:[ab?(0,b.jsx)(x.Spinner,{}):(0,b.jsx)(k.RefreshCw,{})," ",j("reparse")]})]})}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(v.Label,{children:j("defaultAction")}),(0,b.jsxs)(w.Select,{onValueChange:a=>U(a),value:T,children:[(0,b.jsx)(w.SelectTrigger,{children:(0,b.jsx)(w.SelectValue,{})}),(0,b.jsx)(w.SelectContent,{children:["BUILD","TEST","ANALYZE","ARCHIVE","BUILD_FOR_TESTING","TEST_WITHOUT_BUILDING"].map(a=>(0,b.jsx)(w.SelectItem,{value:a,children:j(`actions.${a}`)},a))})]})]}),["TEST","BUILD_FOR_TESTING","TEST_WITHOUT_BUILDING"].includes(T)&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(v.Label,{children:j("testPlan")}),(0,b.jsxs)(w.Select,{onValueChange:$,value:Z,children:[(0,b.jsx)(w.SelectTrigger,{children:(0,b.jsx)(w.SelectValue,{})}),(0,b.jsxs)(w.SelectContent,{children:[(0,b.jsx)(w.SelectItem,{value:"__SCHEME_DEFAULT__",children:j("schemeDefaultTestPlan")}),"__SCHEME_DEFAULT__"!==Z&&!J?.testPlans.includes(Z)&&(0,b.jsxs)(w.SelectItem,{value:Z,children:[Z," · ",j("savedValueUnavailable")]}),J?.testPlans.map(a=>(0,b.jsx)(w.SelectItem,{value:a,children:a},a))]})]})]}),(0,b.jsxs)("details",{className:"rounded-xl border p-3",children:[(0,b.jsx)("summary",{className:"cursor-pointer font-medium",children:j("advancedSettings")}),(0,b.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 pb-2",children:[(0,b.jsx)(r.Checkbox,{checked:X,onCheckedChange:a=>Y(!!a)}),j("parseTestResults")]}),(0,b.jsx)(v.Label,{htmlFor:"configuration-advanced-json",children:j("advancedJson")}),(0,b.jsx)(y.Textarea,{className:"font-mono text-xs",id:"configuration-advanced-json",onChange:a=>W(a.target.value),rows:10,value:V})]})]})]}),(0,b.jsxs)(s.DialogFooter,{children:[(0,b.jsx)(p.Button,{onClick:()=>h(!1),variant:"outline",children:j("cancel")}),(0,b.jsxs)(p.Button,{disabled:ad||ab||!l.trim()||!F||!P||!R,onClick:()=>void aj(),children:[ad&&(0,b.jsx)(x.Spinner,{})," ",j("save")]})]})]})})}var F=a.i(875083),G=a.i(555027);let H=`
36
36
  id canonicalOrigin displayOrigin name description jiraBranchRegex keepBaseBranchUpToDate createdAt updatedAt
37
37
  skillGroups { id name }
38
38
  codebases {
@@ -3,6 +3,6 @@ module.exports=[422434,a=>{"use strict";var b=a.i(187924),c=a.i(727061),d=a.i(16
3
3
  jiraCacheMetrics { windows { ${v} } operations { operation windows { ${v} } } }
4
4
  jiraApiCalls(limit: $limit, offset: $callOffset) { items { id operation requestSummary source durationMs statusCode error itemCount servedStale createdAt } total limit offset }
5
5
  jiraCachedTickets(limit: $limit, offset: $ticketOffset) { items { issueKey projectKey summary status coverage stale summaryFetchedAt detailFetchedAt commentsFetchedAt updatedAt } total limit offset }
6
- }`,{limit:50,callOffset:E,ticketOffset:G});o(a),D(String(Math.round(a.jiraSettings.cacheTtlSeconds/60))),N(null)}catch(a){N(a instanceof Error?a.message:String(a))}finally{J(!1)}},[E,G]);(0,i.useEffect)(()=>{let a=window.setTimeout(()=>void O(),0);return()=>window.clearTimeout(a)},[O]);let P=async a=>{a.preventDefault(),L("ttl");try{await (0,u.controlPlaneRequest)("mutation UpdateJiraCacheTtl($ttlMinutes: Int!) { updateJiraCacheTtl(ttlMinutes: $ttlMinutes) { cacheTtlSeconds } }",{ttlMinutes:Number(C)}),await O()}catch(a){N(a instanceof Error?a.message:String(a))}finally{L(null)}},Q=async()=>{L("clear");try{await (0,u.controlPlaneRequest)("mutation { clearJiraCache }"),H(0),await O()}catch(a){N(a instanceof Error?a.message:String(a))}finally{L(null)}},R=async a=>{L(a);try{await (0,u.controlPlaneRequest)("mutation RefreshCachedTicket($issueKey: ID!) { refreshJiraCachedTicket(issueKey: $issueKey) { key } }",{issueKey:a}),await O()}catch(a){N(a instanceof Error?a.message:String(a))}finally{L(null)}},S=async a=>{L(a);try{await (0,u.controlPlaneRequest)("mutation DeleteCachedTicket($issueKey: ID!) { deleteJiraCachedTicket(issueKey: $issueKey) }",{issueKey:a}),await O()}catch(a){N(a instanceof Error?a.message:String(a))}finally{L(null)}};return(0,b.jsxs)("section",{className:"mx-auto flex w-full max-w-[1500px] flex-col gap-6",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:a("title")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a("description")})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsxs)("form",{className:"flex gap-2",onSubmit:a=>void P(a),children:[(0,b.jsx)(q.Label,{className:"sr-only",htmlFor:"cache-ttl",children:a("ttl")}),(0,b.jsx)(p.Input,{className:"w-28",id:"cache-ttl",max:1440,min:1,onChange:a=>D(a.target.value),required:!0,type:"number",value:C}),(0,b.jsxs)(m.Button,{disabled:"ttl"===K,type:"submit",variant:"outline",children:[(0,b.jsx)(f.Save,{}),a("saveTtl")]})]}),(0,b.jsx)(j.ConfirmationDialog,{actionLabel:a("clearCache"),cancelLabel:c("cancel"),description:c("cannotBeUndone"),onConfirm:Q,title:a("confirmClear"),trigger:(0,b.jsxs)(m.Button,{disabled:"clear"===K,variant:"destructive",children:[(0,b.jsx)(g.Trash2,{}),a("clearCache")]})})]})]}),M&&(0,b.jsx)(k.Alert,{variant:"destructive",children:(0,b.jsx)(k.AlertDescription,{children:M})}),I&&!n?(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(r.Spinner,{}),a("loading")]}):n&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4",children:n.jiraCacheMetrics.windows.map(a=>(0,b.jsx)(y,{metric:a},a.window))}),(0,b.jsx)(z,{title:a("operationsTitle"),description:a("operationsDescription"),children:0===n.jiraCacheMetrics.operations.length?(0,b.jsx)(A,{children:a("noMetrics")}):(0,b.jsxs)(s.Table,{children:[(0,b.jsx)(s.TableHeader,{children:(0,b.jsxs)(s.TableRow,{children:[(0,b.jsx)(s.TableHead,{children:a("operation")}),n.jiraCacheMetrics.windows.map(a=>(0,b.jsx)(s.TableHead,{children:a.window},a.window))]})}),(0,b.jsx)(s.TableBody,{children:n.jiraCacheMetrics.operations.map(a=>(0,b.jsxs)(s.TableRow,{children:[(0,b.jsx)(s.TableCell,{className:"font-medium",children:a.operation.replaceAll("_"," ")}),a.windows.map(a=>(0,b.jsxs)(s.TableCell,{children:[(0,b.jsx)("span",{className:"font-medium",children:a.total}),(0,b.jsxs)("span",{className:"ml-2 text-xs text-muted-foreground",children:["L ",a.live," · C ",a.cache," · E"," ",a.errors]})]},a.window))]},a.operation))})]})}),(0,b.jsx)(z,{title:a("recentTitle"),description:a("recentDescription"),children:0===n.jiraApiCalls.items.length?(0,b.jsx)(A,{children:a("noCalls")}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(s.Table,{children:[(0,b.jsx)(s.TableHeader,{children:(0,b.jsxs)(s.TableRow,{children:[(0,b.jsx)(s.TableHead,{children:a("time")}),(0,b.jsx)(s.TableHead,{children:a("operation")}),(0,b.jsx)(s.TableHead,{children:a("fetched")}),(0,b.jsx)(s.TableHead,{children:a("source")}),(0,b.jsx)(s.TableHead,{children:a("duration")}),(0,b.jsx)(s.TableHead,{children:a("error")})]})}),(0,b.jsx)(s.TableBody,{children:n.jiraApiCalls.items.map(c=>(0,b.jsxs)(s.TableRow,{children:[(0,b.jsx)(s.TableCell,{children:w(c.createdAt)}),(0,b.jsx)(s.TableCell,{className:"font-medium",children:c.operation.replaceAll("_"," ")}),(0,b.jsxs)(s.TableCell,{className:"max-w-sm whitespace-normal",children:[c.requestSummary,null!==c.itemCount?` \xb7 ${c.itemCount}`:""]}),(0,b.jsx)(s.TableCell,{children:(0,b.jsxs)(l.Badge,{className:x(c.source),children:[c.source,c.servedStale?` \xb7 ${a("stale")}`:""]})}),(0,b.jsxs)(s.TableCell,{children:[c.durationMs," ms"]}),(0,b.jsx)(s.TableCell,{className:"max-w-sm whitespace-normal text-destructive",children:c.error??"—"})]},c.id))})]}),(0,b.jsx)(B,{offset:E,setOffset:F,total:n.jiraApiCalls.total})]})}),(0,b.jsx)(z,{title:a("ticketsTitle"),description:a("ticketsDescription"),children:0===n.jiraCachedTickets.items.length?(0,b.jsx)(A,{children:a("noTickets")}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(s.Table,{children:[(0,b.jsx)(s.TableHeader,{children:(0,b.jsxs)(s.TableRow,{children:[(0,b.jsx)(s.TableHead,{children:a("ticket")}),(0,b.jsx)(s.TableHead,{children:a("status")}),(0,b.jsx)(s.TableHead,{children:a("coverage")}),(0,b.jsx)(s.TableHead,{children:a("freshness")}),(0,b.jsx)(s.TableHead,{children:a("lastFetched")}),(0,b.jsx)(s.TableHead,{className:"text-right",children:a("actions")})]})}),(0,b.jsx)(s.TableBody,{children:n.jiraCachedTickets.items.map(f=>(0,b.jsxs)(s.TableRow,{children:[(0,b.jsxs)(s.TableCell,{children:[(0,b.jsxs)("p",{className:"font-medium",children:[f.issueKey," · ",f.summary]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:f.projectKey})]}),(0,b.jsx)(s.TableCell,{children:f.status??"—"}),(0,b.jsx)(s.TableCell,{children:(0,b.jsx)(l.Badge,{children:f.coverage})}),(0,b.jsx)(s.TableCell,{children:(0,b.jsx)(l.Badge,{className:f.stale?"border-amber-500/30 bg-amber-500/10 text-amber-700 dark:text-amber-300":x("CACHE"),children:f.stale?a("stale"):a("fresh")})}),(0,b.jsx)(s.TableCell,{children:w(f.detailFetchedAt??f.summaryFetchedAt)}),(0,b.jsx)(s.TableCell,{children:(0,b.jsxs)("div",{className:"flex justify-end gap-1",children:[(0,b.jsx)(m.Button,{asChild:!0,size:"icon-sm",variant:"ghost",children:(0,b.jsxs)(t.Link,{href:`/jira/cache/tickets/${f.issueKey}`,children:[(0,b.jsx)(d.ExternalLink,{}),(0,b.jsx)("span",{className:"sr-only",children:a("open")})]})}),(0,b.jsxs)(m.Button,{disabled:K===f.issueKey,onClick:()=>void R(f.issueKey),size:"icon-sm",variant:"ghost",children:[(0,b.jsx)(e.RefreshCw,{className:K===f.issueKey?"animate-spin":void 0}),(0,b.jsx)("span",{className:"sr-only",children:a("refresh")})]}),(0,b.jsx)(j.ConfirmationDialog,{actionLabel:a("delete"),cancelLabel:c("cancel"),description:c("cannotBeUndone"),onConfirm:()=>S(f.issueKey),title:a("confirmDeleteTicket",{issueKey:f.issueKey}),trigger:(0,b.jsxs)(m.Button,{disabled:K===f.issueKey,size:"icon-sm",variant:"ghost",children:[(0,b.jsx)(g.Trash2,{}),(0,b.jsx)("span",{className:"sr-only",children:a("delete")})]})})]})})]},f.issueKey))})]}),(0,b.jsx)(B,{offset:G,setOffset:H,total:n.jiraCachedTickets.total})]})})]})]})}])}];
6
+ }`,{limit:50,callOffset:E,ticketOffset:G});o(a),D(String(Math.round(a.jiraSettings.cacheTtlSeconds/60))),N(null)}catch(a){N(a instanceof Error?a.message:String(a))}finally{J(!1)}},[E,G]);(0,i.useEffect)(()=>{let a=window.setTimeout(()=>void O(),0);return()=>window.clearTimeout(a)},[O]);let P=async a=>{a.preventDefault(),L("ttl");try{await (0,u.controlPlaneRequest)("mutation UpdateJiraCacheTtl($ttlMinutes: Int!) { updateJiraCacheTtl(ttlMinutes: $ttlMinutes) { cacheTtlSeconds } }",{ttlMinutes:Number(C)}),await O()}catch(a){N(a instanceof Error?a.message:String(a))}finally{L(null)}},Q=async()=>{L("clear");try{await (0,u.controlPlaneRequest)("mutation { clearJiraCache }"),H(0),await O()}catch(a){N(a instanceof Error?a.message:String(a))}finally{L(null)}},R=async a=>{L(a);try{await (0,u.controlPlaneRequest)("mutation RefreshCachedTicket($issueKey: ID!) { refreshJiraCachedTicket(issueKey: $issueKey) { key } }",{issueKey:a}),await O()}catch(a){N(a instanceof Error?a.message:String(a))}finally{L(null)}},S=async a=>{L(a);try{await (0,u.controlPlaneRequest)("mutation DeleteCachedTicket($issueKey: ID!) { deleteJiraCachedTicket(issueKey: $issueKey) }",{issueKey:a}),await O()}catch(a){N(a instanceof Error?a.message:String(a))}finally{L(null)}};return(0,b.jsxs)("section",{className:"mx-auto flex w-full max-w-[1500px] flex-col gap-6",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:a("title")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a("description")})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsxs)("form",{className:"flex gap-2",onSubmit:a=>void P(a),children:[(0,b.jsx)(q.Label,{className:"sr-only",htmlFor:"cache-ttl",children:a("ttl")}),(0,b.jsx)(p.Input,{className:"w-28",id:"cache-ttl",max:1440,min:1,onChange:a=>D(a.target.value),required:!0,type:"number",value:C}),(0,b.jsxs)(m.Button,{disabled:"ttl"===K,type:"submit",variant:"outline",children:[(0,b.jsx)(f.Save,{}),a("saveTtl")]})]}),(0,b.jsx)(j.ConfirmationDialog,{actionLabel:a("clearCache"),cancelLabel:c("cancel"),description:c("cannotBeUndone"),onConfirm:Q,title:a("confirmClear"),trigger:(0,b.jsxs)(m.Button,{disabled:"clear"===K,variant:"destructive",children:[(0,b.jsx)(g.Trash2,{}),a("clearCache")]})})]})]}),M&&(0,b.jsx)(k.Alert,{variant:"destructive",children:(0,b.jsx)(k.AlertDescription,{children:M})}),I&&!n?(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(r.Spinner,{}),a("loading")]}):n&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4",children:n.jiraCacheMetrics.windows.map(a=>(0,b.jsx)(y,{metric:a},a.window))}),(0,b.jsx)(z,{title:a("operationsTitle"),description:a("operationsDescription"),children:0===n.jiraCacheMetrics.operations.length?(0,b.jsx)(A,{children:a("noMetrics")}):(0,b.jsxs)(s.Table,{children:[(0,b.jsx)(s.TableHeader,{children:(0,b.jsxs)(s.TableRow,{children:[(0,b.jsx)(s.TableHead,{children:a("operation")}),n.jiraCacheMetrics.windows.map(a=>(0,b.jsx)(s.TableHead,{children:a.window},a.window))]})}),(0,b.jsx)(s.TableBody,{children:n.jiraCacheMetrics.operations.map(a=>(0,b.jsxs)(s.TableRow,{children:[(0,b.jsx)(s.TableCell,{className:"font-medium",children:a.operation.replaceAll("_"," ")}),a.windows.map(a=>(0,b.jsxs)(s.TableCell,{children:[(0,b.jsx)("span",{className:"font-medium",children:a.total}),(0,b.jsxs)("span",{className:"ml-2 text-xs text-muted-foreground",children:["L ",a.live," · C ",a.cache," · E"," ",a.errors]})]},a.window))]},a.operation))})]})}),(0,b.jsx)(z,{title:a("recentTitle"),description:a("recentDescription"),children:0===n.jiraApiCalls.items.length?(0,b.jsx)(A,{children:a("noCalls")}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(s.Table,{children:[(0,b.jsx)(s.TableHeader,{children:(0,b.jsxs)(s.TableRow,{children:[(0,b.jsx)(s.TableHead,{children:a("time")}),(0,b.jsx)(s.TableHead,{children:a("operation")}),(0,b.jsx)(s.TableHead,{children:a("fetched")}),(0,b.jsx)(s.TableHead,{children:a("source")}),(0,b.jsx)(s.TableHead,{children:a("duration")}),(0,b.jsx)(s.TableHead,{children:a("error")})]})}),(0,b.jsx)(s.TableBody,{children:n.jiraApiCalls.items.map(c=>(0,b.jsxs)(s.TableRow,{children:[(0,b.jsx)(s.TableCell,{children:w(c.createdAt)}),(0,b.jsx)(s.TableCell,{className:"font-medium",children:c.operation.replaceAll("_"," ")}),(0,b.jsxs)(s.TableCell,{className:"max-w-sm whitespace-normal",children:[c.requestSummary,null!==c.itemCount?` \xb7 ${c.itemCount}`:""]}),(0,b.jsx)(s.TableCell,{children:(0,b.jsxs)(l.Badge,{className:x(c.source),children:[a(`sources.${c.source}`),c.servedStale?` \xb7 ${a("stale")}`:""]})}),(0,b.jsxs)(s.TableCell,{children:[c.durationMs," ms"]}),(0,b.jsx)(s.TableCell,{className:"max-w-sm whitespace-normal text-destructive",children:c.error??"—"})]},c.id))})]}),(0,b.jsx)(B,{offset:E,setOffset:F,total:n.jiraApiCalls.total})]})}),(0,b.jsx)(z,{title:a("ticketsTitle"),description:a("ticketsDescription"),children:0===n.jiraCachedTickets.items.length?(0,b.jsx)(A,{children:a("noTickets")}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(s.Table,{children:[(0,b.jsx)(s.TableHeader,{children:(0,b.jsxs)(s.TableRow,{children:[(0,b.jsx)(s.TableHead,{children:a("ticket")}),(0,b.jsx)(s.TableHead,{children:a("status")}),(0,b.jsx)(s.TableHead,{children:a("coverage")}),(0,b.jsx)(s.TableHead,{children:a("freshness")}),(0,b.jsx)(s.TableHead,{children:a("lastFetched")}),(0,b.jsx)(s.TableHead,{className:"text-right",children:a("actions")})]})}),(0,b.jsx)(s.TableBody,{children:n.jiraCachedTickets.items.map(f=>(0,b.jsxs)(s.TableRow,{children:[(0,b.jsxs)(s.TableCell,{children:[(0,b.jsxs)("p",{className:"font-medium",children:[f.issueKey," · ",f.summary]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:f.projectKey})]}),(0,b.jsx)(s.TableCell,{children:f.status??"—"}),(0,b.jsx)(s.TableCell,{children:(0,b.jsx)(l.Badge,{children:f.coverage})}),(0,b.jsx)(s.TableCell,{children:(0,b.jsx)(l.Badge,{className:f.stale?"border-amber-500/30 bg-amber-500/10 text-amber-700 dark:text-amber-300":x("CACHE"),children:f.stale?a("stale"):a("fresh")})}),(0,b.jsx)(s.TableCell,{children:w(f.detailFetchedAt??f.summaryFetchedAt)}),(0,b.jsx)(s.TableCell,{children:(0,b.jsxs)("div",{className:"flex justify-end gap-1",children:[(0,b.jsx)(m.Button,{asChild:!0,size:"icon-sm",variant:"ghost",children:(0,b.jsxs)(t.Link,{href:`/jira/cache/tickets/${f.issueKey}`,children:[(0,b.jsx)(d.ExternalLink,{}),(0,b.jsx)("span",{className:"sr-only",children:a("open")})]})}),(0,b.jsxs)(m.Button,{disabled:K===f.issueKey,onClick:()=>void R(f.issueKey),size:"icon-sm",variant:"ghost",children:[(0,b.jsx)(e.RefreshCw,{className:K===f.issueKey?"animate-spin":void 0}),(0,b.jsx)("span",{className:"sr-only",children:a("refresh")})]}),(0,b.jsx)(j.ConfirmationDialog,{actionLabel:a("delete"),cancelLabel:c("cancel"),description:c("cannotBeUndone"),onConfirm:()=>S(f.issueKey),title:a("confirmDeleteTicket",{issueKey:f.issueKey}),trigger:(0,b.jsxs)(m.Button,{disabled:K===f.issueKey,size:"icon-sm",variant:"ghost",children:[(0,b.jsx)(g.Trash2,{}),(0,b.jsx)("span",{className:"sr-only",children:a("delete")})]})})]})})]},f.issueKey))})]}),(0,b.jsx)(B,{offset:G,setOffset:H,total:n.jiraCachedTickets.total})]})})]})]})}])}];
7
7
 
8
8
  //# sourceMappingURL=src_components_jira_cache-page_tsx_1znt1yl._.js.map
@@ -11,6 +11,6 @@ module.exports=[961514,a=>{"use strict";var b=a.i(187924),c=a.i(787037),d=a.i(21
11
11
  skipPendingSkillSync(runId: $runId) { ${B.SKILL_SYNC_RUN_FIELDS} }
12
12
  }`,{runId:a});K(b.skipPendingSkillSync),S(null)}catch(a){S(a instanceof Error?a.message:String(a))}finally{Q(!1)}},ar=async a=>{let b=a.candidatePackage?.package;if(b&&(U(a),Y(b.files.map(a=>({...a}))),$("SKILL.md"),aa("SKILL.md"),W([]),a.skill)){ac(!0);try{let b=await (0,A.controlPlaneRequest)(`query ConflictDatabasePackage($id: ID!) {
13
13
  skill(id: $id) { files { path contentsBase64 executable } }
14
- }`,{id:a.skill.id});W(b.skill?.files??[])}catch(a){S(a instanceof Error?a.message:String(a))}finally{ac(!1)}}},as=async()=>{if(!T?.candidatePackage?.package)return;let a=T.candidatePackage.package;await ao(T,"MANUAL",{...T.candidatePackage,package:{...a,files:X}})},at=async a=>{if(!a)return;let b=await Promise.all([...a].map(async a=>({path:a.name,contentsBase64:function(a){let b="";for(let c=0;c<a.length;c+=32768)b+=String.fromCharCode(...a.subarray(c,c+32768));return window.btoa(b)}(new Uint8Array(await a.arrayBuffer())),executable:!1})));Y(a=>[...a.filter(a=>!b.some(b=>b.path===a.path)),...b]),b[0]&&($(b[0].path),aa(b[0].path))};return N||!J?(0,b.jsxs)("div",{className:"flex gap-2 p-6 text-sm text-muted-foreground",children:[(0,b.jsx)(w.Spinner,{})," ",e("loadingSync")]}):(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-col gap-4 overflow-auto p-4 sm:p-6",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(p.Button,{asChild:!0,size:"icon",variant:"ghost",children:(0,b.jsx)(z.Link,{"aria-label":e("backToSkills"),href:"/skills",children:(0,b.jsx)(d.ArrowLeft,{})})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-2xl font-semibold",children:e("syncTitle")}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:J.group?e("syncGroupName",{name:J.group.name}):e("syncAllDescription")})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(o.Badge,{variant:"SUCCEEDED"===J.status?"secondary":"outline",children:G(J.status)}),ai.length>0&&(0,b.jsxs)(p.Button,{disabled:P,onClick:()=>void aq(),variant:"outline",children:[P?(0,b.jsx)(w.Spinner,{}):(0,b.jsx)(j,{})," ",e("skipPendingClients")]}),(0,b.jsxs)(p.Button,{disabled:P||!["READY","PARTIAL"].includes(J.status),onClick:()=>void ap(),children:[P?(0,b.jsx)(w.Spinner,{}):(0,b.jsx)(i.Play,{})," ",e("applySync")]})]})]}),R&&(0,b.jsx)(n.Alert,{variant:"destructive",children:(0,b.jsx)(n.AlertDescription,{children:R})}),ah.length>0&&(0,b.jsxs)(q.Card,{className:"gap-0 py-0",children:[(0,b.jsxs)(q.CardHeader,{className:"border-b py-4",children:[(0,b.jsx)(q.CardTitle,{children:e("syncAgents")}),(0,b.jsx)(q.CardDescription,{children:e("syncAgentsDescription")})]}),(0,b.jsx)(q.CardContent,{className:"px-0",children:(0,b.jsxs)(x.Table,{children:[(0,b.jsx)(x.TableHeader,{children:(0,b.jsxs)(x.TableRow,{children:[(0,b.jsx)(x.TableHead,{children:e("agent")}),(0,b.jsx)(x.TableHead,{children:e("connection")}),(0,b.jsx)(x.TableHead,{children:e("operation")}),(0,b.jsx)(x.TableHead,{children:e("syncStatus")})]})}),(0,b.jsx)(x.TableBody,{children:ah.map(a=>{let c=a.agent?.connectionStatus==="ONLINE";return(0,b.jsxs)(x.TableRow,{children:[(0,b.jsx)(x.TableCell,{className:"font-medium",children:a.agent?.name??e("unknownAgent")}),(0,b.jsx)(x.TableCell,{children:(0,b.jsx)(o.Badge,{className:c?"border-emerald-500/30 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300":void 0,variant:c?"outline":"secondary",children:G(I(c?"online":"offline"))})}),(0,b.jsx)(x.TableCell,{children:(0,b.jsx)(o.Badge,{variant:"outline",children:G(a.direction)})}),(0,b.jsx)(x.TableCell,{children:(0,b.jsx)(o.Badge,{variant:"FAILED"===a.status?"destructive":"COMPLETE"===a.status||"SUCCEEDED"===a.status?"secondary":"outline",children:G(a.status)})})]},a.id)})})]})})]}),(0,b.jsxs)(q.Card,{className:"gap-0 py-0",children:[(0,b.jsxs)(q.CardHeader,{className:"border-b py-4",children:[(0,b.jsx)(q.CardTitle,{children:e("syncChanges")}),(0,b.jsx)(q.CardDescription,{children:e("syncChangesDescription")})]}),(0,b.jsx)(q.CardContent,{className:"px-0",children:(0,b.jsxs)(x.Table,{children:[(0,b.jsx)(x.TableHeader,{children:(0,b.jsxs)(x.TableRow,{children:[(0,b.jsx)(x.TableHead,{children:e("change")}),(0,b.jsx)(x.TableHead,{children:e("name")}),(0,b.jsx)(x.TableHead,{children:e("agent")}),(0,b.jsx)(x.TableHead,{children:e("location")}),(0,b.jsx)(x.TableHead,{children:e("status")}),(0,b.jsx)(x.TableHead,{children:e("resolution")})]})}),(0,b.jsxs)(x.TableBody,{children:[ag.map(a=>{var d;let i=a.candidatePackage?.projectGroupRequired,j="IMPORT"===a.direction&&a.installation&&!a.installation.tracked;return(0,b.jsxs)(x.TableRow,{children:[(0,b.jsx)(x.TableCell,{children:(0,b.jsxs)(o.Badge,{className:"gap-1",variant:"CONFLICT"===a.direction?"destructive":"outline",children:["IMPORT"===(d=a.direction)?(0,b.jsx)(c.ArrowDownToLine,{}):"EXPORT"===d?(0,b.jsx)(f,{}):"DELETE_REDUNDANT"===d?(0,b.jsx)(k.Trash2,{}):"CONFLICT"===d?(0,b.jsx)(h.GitCompareArrows,{}):(0,b.jsx)(g.Check,{})," ",G(a.direction)]})}),(0,b.jsx)(x.TableCell,{className:"font-medium",children:a.skill?.name??a.installation?.skillName??"—"}),(0,b.jsx)(x.TableCell,{children:a.agent?.name??a.installation?.agent.name??"—"}),(0,b.jsx)(x.TableCell,{className:"max-w-md whitespace-normal font-mono text-xs",children:a.installation?.rootPath??e("newSharedLocation")}),(0,b.jsx)(x.TableCell,{children:(0,b.jsx)(o.Badge,{variant:"BLOCKED"===a.status?"destructive":"READY"===a.status||"COMPLETE"===a.status?"secondary":"outline",children:G(a.status)})}),(0,b.jsxs)(x.TableCell,{children:[i&&"BLOCKED"===a.status&&(0,b.jsxs)(v.Select,{onValueChange:b=>ae(c=>({...c,[a.id]:b===C?"":b})),value:ad[a.id]||C,children:[(0,b.jsx)(v.SelectTrigger,{className:"mb-1 w-full min-w-48",size:"sm",children:(0,b.jsx)(v.SelectValue,{placeholder:e("chooseGroup")})}),(0,b.jsxs)(v.SelectContent,{align:"start",children:[(0,b.jsx)(v.SelectItem,{value:C,children:e("chooseGroup")}),L.map(a=>(0,b.jsx)(v.SelectItem,{value:a.id,children:a.name},a.id))]})]}),"BLOCKED"===a.status?(0,b.jsxs)("div",{className:"flex flex-wrap gap-1",children:[a.skill&&(0,b.jsx)(p.Button,{disabled:P,onClick:()=>void ao(a,"DATABASE"),size:"sm",variant:"outline",children:e("useDatabase")}),a.candidatePackage?.package&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(p.Button,{disabled:P||i&&!ad[a.id],onClick:()=>void ao(a,"TARGET"),size:"sm",variant:"outline",children:e("useTarget")}),(0,b.jsxs)(p.Button,{disabled:P,onClick:()=>void ar(a),size:"sm",variant:"outline",children:[(0,b.jsx)(h.GitCompareArrows,{})," ",e("compareAndResolve")]})]}),j&&(0,b.jsxs)(p.Button,{disabled:P,onClick:()=>void ao(a,"DELETE"),size:"sm",variant:"destructive",children:[(0,b.jsx)(k.Trash2,{})," ",e("deleteClientCopy")]}),(0,b.jsx)(p.Button,{disabled:P,onClick:()=>void ao(a,"SKIP"),size:"sm",variant:"outline",children:e("skip")})]}):j&&"READY"===a.status?(0,b.jsxs)(p.Button,{disabled:P,onClick:()=>void ao(a,"DELETE"),size:"sm",variant:"destructive",children:[(0,b.jsx)(k.Trash2,{})," ",e("deleteClientCopy")]}):a.resolution?G(a.resolution):"—"]})]},a.id)}),!ag.length&&(0,b.jsx)(x.TableRow,{children:(0,b.jsx)(x.TableCell,{className:"py-10 text-center text-muted-foreground",colSpan:6,children:"PREPARING"===J.status?e("scanningAgents"):e("noSyncChanges")})})]})]})})]}),(0,b.jsx)(s.Dialog,{onOpenChange:a=>{a||(U(null),W([]),Y([]))},open:!!T,children:(0,b.jsxs)(s.DialogContent,{className:"flex max-h-[92vh] flex-col overflow-hidden sm:max-w-6xl",children:[(0,b.jsxs)(s.DialogHeader,{className:"shrink-0",children:[(0,b.jsx)(s.DialogTitle,{children:e("manualResolution")}),(0,b.jsx)(s.DialogDescription,{children:e("manualResolutionDescription")})]}),(0,b.jsxs)("div",{className:"flex shrink-0 flex-wrap gap-2",children:[(0,b.jsxs)(p.Button,{disabled:!V.length||ab,onClick:()=>Y(V.map(a=>({...a}))),size:"sm",variant:"outline",children:[ab?(0,b.jsx)(w.Spinner,{}):(0,b.jsx)(c.ArrowDownToLine,{})," ",e("startFromDatabase")]}),(0,b.jsxs)(p.Button,{disabled:!aj.length,onClick:()=>Y(aj.map(a=>({...a}))),size:"sm",variant:"outline",children:[(0,b.jsx)(c.ArrowDownToLine,{})," ",e("startFromTarget")]}),(0,b.jsx)(p.Button,{asChild:!0,size:"sm",variant:"outline",children:(0,b.jsx)(u.Label,{className:"cursor-pointer",htmlFor:"manual-package-upload",children:e("addFiles")})}),(0,b.jsx)(t.Input,{className:"sr-only",id:"manual-package-upload",multiple:!0,onChange:a=>void at(a.currentTarget.files),type:"file"})]}),(0,b.jsxs)("div",{className:"grid min-h-0 flex-1 gap-4 overflow-y-auto lg:grid-cols-[14rem_minmax(0,1fr)]",children:[(0,b.jsxs)("div",{className:"space-y-1 rounded-md border p-2",children:[(0,b.jsx)("p",{className:"px-2 py-1 text-xs font-medium text-muted-foreground",children:e("packageFiles")}),ak.map(a=>(0,b.jsx)("button",{className:`block w-full truncate rounded px-2 py-1.5 text-left font-mono text-xs ${a===Z?"bg-accent text-accent-foreground":"hover:bg-muted"}`,onClick:()=>{$(a),aa(a)},type:"button",children:a},a))]}),(0,b.jsxs)("div",{className:"min-w-0 space-y-4",children:[(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,b.jsxs)("div",{className:"min-w-0 space-y-2",children:[(0,b.jsx)(u.Label,{children:e("databaseVersion")}),ab?(0,b.jsx)(w.Spinner,{}):(0,b.jsx)(H,{binaryLabel:e("binaryPreview"),executableLabel:e("executable"),file:al,missingLabel:e("missingFile")})]}),(0,b.jsxs)("div",{className:"min-w-0 space-y-2",children:[(0,b.jsx)(u.Label,{children:e("targetVersion")}),(0,b.jsx)(H,{binaryLabel:e("binaryPreview"),executableLabel:e("executable"),file:am,missingLabel:e("missingFile")})]})]}),(0,b.jsxs)("div",{className:"space-y-3 rounded-md border p-3",children:[(0,b.jsx)(u.Label,{children:e("resultVersion")}),an?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,b.jsxs)("div",{className:"min-w-64 flex-1 space-y-1",children:[(0,b.jsx)(u.Label,{htmlFor:"manual-file-path",children:e("filePath")}),(0,b.jsx)(t.Input,{id:"manual-file-path",onChange:a=>aa(a.target.value),value:_})]}),(0,b.jsx)(p.Button,{disabled:!_.trim()||_.trim()!==an.path&&X.some(a=>a.path===_.trim()),onClick:()=>{let a=_.trim().replaceAll("\\","/");!an||!a||a!==an.path&&X.some(b=>b.path===a)||(Y(b=>b.map(b=>b.path===an.path?{...b,path:a}:b)),$(a),aa(a))},variant:"outline",children:e("rename")}),(0,b.jsxs)(u.Label,{className:"flex h-8 items-center gap-2 rounded-lg border px-3",children:[(0,b.jsx)(r.Checkbox,{checked:an.executable,onCheckedChange:a=>Y(b=>b.map(b=>b.path===an.path?{...b,executable:!0===a}:b))}),e("executable")]}),(0,b.jsxs)(p.Button,{disabled:"SKILL.md"===an.path,onClick:()=>{Y(a=>a.filter(a=>a.path!==an.path));let a=ak.find(a=>a!==an.path);$(a??"SKILL.md"),aa(a??"SKILL.md")},variant:"destructive",children:[(0,b.jsx)(k.Trash2,{})," ",e("removeFile")]})]}),null===F(an)?(0,b.jsxs)("div",{className:"space-y-2 rounded-md bg-muted/30 p-3 text-sm text-muted-foreground",children:[(0,b.jsx)("p",{children:e("binaryFile")}),(0,b.jsxs)("p",{children:[E(an.contentsBase64).byteLength.toLocaleString()," ","B"]})]}):(0,b.jsx)(y.Textarea,{className:"min-h-48 font-mono text-xs",onChange:a=>Y(b=>b.map(b=>b.path===an.path?{...b,contentsBase64:function(a){let b=new TextEncoder().encode(a),c="";for(let a of b)c+=String.fromCharCode(a);return window.btoa(c)}(a.target.value)}:b)),value:F(an)??""})]}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:e("missingResultFile")})]})]})]}),(0,b.jsx)(s.DialogFooter,{className:"shrink-0",children:(0,b.jsxs)(p.Button,{disabled:P||!X.some(a=>"SKILL.md"===a.path)||T?.candidatePackage?.projectGroupRequired===!0&&!ad[T.id],onClick:()=>void as(),children:[P&&(0,b.jsx)(w.Spinner,{})," ",e("useManualVersion")]})})]})})]})}],961514)}];
14
+ }`,{id:a.skill.id});W(b.skill?.files??[])}catch(a){S(a instanceof Error?a.message:String(a))}finally{ac(!1)}}},as=async()=>{if(!T?.candidatePackage?.package)return;let a=T.candidatePackage.package;await ao(T,"MANUAL",{...T.candidatePackage,package:{...a,files:X}})},at=async a=>{if(!a)return;let b=await Promise.all([...a].map(async a=>({path:a.name,contentsBase64:function(a){let b="";for(let c=0;c<a.length;c+=32768)b+=String.fromCharCode(...a.subarray(c,c+32768));return window.btoa(b)}(new Uint8Array(await a.arrayBuffer())),executable:!1})));Y(a=>[...a.filter(a=>!b.some(b=>b.path===a.path)),...b]),b[0]&&($(b[0].path),aa(b[0].path))};return N||!J?(0,b.jsxs)("div",{className:"flex gap-2 p-6 text-sm text-muted-foreground",children:[(0,b.jsx)(w.Spinner,{})," ",e("loadingSync")]}):(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-col gap-4 overflow-auto p-4 sm:p-6",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(p.Button,{asChild:!0,size:"icon",variant:"ghost",children:(0,b.jsx)(z.Link,{"aria-label":e("backToSkills"),href:"/skills",children:(0,b.jsx)(d.ArrowLeft,{})})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-2xl font-semibold",children:e("syncTitle")}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:J.group?e("syncGroupName",{name:J.group.name}):e("syncAllDescription")})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(o.Badge,{variant:"SUCCEEDED"===J.status?"secondary":"outline",children:G(J.status)}),ai.length>0&&(0,b.jsxs)(p.Button,{disabled:P,onClick:()=>void aq(),variant:"outline",children:[P?(0,b.jsx)(w.Spinner,{}):(0,b.jsx)(j,{})," ",e("skipPendingClients")]}),(0,b.jsxs)(p.Button,{disabled:P||!["READY","PARTIAL"].includes(J.status),onClick:()=>void ap(),children:[P?(0,b.jsx)(w.Spinner,{}):(0,b.jsx)(i.Play,{})," ",e("applySync")]})]})]}),R&&(0,b.jsx)(n.Alert,{variant:"destructive",children:(0,b.jsx)(n.AlertDescription,{children:R})}),ah.length>0&&(0,b.jsxs)(q.Card,{className:"gap-0 py-0",children:[(0,b.jsxs)(q.CardHeader,{className:"border-b py-4",children:[(0,b.jsx)(q.CardTitle,{children:e("syncAgents")}),(0,b.jsx)(q.CardDescription,{children:e("syncAgentsDescription")})]}),(0,b.jsx)(q.CardContent,{className:"px-0",children:(0,b.jsxs)(x.Table,{children:[(0,b.jsx)(x.TableHeader,{children:(0,b.jsxs)(x.TableRow,{children:[(0,b.jsx)(x.TableHead,{children:e("agent")}),(0,b.jsx)(x.TableHead,{children:e("connection")}),(0,b.jsx)(x.TableHead,{children:e("operation")}),(0,b.jsx)(x.TableHead,{children:e("syncStatus")})]})}),(0,b.jsx)(x.TableBody,{children:ah.map(a=>{let c=a.agent?.connectionStatus==="ONLINE";return(0,b.jsxs)(x.TableRow,{children:[(0,b.jsx)(x.TableCell,{className:"font-medium",children:a.agent?.name??e("unknownAgent")}),(0,b.jsx)(x.TableCell,{children:(0,b.jsx)(o.Badge,{className:c?"border-emerald-500/30 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300":void 0,variant:c?"outline":"secondary",children:I(c?"online":"offline")})}),(0,b.jsx)(x.TableCell,{children:(0,b.jsx)(o.Badge,{variant:"outline",children:G(a.direction)})}),(0,b.jsx)(x.TableCell,{children:(0,b.jsx)(o.Badge,{variant:"FAILED"===a.status?"destructive":"COMPLETE"===a.status||"SUCCEEDED"===a.status?"secondary":"outline",children:G(a.status)})})]},a.id)})})]})})]}),(0,b.jsxs)(q.Card,{className:"gap-0 py-0",children:[(0,b.jsxs)(q.CardHeader,{className:"border-b py-4",children:[(0,b.jsx)(q.CardTitle,{children:e("syncChanges")}),(0,b.jsx)(q.CardDescription,{children:e("syncChangesDescription")})]}),(0,b.jsx)(q.CardContent,{className:"px-0",children:(0,b.jsxs)(x.Table,{children:[(0,b.jsx)(x.TableHeader,{children:(0,b.jsxs)(x.TableRow,{children:[(0,b.jsx)(x.TableHead,{children:e("change")}),(0,b.jsx)(x.TableHead,{children:e("name")}),(0,b.jsx)(x.TableHead,{children:e("agent")}),(0,b.jsx)(x.TableHead,{children:e("location")}),(0,b.jsx)(x.TableHead,{children:e("status")}),(0,b.jsx)(x.TableHead,{children:e("resolution")})]})}),(0,b.jsxs)(x.TableBody,{children:[ag.map(a=>{var d;let i=a.candidatePackage?.projectGroupRequired,j="IMPORT"===a.direction&&a.installation&&!a.installation.tracked;return(0,b.jsxs)(x.TableRow,{children:[(0,b.jsx)(x.TableCell,{children:(0,b.jsxs)(o.Badge,{className:"gap-1",variant:"CONFLICT"===a.direction?"destructive":"outline",children:["IMPORT"===(d=a.direction)?(0,b.jsx)(c.ArrowDownToLine,{}):"EXPORT"===d?(0,b.jsx)(f,{}):"DELETE_REDUNDANT"===d?(0,b.jsx)(k.Trash2,{}):"CONFLICT"===d?(0,b.jsx)(h.GitCompareArrows,{}):(0,b.jsx)(g.Check,{})," ",G(a.direction)]})}),(0,b.jsx)(x.TableCell,{className:"font-medium",children:a.skill?.name??a.installation?.skillName??"—"}),(0,b.jsx)(x.TableCell,{children:a.agent?.name??a.installation?.agent.name??"—"}),(0,b.jsx)(x.TableCell,{className:"max-w-md whitespace-normal font-mono text-xs",children:a.installation?.rootPath??e("newSharedLocation")}),(0,b.jsx)(x.TableCell,{children:(0,b.jsx)(o.Badge,{variant:"BLOCKED"===a.status?"destructive":"READY"===a.status||"COMPLETE"===a.status?"secondary":"outline",children:G(a.status)})}),(0,b.jsxs)(x.TableCell,{children:[i&&"BLOCKED"===a.status&&(0,b.jsxs)(v.Select,{onValueChange:b=>ae(c=>({...c,[a.id]:b===C?"":b})),value:ad[a.id]||C,children:[(0,b.jsx)(v.SelectTrigger,{className:"mb-1 w-full min-w-48",size:"sm",children:(0,b.jsx)(v.SelectValue,{placeholder:e("chooseGroup")})}),(0,b.jsxs)(v.SelectContent,{align:"start",children:[(0,b.jsx)(v.SelectItem,{value:C,children:e("chooseGroup")}),L.map(a=>(0,b.jsx)(v.SelectItem,{value:a.id,children:a.name},a.id))]})]}),"BLOCKED"===a.status?(0,b.jsxs)("div",{className:"flex flex-wrap gap-1",children:[a.skill&&(0,b.jsx)(p.Button,{disabled:P,onClick:()=>void ao(a,"DATABASE"),size:"sm",variant:"outline",children:e("useDatabase")}),a.candidatePackage?.package&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(p.Button,{disabled:P||i&&!ad[a.id],onClick:()=>void ao(a,"TARGET"),size:"sm",variant:"outline",children:e("useTarget")}),(0,b.jsxs)(p.Button,{disabled:P,onClick:()=>void ar(a),size:"sm",variant:"outline",children:[(0,b.jsx)(h.GitCompareArrows,{})," ",e("compareAndResolve")]})]}),j&&(0,b.jsxs)(p.Button,{disabled:P,onClick:()=>void ao(a,"DELETE"),size:"sm",variant:"destructive",children:[(0,b.jsx)(k.Trash2,{})," ",e("deleteClientCopy")]}),(0,b.jsx)(p.Button,{disabled:P,onClick:()=>void ao(a,"SKIP"),size:"sm",variant:"outline",children:e("skip")})]}):j&&"READY"===a.status?(0,b.jsxs)(p.Button,{disabled:P,onClick:()=>void ao(a,"DELETE"),size:"sm",variant:"destructive",children:[(0,b.jsx)(k.Trash2,{})," ",e("deleteClientCopy")]}):a.resolution?G(a.resolution):"—"]})]},a.id)}),!ag.length&&(0,b.jsx)(x.TableRow,{children:(0,b.jsx)(x.TableCell,{className:"py-10 text-center text-muted-foreground",colSpan:6,children:"PREPARING"===J.status?e("scanningAgents"):e("noSyncChanges")})})]})]})})]}),(0,b.jsx)(s.Dialog,{onOpenChange:a=>{a||(U(null),W([]),Y([]))},open:!!T,children:(0,b.jsxs)(s.DialogContent,{className:"flex max-h-[92vh] flex-col overflow-hidden sm:max-w-6xl",children:[(0,b.jsxs)(s.DialogHeader,{className:"shrink-0",children:[(0,b.jsx)(s.DialogTitle,{children:e("manualResolution")}),(0,b.jsx)(s.DialogDescription,{children:e("manualResolutionDescription")})]}),(0,b.jsxs)("div",{className:"flex shrink-0 flex-wrap gap-2",children:[(0,b.jsxs)(p.Button,{disabled:!V.length||ab,onClick:()=>Y(V.map(a=>({...a}))),size:"sm",variant:"outline",children:[ab?(0,b.jsx)(w.Spinner,{}):(0,b.jsx)(c.ArrowDownToLine,{})," ",e("startFromDatabase")]}),(0,b.jsxs)(p.Button,{disabled:!aj.length,onClick:()=>Y(aj.map(a=>({...a}))),size:"sm",variant:"outline",children:[(0,b.jsx)(c.ArrowDownToLine,{})," ",e("startFromTarget")]}),(0,b.jsx)(p.Button,{asChild:!0,size:"sm",variant:"outline",children:(0,b.jsx)(u.Label,{className:"cursor-pointer",htmlFor:"manual-package-upload",children:e("addFiles")})}),(0,b.jsx)(t.Input,{className:"sr-only",id:"manual-package-upload",multiple:!0,onChange:a=>void at(a.currentTarget.files),type:"file"})]}),(0,b.jsxs)("div",{className:"grid min-h-0 flex-1 gap-4 overflow-y-auto lg:grid-cols-[14rem_minmax(0,1fr)]",children:[(0,b.jsxs)("div",{className:"space-y-1 rounded-md border p-2",children:[(0,b.jsx)("p",{className:"px-2 py-1 text-xs font-medium text-muted-foreground",children:e("packageFiles")}),ak.map(a=>(0,b.jsx)("button",{className:`block w-full truncate rounded px-2 py-1.5 text-left font-mono text-xs ${a===Z?"bg-accent text-accent-foreground":"hover:bg-muted"}`,onClick:()=>{$(a),aa(a)},type:"button",children:a},a))]}),(0,b.jsxs)("div",{className:"min-w-0 space-y-4",children:[(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,b.jsxs)("div",{className:"min-w-0 space-y-2",children:[(0,b.jsx)(u.Label,{children:e("databaseVersion")}),ab?(0,b.jsx)(w.Spinner,{}):(0,b.jsx)(H,{binaryLabel:e("binaryPreview"),executableLabel:e("executable"),file:al,missingLabel:e("missingFile")})]}),(0,b.jsxs)("div",{className:"min-w-0 space-y-2",children:[(0,b.jsx)(u.Label,{children:e("targetVersion")}),(0,b.jsx)(H,{binaryLabel:e("binaryPreview"),executableLabel:e("executable"),file:am,missingLabel:e("missingFile")})]})]}),(0,b.jsxs)("div",{className:"space-y-3 rounded-md border p-3",children:[(0,b.jsx)(u.Label,{children:e("resultVersion")}),an?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,b.jsxs)("div",{className:"min-w-64 flex-1 space-y-1",children:[(0,b.jsx)(u.Label,{htmlFor:"manual-file-path",children:e("filePath")}),(0,b.jsx)(t.Input,{id:"manual-file-path",onChange:a=>aa(a.target.value),value:_})]}),(0,b.jsx)(p.Button,{disabled:!_.trim()||_.trim()!==an.path&&X.some(a=>a.path===_.trim()),onClick:()=>{let a=_.trim().replaceAll("\\","/");!an||!a||a!==an.path&&X.some(b=>b.path===a)||(Y(b=>b.map(b=>b.path===an.path?{...b,path:a}:b)),$(a),aa(a))},variant:"outline",children:e("rename")}),(0,b.jsxs)(u.Label,{className:"flex h-8 items-center gap-2 rounded-lg border px-3",children:[(0,b.jsx)(r.Checkbox,{checked:an.executable,onCheckedChange:a=>Y(b=>b.map(b=>b.path===an.path?{...b,executable:!0===a}:b))}),e("executable")]}),(0,b.jsxs)(p.Button,{disabled:"SKILL.md"===an.path,onClick:()=>{Y(a=>a.filter(a=>a.path!==an.path));let a=ak.find(a=>a!==an.path);$(a??"SKILL.md"),aa(a??"SKILL.md")},variant:"destructive",children:[(0,b.jsx)(k.Trash2,{})," ",e("removeFile")]})]}),null===F(an)?(0,b.jsxs)("div",{className:"space-y-2 rounded-md bg-muted/30 p-3 text-sm text-muted-foreground",children:[(0,b.jsx)("p",{children:e("binaryFile")}),(0,b.jsxs)("p",{children:[E(an.contentsBase64).byteLength.toLocaleString()," ","B"]})]}):(0,b.jsx)(y.Textarea,{className:"min-h-48 font-mono text-xs",onChange:a=>Y(b=>b.map(b=>b.path===an.path?{...b,contentsBase64:function(a){let b=new TextEncoder().encode(a),c="";for(let a of b)c+=String.fromCharCode(a);return window.btoa(c)}(a.target.value)}:b)),value:F(an)??""})]}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:e("missingResultFile")})]})]})]}),(0,b.jsx)(s.DialogFooter,{className:"shrink-0",children:(0,b.jsxs)(p.Button,{disabled:P||!X.some(a=>"SKILL.md"===a.path)||T?.candidatePackage?.projectGroupRequired===!0&&!ad[T.id],onClick:()=>void as(),children:[P&&(0,b.jsx)(w.Spinner,{})," ",e("useManualVersion")]})})]})})]})}],961514)}];
15
15
 
16
16
  //# sourceMappingURL=src_components_skills_skill-sync-page_tsx_15sidhb._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[696334,a=>{"use strict";var b=a.i(187924),c=a.i(787037),d=a.i(752562),e=a.i(727061),f=a.i(818213),g=a.i(403512),h=a.i(519783),i=a.i(233540),j=a.i(341476);let k=(0,a.i(164831).default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);var l=a.i(415925),m=a.i(572131),n=a.i(124348),o=a.i(786304),p=a.i(699570),q=a.i(591119),r=a.i(315055),s=a.i(814574),t=a.i(866718),u=a.i(870430),v=a.i(668684),w=a.i(206015),x=a.i(875083),y=a.i(555027),z=a.i(460280);let A={CURSOR:"Cursor",GITHUB_COPILOT:"GitHub Copilot",CODEX:"OpenAI Codex",CLAUDE:"Claude Code",OPENCODE:"OpenCode"},B=`
1
+ module.exports=[696334,a=>{"use strict";var b=a.i(187924),c=a.i(787037),d=a.i(164831);let e=(0,d.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);var f=a.i(752562),g=a.i(617770),h=a.i(727061),i=a.i(818213);let j=(0,d.default)("mouse-pointer-2",[["path",{d:"M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",key:"edeuup"}]]);var k=a.i(403512),l=a.i(519783),m=a.i(233540),n=a.i(341476);let o=(0,d.default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);var p=a.i(986708);let q=(0,d.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);var r=a.i(415925),s=a.i(572131),t=a.i(124348),u=a.i(786304),v=a.i(699570),w=a.i(591119),x=a.i(315055),y=a.i(814574),z=a.i(866718),A=a.i(870430),B=a.i(668684),C=a.i(580701),D=a.i(206015),E=a.i(875083),F=a.i(555027),G=a.i(460280);let H={CURSOR:"Cursor",GITHUB_COPILOT:"GitHub Copilot",CODEX:"OpenAI Codex",CLAUDE:"Claude Code",OPENCODE:"OpenCode"},I={CURSOR:j,GITHUB_COPILOT:p.Sparkles,CODEX:q,CLAUDE:e,OPENCODE:g.Code2},J=`
2
2
  query SkillsOverview($search: String) {
3
3
  skillsOverview(search: $search) {
4
4
  skills {
@@ -24,8 +24,8 @@ module.exports=[696334,a=>{"use strict";var b=a.i(187924),c=a.i(787037),d=a.i(75
24
24
  repositories { id name displayOrigin }
25
25
  }
26
26
  }
27
- `;function C(a,b){return"CURSOR"===b?a.cursorEnabled:"GITHUB_COPILOT"===b?a.githubCopilotEnabled:"CODEX"===b?a.codexEnabled:"CLAUDE"===b?a.claudeEnabled:a.openCodeEnabled}function D({overview:a}){let c=(0,l.useTranslations)("skills");return(0,b.jsxs)(q.Card,{className:"gap-0 py-0",children:[(0,b.jsxs)(q.CardHeader,{className:"border-b py-4",children:[(0,b.jsx)(q.CardTitle,{children:c("databaseSkills")}),(0,b.jsx)(q.CardDescription,{children:c("databaseSkillsDescription")})]}),(0,b.jsx)(q.CardContent,{className:"px-0",children:(0,b.jsxs)(w.Table,{children:[(0,b.jsx)(w.TableHeader,{children:(0,b.jsxs)(w.TableRow,{children:[(0,b.jsx)(w.TableHead,{children:c("name")}),(0,b.jsx)(w.TableHead,{children:c("skillDescription")}),(0,b.jsx)(w.TableHead,{children:c("scope")}),(0,b.jsx)(w.TableHead,{children:c("groups")}),(0,b.jsx)(w.TableHead,{children:c("files")}),(0,b.jsx)(w.TableHead,{children:c("updated")})]})}),(0,b.jsxs)(w.TableBody,{children:[a.skills.map(a=>(0,b.jsxs)(w.TableRow,{children:[(0,b.jsx)(w.TableCell,{children:(0,b.jsx)(y.Link,{className:"font-medium text-primary hover:underline",href:`/skills/${a.id}`,children:a.name})}),(0,b.jsx)(w.TableCell,{className:"max-w-lg whitespace-normal text-muted-foreground",children:a.description}),(0,b.jsx)(w.TableCell,{children:(0,b.jsx)(o.Badge,{variant:a.syncGlobally?"default":"secondary",children:a.syncGlobally?c("global"):c("projectOnly")})}),(0,b.jsx)(w.TableCell,{children:(0,b.jsx)("div",{className:"flex flex-wrap gap-1",children:a.groups.length?a.groups.map(a=>(0,b.jsx)(o.Badge,{variant:"outline",children:a.name},a.id)):"—"})}),(0,b.jsx)(w.TableCell,{children:a.files.length}),(0,b.jsx)(w.TableCell,{children:new Date(a.updatedAt).toLocaleString()})]},a.id)),!a.skills.length&&(0,b.jsx)(w.TableRow,{children:(0,b.jsx)(w.TableCell,{className:"py-10 text-center text-muted-foreground",colSpan:6,children:c("noSkills")})})]})]})})]})}function E({installations:a}){let e=(0,l.useTranslations)("skills");return(0,b.jsxs)(q.Card,{className:"gap-0 py-0",children:[(0,b.jsxs)(q.CardHeader,{className:"border-b py-4",children:[(0,b.jsx)(q.CardTitle,{children:e("clientSkills")}),(0,b.jsx)(q.CardDescription,{children:e("clientSkillsDescription")})]}),(0,b.jsx)(q.CardContent,{className:"px-0",children:(0,b.jsxs)(w.Table,{children:[(0,b.jsx)(w.TableHeader,{children:(0,b.jsxs)(w.TableRow,{children:[(0,b.jsx)(w.TableHead,{children:e("name")}),(0,b.jsx)(w.TableHead,{children:e("scope")}),(0,b.jsx)(w.TableHead,{children:e("agent")}),(0,b.jsx)(w.TableHead,{children:e("location")}),(0,b.jsx)(w.TableHead,{children:e("status")})]})}),(0,b.jsxs)(w.TableBody,{children:[a.map(a=>{let f=a.skill?a.skill.packageHash===a.packageHash?"UNCHANGED":"CONFLICT":"IMPORT";return(0,b.jsxs)(w.TableRow,{children:[(0,b.jsxs)(w.TableCell,{children:[(0,b.jsx)("div",{className:"font-medium",children:a.skillName}),(0,b.jsx)("div",{className:"max-w-md whitespace-normal text-xs text-muted-foreground",children:a.description})]}),(0,b.jsxs)(w.TableCell,{children:[(0,b.jsx)(o.Badge,{variant:"outline",children:"GLOBAL"===a.scope?e("global"):e("project")}),a.codebase&&(0,b.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:a.codebase.repository.name})]}),(0,b.jsx)(w.TableCell,{children:a.agent.name}),(0,b.jsxs)(w.TableCell,{className:"max-w-md whitespace-normal font-mono text-xs",children:[a.rootPath,a.tracked&&(0,b.jsx)(o.Badge,{className:"ml-2",variant:"secondary",children:e("tracked")})]}),(0,b.jsx)(w.TableCell,{children:"UNCHANGED"===f?(0,b.jsxs)(o.Badge,{className:"gap-1",variant:"secondary",children:[(0,b.jsx)(d.Check,{})," ",e("inSync")]}):"IMPORT"===f?(0,b.jsxs)(o.Badge,{className:"gap-1",variant:"outline",children:[(0,b.jsx)(c.ArrowDownToLine,{})," ",e("toDatabase")]}):(0,b.jsxs)(o.Badge,{className:"gap-1",variant:"destructive",children:[(0,b.jsx)(k,{})," ",e("conflict")]})})]},a.id)}),!a.length&&(0,b.jsx)(w.TableRow,{children:(0,b.jsx)(w.TableCell,{className:"py-10 text-center text-muted-foreground",colSpan:5,children:e("noClientSkills")})})]})]})})]})}function F({configuredCounts:a,onOpenChange:c,onSaved:d,open:e,settings:f}){let g=(0,l.useTranslations)("skills"),[h,i]=(0,m.useState)(f),[j,k]=(0,m.useState)(!1),[o,q]=(0,m.useState)(null),t=async()=>{k(!0);try{await (0,z.controlPlaneRequest)(`mutation SaveSkillSettings($input: SaveSkillSettingsInput!) {
27
+ `;function K(a,b){return"CURSOR"===b?a.cursorEnabled:"GITHUB_COPILOT"===b?a.githubCopilotEnabled:"CODEX"===b?a.codexEnabled:"CLAUDE"===b?a.claudeEnabled:a.openCodeEnabled}function L({overview:a}){let c=(0,r.useTranslations)("skills");return(0,b.jsxs)(w.Card,{className:"gap-0 py-0",children:[(0,b.jsxs)(w.CardHeader,{className:"border-b py-4",children:[(0,b.jsx)(w.CardTitle,{children:c("databaseSkills")}),(0,b.jsx)(w.CardDescription,{children:c("databaseSkillsDescription")})]}),(0,b.jsx)(w.CardContent,{className:"px-0",children:(0,b.jsxs)(D.Table,{children:[(0,b.jsx)(D.TableHeader,{children:(0,b.jsxs)(D.TableRow,{children:[(0,b.jsx)(D.TableHead,{children:c("name")}),(0,b.jsx)(D.TableHead,{children:c("skillDescription")}),(0,b.jsx)(D.TableHead,{children:c("scope")}),(0,b.jsx)(D.TableHead,{children:c("groups")}),(0,b.jsx)(D.TableHead,{children:c("files")}),(0,b.jsx)(D.TableHead,{children:c("updated")})]})}),(0,b.jsxs)(D.TableBody,{children:[a.skills.map(a=>(0,b.jsxs)(D.TableRow,{children:[(0,b.jsx)(D.TableCell,{children:(0,b.jsx)(F.Link,{className:"font-medium text-primary hover:underline",href:`/skills/${a.id}`,children:a.name})}),(0,b.jsx)(D.TableCell,{className:"max-w-lg whitespace-normal text-muted-foreground",children:a.description}),(0,b.jsx)(D.TableCell,{children:(0,b.jsx)(u.Badge,{variant:a.syncGlobally?"default":"secondary",children:a.syncGlobally?c("global"):c("projectOnly")})}),(0,b.jsx)(D.TableCell,{children:(0,b.jsx)("div",{className:"flex flex-wrap gap-1",children:a.groups.length?a.groups.map(a=>(0,b.jsx)(u.Badge,{variant:"outline",children:a.name},a.id)):"—"})}),(0,b.jsx)(D.TableCell,{children:a.files.length}),(0,b.jsx)(D.TableCell,{children:new Date(a.updatedAt).toLocaleString()})]},a.id)),!a.skills.length&&(0,b.jsx)(D.TableRow,{children:(0,b.jsx)(D.TableCell,{className:"py-10 text-center text-muted-foreground",colSpan:6,children:c("noSkills")})})]})]})})]})}function M({installations:a}){let d=(0,r.useTranslations)("skills");return(0,b.jsxs)(w.Card,{className:"gap-0 py-0",children:[(0,b.jsxs)(w.CardHeader,{className:"border-b py-4",children:[(0,b.jsx)(w.CardTitle,{children:d("clientSkills")}),(0,b.jsx)(w.CardDescription,{children:d("clientSkillsDescription")})]}),(0,b.jsx)(w.CardContent,{className:"px-0",children:(0,b.jsxs)(D.Table,{children:[(0,b.jsx)(D.TableHeader,{children:(0,b.jsxs)(D.TableRow,{children:[(0,b.jsx)(D.TableHead,{children:d("name")}),(0,b.jsx)(D.TableHead,{children:d("scope")}),(0,b.jsx)(D.TableHead,{children:d("agent")}),(0,b.jsx)(D.TableHead,{children:d("location")}),(0,b.jsx)(D.TableHead,{children:d("status")})]})}),(0,b.jsxs)(D.TableBody,{children:[a.map(a=>{let e=a.skill?a.skill.packageHash===a.packageHash?"UNCHANGED":"CONFLICT":"IMPORT";return(0,b.jsxs)(D.TableRow,{children:[(0,b.jsxs)(D.TableCell,{children:[(0,b.jsx)("div",{className:"font-medium",children:a.skillName}),(0,b.jsx)("div",{className:"max-w-md whitespace-normal text-xs text-muted-foreground",children:a.description})]}),(0,b.jsxs)(D.TableCell,{children:[(0,b.jsx)(u.Badge,{variant:"outline",children:"GLOBAL"===a.scope?d("global"):d("project")}),a.codebase&&(0,b.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:a.codebase.repository.name})]}),(0,b.jsx)(D.TableCell,{children:a.agent.name}),(0,b.jsxs)(D.TableCell,{className:"max-w-md whitespace-normal font-mono text-xs",children:[a.rootPath,a.tracked&&(0,b.jsx)(u.Badge,{className:"ml-2",variant:"secondary",children:d("tracked")})]}),(0,b.jsx)(D.TableCell,{children:"UNCHANGED"===e?(0,b.jsxs)(u.Badge,{className:"gap-1",variant:"secondary",children:[(0,b.jsx)(f.Check,{})," ",d("inSync")]}):"IMPORT"===e?(0,b.jsxs)(u.Badge,{className:"gap-1",variant:"outline",children:[(0,b.jsx)(c.ArrowDownToLine,{})," ",d("toDatabase")]}):(0,b.jsxs)(u.Badge,{className:"gap-1",variant:"destructive",children:[(0,b.jsx)(o,{})," ",d("conflict")]})})]},a.id)}),!a.length&&(0,b.jsx)(D.TableRow,{children:(0,b.jsx)(D.TableCell,{className:"py-10 text-center text-muted-foreground",colSpan:5,children:d("noClientSkills")})})]})]})})]})}function N({configuredCounts:a,onOpenChange:c,onSaved:d,open:e,settings:f}){let g=(0,r.useTranslations)("skills"),[h,i]=(0,s.useState)(f),[j,k]=(0,s.useState)(!1),[l,m]=(0,s.useState)(null),n=async()=>{k(!0);try{await (0,G.controlPlaneRequest)(`mutation SaveSkillSettings($input: SaveSkillSettingsInput!) {
28
28
  saveSkillSettings(input: $input) { updatedAt }
29
- }`,{input:{autoSyncProjectGroups:h.autoSyncProjectGroups,cursorEnabled:h.cursorEnabled,githubCopilotEnabled:h.githubCopilotEnabled,codexEnabled:h.codexEnabled,claudeEnabled:h.claudeEnabled,openCodeEnabled:h.openCodeEnabled}}),await d(),c(!1)}catch(a){q(a instanceof Error?a.message:String(a))}finally{k(!1)}};return(0,b.jsx)(s.Dialog,{onOpenChange:c,open:e,children:(0,b.jsxs)(s.DialogContent,{children:[(0,b.jsxs)(s.DialogHeader,{children:[(0,b.jsx)(s.DialogTitle,{children:g("settingsTitle")}),(0,b.jsx)(s.DialogDescription,{children:g("settingsDescription")})]}),o&&(0,b.jsx)(n.Alert,{variant:"destructive",children:(0,b.jsx)(n.AlertDescription,{children:o})}),(0,b.jsxs)("div",{className:"flex items-start gap-3 rounded-lg border p-3",children:[(0,b.jsx)(r.Checkbox,{checked:h.autoSyncProjectGroups,id:"skills-auto-sync",onCheckedChange:a=>i(b=>({...b,autoSyncProjectGroups:!0===a}))}),(0,b.jsxs)("div",{children:[(0,b.jsx)(u.Label,{htmlFor:"skills-auto-sync",children:g("autoSync")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:g("autoSyncHelp")})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(u.Label,{children:g("enabledTools")}),Object.keys(A).map(c=>{let d=C(h,c);return(0,b.jsxs)("div",{className:"flex items-center gap-3 rounded-md border px-3 py-2",children:[(0,b.jsx)(r.Checkbox,{checked:d,id:`skill-tool-${c}`,onCheckedChange:a=>{var b;return b=!0===a,void i(a=>({...a,..."CURSOR"===c?{cursorEnabled:b}:{},..."GITHUB_COPILOT"===c?{githubCopilotEnabled:b}:{},..."CODEX"===c?{codexEnabled:b}:{},..."CLAUDE"===c?{claudeEnabled:b}:{},..."OPENCODE"===c?{openCodeEnabled:b}:{}}))}}),(0,b.jsxs)(u.Label,{className:"flex flex-1 justify-between",htmlFor:`skill-tool-${c}`,children:[(0,b.jsx)("span",{children:A[c]}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a[c]>0?g("configuredAgents",{count:a[c]}):g("notDetected")})]})]},c)})]}),(0,b.jsx)(s.DialogFooter,{children:(0,b.jsxs)(p.Button,{disabled:j,onClick:()=>void t(),children:[j&&(0,b.jsx)(v.Spinner,{})," ",g("saveSettings")]})})]})})}a.s(["SkillsPage",0,function(){let a=(0,l.useTranslations)("skills"),c=(0,y.useRouter)(),[d,k]=(0,m.useState)(null),[o,q]=(0,m.useState)(""),[r,s]=(0,m.useState)("DATABASE"),[u,w]=(0,m.useState)(!1),[G,H]=(0,m.useState)(!0),[I,J]=(0,m.useState)(!1),[K,L]=(0,m.useState)(null),M=(0,m.useCallback)(async()=>{try{let a=await (0,z.controlPlaneRequest)(B,{search:o});k(a.skillsOverview),L(null)}catch(a){L(a instanceof Error?a.message:String(a))}finally{H(!1)}},[o]);(0,m.useEffect)(()=>{let a=window.setTimeout(()=>void M(),200);return()=>window.clearTimeout(a)},[M]);let N=(0,m.useMemo)(()=>d?Object.keys(A).filter(a=>C(d.settings,a)&&d.observations.some(b=>b.tool===a&&b.configured)):[],[d]),O=(0,m.useMemo)(()=>Object.fromEntries(Object.keys(A).map(a=>[a,d?.observations.filter(b=>b.tool===a&&b.configured).length??0])),[d]),P="DATABASE"===r||N.includes(r)?r:"DATABASE",Q=async()=>{J(!0);try{let a=await (0,z.controlPlaneRequest)("mutation PrepareSkillSync { prepareSkillSync(kind: ALL) { id } }");c.push(`/skills/sync/${a.prepareSkillSync.id}`)}catch(a){L(a instanceof Error?a.message:String(a))}finally{J(!1)}};return(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-col gap-4 overflow-auto p-4 sm:p-6",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:a("title")}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a("description")})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(p.Button,{asChild:!0,variant:"outline",children:(0,b.jsxs)(y.Link,{href:"/skills/groups",children:[(0,b.jsx)(f.FolderTree,{})," ",a("manageGroups")]})}),(0,b.jsxs)(p.Button,{onClick:()=>w(!0),variant:"outline",children:[(0,b.jsx)(j.Settings,{})," ",a("settings")]}),(0,b.jsx)(p.Button,{asChild:!0,variant:"outline",children:(0,b.jsxs)(y.Link,{href:"/skills/new",children:[(0,b.jsx)(g.Plus,{})," ",a("addSkill")]})}),(0,b.jsxs)(p.Button,{disabled:I,onClick:()=>void Q(),children:[I?(0,b.jsx)(v.Spinner,{}):(0,b.jsx)(h.RefreshCw,{})," ",a("syncAll")]})]})]}),K&&(0,b.jsx)(n.Alert,{variant:"destructive",children:(0,b.jsx)(n.AlertDescription,{children:K})}),(0,b.jsxs)("div",{className:"relative max-w-xl",children:[(0,b.jsx)(i.Search,{className:"absolute top-2.5 left-3 size-4 text-muted-foreground"}),(0,b.jsx)(t.Input,{"aria-label":a("search"),className:"pl-9",onChange:a=>q(a.target.value),placeholder:a("searchPlaceholder"),value:o})]}),(0,b.jsx)(x.Tabs,{onValueChange:s,value:P,children:(0,b.jsxs)(x.TabsList,{className:"h-auto flex-wrap justify-start",children:[(0,b.jsxs)(x.TabsTrigger,{value:"DATABASE",children:[(0,b.jsx)(e.Database,{})," ",a("database")]}),N.map(a=>(0,b.jsx)(x.TabsTrigger,{value:a,children:A[a]},a))]})}),G||!d?(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(v.Spinner,{})," ",a("loading")]}):"DATABASE"===P?(0,b.jsx)(D,{overview:d}):(0,b.jsx)(E,{installations:d.installations.filter(a=>a.consumers.includes(P))}),d&&(0,b.jsx)(F,{configuredCounts:O,onOpenChange:w,onSaved:M,open:u,settings:d.settings},`${d.settings.updatedAt}-${u?"open":"closed"}`)]})}],696334)}];
29
+ }`,{input:{autoSyncProjectGroups:h.autoSyncProjectGroups,cursorEnabled:h.cursorEnabled,githubCopilotEnabled:h.githubCopilotEnabled,codexEnabled:h.codexEnabled,claudeEnabled:h.claudeEnabled,openCodeEnabled:h.openCodeEnabled}}),await d(),c(!1)}catch(a){m(a instanceof Error?a.message:String(a))}finally{k(!1)}};return(0,b.jsx)(y.Dialog,{onOpenChange:c,open:e,children:(0,b.jsxs)(y.DialogContent,{children:[(0,b.jsxs)(y.DialogHeader,{children:[(0,b.jsx)(y.DialogTitle,{children:g("settingsTitle")}),(0,b.jsx)(y.DialogDescription,{children:g("settingsDescription")})]}),l&&(0,b.jsx)(t.Alert,{variant:"destructive",children:(0,b.jsx)(t.AlertDescription,{children:l})}),(0,b.jsxs)("div",{className:"flex items-start gap-3 rounded-lg border p-3",children:[(0,b.jsx)(x.Checkbox,{checked:h.autoSyncProjectGroups,id:"skills-auto-sync",onCheckedChange:a=>i(b=>({...b,autoSyncProjectGroups:!0===a}))}),(0,b.jsxs)("div",{children:[(0,b.jsx)(A.Label,{htmlFor:"skills-auto-sync",children:g("autoSync")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:g("autoSyncHelp")})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(A.Label,{children:g("enabledTools")}),Object.keys(H).map(c=>{let d=K(h,c);return(0,b.jsxs)("div",{className:"flex items-center gap-3 rounded-md border px-3 py-2",children:[(0,b.jsx)(x.Checkbox,{checked:d,id:`skill-tool-${c}`,onCheckedChange:a=>{var b;return b=!0===a,void i(a=>({...a,..."CURSOR"===c?{cursorEnabled:b}:{},..."GITHUB_COPILOT"===c?{githubCopilotEnabled:b}:{},..."CODEX"===c?{codexEnabled:b}:{},..."CLAUDE"===c?{claudeEnabled:b}:{},..."OPENCODE"===c?{openCodeEnabled:b}:{}}))}}),(0,b.jsxs)(A.Label,{className:"flex flex-1 justify-between",htmlFor:`skill-tool-${c}`,children:[(0,b.jsx)("span",{children:H[c]}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a[c]>0?g("configuredAgents",{count:a[c]}):g("notDetected")})]})]},c)})]}),(0,b.jsx)(y.DialogFooter,{children:(0,b.jsxs)(v.Button,{disabled:j,onClick:()=>void n(),children:[j&&(0,b.jsx)(B.Spinner,{})," ",g("saveSettings")]})})]})})}a.s(["SkillsPage",0,function(){let a=(0,r.useTranslations)("skills"),c=(0,F.useRouter)(),[d,e]=(0,s.useState)(null),[f,g]=(0,s.useState)(""),[j,o]=(0,s.useState)("DATABASE"),[p,q]=(0,s.useState)(!1),[u,w]=(0,s.useState)(!0),[x,y]=(0,s.useState)(!1),[A,D]=(0,s.useState)(null),O=(0,s.useCallback)(async()=>{try{let a=await (0,G.controlPlaneRequest)(J,{search:f});e(a.skillsOverview),D(null)}catch(a){D(a instanceof Error?a.message:String(a))}finally{w(!1)}},[f]);(0,s.useEffect)(()=>{let a=window.setTimeout(()=>void O(),200);return()=>window.clearTimeout(a)},[O]);let P=(0,s.useMemo)(()=>d?Object.keys(H).filter(a=>K(d.settings,a)&&d.observations.some(b=>b.tool===a&&b.configured)):[],[d]),Q=(0,s.useMemo)(()=>Object.fromEntries(Object.keys(H).map(a=>[a,d?.observations.filter(b=>b.tool===a&&b.configured).length??0])),[d]),R="DATABASE"===j||P.includes(j)?j:"DATABASE",S=async()=>{y(!0);try{let a=await (0,G.controlPlaneRequest)("mutation PrepareSkillSync { prepareSkillSync(kind: ALL) { id } }");c.push(`/skills/sync/${a.prepareSkillSync.id}`)}catch(a){D(a instanceof Error?a.message:String(a))}finally{y(!1)}};return(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-col gap-4 overflow-auto p-4 sm:p-6",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:a("title")}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a("description")})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(v.Button,{asChild:!0,variant:"outline",children:(0,b.jsxs)(F.Link,{href:"/skills/groups",children:[(0,b.jsx)(i.FolderTree,{})," ",a("manageGroups")]})}),(0,b.jsxs)(v.Button,{onClick:()=>q(!0),variant:"outline",children:[(0,b.jsx)(n.Settings,{})," ",a("settings")]}),(0,b.jsx)(v.Button,{asChild:!0,variant:"outline",children:(0,b.jsxs)(F.Link,{href:"/skills/new",children:[(0,b.jsx)(k.Plus,{})," ",a("addSkill")]})}),(0,b.jsxs)(v.Button,{disabled:x,onClick:()=>void S(),children:[x?(0,b.jsx)(B.Spinner,{}):(0,b.jsx)(l.RefreshCw,{})," ",a("syncAll")]})]})]}),A&&(0,b.jsx)(t.Alert,{variant:"destructive",children:(0,b.jsx)(t.AlertDescription,{children:A})}),(0,b.jsxs)("div",{className:"relative max-w-xl",children:[(0,b.jsx)(m.Search,{className:"absolute top-2.5 left-3 size-4 text-muted-foreground"}),(0,b.jsx)(z.Input,{"aria-label":a("search"),className:"pl-9",onChange:a=>g(a.target.value),placeholder:a("searchPlaceholder"),value:f})]}),(0,b.jsx)("div",{className:"sm:hidden",children:(0,b.jsxs)(C.Select,{onValueChange:o,value:R,children:[(0,b.jsx)(C.SelectTrigger,{"aria-label":a("skillSource"),className:"w-full",children:(0,b.jsx)(C.SelectValue,{})}),(0,b.jsxs)(C.SelectContent,{children:[(0,b.jsxs)(C.SelectItem,{value:"DATABASE",children:[(0,b.jsx)(h.Database,{})," ",a("database")]}),P.map(a=>{let c=I[a];return(0,b.jsxs)(C.SelectItem,{value:a,children:[(0,b.jsx)(c,{})," ",H[a]]},a)})]})]})}),(0,b.jsx)(E.Tabs,{className:"hidden sm:flex",onValueChange:o,value:R,children:(0,b.jsxs)(E.TabsList,{className:"h-auto flex-wrap justify-start",children:[(0,b.jsxs)(E.TabsTrigger,{value:"DATABASE",children:[(0,b.jsx)(h.Database,{})," ",a("database")]}),P.map(a=>{let c=I[a];return(0,b.jsxs)(E.TabsTrigger,{value:a,children:[(0,b.jsx)(c,{})," ",H[a]]},a)})]})}),u||!d?(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(B.Spinner,{})," ",a("loading")]}):"DATABASE"===R?(0,b.jsx)(L,{overview:d}):(0,b.jsx)(M,{installations:d.installations.filter(a=>a.consumers.includes(R))}),d&&(0,b.jsx)(N,{configuredCounts:Q,onOpenChange:q,onSaved:O,open:p,settings:d.settings},`${d.settings.updatedAt}-${p?"open":"closed"}`)]})}],696334)}];
30
30
 
31
31
  //# sourceMappingURL=src_components_skills_skills-page_tsx_0o1nlbg._.js.map