@nilsr0711/drydock 0.1.4 → 0.1.5

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 (227) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +2 -2
  3. package/.next/standalone/.next/build-manifest.json +5 -5
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  8. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  9. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
  10. package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +3 -3
  11. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  12. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  13. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
  15. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/adrs/page.js +2 -2
  18. package/.next/standalone/.next/server/app/adrs/page.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/adrs/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/analytics/page.js +2 -2
  21. package/.next/standalone/.next/server/app/analytics/page.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/api/cost/export/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/sse/dashboard/route.js +2 -2
  25. package/.next/standalone/.next/server/app/api/sse/dashboard/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/sse/jobs/[id]/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/webhooks/[repoId]/route.js +2 -2
  28. package/.next/standalone/.next/server/app/api/webhooks/[repoId]/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/costs/page.js +2 -2
  30. package/.next/standalone/.next/server/app/costs/page.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/costs/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/jobs/[id]/page.js +3 -3
  33. package/.next/standalone/.next/server/app/jobs/[id]/page.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/jobs/[id]/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/jobs/page.js +2 -2
  36. package/.next/standalone/.next/server/app/jobs/page.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/jobs/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/needs-human/page.js +2 -2
  39. package/.next/standalone/.next/server/app/needs-human/page.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/needs-human/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/page.js +2 -2
  42. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/prompts/page.js +2 -2
  45. package/.next/standalone/.next/server/app/prompts/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/prompts/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/repos/[id]/page.js +2 -2
  48. package/.next/standalone/.next/server/app/repos/[id]/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/repos/[id]/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/settings/page.js +2 -2
  51. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app-paths-manifest.json +2 -2
  54. package/.next/standalone/.next/server/chunks/198.js +1 -0
  55. package/.next/standalone/.next/server/chunks/279.js +1 -0
  56. package/.next/standalone/.next/server/chunks/318.js +2 -2
  57. package/.next/standalone/.next/server/chunks/417.js +1 -0
  58. package/.next/standalone/.next/server/chunks/468.js +3 -3
  59. package/.next/standalone/.next/server/chunks/471.js +1 -0
  60. package/.next/standalone/.next/server/chunks/496.js +1 -0
  61. package/.next/standalone/.next/server/chunks/511.js +1 -0
  62. package/.next/standalone/.next/server/chunks/665.js +1 -1
  63. package/.next/standalone/.next/server/chunks/847.js +93 -0
  64. package/.next/standalone/.next/server/chunks/{868.js → 997.js} +2 -2
  65. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  66. package/.next/standalone/.next/server/next-font-manifest.js +1 -1
  67. package/.next/standalone/.next/server/next-font-manifest.json +1 -1
  68. package/.next/standalone/.next/server/pages/500.html +1 -1
  69. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  71. package/.next/standalone/.next/static/chunks/165-f2c11a8b0992483d.js +1 -0
  72. package/.next/standalone/.next/static/chunks/174-34fe81abafec07fe.js +1 -0
  73. package/.next/standalone/.next/static/chunks/188-14494263cefd30a4.js +1 -0
  74. package/.next/standalone/.next/static/chunks/312-5ab18c6fbb20b9cc.js +1 -0
  75. package/.next/standalone/.next/static/chunks/381-b0d5a35969fad985.js +1 -0
  76. package/.next/standalone/.next/static/chunks/540-b0819a434d7516b1.js +1 -0
  77. package/.next/standalone/.next/static/chunks/586-d7d6e7d3794dcf02.js +32 -0
  78. package/.next/standalone/.next/static/chunks/730-ae05580815adb9b2.js +1 -0
  79. package/.next/standalone/.next/static/chunks/736-503f37bb672c129b.js +1 -0
  80. package/.next/{static/chunks/334-ac65cc1c43f3e786.js → standalone/.next/static/chunks/878-f08fd91a6c00d84b.js} +3 -3
  81. package/.next/standalone/.next/static/chunks/app/_global-error/page-03b9886f969453ed.js +1 -0
  82. package/.next/standalone/.next/static/chunks/app/_not-found/page-aa469cca9dc68961.js +1 -0
  83. package/.next/standalone/.next/static/chunks/app/adrs/page-ed0f94a800ba51c8.js +1 -0
  84. package/.next/standalone/.next/static/chunks/app/analytics/page-2d61245dbc9dd300.js +1 -0
  85. package/.next/standalone/.next/static/chunks/app/api/cost/export/route-03b9886f969453ed.js +1 -0
  86. package/.next/standalone/.next/static/chunks/app/api/sse/dashboard/route-03b9886f969453ed.js +1 -0
  87. package/.next/standalone/.next/static/chunks/app/api/sse/jobs/[id]/route-03b9886f969453ed.js +1 -0
  88. package/.next/standalone/.next/static/chunks/app/api/webhooks/[repoId]/route-03b9886f969453ed.js +1 -0
  89. package/.next/standalone/.next/static/chunks/app/costs/page-3eca75e55c68e079.js +1 -0
  90. package/.next/standalone/.next/static/chunks/app/jobs/[id]/page-528826c79cab6cbb.js +1 -0
  91. package/.next/standalone/.next/static/chunks/app/jobs/page-70bd2189d7249e3f.js +1 -0
  92. package/.next/standalone/.next/static/chunks/app/layout-0e04e8b455f51432.js +1 -0
  93. package/.next/standalone/.next/static/chunks/app/needs-human/page-90cc5147aadb3ebe.js +1 -0
  94. package/.next/standalone/.next/static/chunks/app/page-a142f2aa01a429d9.js +1 -0
  95. package/.next/standalone/.next/static/chunks/app/prompts/page-fba107f32faa6568.js +1 -0
  96. package/.next/standalone/.next/static/chunks/app/repos/[id]/page-0da8e297142d8567.js +1 -0
  97. package/.next/standalone/.next/static/chunks/app/settings/page-bd473b1d183c3db6.js +1 -0
  98. package/.next/standalone/.next/static/chunks/ec24c40a-fc218f196ad8b89e.js +1 -0
  99. package/.next/standalone/.next/static/chunks/framework-3631188fe017d11d.js +1 -0
  100. package/.next/standalone/.next/static/chunks/main-app-2ce5d113f02aa743.js +1 -0
  101. package/.next/standalone/.next/static/chunks/main-c73a28f721635e7a.js +5 -0
  102. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-03b9886f969453ed.js +1 -0
  103. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-03b9886f969453ed.js +1 -0
  104. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-3d82ee7a5f817d84.js +1 -0
  105. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-03b9886f969453ed.js +1 -0
  106. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-03b9886f969453ed.js +1 -0
  107. package/.next/standalone/.next/static/css/96c4f935104c1f9a.css +3 -0
  108. package/.next/standalone/package.json +1 -1
  109. package/.next/static/chunks/165-f2c11a8b0992483d.js +1 -0
  110. package/.next/static/chunks/174-34fe81abafec07fe.js +1 -0
  111. package/.next/static/chunks/188-14494263cefd30a4.js +1 -0
  112. package/.next/static/chunks/312-5ab18c6fbb20b9cc.js +1 -0
  113. package/.next/static/chunks/381-b0d5a35969fad985.js +1 -0
  114. package/.next/static/chunks/540-b0819a434d7516b1.js +1 -0
  115. package/.next/static/chunks/586-d7d6e7d3794dcf02.js +32 -0
  116. package/.next/static/chunks/730-ae05580815adb9b2.js +1 -0
  117. package/.next/static/chunks/736-503f37bb672c129b.js +1 -0
  118. package/.next/{standalone/.next/static/chunks/334-ac65cc1c43f3e786.js → static/chunks/878-f08fd91a6c00d84b.js} +3 -3
  119. package/.next/static/chunks/app/_global-error/page-03b9886f969453ed.js +1 -0
  120. package/.next/static/chunks/app/_not-found/page-aa469cca9dc68961.js +1 -0
  121. package/.next/static/chunks/app/adrs/page-ed0f94a800ba51c8.js +1 -0
  122. package/.next/static/chunks/app/analytics/page-2d61245dbc9dd300.js +1 -0
  123. package/.next/static/chunks/app/api/cost/export/route-03b9886f969453ed.js +1 -0
  124. package/.next/static/chunks/app/api/sse/dashboard/route-03b9886f969453ed.js +1 -0
  125. package/.next/static/chunks/app/api/sse/jobs/[id]/route-03b9886f969453ed.js +1 -0
  126. package/.next/static/chunks/app/api/webhooks/[repoId]/route-03b9886f969453ed.js +1 -0
  127. package/.next/static/chunks/app/costs/page-3eca75e55c68e079.js +1 -0
  128. package/.next/static/chunks/app/jobs/[id]/page-528826c79cab6cbb.js +1 -0
  129. package/.next/static/chunks/app/jobs/page-70bd2189d7249e3f.js +1 -0
  130. package/.next/static/chunks/app/layout-0e04e8b455f51432.js +1 -0
  131. package/.next/static/chunks/app/needs-human/page-90cc5147aadb3ebe.js +1 -0
  132. package/.next/static/chunks/app/page-a142f2aa01a429d9.js +1 -0
  133. package/.next/static/chunks/app/prompts/page-fba107f32faa6568.js +1 -0
  134. package/.next/static/chunks/app/repos/[id]/page-0da8e297142d8567.js +1 -0
  135. package/.next/static/chunks/app/settings/page-bd473b1d183c3db6.js +1 -0
  136. package/.next/static/chunks/ec24c40a-fc218f196ad8b89e.js +1 -0
  137. package/.next/static/chunks/framework-3631188fe017d11d.js +1 -0
  138. package/.next/static/chunks/main-app-2ce5d113f02aa743.js +1 -0
  139. package/.next/static/chunks/main-c73a28f721635e7a.js +5 -0
  140. package/.next/static/chunks/next/dist/client/components/builtin/app-error-03b9886f969453ed.js +1 -0
  141. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-03b9886f969453ed.js +1 -0
  142. package/.next/static/chunks/next/dist/client/components/builtin/global-error-3d82ee7a5f817d84.js +1 -0
  143. package/.next/static/chunks/next/dist/client/components/builtin/not-found-03b9886f969453ed.js +1 -0
  144. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-03b9886f969453ed.js +1 -0
  145. package/.next/static/css/96c4f935104c1f9a.css +3 -0
  146. package/package.json +1 -1
  147. package/.next/standalone/.next/server/chunks/462.js +0 -1
  148. package/.next/standalone/.next/server/chunks/537.js +0 -1
  149. package/.next/standalone/.next/server/chunks/675.js +0 -1
  150. package/.next/standalone/.next/server/chunks/785.js +0 -93
  151. package/.next/standalone/.next/server/chunks/859.js +0 -1
  152. package/.next/standalone/.next/static/chunks/0-539cfb6a78b205f0.js +0 -1
  153. package/.next/standalone/.next/static/chunks/131-754f0b3c6a7625f0.js +0 -1
  154. package/.next/standalone/.next/static/chunks/488-94313c3750ed9fec.js +0 -1
  155. package/.next/standalone/.next/static/chunks/586-4f743a204f11d627.js +0 -32
  156. package/.next/standalone/.next/static/chunks/626-25255b0a66c520cb.js +0 -1
  157. package/.next/standalone/.next/static/chunks/744-6b71dbc0b45f3dee.js +0 -1
  158. package/.next/standalone/.next/static/chunks/751-17d24a843c68c75a.js +0 -1
  159. package/.next/standalone/.next/static/chunks/77-ff0a9221f1786b0e.js +0 -1
  160. package/.next/standalone/.next/static/chunks/860-5c68ffeb97288824.js +0 -1
  161. package/.next/standalone/.next/static/chunks/app/_global-error/page-abc1c30fe033f680.js +0 -1
  162. package/.next/standalone/.next/static/chunks/app/_not-found/page-fbc46f6809bf01bc.js +0 -1
  163. package/.next/standalone/.next/static/chunks/app/adrs/page-d427443f113c3575.js +0 -1
  164. package/.next/standalone/.next/static/chunks/app/analytics/page-4154e54399ac6fb4.js +0 -1
  165. package/.next/standalone/.next/static/chunks/app/api/cost/export/route-abc1c30fe033f680.js +0 -1
  166. package/.next/standalone/.next/static/chunks/app/api/sse/dashboard/route-abc1c30fe033f680.js +0 -1
  167. package/.next/standalone/.next/static/chunks/app/api/sse/jobs/[id]/route-abc1c30fe033f680.js +0 -1
  168. package/.next/standalone/.next/static/chunks/app/api/webhooks/[repoId]/route-abc1c30fe033f680.js +0 -1
  169. package/.next/standalone/.next/static/chunks/app/costs/page-85ceb7f167a8095a.js +0 -1
  170. package/.next/standalone/.next/static/chunks/app/jobs/[id]/page-eb2e6d420c330df8.js +0 -1
  171. package/.next/standalone/.next/static/chunks/app/jobs/page-73240c8c9b0571cf.js +0 -1
  172. package/.next/standalone/.next/static/chunks/app/layout-717833ce6aaa45ee.js +0 -1
  173. package/.next/standalone/.next/static/chunks/app/needs-human/page-fd702f6eeab08820.js +0 -1
  174. package/.next/standalone/.next/static/chunks/app/page-43ce9934744597e6.js +0 -1
  175. package/.next/standalone/.next/static/chunks/app/prompts/page-ecd6816b8dd8b583.js +0 -1
  176. package/.next/standalone/.next/static/chunks/app/repos/[id]/page-df838c0805fce188.js +0 -1
  177. package/.next/standalone/.next/static/chunks/app/settings/page-3274e07b560fc8bc.js +0 -1
  178. package/.next/standalone/.next/static/chunks/ec24c40a-96b312d151fe54b7.js +0 -1
  179. package/.next/standalone/.next/static/chunks/framework-79acb3679912dc5b.js +0 -1
  180. package/.next/standalone/.next/static/chunks/main-a0c070ad11c80668.js +0 -5
  181. package/.next/standalone/.next/static/chunks/main-app-94b142817f01731e.js +0 -1
  182. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-abc1c30fe033f680.js +0 -1
  183. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-abc1c30fe033f680.js +0 -1
  184. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-0d321d74b6d9f17c.js +0 -1
  185. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-abc1c30fe033f680.js +0 -1
  186. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-abc1c30fe033f680.js +0 -1
  187. package/.next/standalone/.next/static/css/1f98a1f790475168.css +0 -3
  188. package/.next/static/chunks/0-539cfb6a78b205f0.js +0 -1
  189. package/.next/static/chunks/131-754f0b3c6a7625f0.js +0 -1
  190. package/.next/static/chunks/488-94313c3750ed9fec.js +0 -1
  191. package/.next/static/chunks/586-4f743a204f11d627.js +0 -32
  192. package/.next/static/chunks/626-25255b0a66c520cb.js +0 -1
  193. package/.next/static/chunks/744-6b71dbc0b45f3dee.js +0 -1
  194. package/.next/static/chunks/751-17d24a843c68c75a.js +0 -1
  195. package/.next/static/chunks/77-ff0a9221f1786b0e.js +0 -1
  196. package/.next/static/chunks/860-5c68ffeb97288824.js +0 -1
  197. package/.next/static/chunks/app/_global-error/page-abc1c30fe033f680.js +0 -1
  198. package/.next/static/chunks/app/_not-found/page-fbc46f6809bf01bc.js +0 -1
  199. package/.next/static/chunks/app/adrs/page-d427443f113c3575.js +0 -1
  200. package/.next/static/chunks/app/analytics/page-4154e54399ac6fb4.js +0 -1
  201. package/.next/static/chunks/app/api/cost/export/route-abc1c30fe033f680.js +0 -1
  202. package/.next/static/chunks/app/api/sse/dashboard/route-abc1c30fe033f680.js +0 -1
  203. package/.next/static/chunks/app/api/sse/jobs/[id]/route-abc1c30fe033f680.js +0 -1
  204. package/.next/static/chunks/app/api/webhooks/[repoId]/route-abc1c30fe033f680.js +0 -1
  205. package/.next/static/chunks/app/costs/page-85ceb7f167a8095a.js +0 -1
  206. package/.next/static/chunks/app/jobs/[id]/page-eb2e6d420c330df8.js +0 -1
  207. package/.next/static/chunks/app/jobs/page-73240c8c9b0571cf.js +0 -1
  208. package/.next/static/chunks/app/layout-717833ce6aaa45ee.js +0 -1
  209. package/.next/static/chunks/app/needs-human/page-fd702f6eeab08820.js +0 -1
  210. package/.next/static/chunks/app/page-43ce9934744597e6.js +0 -1
  211. package/.next/static/chunks/app/prompts/page-ecd6816b8dd8b583.js +0 -1
  212. package/.next/static/chunks/app/repos/[id]/page-df838c0805fce188.js +0 -1
  213. package/.next/static/chunks/app/settings/page-3274e07b560fc8bc.js +0 -1
  214. package/.next/static/chunks/ec24c40a-96b312d151fe54b7.js +0 -1
  215. package/.next/static/chunks/framework-79acb3679912dc5b.js +0 -1
  216. package/.next/static/chunks/main-a0c070ad11c80668.js +0 -5
  217. package/.next/static/chunks/main-app-94b142817f01731e.js +0 -1
  218. package/.next/static/chunks/next/dist/client/components/builtin/app-error-abc1c30fe033f680.js +0 -1
  219. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-abc1c30fe033f680.js +0 -1
  220. package/.next/static/chunks/next/dist/client/components/builtin/global-error-0d321d74b6d9f17c.js +0 -1
  221. package/.next/static/chunks/next/dist/client/components/builtin/not-found-abc1c30fe033f680.js +0 -1
  222. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-abc1c30fe033f680.js +0 -1
  223. package/.next/static/css/1f98a1f790475168.css +0 -3
  224. /package/.next/standalone/.next/static/{eWyghWWF4zppTRQ7rmwde → ImQS3LTFl-iHwI2K1uXy0}/_buildManifest.js +0 -0
  225. /package/.next/standalone/.next/static/{eWyghWWF4zppTRQ7rmwde → ImQS3LTFl-iHwI2K1uXy0}/_ssgManifest.js +0 -0
  226. /package/.next/static/{eWyghWWF4zppTRQ7rmwde → ImQS3LTFl-iHwI2K1uXy0}/_buildManifest.js +0 -0
  227. /package/.next/static/{eWyghWWF4zppTRQ7rmwde → ImQS3LTFl-iHwI2K1uXy0}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[531],{2205:(e,t,r)=>{"use strict";r.d(t,{I:()=>s});var a=r(3031),n=r(6636);function s({value:e,onChange:t,options:r,size:o="default",disabled:l=!1}){return(0,a.jsx)("div",{className:(0,n.cn)("inline-flex items-center gap-0.5 rounded-lg border border-border bg-secondary/50 p-0.5","sm"===o&&"text-xs"),children:r.map(r=>(0,a.jsx)("button",{type:"button",disabled:l,onClick:()=>t(r.value),className:(0,n.cn)("rounded-md px-2.5 py-1 text-xs font-medium transition-colors focus-ring","disabled:cursor-not-allowed disabled:opacity-50",e===r.value?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:r.label},r.value))})}},3190:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(3909).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},3284:(e,t,r)=>{"use strict";var a=r(287);r.o(a,"usePathname")&&r.d(t,{usePathname:function(){return a.usePathname}}),r.o(a,"useRouter")&&r.d(t,{useRouter:function(){return a.useRouter}}),r.o(a,"useSearchParams")&&r.d(t,{useSearchParams:function(){return a.useSearchParams}})},3430:(e,t,r)=>{Promise.resolve().then(r.bind(r,8564)),Promise.resolve().then(r.t.bind(r,2626,23)),Promise.resolve().then(r.bind(r,8247)),Promise.resolve().then(r.bind(r,7014))},4281:(e,t,r)=>{"use strict";r.d(t,{p:()=>o});var a=r(3031),n=r(9983),s=r(6636);let o=n.forwardRef(({className:e,...t},r)=>(0,a.jsx)("input",{ref:r,className:(0,s.cn)("h-9 w-full rounded-lg border border-input bg-background px-3 text-sm text-foreground","placeholder:text-muted-foreground transition focus-ring","disabled:cursor-not-allowed disabled:opacity-50",e),...t}));o.displayName="Input"},6636:(e,t,r)=>{"use strict";function a(...e){return e.filter(Boolean).join(" ")}function n(e){if(!e)return"no activity";let t=Math.floor(Date.now()/1e3)-e;return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:t<604800?`${Math.floor(t/86400)}d ago`:new Date(1e3*e).toLocaleDateString()}function s(e){if(e>=3600){let t=Math.floor(e/3600),r=Math.round(e%3600/60);return r>0?`${t}h ${r}m`:`${t}h`}return e>=60?`${Math.floor(e/60)}m ${e%60}s`:`${e}s`}function o(e,t=2){return`$${e.toFixed(t)}`}r.d(t,{KW:()=>n,UK:()=>o,a3:()=>s,cn:()=>a})},7014:(e,t,r)=>{"use strict";r.d(t,{JobsHistoryPagination:()=>u});var a=r(3031);let n=(0,r(3909).A)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);var s=r(3190),o=r(2626),l=r.n(o),i=r(3284),d=r(6636);function u({page:e,totalPages:t}){let r=(0,i.usePathname)(),o=(0,i.useSearchParams)();if(t<=1)return null;function l(e){let t=new URLSearchParams(o.toString());return t.set("page",String(e)),`${r}?${t.toString()}`}let d=function(e,t){if(t<=7)return Array.from({length:t},(e,t)=>t+1);let r=new Set([e-1,e,e+1].filter(e=>e>=1&&e<=t)),a=[...new Set([1,t,...r])].sort((e,t)=>e-t),n=[];for(let e=0;e<a.length;e++){let t=a[e],r=a[e-1];e>0&&void 0!==r&&t-r>1&&n.push("…"),n.push(t)}return n}(e,t);return(0,a.jsxs)("nav",{className:"flex items-center justify-center gap-1 py-2","aria-label":"Pagination",children:[(0,a.jsx)(c,{href:l(e-1),disabled:1===e,"aria-label":"Previous page",children:(0,a.jsx)(n,{className:"h-4 w-4"})}),d.map((t,r)=>"…"===t?(0,a.jsx)("span",{className:"px-1.5 text-sm text-muted-foreground",children:"…"},`ellipsis-${r}`):(0,a.jsx)(c,{href:l(t),active:t===e,children:t},t)),(0,a.jsx)(c,{href:l(e+1),disabled:e===t,"aria-label":"Next page",children:(0,a.jsx)(s.A,{className:"h-4 w-4"})})]})}function c({href:e,children:t,disabled:r,active:n,"aria-label":s}){return(0,a.jsx)(l(),{href:e,"aria-label":s,"aria-disabled":r,tabIndex:r?-1:void 0,className:(0,d.cn)("inline-flex h-8 min-w-8 items-center justify-center rounded-md border px-2.5 text-sm font-medium transition-colors focus-ring",n?"border-primary bg-primary text-primary-foreground shadow-sm":"border-border bg-card text-foreground hover-elevate",r&&"pointer-events-none opacity-40"),children:t})}},7508:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(3909).A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])},7822:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(3909).A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},8063:(e,t,r)=>{"use strict";r.d(t,{l:()=>l});var a=r(3031),n=r(7822),s=r(9983),o=r(6636);let l=s.forwardRef(({className:e,children:t,...r},s)=>(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("select",{ref:s,className:(0,o.cn)("h-9 w-full appearance-none cursor-pointer rounded-lg border border-input bg-background pl-3 pr-9 text-sm text-foreground","transition focus-ring","disabled:cursor-not-allowed disabled:opacity-50",e),...r,children:t}),(0,a.jsx)(n.A,{className:"pointer-events-none absolute right-2.5 top-1/2 h-[15px] w-[15px] -translate-y-1/2 text-muted-foreground"})]}));l.displayName="Select"},8247:(e,t,r)=>{"use strict";r.d(t,{JobsHistoryFilters:()=>c});var a=r(3031),n=r(7508),s=r(3284),o=r(9983),l=r(4281),i=r(2205),d=r(8063);let u=[{value:"",label:"All"},...["queued","working","ci_running","ci_failed","retrying","merged","needs_human","aborted","interrupted"].map(e=>({value:e,label:e.replace(/_/g," ")}))];function c({repos:e,models:t}){let r=(0,s.useRouter)(),h=(0,s.usePathname)(),m=(0,s.useSearchParams)(),[,p]=(0,o.useTransition)();function f(e,t){let a=new URLSearchParams(m.toString());t?a.set(e,t):a.delete(e),a.delete("page"),p(()=>{r.push(`${h}?${a.toString()}`)})}return(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,a.jsx)(i.I,{value:m.get("status")??"",onChange:e=>f("status",e),options:u}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)(n.A,{className:"pointer-events-none absolute left-2.5 top-1/2 h-[15px] w-[15px] -translate-y-1/2 text-muted-foreground"}),(0,a.jsx)(l.p,{className:"h-9 w-56 pl-8",placeholder:"Search issue title or #",defaultValue:m.get("q")??"",onChange:e=>{let t=e.target.value;clearTimeout(window._jhDebounce),window._jhDebounce=setTimeout(()=>f("q",t),300)}})]}),(0,a.jsx)("div",{className:"w-44",children:(0,a.jsxs)(d.l,{className:"h-9 text-sm",value:m.get("repo")??"",onChange:e=>f("repo",e.target.value),children:[(0,a.jsx)("option",{value:"",children:"All repositories"}),e.map(e=>(0,a.jsx)("option",{value:String(e.id),children:e.name},e.id))]})}),(0,a.jsx)("div",{className:"w-44",children:(0,a.jsxs)(d.l,{className:"h-9 text-sm",value:m.get("model")??"",onChange:e=>f("model",e.target.value),children:[(0,a.jsx)("option",{value:"",children:"All models"}),t.map(e=>(0,a.jsx)("option",{value:e.id,children:e.label},e.id))]})})]})]})}}},e=>{e.O(0,[736,633,586,358],()=>e(e.s=3430)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{1414:(e,s,t)=>{Promise.resolve().then(t.t.bind(t,7133,23)),Promise.resolve().then(t.t.bind(t,568,23)),Promise.resolve().then(t.t.bind(t,8661,23)),Promise.resolve().then(t.bind(t,4796)),Promise.resolve().then(t.bind(t,5180))},4796:(e,s,t)=>{"use strict";t.d(s,{AppShell:()=>$});var a=t(3031),r=t(509),n=t(709),l=t(5312),o=t(1173),i=t(3268),c=t(4191),d=t(1878),u=t(335),m=t(3691),h=t(2416),x=t(2626),p=t.n(x),f=t(3284),b=t(1672),g=t(9983),j=t(6498),v=t(2386),y=t(821);let N=(0,y.createServerReference)("006c0490f7ee5ac58567769d11a676aeedd3b071d3",y.callServer,void 0,y.findSourceMapURL,"emergencyStopAction");function w(){let[e,s]=(0,g.useTransition)(),[t,r]=(0,g.useState)(!1),{success:n,error:l}=(0,v.d)();return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{type:"button",disabled:e,onClick:()=>r(!0),"aria-label":"Emergency stop — pause automation and abort all running jobs",className:"inline-flex h-8 items-center gap-1.5 rounded-lg border border-destructive/30 px-2.5 text-xs font-medium text-destructive hover-elevate focus-ring disabled:opacity-60",children:[(0,a.jsx)(b.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{className:"hidden sm:inline",children:"Stop all"})]}),(0,a.jsx)(j.T,{open:t,onOpenChange:r,onConfirm:function(){s(async()=>{try{let{aborted:e}=await N();n("Emergency stop",1===e?"Automation paused, 1 job aborted":`Automation paused, ${e} jobs aborted`)}catch(e){l("Emergency stop failed",e instanceof Error?e.message:String(e))}})},title:"Emergency stop?",description:"This pauses automation and aborts every running job, terminating their agents immediately.",confirmLabel:"Stop all",variant:"destructive",pending:e})]})}var A=t(782),k=t(7836),S=t(6636);function E({paused:e}){let[s,t]=(0,g.useState)(e),[r,n]=(0,g.useTransition)(),{success:l,error:o}=(0,v.d)();return(0,a.jsxs)("button",{type:"button",onClick:function(){let e=!s;n(async()=>{try{let s=await (0,k.$)(e);t(s.paused),l(s.paused?"Automation paused":"Automation resumed")}catch(e){o("Failed to toggle pause",e instanceof Error?e.message:String(e))}})},disabled:r,"aria-pressed":s,"aria-label":s?"Resume automation":"Pause automation",className:(0,S.cn)("inline-flex h-8 items-center gap-1.5 rounded-lg px-2.5 text-xs font-medium hover-elevate focus-ring disabled:opacity-60",s?"text-warning":"text-muted-foreground"),children:[s?(0,a.jsx)(A.A,{className:"h-3.5 w-3.5"}):(0,a.jsx)(h.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{className:"hidden sm:inline",children:s?"Resume":"Pause"})]})}var P=t(4204),C=t(7887),R=t(174);function V(){let{resolvedTheme:e,setTheme:s}=(0,R.D)(),[t,r]=(0,g.useState)(!1);(0,g.useEffect)(()=>r(!0),[]);let n="dark"===e;return(0,a.jsx)("button",{type:"button","aria-label":"Toggle theme",onClick:()=>s(n?"light":"dark"),className:"inline-flex h-8 w-8 items-center justify-center rounded-lg text-muted-foreground hover-elevate focus-ring",children:t&&!n?(0,a.jsx)(P.A,{className:"h-4 w-4"}):(0,a.jsx)(C.A,{className:"h-4 w-4"})})}var T=t(9016),_=t(4234),U=t(2320);let D="drydock:update-dismissed";function O({status:e,installKind:s}){let[t,r]=(0,g.useState)(null),[n,l]=(0,g.useState)(!1);return((0,g.useEffect)(()=>{try{r(localStorage.getItem(D))}catch{}l(!0)},[]),n&&e.updateAvailable&&e.latestVersion&&e.latestVersion!==t)?(0,a.jsxs)(U.E,{tone:"success",className:"h-8 gap-1.5 px-2.5",children:[(0,a.jsx)(T.A,{className:"h-3.5 w-3.5 shrink-0"}),e.releaseUrl?(0,a.jsxs)("a",{href:e.releaseUrl,target:"_blank",rel:"noreferrer",className:"rounded-sm hover:underline focus-ring",title:"global"===s?"Run `drydock update` to upgrade":"View the release on GitHub",children:["Update available: v",e.latestVersion]}):(0,a.jsxs)("span",{children:["Update available: v",e.latestVersion]}),"global"===s&&(0,a.jsx)("code",{className:"rounded bg-success/15 px-1 font-mono",children:"drydock update"}),(0,a.jsx)("button",{type:"button",onClick:()=>{try{e.latestVersion&&localStorage.setItem(D,e.latestVersion)}catch{}r(e.latestVersion)},"aria-label":"Dismiss update notice",className:"-mr-1 rounded p-0.5 hover-elevate focus-ring",children:(0,a.jsx)(_.A,{className:"h-3 w-3"})})]}):null}let L=[{href:"/",label:"Dashboard",icon:r.A},{href:"/needs-human",label:"Needs human",icon:n.A},{href:"/jobs",label:"Jobs",icon:l.A},{href:"/analytics",label:"Analytics",icon:o.A},{href:"/prompts",label:"Prompts",icon:i.A},{href:"/adrs",label:"ADRs",icon:c.A},{href:"/costs",label:"Costs",icon:d.A},{href:"/settings",label:"Settings",icon:u.A}];function $({children:e,adrPending:s=0,needsHuman:t=0,paused:r=!1,updateStatus:n,installKind:l="local"}){let o=(0,f.usePathname)();return(0,a.jsxs)("div",{className:"min-h-screen bg-background",children:[(0,a.jsx)("a",{href:"#main",className:"sr-only focus:not-sr-only focus:absolute focus:left-4 focus:top-4 focus:z-50 focus:rounded-md focus:bg-background focus:px-4 focus:py-2 focus:text-sm focus:font-medium focus:ring-2 focus:ring-ring",children:"Skip to main content"}),(0,a.jsxs)("header",{className:"sticky top-0 z-30 border-b border-border bg-background/85 backdrop-blur-md",children:[(0,a.jsxs)("div",{className:"mx-auto flex h-14 max-w-7xl items-center gap-2 px-4",children:[(0,a.jsxs)(p(),{href:"/",className:"mr-2 flex shrink-0 items-center gap-2 rounded-md focus-ring",children:[(0,a.jsx)("span",{className:"flex h-7 w-7 items-center justify-center rounded-lg bg-primary text-primary-foreground shadow-sm",children:(0,a.jsx)(m.A,{className:"h-4 w-4"})}),(0,a.jsx)("span",{className:"text-base font-bold tracking-tight",children:"Drydock"})]}),(0,a.jsx)("nav",{className:"flex min-w-0 flex-1 items-center gap-0.5 overflow-x-auto scrollbar-none",children:L.map(e=>{var r;let n="/"===(r=e.href)?"/"===o:o.startsWith(r),l=e.icon,i="/needs-human"===e.href?t:"/adrs"===e.href?s:0;return(0,a.jsxs)(p(),{href:e.href,"aria-current":n?"page":void 0,className:(0,S.cn)("relative flex shrink-0 items-center gap-1.5 rounded-md px-3 py-1.5 text-sm transition-colors hover-elevate",n?"font-medium text-foreground":"text-muted-foreground"),children:[(0,a.jsx)(l,{className:(0,S.cn)("h-[15px] w-[15px]",n&&"text-primary")}),e.label,i>0&&(0,a.jsx)("span",{className:"ml-0.5 rounded-full bg-destructive px-1.5 text-[10px] font-semibold leading-4 text-destructive-foreground tnum",children:i}),n&&(0,a.jsx)("span",{className:"absolute inset-x-2 -bottom-[7px] h-0.5 rounded-full bg-primary"})]},e.href)})}),(0,a.jsxs)("div",{className:"ml-auto flex shrink-0 items-center gap-1.5",children:[n&&(0,a.jsx)(O,{status:n,installKind:l}),(0,a.jsx)(E,{paused:r}),(0,a.jsx)(w,{}),(0,a.jsx)("div",{className:"mx-1 h-5 w-px bg-border"}),(0,a.jsx)(V,{})]})]}),r&&(0,a.jsx)("div",{className:"border-t border-warning-border bg-warning-muted",children:(0,a.jsxs)("div",{className:"mx-auto flex max-w-7xl items-center gap-2 px-4 py-1.5 text-xs text-warning-foreground",children:[(0,a.jsx)(h.A,{className:"h-[13px] w-[13px]"})," Automation is paused globally. No new jobs will start."]})})]}),(0,a.jsx)("main",{id:"main",className:"mx-auto max-w-7xl px-4 py-6 sm:py-8",children:e})]})}},5180:(e,s,t)=>{"use strict";t.d(s,{Providers:()=>l});var a=t(3031),r=t(174),n=t(2386);function l({children:e}){return(0,a.jsx)(r.N,{attribute:"class",defaultTheme:"dark",enableSystem:!1,disableTransitionOnChange:!0,children:(0,a.jsx)(n.t,{children:e})})}},7836:(e,s,t)=>{"use strict";t.d(s,{$:()=>r});var a=t(821);let r=(0,a.createServerReference)("4018a3a5110655d354c7e22a6d779657adb9f269e2",a.callServer,void 0,a.findSourceMapURL,"togglePauseAction")},8661:()=>{}},e=>{e.O(0,[715,736,165,188,633,586,358],()=>e(e.s=1414)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[608],{509:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3909).A)("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]])},709:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3909).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},821:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={callServer:function(){return n.callServer},createServerReference:function(){return i.createServerReference},findSourceMapURL:function(){return c.findSourceMapURL}};for(var a in s)Object.defineProperty(t,a,{enumerable:!0,get:s[a]});let n=r(4585),c=r(9842),i=r(8281)},2445:(e,t,r)=>{"use strict";r.d(t,{Wu:()=>d,ZB:()=>l,Zp:()=>c,aR:()=>i});var s=r(3031),a=r(6636);let n={none:"",sm:"p-4",default:"p-5",lg:"p-6"};function c({className:e,pad:t,hover:r,...i}){return(0,s.jsx)("div",{className:(0,a.cn)("rounded-xl border border-card-border bg-card text-card-foreground shadow-sm",r&&"hover-elevate transition-shadow hover:shadow-md",t&&n[t],e),...i})}function i({className:e,...t}){return(0,s.jsx)("div",{className:(0,a.cn)("flex flex-col gap-1.5 p-5",e),...t})}function l({className:e,...t}){return(0,s.jsx)("h3",{className:(0,a.cn)("text-base font-semibold leading-none tracking-tight",e),...t})}function d({className:e,...t}){return(0,s.jsx)("div",{className:(0,a.cn)("p-5 pt-0",e),...t})}},2596:(e,t,r)=>{"use strict";r.d(t,{p:()=>c});var s=r(3031),a=r(6636);let n={neutral:"bg-secondary text-muted-foreground",primary:"bg-primary/10 text-primary",success:"bg-success-muted text-success",warning:"bg-warning-muted text-warning",destructive:"bg-destructive/10 text-destructive"};function c({icon:e,tone:t="neutral",title:r,description:i,action:l,secondary:d,className:o,compact:u}){return(0,s.jsxs)("div",{className:(0,a.cn)("flex flex-col items-center justify-center text-center",u?"py-10":"py-16",o),children:[e&&(0,s.jsx)("div",{className:(0,a.cn)("flex items-center justify-center rounded-2xl",u?"h-12 w-12":"h-16 w-16",n[t]),children:(0,s.jsx)(e,{className:u?"h-[22px] w-[22px]":"h-7 w-7"})}),(0,s.jsx)("h3",{className:"mt-4 text-base font-semibold",children:r}),i&&(0,s.jsx)("p",{className:"mt-1 max-w-sm text-pretty text-sm text-muted-foreground",children:i}),(l||d)&&(0,s.jsxs)("div",{className:"mt-5 flex items-center gap-2",children:[l,d]})]})}},3115:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3909).A)("scroll-text",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]])},3190:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3909).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},3284:(e,t,r)=>{"use strict";var s=r(287);r.o(s,"usePathname")&&r.d(t,{usePathname:function(){return s.usePathname}}),r.o(s,"useRouter")&&r.d(t,{useRouter:function(){return s.useRouter}}),r.o(s,"useSearchParams")&&r.d(t,{useSearchParams:function(){return s.useSearchParams}})},3415:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});var s=r(821);let a=(0,s.createServerReference)("409b22e90e79660f8744a158cff75ef6199aa4e2f2",s.callServer,void 0,s.findSourceMapURL,"abortJobAction")},3733:(e,t,r)=>{Promise.resolve().then(r.bind(r,9057))},3931:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3909).A)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])},4234:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3909).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},4344:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3909).A)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},5051:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3909).A)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},5331:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(3909).A)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]])},6619:(e,t,r)=>{"use strict";r.d(t,{z:()=>d});var s=r(3031),a=r(3190),n=r(2626),c=r.n(n),i=r(9983),l=r(6636);function d({title:e,subtitle:t,breadcrumb:r,actions:n,icon:o,className:u}){return(0,s.jsxs)("div",{className:(0,l.cn)("mb-6 flex flex-wrap items-end justify-between gap-4",u),children:[(0,s.jsxs)("div",{className:"min-w-0",children:[r&&r.length>0&&(0,s.jsx)("nav",{className:"mb-1.5 flex items-center gap-1.5 text-xs text-muted-foreground",children:r.map((e,t)=>(0,s.jsxs)(i.Fragment,{children:[t>0&&(0,s.jsx)(a.A,{className:"h-3 w-3 opacity-60","aria-hidden":!0}),e.href?(0,s.jsx)(c(),{href:e.href,className:"rounded transition-colors hover:text-foreground focus-ring",children:e.label}):(0,s.jsx)("span",{className:"text-foreground/80",children:e.label})]},e.href??e.label))}),(0,s.jsxs)("div",{className:"flex items-center gap-2.5",children:[o&&(0,s.jsx)("span",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-secondary text-muted-foreground",children:(0,s.jsx)(o,{className:"h-[17px] w-[17px]"})}),(0,s.jsx)("h1",{className:"text-pretty text-2xl font-bold tracking-tight",children:e})]}),t&&(0,s.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:t})]}),n&&(0,s.jsx)("div",{className:"flex items-center gap-2",children:n})]})}},9057:(e,t,r)=>{"use strict";r.d(t,{NeedsHumanList:()=>A});var s=r(3031),a=r(709),n=r(5051),c=r(509),i=r(3115),l=r(5331);let d=(0,r(3909).A)("ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]);var o=r(2626),u=r.n(o),h=r(3284),m=r(9983),x=r(6619),p=r(2320),f=r(7727),g=r(2445),y=r(6498),v=r(2596),b=r(2386),j=r(821);let N=(0,j.createServerReference)("407d74c9d9d95dab89528a352b01f9f35a45a08e64",j.callServer,void 0,j.findSourceMapURL,"requeueJobAction");var k=r(3415),w=r(6636);function A({jobs:e}){let t=(0,h.useRouter)(),[,r]=(0,m.useTransition)(),[o,j]=(0,m.useState)(null),[S,M]=(0,m.useState)(null),{success:R,error:$}=(0,b.d)();return(0,s.jsxs)("div",{className:"dd-fade-up",children:[(0,s.jsx)(x.z,{title:"Needs human",subtitle:"Jobs a guardrail paused for review. Nothing risky was written.",icon:a.A}),0===e.length?(0,s.jsx)(g.Zp,{children:(0,s.jsx)(v.p,{icon:n.A,tone:"success",title:"All clear",description:"No jobs are waiting on a human. Drydock will surface anything that hits a guardrail here.",action:(0,s.jsxs)(f.$,{variant:"outline",onClick:()=>t.push("/"),children:[(0,s.jsx)(c.A,{className:"h-[15px] w-[15px]"})," Back to dashboard"]})})}):(0,s.jsx)("div",{className:"dd-stagger flex flex-col gap-3",children:e.map((e,n)=>(0,s.jsx)(g.Zp,{pad:"none",className:"border-destructive/30",style:{animationDelay:`${60*n}ms`},children:(0,s.jsxs)("div",{className:"flex flex-wrap items-start gap-3 p-4",children:[(0,s.jsx)("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-destructive/10 text-destructive",children:(0,s.jsx)(a.A,{className:"h-[17px] w-[17px]"})}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)(u(),{href:`/jobs/${e.id}`,className:"flex flex-wrap items-center gap-2 text-left focus-ring rounded",children:[(0,s.jsxs)("span",{className:"font-mono text-xs text-muted-foreground",children:[e.repoName," #",e.issueNumber]}),(0,s.jsx)(p.E,{tone:"destructive",children:"needs human"}),(0,s.jsxs)("span",{className:"text-xs text-muted-foreground",children:["\xb7 ",e.attempts," attempts \xb7 ",(0,w.KW)(e.parkedAt)]})]}),(0,s.jsx)("p",{className:"mt-1 text-sm text-muted-foreground text-pretty",children:e.errorMessage??"No error message recorded."})]}),(0,s.jsxs)("div",{className:"flex shrink-0 gap-2",children:[(0,s.jsxs)(f.$,{variant:"outline",size:"sm",onClick:()=>t.push(`/jobs/${e.id}`),children:[(0,s.jsx)(i.A,{className:"h-3.5 w-3.5"})," Log"]}),(0,s.jsxs)(f.$,{variant:"outline",size:"sm",disabled:o===e.id,onClick:()=>{j(e.id),r(async()=>{try{await N(e.id),R("Job requeued",`${e.repoName} #${e.issueNumber}`),t.refresh()}catch(e){$("Failed to requeue job",e instanceof Error?e.message:String(e))}finally{j(null)}})},children:[(0,s.jsx)(l.A,{className:"h-3.5 w-3.5"})," Requeue"]}),(0,s.jsxs)(f.$,{variant:"destructive",size:"sm",disabled:o===e.id,onClick:()=>M(e),children:[(0,s.jsx)(d,{className:"h-3.5 w-3.5"})," Abort"]})]})]})},e.id))}),(0,s.jsx)(y.T,{open:null!==S,onOpenChange:e=>!e&&M(null),onConfirm:()=>S&&void(j(S.id),r(async()=>{try{await (0,k.A)(S.id),R("Job aborted",`${S.repoName} #${S.issueNumber}`),t.refresh()}catch(e){$("Failed to abort job",e instanceof Error?e.message:String(e))}finally{j(null)}})),title:"Abort job?",description:S?`This permanently aborts ${S.repoName} #${S.issueNumber}.`:void 0,confirmLabel:"Abort",variant:"destructive",icon:d,pending:null!==o})]})}}},e=>{e.O(0,[736,188,633,586,358],()=>e(e.s=3733)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{117:(e,t,s)=>{"use strict";s.d(t,{D:()=>l});var r=s(3031),a=s(6636);function n({htmlFor:e,className:t,children:s}){return(0,r.jsx)("label",{htmlFor:e,className:(0,a.cn)("text-sm font-medium text-foreground",t),children:s})}function l({label:e,hint:t,htmlFor:s,children:i,className:c}){return(0,r.jsxs)("div",{className:(0,a.cn)("flex flex-col gap-1.5",c),children:[e&&(0,r.jsx)(n,{htmlFor:s,children:e}),i,t&&(0,r.jsx)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:t})]})}},709:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(3909).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},821:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={callServer:function(){return n.callServer},createServerReference:function(){return i.createServerReference},findSourceMapURL:function(){return l.findSourceMapURL}};for(var a in r)Object.defineProperty(t,a,{enumerable:!0,get:r[a]});let n=s(4585),l=s(9842),i=s(8281)},1552:(e,t,s)=>{"use strict";s.d(t,{V:()=>c,m:()=>i});var r=s(3031),a=s(2657),n=s(6636);let l={top:"bottom-full left-1/2 -translate-x-1/2 mb-2",bottom:"top-full left-1/2 -translate-x-1/2 mt-2",right:"left-full top-1/2 -translate-y-1/2 ml-2",left:"right-full top-1/2 -translate-y-1/2 mr-2"};function i({content:e,children:t,side:s="top",className:a}){return(0,r.jsxs)("span",{className:"group/tt relative inline-flex",children:[t,(0,r.jsx)("span",{role:"tooltip",className:(0,n.cn)("pointer-events-none absolute z-50 w-max max-w-[260px] rounded-lg border border-border bg-popover px-2.5 py-1.5 text-xs leading-relaxed text-popover-foreground shadow-lg","translate-y-0.5 opacity-0 transition-all duration-150 group-focus-within/tt:opacity-100 group-hover/tt:translate-y-0 group-hover/tt:opacity-100",l[s],a),children:e})]})}function c({content:e,side:t="top"}){return(0,r.jsx)(i,{content:e,side:t,children:(0,r.jsx)("button",{type:"button",className:"inline-flex h-4 w-4 items-center justify-center rounded-full text-muted-foreground/70 transition-colors hover:text-foreground focus-ring","aria-label":"Help",children:(0,r.jsx)(a.A,{className:"h-3.5 w-3.5"})})})}},1781:(e,t,s)=>{"use strict";function r(e){return e?`hsl(var(--${e}))`:"hsl(var(--muted-foreground))"}s.d(t,{U:()=>r})},1878:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(3909).A)("dollar-sign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]])},2445:(e,t,s)=>{"use strict";s.d(t,{Wu:()=>d,ZB:()=>c,Zp:()=>l,aR:()=>i});var r=s(3031),a=s(6636);let n={none:"",sm:"p-4",default:"p-5",lg:"p-6"};function l({className:e,pad:t,hover:s,...i}){return(0,r.jsx)("div",{className:(0,a.cn)("rounded-xl border border-card-border bg-card text-card-foreground shadow-sm",s&&"hover-elevate transition-shadow hover:shadow-md",t&&n[t],e),...i})}function i({className:e,...t}){return(0,r.jsx)("div",{className:(0,a.cn)("flex flex-col gap-1.5 p-5",e),...t})}function c({className:e,...t}){return(0,r.jsx)("h3",{className:(0,a.cn)("text-base font-semibold leading-none tracking-tight",e),...t})}function d({className:e,...t}){return(0,r.jsx)("div",{className:(0,a.cn)("p-5 pt-0",e),...t})}},2596:(e,t,s)=>{"use strict";s.d(t,{p:()=>l});var r=s(3031),a=s(6636);let n={neutral:"bg-secondary text-muted-foreground",primary:"bg-primary/10 text-primary",success:"bg-success-muted text-success",warning:"bg-warning-muted text-warning",destructive:"bg-destructive/10 text-destructive"};function l({icon:e,tone:t="neutral",title:s,description:i,action:c,secondary:d,className:o,compact:u}){return(0,r.jsxs)("div",{className:(0,a.cn)("flex flex-col items-center justify-center text-center",u?"py-10":"py-16",o),children:[e&&(0,r.jsx)("div",{className:(0,a.cn)("flex items-center justify-center rounded-2xl",u?"h-12 w-12":"h-16 w-16",n[t]),children:(0,r.jsx)(e,{className:u?"h-[22px] w-[22px]":"h-7 w-7"})}),(0,r.jsx)("h3",{className:"mt-4 text-base font-semibold",children:s}),i&&(0,r.jsx)("p",{className:"mt-1 max-w-sm text-pretty text-sm text-muted-foreground",children:i}),(c||d)&&(0,r.jsxs)("div",{className:"mt-5 flex items-center gap-2",children:[c,d]})]})}},2657:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(3909).A)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},3030:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(3909).A)("octagon-alert",[["path",{d:"M12 16h.01",key:"1drbdi"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z",key:"1fd625"}]])},3190:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(3909).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},3284:(e,t,s)=>{"use strict";var r=s(287);s.o(r,"usePathname")&&s.d(t,{usePathname:function(){return r.usePathname}}),s.o(r,"useRouter")&&s.d(t,{useRouter:function(){return r.useRouter}}),s.o(r,"useSearchParams")&&s.d(t,{useSearchParams:function(){return r.useSearchParams}})},3590:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(3909).A)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]])},3765:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(3909).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},3931:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(3909).A)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])},4024:(e,t,s)=>{"use strict";s.d(t,{h:()=>c});var r=s(3031),a=s(4344),n=s(6636),l=s(1552);let i={neutral:{chip:"bg-secondary text-muted-foreground",val:"text-foreground",bg:""},primary:{chip:"bg-primary/15 text-primary",val:"text-primary",bg:"bg-primary/[0.04]"},success:{chip:"bg-success-muted text-success",val:"text-success",bg:"bg-success/[0.05]"},warning:{chip:"bg-warning-muted text-warning",val:"text-warning",bg:"bg-warning/[0.05]"},destructive:{chip:"bg-destructive/15 text-destructive",val:"text-destructive",bg:"bg-destructive/[0.05]"}};function c({icon:e,label:t,value:s,sub:d,tone:o="neutral",active:u,onClick:x,hint:h}){let m=!!u&&"neutral"!==o,p=i[o],g=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("span",{className:(0,n.cn)("flex h-8 w-8 items-center justify-center rounded-lg transition-colors",m?p.chip:"bg-secondary text-muted-foreground"),children:e&&(0,r.jsx)(e,{className:"h-4 w-4"})}),h&&(0,r.jsx)("span",{className:"text-muted-foreground/60",children:(0,r.jsx)(l.m,{content:h,children:(0,r.jsx)(a.A,{className:"h-3.5 w-3.5"})})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:(0,n.cn)("text-2xl font-semibold tnum tracking-tight",m?p.val:"text-foreground"),children:s}),(0,r.jsx)("div",{className:"mt-0.5 text-[13px] font-medium text-muted-foreground",children:t}),d&&(0,r.jsx)("div",{className:"mt-0.5 text-xs text-muted-foreground/80",children:d})]})]}),f=(0,n.cn)("group relative flex flex-col gap-3 rounded-xl border border-card-border bg-card p-4 text-left shadow-sm transition-colors",m&&p.bg,x&&"hover-elevate focus-ring");return x?(0,r.jsx)("button",{type:"button",onClick:x,className:f,children:g}):(0,r.jsx)("div",{className:f,children:g})}},4234:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(3909).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},4281:(e,t,s)=>{"use strict";s.d(t,{p:()=>l});var r=s(3031),a=s(9983),n=s(6636);let l=a.forwardRef(({className:e,...t},s)=>(0,r.jsx)("input",{ref:s,className:(0,n.cn)("h-9 w-full rounded-lg border border-input bg-background px-3 text-sm text-foreground","placeholder:text-muted-foreground transition focus-ring","disabled:cursor-not-allowed disabled:opacity-50",e),...t}));l.displayName="Input"},4344:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(3909).A)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},5051:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(3909).A)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},5384:(e,t,s)=>{"use strict";s.d(t,{DashboardLive:()=>Y});var r=s(3031),a=s(5696),n=s(3909);let l=(0,n.A)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);var i=s(4344),c=s(3284),d=s(9983);let o=(0,n.A)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var u=s(4234),x=s(3765),h=s(2320),m=s(7727),p=s(4849),g=s(821);let f=(0,g.createServerReference)("4085a041674a27069d1c6a203a2874ae70a086c9b2",g.callServer,void 0,g.findSourceMapURL,"browseDirectoryAction");function j({onSelect:e,onClose:t}){let[s,a]=(0,d.useState)(null),[n,i]=(0,d.useTransition)(),c=e=>i(async()=>a(await f(e)));return(0,d.useEffect)(()=>{c()},[]),(0,r.jsx)(p.l,{open:!0,onClose:t,labelledById:"dir-picker-title",children:(0,r.jsxs)("div",{className:"flex max-h-[70vh] flex-col",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between border-b border-card-border pb-3",children:[(0,r.jsxs)("span",{id:"dir-picker-title",className:"flex items-center gap-2 text-base font-semibold tracking-tight",children:[(0,r.jsx)("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",children:(0,r.jsx)(o,{className:"h-[18px] w-[18px]"})}),"Choose a folder"]}),(0,r.jsx)(m.$,{size:"icon-sm",variant:"ghost","aria-label":"Close",onClick:t,children:(0,r.jsx)(u.A,{})})]}),(0,r.jsxs)("div",{className:"border-b border-card-border py-3",children:[(0,r.jsx)("p",{className:"truncate font-mono text-xs text-muted-foreground",title:s?.path,children:s?.path??"…"}),s?.isGitRepo&&(0,r.jsxs)(h.E,{tone:"success",className:"mt-1.5",children:[(0,r.jsx)(l,{className:"h-3 w-3"}),"git repo"]})]}),(0,r.jsxs)("div",{className:"scrollbar-none min-h-0 flex-1 overflow-auto py-2",children:[s?.parent&&(0,r.jsxs)("button",{type:"button",disabled:n,onClick:()=>c(s.parent??void 0),className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm hover-elevate disabled:opacity-50",children:[(0,r.jsx)(o,{className:"h-4 w-4 text-muted-foreground"}),".."]}),s?.entries.map(e=>(0,r.jsxs)("button",{type:"button",disabled:n,onClick:()=>c(e.path),className:"flex w-full items-center justify-between gap-2 rounded-md px-2 py-1.5 text-left text-sm hover-elevate disabled:opacity-50",children:[(0,r.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[e.isGitRepo?(0,r.jsx)(l,{className:"h-4 w-4 shrink-0 text-primary"}):(0,r.jsx)(o,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,r.jsx)("span",{className:"truncate",children:e.name})]}),e.isGitRepo&&(0,r.jsx)(h.E,{tone:"success",children:"git"})]},e.path)),s&&0===s.entries.length&&(0,r.jsx)("p",{className:"px-2 py-1.5 text-xs text-muted-foreground",children:"No subfolders."})]}),(0,r.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t border-card-border pt-3",children:[(0,r.jsx)(m.$,{variant:"outline",size:"sm",onClick:t,children:"Cancel"}),(0,r.jsxs)(m.$,{size:"sm",disabled:!s||n,onClick:()=>s&&e(s.path),children:[(0,r.jsx)(x.A,{}),"Use this folder"]})]})]})})}var b=s(8063);let v={github:{id:"github",label:"GitHub",needsConnection:!1},gitlab:{id:"gitlab",label:"GitLab",needsConnection:!0}},y=["github","gitlab"].map(e=>v[e]);function N({value:e,onChange:t,id:s,className:a}){return(0,r.jsx)(b.l,{id:s,value:e,onChange:e=>t(e.target.value),className:a,children:y.map(e=>(0,r.jsx)("option",{value:e.id,children:e.label},e.id))})}var k=s(5774),w=s(2445),A=s(117),M=s(4281),C=s(5945);let $=(0,g.createServerReference)("40c0105fd992bc79b70eed894b803367201bb33d73",g.callServer,void 0,g.findSourceMapURL,"addRepoAction");function S({onDone:e}){let[t,s]=(0,d.useTransition)(),[n,i]=(0,d.useState)(""),[c,o]=(0,d.useState)(""),[u,x]=(0,d.useState)(C.UB),[h,p]=(0,d.useState)("github"),[g,f]=(0,d.useState)(""),[b,v]=(0,d.useState)(""),[y,R]=(0,d.useState)(!1);return(0,r.jsxs)(w.Zp,{className:"dd-fade-up p-5",children:[(0,r.jsxs)("form",{className:"grid gap-4 sm:grid-cols-2",action:()=>{s(async()=>{await $({path:c,name:n,defaultModel:u,platform:h,apiBaseUrl:"gitlab"===h&&g.trim()||null,apiToken:"gitlab"===h&&b.trim()||null}),e()})},children:[(0,r.jsx)(A.D,{label:"Name",htmlFor:"repo-name",children:(0,r.jsx)(M.p,{id:"repo-name",value:n,onChange:e=>i(e.target.value),placeholder:"my-project",required:!0})}),(0,r.jsx)(A.D,{label:"Local path",htmlFor:"repo-path",hint:"Drydock watches this working copy and runs the agent in an isolated worktree.",children:(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)("div",{className:"relative flex-1",children:[(0,r.jsx)(l,{className:"pointer-events-none absolute left-3 top-1/2 h-[15px] w-[15px] -translate-y-1/2 text-muted-foreground"}),(0,r.jsx)(M.p,{id:"repo-path",value:c,onChange:e=>o(e.target.value),placeholder:"/abs/path/to/repo",required:!0,className:"pl-9 font-mono"})]}),(0,r.jsx)(m.$,{type:"button",variant:"outline",size:"sm",onClick:()=>R(!0),children:"Browse…"})]})}),(0,r.jsx)(A.D,{label:"Default model",htmlFor:"repo-model",children:(0,r.jsx)(k.o,{id:"repo-model",value:u,onChange:x})}),(0,r.jsx)(A.D,{label:"Forge",htmlFor:"repo-platform",children:(0,r.jsx)(N,{id:"repo-platform",value:h,onChange:p})}),"gitlab"===h&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(A.D,{label:"API base URL",htmlFor:"repo-api-url",className:"sm:col-span-2",children:(0,r.jsx)(M.p,{id:"repo-api-url",value:g,onChange:e=>f(e.target.value),placeholder:"https://gitlab.com"})}),(0,r.jsx)(A.D,{label:"Access token",htmlFor:"repo-api-token",hint:"Stored locally on this machine.",className:"sm:col-span-2",children:(0,r.jsx)(M.p,{id:"repo-api-token",value:b,onChange:e=>v(e.target.value),type:"password",placeholder:"Access token"})})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 sm:col-span-2",children:[(0,r.jsxs)(m.$,{type:"submit",disabled:t||!c,children:[(0,r.jsx)(a.A,{className:"h-[15px] w-[15px]"})," Add repository"]}),(0,r.jsx)(m.$,{type:"button",variant:"ghost",onClick:e,children:"Cancel"})]})]}),y&&(0,r.jsx)(j,{onClose:()=>R(!1),onSelect:e=>{o(e),n.trim()||i(e.replace(/\/+$/,"").split("/").pop()??""),R(!1)}})]})}var R=s(3590);let F=(0,n.A)("loader",[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]]),E=(0,n.A)("git-merge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]);var L=s(709),z=s(1878),D=s(4024),H=s(6636);function T({summary:e}){let t=(0,c.useRouter)();return(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-6",children:[(0,r.jsx)(D.h,{icon:l,label:"Repositories",value:e.repos}),(0,r.jsx)(D.h,{icon:R.A,label:"Queued",value:e.queued,tone:"primary",active:e.queued>0}),(0,r.jsx)(D.h,{icon:F,label:"Running",value:e.running,tone:"primary",active:e.running>0}),(0,r.jsx)(D.h,{icon:E,label:"Merged",value:e.merged,tone:"success",active:!0}),(0,r.jsx)(D.h,{icon:L.A,label:"Needs human",value:e.needsHuman,tone:"destructive",active:e.needsHuman>0,onClick:()=>t.push("/needs-human"),hint:"Jobs that hit a guardrail and paused for review."}),(0,r.jsx)(D.h,{icon:z.A,label:"Spend today",value:(0,H.UK)(e.spendToday),tone:"primary",active:!0,sub:"across all repos"})]})}var U=s(6619);let q=(0,n.A)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]),P=(0,n.A)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);var O=s(2626),G=s.n(O),_=s(6498),B=s(2386);let I=(0,g.createServerReference)("40fe6e5dc04e8efb073c455dfc7efac95e1f3207af",g.callServer,void 0,g.findSourceMapURL,"removeRepoAction");function V({repo:e}){let[t,s]=(0,d.useTransition)(),[a,n]=(0,d.useState)(!1),{success:i,error:c}=(0,B.d)(),o=e.working+e.ciRunning>0;return(0,r.jsxs)(w.Zp,{hover:!0,className:(0,H.cn)("flex flex-col gap-3 p-4",e.attention&&"border-destructive/40 bg-destructive/[0.04]"),children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,r.jsxs)(G(),{href:`/repos/${e.id}`,className:"group flex min-w-0 items-center gap-2 rounded-md text-left focus-ring",children:[(0,r.jsx)("span",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-secondary text-muted-foreground",children:(0,r.jsx)(l,{className:"h-[15px] w-[15px]"})}),(0,r.jsxs)("span",{className:"min-w-0",children:[(0,r.jsx)("span",{className:"block truncate font-mono text-sm font-semibold group-hover:underline",children:e.name}),(0,r.jsx)("span",{className:"block truncate text-xs text-muted-foreground",children:e.path})]})]}),e.attention?(0,r.jsxs)(h.E,{tone:"destructive",className:"shrink-0",children:[(0,r.jsx)(L.A,{className:"h-[11px] w-[11px]"})," Needs human"]}):o?(0,r.jsx)(h.E,{status:"working",className:"shrink-0",children:"Active"}):(0,r.jsx)(h.E,{tone:"neutral",className:"shrink-0",children:"Idle"})]}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:["gitlab"===e.platform&&(0,r.jsx)(h.E,{tone:"primary",children:"GitLab"}),(0,r.jsxs)(h.E,{tone:"neutral",children:[e.queued," queued"]}),e.working>0?(0,r.jsxs)(h.E,{status:"working",children:[e.working," working"]}):(0,r.jsx)(h.E,{tone:"neutral",children:"0 working"}),e.ciRunning>0?(0,r.jsxs)(h.E,{status:"ci_running",children:[e.ciRunning," CI"]}):(0,r.jsx)(h.E,{tone:"neutral",children:"0 CI"}),e.needsHuman>0&&(0,r.jsxs)(h.E,{tone:"destructive",children:[e.needsHuman," needs human"]})]}),e.inFlight.length>0&&(0,r.jsx)("ul",{className:"flex flex-col gap-1 border-t border-card-border pt-2.5 text-xs",children:e.inFlight.slice(0,3).map(e=>(0,r.jsxs)("li",{className:"flex items-center gap-2",children:[(0,r.jsx)(h.E,{status:e.status,className:"shrink-0 px-1.5 py-0"}),(0,r.jsx)(G(),{href:`/jobs/${e.id}`,className:"truncate text-muted-foreground transition-colors hover:text-foreground",children:(0,r.jsxs)("span",{className:"font-mono text-foreground/80",children:["#",e.issueNumber]})})]},e.id))}),(0,r.jsxs)("div",{className:"mt-auto flex items-center justify-between border-t border-card-border pt-2.5 text-xs text-muted-foreground",children:[(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,r.jsx)(z.A,{className:"h-3 w-3"}),(0,r.jsx)("span",{className:"tnum text-foreground/90",children:(0,H.UK)(e.todaySpend)})," today"]}),(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,r.jsx)(q,{className:"h-3 w-3"}),e.lastActivityAt?(0,H.KW)(e.lastActivityAt):"no activity"]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(G(),{href:`/repos/${e.id}`,children:(0,r.jsx)(m.$,{size:"sm",children:"Open workspace"})}),(0,r.jsx)(m.$,{size:"sm",variant:"ghost",disabled:t,onClick:()=>n(!0),"aria-label":"Remove repository",children:(0,r.jsx)(P,{className:"h-3.5 w-3.5"})})]}),(0,r.jsx)(_.T,{open:a,onOpenChange:n,onConfirm:function(){s(async()=>{try{await I(e.id),i("Repository removed",e.name)}catch(e){c("Failed to remove repository",e instanceof Error?e.message:String(e))}})},title:"Remove repository?",description:`This stops watching ${e.name}. Existing jobs are unaffected.`,confirmLabel:"Remove",variant:"destructive",pending:t})]})}var Z=s(7787),W=s(1781);function K({value:e,limit:t,size:s=132,label:a="Spend today"}){let n=Math.min(e/t,1),l=e>=t,i=(0,W.U)(l||n>=.95?"destructive":n>=.8?"warning":"primary"),c=(s-18)/2,d=2*Math.PI*c,o=.75*d,u=s/2;return(0,r.jsxs)("div",{className:"flex flex-col items-center",children:[(0,r.jsxs)("div",{className:"relative",style:{width:s,height:.82*s},children:[(0,r.jsxs)("svg",{width:s,height:s,viewBox:`0 0 ${s} ${s}`,style:{transform:"rotate(135deg)"},role:"img","aria-label":`${a}: $${e.toFixed(2)} of $${t.toFixed(0)} limit`,children:[(0,r.jsx)("circle",{cx:u,cy:u,r:c,fill:"none",stroke:"hsl(var(--secondary))",strokeWidth:9,strokeDasharray:`${o} ${d}`,strokeLinecap:"round"}),(0,r.jsx)("circle",{cx:u,cy:u,r:c,fill:"none",stroke:i,strokeWidth:9,strokeDasharray:`${o*n} ${d}`,strokeLinecap:"round"})]}),(0,r.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center pb-1",children:[(0,r.jsxs)("span",{className:"tnum text-[26px] font-semibold leading-none",style:{color:i},children:["$",e.toFixed(2)]}),(0,r.jsxs)("span",{className:"mt-1 text-xs text-muted-foreground tnum",children:["of $",t.toFixed(0)," limit"]})]})]}),(0,r.jsx)("div",{className:"mt-1 flex items-center gap-1.5 text-xs",children:l?(0,r.jsx)(h.E,{tone:"destructive",children:"Limit reached"}):n>=.8?(0,r.jsxs)(h.E,{tone:"warning",children:[Math.round(100*n),"% used"]}):(0,r.jsxs)("span",{className:"text-muted-foreground",children:[a," \xb7 ",Math.round(100*n),"% of budget"]})})]})}var J=s(2596),Q=s(6016),X=s(1552);function Y({initial:e,spend7d:t}){let s=(0,c.useRouter)(),[n,o]=(0,d.useState)(e),[u,x]=(0,d.useState)(!1);(0,d.useEffect)(()=>{let e=new EventSource("/api/sse/dashboard");return e.addEventListener("snapshot",e=>{try{o(JSON.parse(e.data))}catch{}}),()=>e.close()},[]);let{repos:h,summary:p}=n,g=0===h.length,f=Math.max(h.reduce((e,t)=>e+(t.dailyLimitUsd??10),0),p.spendToday,10),j=t&&t.length>0?[...t.slice(0,-1),p.spendToday]:[p.spendToday];return(0,r.jsxs)("div",{className:"dd-fade-up",children:[(0,r.jsx)(U.z,{title:"Dashboard",subtitle:"Every watched repository, its in-flight work, and today's spend — live.",actions:(0,r.jsx)(m.$,{onClick:()=>x(e=>!e),children:u?"Cancel":(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.A,{className:"h-[15px] w-[15px]"})," Add repo"]})})}),(0,r.jsx)(T,{summary:p}),(0,r.jsxs)("div",{className:"mt-6 grid gap-6 lg:grid-cols-3",children:[(0,r.jsxs)("div",{className:"lg:col-span-2",children:[(0,r.jsx)("div",{className:"mb-3 flex items-center justify-between",children:(0,r.jsxs)("h2",{className:"text-base font-semibold",children:["Repositories"," ",(0,r.jsxs)("span",{className:"font-normal text-muted-foreground",children:["(",h.length,")"]})]})}),u&&(0,r.jsx)("div",{className:"mb-3",children:(0,r.jsx)(S,{onDone:()=>x(!1)})}),g&&!u?(0,r.jsx)(w.Zp,{children:(0,r.jsx)(J.p,{icon:l,tone:"primary",title:"No repositories yet",description:"Add a local repository and Drydock will start turning its labelled issues into pull requests.",action:(0,r.jsxs)(m.$,{onClick:()=>x(!0),children:[(0,r.jsx)(a.A,{className:"h-[15px] w-[15px]"})," Add your first repo"]})})}):(0,r.jsx)("div",{className:"dd-stagger grid gap-3 sm:grid-cols-2",children:h.map((e,t)=>(0,r.jsx)("div",{style:{animationDelay:`${50*t}ms`},children:(0,r.jsx)(V,{repo:e})},e.id))})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)(w.Zp,{pad:"lg",children:[(0,r.jsxs)("div",{className:"mb-1 flex items-center justify-between",children:[(0,r.jsx)("h3",{className:"text-base font-semibold",children:"Daily budget"}),(0,r.jsx)(X.m,{content:"Combined spend today against the sum of per-repo daily limits. Turns amber at 80%, red near the cap.",children:(0,r.jsx)(i.A,{className:"h-3.5 w-3.5 text-muted-foreground"})})]}),(0,r.jsx)("div",{className:"mt-2 flex justify-center",children:(0,r.jsx)(K,{value:p.spendToday,limit:f})}),(0,r.jsxs)("div",{className:"mt-4 border-t border-card-border pt-3",children:[(0,r.jsxs)("div",{className:"mb-2 flex items-center justify-between text-xs text-muted-foreground",children:[(0,r.jsx)("span",{children:"Spend \xb7 last 7 days"}),(0,r.jsxs)("span",{className:"tnum text-foreground/80",children:[(0,H.UK)(p.spendToday)," today"]})]}),(0,r.jsx)(Q.Sparkline,{data:j,width:300,height:44,tone:"chart-1"})]})]}),p.needsHuman>0?(0,r.jsx)(Z.F,{tone:"destructive",title:`${p.needsHuman} ${1===p.needsHuman?"job needs":"jobs need"} a human`,action:(0,r.jsx)(m.$,{size:"sm",variant:"outline",onClick:()=>s.push("/needs-human"),children:"Review"}),children:"A guardrail paused work before anything risky was written."}):(0,r.jsx)(Z.F,{tone:"success",title:"All clear",children:"No jobs are waiting on a human right now."})]})]})]})}},5548:(e,t,s)=>{Promise.resolve().then(s.bind(s,5384))},5696:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(3909).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},5774:(e,t,s)=>{"use strict";s.d(t,{o:()=>l});var r=s(3031),a=s(8063),n=s(5945);function l({value:e,onChange:t,agent:s,id:i,className:c}){let d=s?(0,n.tT)(s):n.L6;return(0,r.jsx)(a.l,{id:i,value:e,onChange:e=>t(e.target.value),className:c,children:d.map(e=>(0,r.jsx)("option",{value:e.id,children:e.label},e.id))})}},5945:(e,t,s)=>{"use strict";s.d(t,{L6:()=>r,UB:()=>a,VJ:()=>l,tT:()=>n});let r=[{id:"claude-opus-4-8",label:"Claude Opus 4.8",agent:"claude"},{id:"claude-opus-4-7",label:"Claude Opus 4.7",agent:"claude"},{id:"claude-sonnet-4-5",label:"Claude Sonnet 4.5",agent:"claude"},{id:"claude-haiku-4-5",label:"Claude Haiku 4.5",agent:"claude"},{id:"gpt-5-codex",label:"GPT-5 Codex",agent:"codex"},{id:"gpt-5",label:"GPT-5",agent:"codex"},{id:"gpt-5-mini",label:"GPT-5 Mini",agent:"codex"}],a="claude-opus-4-8";function n(e){return r.filter(t=>t.agent===e)}function l(e){return n(e)[0]?.id??a}},6016:(e,t,s)=>{"use strict";s.d(t,{Sparkline:()=>l});var r=s(3031),a=s(9983),n=s(1781);function l({data:e,width:t=132,height:s=36,tone:i="chart-1",fill:c=!0,strokeWidth:d=1.75}){let o=`sp${(0,a.useId)().replace(/:/g,"")}`;if(0===e.length)return null;let u=Math.min(...e),x=Math.max(...e)-u||1,h=e.length>1?t/(e.length-1):t,m=e.map((e,t)=>[t*h,s-3-(e-u)/x*(s-6)]),p=m.map((e,t)=>`${t?"L":"M"}${e[0].toFixed(1)} ${e[1].toFixed(1)}`).join(" "),g=`${p} L${t} ${s} L0 ${s} Z`,f=(0,n.U)(i),j=m[m.length-1]??[0,s-3];return(0,r.jsxs)("svg",{width:t,height:s,viewBox:`0 0 ${t} ${s}`,className:"overflow-visible","aria-hidden":"true",children:[c&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("defs",{children:(0,r.jsxs)("linearGradient",{id:o,x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,r.jsx)("stop",{offset:"0%",stopColor:f,stopOpacity:"0.22"}),(0,r.jsx)("stop",{offset:"100%",stopColor:f,stopOpacity:"0"})]})}),(0,r.jsx)("path",{d:g,fill:`url(#${o})`})]}),(0,r.jsx)("path",{d:p,fill:"none",stroke:f,strokeWidth:d,strokeLinecap:"round",strokeLinejoin:"round"}),(0,r.jsx)("circle",{cx:j[0],cy:j[1],r:2.5,fill:f})]})}},6619:(e,t,s)=>{"use strict";s.d(t,{z:()=>d});var r=s(3031),a=s(3190),n=s(2626),l=s.n(n),i=s(9983),c=s(6636);function d({title:e,subtitle:t,breadcrumb:s,actions:n,icon:o,className:u}){return(0,r.jsxs)("div",{className:(0,c.cn)("mb-6 flex flex-wrap items-end justify-between gap-4",u),children:[(0,r.jsxs)("div",{className:"min-w-0",children:[s&&s.length>0&&(0,r.jsx)("nav",{className:"mb-1.5 flex items-center gap-1.5 text-xs text-muted-foreground",children:s.map((e,t)=>(0,r.jsxs)(i.Fragment,{children:[t>0&&(0,r.jsx)(a.A,{className:"h-3 w-3 opacity-60","aria-hidden":!0}),e.href?(0,r.jsx)(l(),{href:e.href,className:"rounded transition-colors hover:text-foreground focus-ring",children:e.label}):(0,r.jsx)("span",{className:"text-foreground/80",children:e.label})]},e.href??e.label))}),(0,r.jsxs)("div",{className:"flex items-center gap-2.5",children:[o&&(0,r.jsx)("span",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-secondary text-muted-foreground",children:(0,r.jsx)(o,{className:"h-[17px] w-[17px]"})}),(0,r.jsx)("h1",{className:"text-pretty text-2xl font-bold tracking-tight",children:e})]}),t&&(0,r.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:t})]}),n&&(0,r.jsx)("div",{className:"flex items-center gap-2",children:n})]})}},7787:(e,t,s)=>{"use strict";s.d(t,{F:()=>o});var r=s(3031),a=s(4344),n=s(5051),l=s(709),i=s(3030);s(2445),s(2596);var c=s(6636);let d={info:{cls:"border-primary/30 bg-primary/5 text-foreground",icon:a.A,ic:"text-primary"},success:{cls:"border-success-border bg-success-muted text-foreground",icon:n.A,ic:"text-success"},warning:{cls:"border-warning-border bg-warning-muted text-foreground",icon:l.A,ic:"text-warning"},destructive:{cls:"border-destructive/30 bg-destructive/5 text-foreground",icon:i.A,ic:"text-destructive"}};function o({tone:e="info",title:t,children:s,action:a,icon:n,className:l}){let i=d[e],u=n??i.icon;return(0,r.jsxs)("div",{className:(0,c.cn)("flex gap-3 rounded-xl border p-4",i.cls,l),role:"alert",children:[(0,r.jsx)(u,{className:(0,c.cn)("mt-0.5 h-[18px] w-[18px] shrink-0",i.ic)}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[t&&(0,r.jsx)("p",{className:"text-sm font-semibold",children:t}),s&&(0,r.jsx)("div",{className:"mt-0.5 text-pretty text-sm text-muted-foreground",children:s})]}),a&&(0,r.jsx)("div",{className:"shrink-0",children:a})]})}},7822:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(3909).A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},8063:(e,t,s)=>{"use strict";s.d(t,{l:()=>i});var r=s(3031),a=s(7822),n=s(9983),l=s(6636);let i=n.forwardRef(({className:e,children:t,...s},n)=>(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("select",{ref:n,className:(0,l.cn)("h-9 w-full appearance-none cursor-pointer rounded-lg border border-input bg-background pl-3 pr-9 text-sm text-foreground","transition focus-ring","disabled:cursor-not-allowed disabled:opacity-50",e),...s,children:t}),(0,r.jsx)(a.A,{className:"pointer-events-none absolute right-2.5 top-1/2 h-[15px] w-[15px] -translate-y-1/2 text-muted-foreground"})]}));i.displayName="Select"}},e=>{e.O(0,[736,188,633,586,358],()=>e(e.s=5548)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[942],{117:(e,r,t)=>{"use strict";t.d(r,{D:()=>i});var s=t(3031),n=t(6636);function a({htmlFor:e,className:r,children:t}){return(0,s.jsx)("label",{htmlFor:e,className:(0,n.cn)("text-sm font-medium text-foreground",r),children:t})}function i({label:e,hint:r,htmlFor:t,children:o,className:l}){return(0,s.jsxs)("div",{className:(0,n.cn)("flex flex-col gap-1.5",l),children:[e&&(0,s.jsx)(a,{htmlFor:t,children:e}),o,r&&(0,s.jsx)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:r})]})}},661:(e,r,t)=>{"use strict";t.d(r,{_:()=>s});let s={main:"default",ciFix:"ci-fix"}},2205:(e,r,t)=>{"use strict";t.d(r,{I:()=>a});var s=t(3031),n=t(6636);function a({value:e,onChange:r,options:t,size:i="default",disabled:o=!1}){return(0,s.jsx)("div",{className:(0,n.cn)("inline-flex items-center gap-0.5 rounded-lg border border-border bg-secondary/50 p-0.5","sm"===i&&"text-xs"),children:t.map(t=>(0,s.jsx)("button",{type:"button",disabled:o,onClick:()=>r(t.value),className:(0,n.cn)("rounded-md px-2.5 py-1 text-xs font-medium transition-colors focus-ring","disabled:cursor-not-allowed disabled:opacity-50",e===t.value?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:t.label},t.value))})}},2320:(e,r,t)=>{"use strict";t.d(r,{E:()=>l});var s=t(3031),n=t(6636);let a={neutral:"border-border bg-secondary text-secondary-foreground",primary:"border-primary/40 bg-primary/10 text-primary",success:"border-success-border bg-success-muted text-success-foreground",warning:"border-warning-border bg-warning-muted text-warning-foreground",destructive:"border-destructive/40 bg-destructive/10 text-destructive"},i={queued:"neutral",working:"primary",ci_running:"warning",ci_failed:"destructive",retrying:"warning",merged:"success",needs_human:"destructive",aborted:"neutral",interrupted:"warning",open:"neutral",triaged:"primary",releasing:"primary"},o=new Set(["working","ci_running","retrying","releasing"]);function l({className:e,status:r,tone:t,children:d,...c}){let u=t??(r?i[r]??"neutral":"neutral"),m=void 0!==r&&o.has(r);return(0,s.jsxs)("span",{className:(0,n.cn)("inline-flex items-center gap-1.5 whitespace-nowrap rounded-md border px-2 py-0.5 text-[11px] font-semibold leading-4",a[u],e),...c,children:[m&&(0,s.jsxs)("span",{className:"relative flex h-1.5 w-1.5",children:[(0,s.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-current opacity-60"}),(0,s.jsx)("span",{className:"relative inline-flex h-1.5 w-1.5 rounded-full bg-current"})]}),d??r?.replace(/_/g," ")]})}},2386:(e,r,t)=>{"use strict";t.d(r,{t:()=>m,d:()=>x});var s=t(3031),n=t(5051),a=t(3931),i=t(4344),o=t(4234),l=t(9983);function d(e){return"error"===e?"assertive":"polite"}var c=t(6636);let u=(0,l.createContext)(null);function m({children:e}){let[r,t]=(0,l.useState)([]),n=(0,l.useCallback)(e=>{t(r=>r.filter(r=>r.id!==e))},[]),a=(0,l.useCallback)(e=>{let r=Date.now()+Math.random(),s={id:r,title:e.title,description:e.description,variant:e.variant??"info"};t(e=>[...e,s]),setTimeout(()=>n(r),5e3)},[n]),i=(0,l.useMemo)(()=>({toast:a,success:(e,r)=>a({title:e,description:r,variant:"success"}),error:(e,r)=>a({title:e,description:r,variant:"error"}),info:(e,r)=>a({title:e,description:r,variant:"info"})}),[a]);return(0,s.jsxs)(u.Provider,{value:i,children:[e,(0,s.jsx)(h,{toasts:r,onDismiss:n})]})}function x(){let e=(0,l.useContext)(u);if(!e)throw Error("useToast must be used within a ToastProvider");return e}let f={success:n.A,error:a.A,info:i.A},p={success:{icon:"text-success",bar:"bg-success"},error:{icon:"text-destructive",bar:"bg-destructive"},info:{icon:"text-primary",bar:"bg-primary"}};function v({toast:e,onDismiss:r}){let t=f[e.variant],n=p[e.variant];return(0,s.jsxs)("div",{className:"dd-toast dd-toast-in pointer-events-auto relative flex items-start gap-3 overflow-hidden rounded-xl border border-card-border bg-card p-3.5 shadow-lg",children:[(0,s.jsx)(t,{className:(0,c.cn)("mt-0.5 h-[18px] w-[18px] shrink-0",n.icon)}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("p",{className:"text-sm font-medium",children:e.title}),e.description&&(0,s.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:e.description})]}),(0,s.jsx)("button",{type:"button","aria-label":"Dismiss notification",onClick:()=>r(e.id),className:"shrink-0 rounded-md p-0.5 text-muted-foreground hover-elevate",children:(0,s.jsx)(o.A,{className:"h-3.5 w-3.5"})}),(0,s.jsx)("span",{className:(0,c.cn)("dd-toast-progress absolute bottom-0 left-0 h-0.5 w-full",n.bar),style:{animationDuration:"5000ms"}})]})}function h({toasts:e,onDismiss:r}){let t=e.filter(e=>"assertive"===d(e.variant)),n=e.filter(e=>"polite"===d(e.variant));return(0,s.jsxs)("div",{className:"pointer-events-none fixed bottom-4 right-4 z-[60] flex w-full max-w-sm flex-col gap-2",children:[(0,s.jsx)("div",{role:"alert","aria-live":"assertive","aria-atomic":"false",className:"flex flex-col gap-2",children:t.map(e=>(0,s.jsx)(v,{toast:e,onDismiss:r},e.id))}),(0,s.jsx)("div",{"aria-live":"polite","aria-atomic":"false",className:"flex flex-col gap-2",children:n.map(e=>(0,s.jsx)(v,{toast:e,onDismiss:r},e.id))})]})}},2391:(e,r,t)=>{"use strict";t.d(r,{PromptEditor:()=>$});var s=t(3031),n=t(6886),a=t(5012),i=t(4234),o=t(5331),l=t(6951),d=t(801),c=t(9490),u=t(9983),m=t(2320),x=t(7727),f=t(2445),p=t(117),v=t(2205),h=t(8063),g=t(9090),b=t(2386),j=t(3543),N=t(6436),w=t(661);let y=["$ISSUE_NUM","$BRANCH","$REPO_NAME","$CI_LOG"];var S=t(6636);let _=[{value:w._.main,label:"Main"},{value:w._.ciFix,label:"CI fix"}];function C(e){return new Date(1e3*e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function $({repos:e,initialContent:r,initialVersions:t}){let[A,E]=(0,u.useState)(r),[k,M]=(0,u.useState)(e[0]?.id??0),[R,I]=(0,u.useState)(w._.main),[U,D]=(0,u.useState)(t),[O,B]=(0,u.useTransition)(),[P,F]=(0,u.useState)(null),[L,z]=(0,u.useState)(null),{success:T,error:Z}=(0,b.d)();function G(e,r){B(async()=>{try{let t=await (0,j.v)(e,r);E(t.content),D(t.versions),F(null),z(null)}catch(e){Z("Failed to load template",e instanceof Error?e.message:String(e))}})}let H=function(e,r){let t={$ISSUE_NUM:void 0!==r.ISSUE_NUM?String(r.ISSUE_NUM):"$ISSUE_NUM",$BRANCH:r.BRANCH??"$BRANCH",$REPO_NAME:r.REPO_NAME??"$REPO_NAME",$CI_LOG:r.CI_LOG??"$CI_LOG"},s=e;for(let e of[...y].sort((e,r)=>r.length-e.length))s=s.split(e).join(t[e]??e);return s}(A,{ISSUE_NUM:42,BRANCH:"fix/issue-42",REPO_NAME:"acme",CI_LOG:"example CI failure output"});return(0,s.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,s.jsxs)(f.Zp,{pad:"none",children:[(0,s.jsxs)(f.aR,{children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsx)(f.ZB,{children:"Editor"}),O&&(0,s.jsx)(g.y,{size:16,className:"text-muted-foreground"})]}),(0,s.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Variables:"," ",(0,s.jsx)("span",{className:"font-mono text-foreground/80",children:y.join(", ")})]})]}),(0,s.jsxs)(f.Wu,{className:"space-y-3 px-5 pb-5",children:[(0,s.jsxs)("div",{className:"flex flex-wrap items-end gap-3",children:[(0,s.jsx)(p.D,{label:"Repository",htmlFor:"prompt-repo",className:"min-w-[180px] flex-1",children:(0,s.jsx)(h.l,{id:"prompt-repo","aria-label":"Repository",value:k,onChange:e=>{let r=Number(e.target.value);M(r),G(r,R)},children:e.map(e=>(0,s.jsx)("option",{value:e.id,children:e.name},e.id))})}),(0,s.jsx)(p.D,{label:"Template",children:(0,s.jsx)(v.I,{value:R,onChange:e=>{I(e),G(k,e)},options:_})})]}),L?(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-card-border bg-secondary/50 px-3 py-2 text-xs text-muted-foreground",children:[(0,s.jsx)(a.A,{className:"h-3.5 w-3.5 shrink-0"}),(0,s.jsxs)("span",{children:["Diffing"," ",(0,s.jsxs)("span",{className:"font-medium text-foreground",children:["v",L.version]})," (",C(L.updatedAt),") vs active"]}),(0,s.jsxs)("button",{type:"button",className:"ml-auto inline-flex items-center gap-1 rounded transition-colors hover:text-foreground focus-ring",onClick:()=>z(null),children:[(0,s.jsx)(i.A,{className:"h-3.5 w-3.5"}),"Close diff"]})]}),(0,s.jsx)("div",{className:"h-72 overflow-hidden rounded-lg border border-card-border",children:(0,s.jsx)(n.zC,{language:"markdown",original:L.content,modified:A,options:{minimap:{enabled:!1},fontSize:13,readOnly:!0,renderSideBySide:!0}})}),(0,s.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,s.jsx)(x.$,{variant:"ghost",size:"sm",onClick:()=>z(null),children:"Cancel"}),(0,s.jsxs)(x.$,{disabled:O,variant:"outline",size:"sm",onClick:function(){L&&B(async()=>{try{let e=await (0,N.m)({repoId:k,name:R,content:L.content});F(e.version);let r=await (0,j.v)(k,R);E(r.content),D(r.versions),z(null),T("Version restored",`Saved as v${e.version}`)}catch(e){Z("Failed to restore version",e instanceof Error?e.message:String(e))}})},children:[(0,s.jsx)(o.A,{className:"h-4 w-4"}),"Restore v",L.version]})]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"h-72 overflow-hidden rounded-lg border border-card-border",children:(0,s.jsx)(n.Ay,{defaultLanguage:"markdown",value:A,onChange:e=>E(e??""),options:{minimap:{enabled:!1},fontSize:13}})}),(0,s.jsxs)("div",{className:"flex items-center justify-end gap-3",children:[null!==P&&(0,s.jsxs)("span",{className:"text-xs text-success",children:["Saved v",P]}),(0,s.jsxs)(x.$,{disabled:O||!k,size:"sm",onClick:()=>B(async()=>{try{let e=await (0,N.m)({repoId:k,name:R,content:A});F(e.version);let r=await (0,j.v)(k,R);D(r.versions),T("Template saved",`Version ${e.version}`)}catch(e){Z("Failed to save template",e instanceof Error?e.message:String(e))}}),children:[(0,s.jsx)(l.A,{className:"h-4 w-4"}),"Save version"]})]})]})]})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)(f.Zp,{pad:"none",children:[(0,s.jsx)(f.aR,{children:(0,s.jsxs)(f.ZB,{className:"flex items-center gap-2",children:[(0,s.jsx)(d.A,{className:"h-4 w-4 text-muted-foreground"}),"Preview",(0,s.jsx)("span",{className:"text-xs font-normal text-muted-foreground",children:"(sample data)"})]})}),(0,s.jsx)(f.Wu,{className:"px-5 pb-5",children:(0,s.jsx)("pre",{className:"scrollbar-none max-h-72 overflow-auto whitespace-pre-wrap rounded-lg border border-card-border bg-secondary/40 p-3 font-mono text-xs leading-relaxed",children:H})})]}),(0,s.jsxs)(f.Zp,{pad:"none",children:[(0,s.jsx)(f.aR,{children:(0,s.jsxs)(f.ZB,{className:"flex items-center gap-2",children:[(0,s.jsx)(c.A,{className:"h-4 w-4 text-muted-foreground"}),"Version history"]})}),(0,s.jsx)(f.Wu,{className:"px-5 pb-5",children:0===U.length?(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"No saved versions yet."}):(0,s.jsx)("ul",{className:"flex flex-col gap-1",children:U.map(e=>{let r=e.version===U[0]?.version,t=L?.version===e.version;return(0,s.jsx)("li",{children:(0,s.jsxs)("button",{type:"button",className:(0,S.cn)("flex w-full items-center gap-2 rounded-lg border px-3 py-2 text-left text-sm transition-colors focus-ring",t?"border-primary/40 bg-primary/10 text-primary":"border-transparent text-muted-foreground hover-elevate hover:text-foreground"),onClick:()=>{z(r=>r?.version===e.version?null:e)},title:r?"Active version":"Click to diff against active",children:[(0,s.jsxs)("span",{className:"font-mono font-semibold tnum",children:["v",e.version]}),r&&(0,s.jsx)(m.E,{tone:"success",children:"active"}),(0,s.jsx)("span",{className:"ml-auto tnum text-xs text-muted-foreground",children:C(e.updatedAt)})]})},e.version)})})})]})]})]})}},2445:(e,r,t)=>{"use strict";t.d(r,{Wu:()=>d,ZB:()=>l,Zp:()=>i,aR:()=>o});var s=t(3031),n=t(6636);let a={none:"",sm:"p-4",default:"p-5",lg:"p-6"};function i({className:e,pad:r,hover:t,...o}){return(0,s.jsx)("div",{className:(0,n.cn)("rounded-xl border border-card-border bg-card text-card-foreground shadow-sm",t&&"hover-elevate transition-shadow hover:shadow-md",r&&a[r],e),...o})}function o({className:e,...r}){return(0,s.jsx)("div",{className:(0,n.cn)("flex flex-col gap-1.5 p-5",e),...r})}function l({className:e,...r}){return(0,s.jsx)("h3",{className:(0,n.cn)("text-base font-semibold leading-none tracking-tight",e),...r})}function d({className:e,...r}){return(0,s.jsx)("div",{className:(0,n.cn)("p-5 pt-0",e),...r})}},3543:(e,r,t)=>{"use strict";t.d(r,{v:()=>n});var s=t(821);let n=(0,s.createServerReference)("6000b44485aaa07a2c0e5d2cc416373ded89ad20a0",s.callServer,void 0,s.findSourceMapURL,"loadTemplateAction")},6436:(e,r,t)=>{"use strict";t.d(r,{m:()=>n});var s=t(821);let n=(0,s.createServerReference)("408cabd2f0488308c0d401856f5d1c6ed6d0d57c28",s.callServer,void 0,s.findSourceMapURL,"saveTemplateAction")},6636:(e,r,t)=>{"use strict";function s(...e){return e.filter(Boolean).join(" ")}function n(e){if(!e)return"no activity";let r=Math.floor(Date.now()/1e3)-e;return r<60?"just now":r<3600?`${Math.floor(r/60)}m ago`:r<86400?`${Math.floor(r/3600)}h ago`:r<604800?`${Math.floor(r/86400)}d ago`:new Date(1e3*e).toLocaleDateString()}function a(e){if(e>=3600){let r=Math.floor(e/3600),t=Math.round(e%3600/60);return t>0?`${r}h ${t}m`:`${r}h`}return e>=60?`${Math.floor(e/60)}m ${e%60}s`:`${e}s`}function i(e,r=2){return`$${e.toFixed(r)}`}t.d(r,{KW:()=>n,UK:()=>i,a3:()=>a,cn:()=>s})},7727:(e,r,t)=>{"use strict";t.d(r,{$:()=>l});var s=t(3031),n=t(9983),a=t(6636);let i={default:"bg-primary text-primary-foreground shadow-sm hover-elevate active-elevate-2",secondary:"bg-secondary text-secondary-foreground hover-elevate active-elevate-2",outline:"border border-border bg-transparent shadow-sm hover-elevate active-elevate-2",destructive:"bg-destructive text-destructive-foreground shadow-sm hover-elevate active-elevate-2",ghost:"border border-transparent hover-elevate active-elevate-2",success:"bg-success text-white shadow-sm hover-elevate active-elevate-2"},o={default:"h-9 px-4 py-2 rounded-lg text-sm",sm:"h-8 px-3 rounded-md text-xs",lg:"h-10 px-6 rounded-lg text-sm",icon:"h-9 w-9 rounded-lg","icon-sm":"h-8 w-8 rounded-md"},l=n.forwardRef(({className:e,variant:r="default",size:t="default",type:n="button",...l},d)=>(0,s.jsx)("button",{ref:d,type:n,className:(0,a.cn)("inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-ring","disabled:pointer-events-none disabled:opacity-50","[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",i[r],o[t],e),...l}));l.displayName="Button"},8063:(e,r,t)=>{"use strict";t.d(r,{l:()=>o});var s=t(3031),n=t(7822),a=t(9983),i=t(6636);let o=a.forwardRef(({className:e,children:r,...t},a)=>(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("select",{ref:a,className:(0,i.cn)("h-9 w-full appearance-none cursor-pointer rounded-lg border border-input bg-background pl-3 pr-9 text-sm text-foreground","transition focus-ring","disabled:cursor-not-allowed disabled:opacity-50",e),...t,children:r}),(0,s.jsx)(n.A,{className:"pointer-events-none absolute right-2.5 top-1/2 h-[15px] w-[15px] -translate-y-1/2 text-muted-foreground"})]}));o.displayName="Select"},8833:(e,r,t)=>{Promise.resolve().then(t.bind(t,8564)),Promise.resolve().then(t.t.bind(t,2626,23)),Promise.resolve().then(t.bind(t,2391))},9090:(e,r,t)=>{"use strict";t.d(r,{y:()=>i});var s=t(3031),n=t(8164),a=t(6636);function i({size:e=16,className:r}){return(0,s.jsx)(n.A,{width:e,height:e,className:(0,a.cn)("dd-spin",r),"aria-hidden":!0})}}},e=>{e.O(0,[736,312,633,586,358],()=>e(e.s=8833)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[530],{305:(e,s,t)=>{"use strict";t.d(s,{u:()=>r});var a=t(821);let r=(0,a.createServerReference)("607b228e27e75ed4335d6a0a83c6416bd9d397256d",a.callServer,void 0,a.findSourceMapURL,"updateRepoAction")},661:(e,s,t)=>{"use strict";t.d(s,{_:()=>a});let a={main:"default",ciFix:"ci-fix"}},782:(e,s,t)=>{"use strict";t.d(s,{A:()=>a});let a=(0,t(3909).A)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]])},1781:(e,s,t)=>{"use strict";function a(e){return e?`hsl(var(--${e}))`:"hsl(var(--muted-foreground))"}t.d(s,{U:()=>a})},1920:(e,s,t)=>{"use strict";t.d(s,{RepoSettingsBar:()=>m});var a=t(3031),r=t(9983),n=t(6605),l=t(5774),i=t(4281),o=t(2767),c=t(2386),d=t(5945),u=t(305);function m({repo:e}){let[s,t]=(0,r.useState)(e.agent),[h,x]=(0,r.useState)(e.defaultModel),[p,f]=(0,r.useState)(e.dailyCostLimitUsd),[g,b]=(0,r.useState)(e.adrGating),[v,j]=(0,r.useState)(e.sequential),[y,N]=(0,r.useTransition)(),[k,w]=(0,r.useState)(!1),{error:S}=(0,c.d)();function A(s){w(!1),N(async()=>{try{await (0,u.u)(e.id,s),w(!0),setTimeout(()=>w(!1),1500)}catch(e){S("Failed to update repository",e instanceof Error?e.message:String(e))}})}return(0,a.jsxs)("div",{className:"flex flex-col gap-4 rounded-lg border border-border p-4",children:[(0,a.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,a.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Queue label"}),(0,a.jsx)("code",{className:"inline-flex h-9 w-fit max-w-full items-center truncate rounded-lg bg-secondary px-3 font-mono text-xs text-muted-foreground",children:e.queueLabel})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,a.jsx)("label",{htmlFor:"repo-daily-limit",className:"text-xs font-medium text-muted-foreground",children:"Daily limit ($)"}),(0,a.jsx)(i.p,{id:"repo-daily-limit",type:"number",min:0,step:1,value:p,onChange:e=>{var s;f(s=Number(e.target.value)),A({dailyCostLimitUsd:s})},className:"w-28"})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,a.jsx)("label",{htmlFor:"repo-agent-select",className:"text-xs font-medium text-muted-foreground",children:"Agent"}),(0,a.jsx)(n.a,{id:"repo-agent-select",value:s,onChange:function(e){let s=(0,d.VJ)(e);t(e),x(s),A({agent:e,defaultModel:s})}})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,a.jsx)("label",{htmlFor:"repo-model-select",className:"text-xs font-medium text-muted-foreground",children:"Model"}),(0,a.jsx)(l.o,{id:"repo-model-select",value:h,onChange:function(e){x(e),A({defaultModel:e})},agent:s})]})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-x-6 gap-y-3",children:[(0,a.jsxs)("label",{htmlFor:"repo-adr-gate",className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)(o.d,{id:"repo-adr-gate",checked:g,onChange:function(e){b(e),A({adrGating:e})},"aria-label":"ADR gate"}),"ADR gate"]}),(0,a.jsxs)("label",{htmlFor:"repo-sequential",className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)(o.d,{id:"repo-sequential",checked:v,onChange:function(e){j(e),A({sequential:e})},"aria-label":"Sequential (wait for merge)"}),"Sequential (wait for merge)"]}),(0,a.jsx)("span",{"aria-live":"polite",className:"ml-auto text-xs text-muted-foreground",children:y?"Saving…":k?"Saved":""})]})]})}},2205:(e,s,t)=>{"use strict";t.d(s,{I:()=>n});var a=t(3031),r=t(6636);function n({value:e,onChange:s,options:t,size:l="default",disabled:i=!1}){return(0,a.jsx)("div",{className:(0,r.cn)("inline-flex items-center gap-0.5 rounded-lg border border-border bg-secondary/50 p-0.5","sm"===l&&"text-xs"),children:t.map(t=>(0,a.jsx)("button",{type:"button",disabled:i,onClick:()=>s(t.value),className:(0,r.cn)("rounded-md px-2.5 py-1 text-xs font-medium transition-colors focus-ring","disabled:cursor-not-allowed disabled:opacity-50",e===t.value?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:t.label},t.value))})}},3268:(e,s,t)=>{"use strict";t.d(s,{A:()=>a});let a=(0,t(3909).A)("file-text",[["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 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]])},3331:(e,s,t)=>{"use strict";t.d(s,{RepoAutomationBar:()=>R});var a=t(3031),r=t(3909);let n=(0,r.A)("shield-check",[["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:"m9 12 2 2 4-4",key:"dzmm74"}]]);var l=t(8692),i=t(5924);let o=(0,r.A)("heart-pulse",[["path",{d:"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",key:"mvr1a0"}],["path",{d:"M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27",key:"auskq0"}]]);var c=t(9630),d=t(4163),u=t(9983),m=t(7787),h=t(117),x=t(4281),p=t(8063),f=t(2767),g=t(5381),b=t(2386),v=t(1552),j=t(305),y=t(6636);function N(e){try{let s=JSON.parse(e);return Array.isArray(s)?s.filter(e=>"string"==typeof e):[]}catch{return[]}}function k(e){return[...new Set(e.split(/[,\n]/).map(e=>e.trim()).filter(Boolean))]}let w={neutral:"bg-secondary text-muted-foreground",primary:"bg-primary/10 text-primary",success:"bg-success-muted text-success",warning:"bg-warning-muted text-warning",destructive:"bg-destructive/10 text-destructive"};function S({icon:e,legend:s,description:t,tone:r="neutral",children:n}){return(0,a.jsxs)("fieldset",{className:"rounded-lg border border-border p-4",children:[(0,a.jsxs)("legend",{className:"flex items-center gap-2 px-1",children:[(0,a.jsx)("span",{className:(0,y.cn)("flex h-6 w-6 items-center justify-center rounded-md",w[r]),children:(0,a.jsx)(e,{className:"h-3.5 w-3.5"})}),(0,a.jsx)("span",{className:"text-sm font-semibold",children:s})]}),t&&(0,a.jsx)("p",{className:"mb-3 mt-1 text-xs text-muted-foreground",children:t}),(0,a.jsx)("div",{className:"flex flex-col gap-3",children:n})]})}function A({label:e,help:s,checked:t,onChange:r,children:n}){return(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,a.jsx)(f.d,{checked:t,onChange:r,"aria-label":e}),(0,a.jsx)("span",{className:"text-sm",children:e}),s&&(0,a.jsx)(v.V,{content:s})]}),t&&n&&(0,a.jsx)("div",{className:"dd-fade-up mt-3 grid gap-3 border-l-2 border-border pl-4 sm:grid-cols-2",children:n})]})}function C({label:e,value:s,onChange:t,onBlur:r,help:n}){return(0,a.jsx)(h.D,{label:(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[e,n&&(0,a.jsx)(v.V,{content:n})]}),children:(0,a.jsx)(x.p,{value:s,onChange:e=>t(e.target.value),onBlur:r,placeholder:"comma-separated",className:"h-8 font-mono text-xs"})})}function R({repo:e}){let[s,t]=(0,u.useState)(e.autoTriageEnabled),[r,f]=(0,u.useState)(e.autoProcessEnabled),[y,w]=(0,u.useState)(e.autoHealCi),[M,$]=(0,u.useState)(e.autoReviewFeedback),[L,P]=(0,u.useState)(e.autoDecompose),[D,z]=(0,u.useState)(e.verifyPr),[E,T]=(0,u.useState)(e.autoHealDeployments),[q,I]=(0,u.useState)(e.releaseEnabled),[F,U]=(0,u.useState)(e.autoResolveMergeConflicts),[H,O]=(0,u.useState)(e.includeProgressReplies),[B,V]=(0,u.useState)(N(e.readyLabels).join(", ")),[_,W]=(0,u.useState)(N(e.blockingLabels).join(", ")),[G,Q]=(0,u.useState)(N(e.autoLabelWhitelist).join(", ")),[J,K]=(0,u.useState)(N(e.priorityAuthors).join(", ")),[Z,X]=(0,u.useState)(N(e.trustedReviewers).join(", ")),[Y,ee]=(0,u.useState)(N(e.ignoredBots).join(", ")),[es,et]=(0,u.useState)(e.minAuthorAssociation),[ea,er]=(0,u.useState)(e.deploymentPlatform??""),[en,el]=(0,u.useState)(e.maxAttempts),[ei,eo]=(0,u.useState)(e.agentInstructions??""),[ec,ed]=(0,u.useTransition)(),[eu,em]=(0,u.useState)(!1),{error:eh}=(0,b.d)();function ex(s){em(!1),ed(async()=>{try{await (0,j.u)(e.id,s),em(!0),setTimeout(()=>em(!1),1500)}catch(e){eh("Failed to update automation",e instanceof Error?e.message:String(e))}})}return(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)(m.F,{tone:"info",icon:n,title:"Opt-in & bounded",children:"Every stage is off by default and consumes paid agent usage. Drydock never auto-merges — a human always reviews the PR."}),(0,a.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,a.jsx)(S,{icon:l.A,legend:"Triage",tone:"primary",description:"Classify and label brand-new issues.",children:(0,a.jsxs)(A,{label:"Auto-triage new issues",checked:s,onChange:e=>{t(e),ex({autoTriageEnabled:e})},help:"Reads each new issue and applies whitelisted labels. Never processes — only classifies.",children:[(0,a.jsx)(C,{label:"Auto-label whitelist",value:G,onChange:Q,onBlur:()=>ex({autoLabelWhitelist:k(G)}),help:"Triage may only apply labels from this list."}),(0,a.jsx)(h.D,{label:(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:["Act on authors",(0,a.jsx)(v.V,{content:"Restrict automation to issues from trusted authors."})]}),children:(0,a.jsxs)(p.l,{value:es,onChange:e=>{let s=e.target.value;et(s),ex({minAuthorAssociation:s})},className:"h-8 text-xs",children:[(0,a.jsx)("option",{value:"approved",children:"Owners / members / collaborators"}),(0,a.jsx)("option",{value:"any",children:"Anyone (public participation)"})]})})]})}),(0,a.jsxs)(S,{icon:i.A,legend:"Processing",tone:"primary",description:"Turn ready issues into pull requests.",children:[(0,a.jsxs)(A,{label:"Auto-process ready issues",checked:r,onChange:e=>{f(e),ex({autoProcessEnabled:e})},help:"Works issues that are ready and not blocked, opening a PR for each.",children:[(0,a.jsx)(C,{label:"Ready labels",value:B,onChange:V,onBlur:()=>ex({readyLabels:k(B)}),help:"Only issues carrying one of these labels are eligible."}),(0,a.jsx)(C,{label:"Blocking labels",value:_,onChange:W,onBlur:()=>ex({blockingLabels:k(_)}),help:"Any of these labels holds an issue back."}),(0,a.jsx)(C,{label:"Priority authors",value:J,onChange:K,onBlur:()=>ex({priorityAuthors:k(J)}),help:"Issues from these authors jump the queue."}),(0,a.jsx)(h.D,{label:"Max attempts",children:(0,a.jsx)(x.p,{type:"number",min:1,value:en,onChange:e=>el(Number(e.target.value)),onBlur:()=>ex({maxAttempts:en}),className:"h-8 w-24 text-xs"})})]}),(0,a.jsx)(A,{label:"Decompose large issues",checked:L,onChange:e=>{P(e),ex({autoDecompose:e})},help:"Splits big issues into ordered, tracked subtasks before working them."}),(0,a.jsx)(A,{label:"Verify PR satisfies issue",checked:D,onChange:e=>{z(e),ex({verifyPr:e})},help:"A read-only pass after the PR opens that checks the diff against the issue and flags gaps. Never changes state on failure."}),(0,a.jsxs)(A,{label:"Address PR review feedback",checked:M,onChange:e=>{$(e),ex({autoReviewFeedback:e})},help:"Runs the mechanical iteration for trusted reviewers (bots ignored).",children:[(0,a.jsx)(C,{label:"Trusted reviewers",value:Z,onChange:X,onBlur:()=>ex({trustedReviewers:k(Z)}),help:"Only feedback from these reviewers is acted on."}),(0,a.jsx)(C,{label:"Ignored bots",value:Y,onChange:ee,onBlur:()=>ex({ignoredBots:k(Y)}),help:"Review comments from these bots are skipped."})]}),(0,a.jsx)(A,{label:"Repair trivial merge conflicts",checked:F,onChange:e=>{U(e),ex({autoResolveMergeConflicts:e})},help:"Rebases and resolves mechanical conflicts; complex ones still escalate."})]}),(0,a.jsxs)(S,{icon:o,legend:"CI & deploy healing",tone:"warning",description:"Keep checks and deployments green.",children:[(0,a.jsx)(A,{label:"Auto-heal failing CI",checked:y,onChange:e=>{w(e),ex({autoHealCi:e})},help:"Attempts bounded, verified fixes for failing CI. Never touches external or AI-review checks."}),(0,a.jsx)(A,{label:"Heal failed deployments",checked:E,onChange:e=>{T(e),ex({autoHealDeployments:e})},help:"Monitors a merged PR's deployment and, on failure, opens a follow-up fix PR with the captured logs.",children:(0,a.jsx)(h.D,{label:"Deployment platform",children:(0,a.jsxs)(p.l,{value:ea,onChange:e=>{let s=e.target.value;er(s),ex({deploymentPlatform:s||null})},className:"h-8 text-xs",children:[(0,a.jsx)("option",{value:"",children:"Auto-detect"}),(0,a.jsx)("option",{value:"vercel",children:"Vercel"}),(0,a.jsx)("option",{value:"railway",children:"Railway"})]})})})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)(S,{icon:c.A,legend:"Releases",tone:"success",description:"Cut releases from merged work.",children:(0,a.jsx)(A,{label:"Manage releases",checked:q,onChange:e=>{I(e),ex({releaseEnabled:e})},help:"Evaluates merged PRs since the last tag, picks the semver bump, and publishes — gated by a global kill-switch and fully previewable."})}),(0,a.jsx)(S,{icon:d.A,legend:"Notifications",description:"How Drydock talks back on the issue.",children:(0,a.jsx)(A,{label:"Post progress replies",checked:H,onChange:e=>{O(e),ex({includeProgressReplies:e})},help:"Comments status updates on the issue as the job advances."})})]})]}),(0,a.jsx)(h.D,{label:"Agent instructions",hint:(0,a.jsxs)(a.Fragment,{children:["Optional. Appended to the work prompt as a dedicated section — coding conventions, “always run pnpm test”, “don’t touch legacy/”, preferred PR style. Max ",4e3," characters; empty leaves the prompt unchanged."]}),children:(0,a.jsx)(g.T,{value:ei,maxLength:4e3,rows:3,onChange:e=>eo(e.target.value),onBlur:()=>ex({agentInstructions:ei.trim()||null}),placeholder:"Per-repo guidance injected into the work prompt…",className:"font-mono text-xs"})}),(0,a.jsx)("div",{"aria-live":"polite",className:"h-4 text-xs text-muted-foreground",children:ec?"Saving…":eu?"Saved":""})]})}},3410:(e,s,t)=>{"use strict";t.d(s,{RepoReleasePanel:()=>x});var a=t(3031),r=t(9630),n=t(9983),l=t(2320),i=t(7727),o=t(2596),c=t(2386),d=t(821);let u=(0,d.createServerReference)("40cf83b4e9824ee1d036c51d99331b31386a067b1f",d.callServer,void 0,d.findSourceMapURL,"previewReleaseAction"),m=(0,d.createServerReference)("40adc7237e7e66a87187c3c8707671997be3c5be00",d.callServer,void 0,d.findSourceMapURL,"publishReleaseAction"),h={detected:"neutral",evaluating:"neutral",proposed:"primary",publishing:"warning",published:"success",skipped:"neutral",error:"destructive"};function x({repoId:e,initialRuns:s}){let[t,d]=(0,n.useState)(s),[p,f]=(0,n.useState)(null),[g,b]=(0,n.useTransition)(),{error:v,success:j,info:y}=(0,c.d)();return(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("h3",{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,a.jsx)(r.A,{className:"h-3.5 w-3.5 text-muted-foreground"})," Releases"]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(i.$,{variant:"outline",size:"sm",onClick:function(){b(async()=>{try{f(await u(e))}catch(e){v("Preview failed",e instanceof Error?e.message:String(e))}})},disabled:g,children:"Preview"}),(0,a.jsx)(i.$,{size:"sm",onClick:function(){b(async()=>{try{let s=await m(e);d(s),f(null);let t=s[0];t?.status==="published"?j("Release published",t.tag?`Cut ${t.tag}.`:"A release was cut."):t?.status==="skipped"?y("No release cut","No release was recommended for the latest changes."):t?.status==="error"?v("Publish failed",t.errorMessage??"The release run did not complete."):y("Release started",`Run is ${t?.status??"in progress"}.`)}catch(e){v("Publish failed",e instanceof Error?e.message:String(e))}})},disabled:g,children:"Publish release"})]})]}),p&&(0,a.jsxs)("div",{className:"space-y-2 rounded-lg border border-card-border bg-secondary/30 p-3 text-sm",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("span",{className:"font-medium",children:"Proposed:"}),(0,a.jsx)(l.E,{tone:"primary",children:p.candidateTag}),(0,a.jsxs)("span",{className:"text-xs text-muted-foreground",children:[p.fromTag?`from ${p.fromTag}`:"first release"," \xb7 ",p.bump," \xb7"," ",p.shouldRelease?"release recommended":"no release recommended"]})]}),(0,a.jsxs)("ul",{className:"flex flex-col gap-0.5 text-xs text-muted-foreground",children:[p.prs.map(e=>(0,a.jsxs)("li",{className:"truncate",children:[(0,a.jsxs)("span",{className:"font-mono",children:["#",e.number]})," ",e.title]},e.number)),0===p.prs.length&&(0,a.jsx)("li",{children:"No unreleased pull requests."})]})]}),0===t.length?(0,a.jsx)(o.p,{compact:!0,icon:r.A,title:"No release runs yet",description:"Preview or publish a release to cut one from your merged work."}):(0,a.jsx)("ul",{className:"flex flex-col gap-2",children:t.map(e=>(0,a.jsxs)("li",{className:"flex items-center gap-3 rounded-lg border border-border p-3",children:[(0,a.jsx)(r.A,{className:"h-3.5 w-3.5 shrink-0 text-success"}),e.tag?(0,a.jsx)("span",{className:"font-mono text-sm font-semibold",children:e.tag}):(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:e.mode}),e.tag&&(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:e.mode}),null!=e.triggerPrNumber&&(0,a.jsxs)("span",{className:"text-xs text-muted-foreground",children:["PR #",e.triggerPrNumber]}),(0,a.jsx)(l.E,{tone:h[e.status]??"neutral",children:e.status}),e.errorMessage&&(0,a.jsx)("span",{className:"ml-auto max-w-[40%] truncate text-xs text-destructive",title:e.errorMessage,children:e.errorMessage})]},e.id))})]})}},3543:(e,s,t)=>{"use strict";t.d(s,{v:()=>r});var a=t(821);let r=(0,a.createServerReference)("6000b44485aaa07a2c0e5d2cc416373ded89ad20a0",a.callServer,void 0,a.findSourceMapURL,"loadTemplateAction")},3590:(e,s,t)=>{"use strict";t.d(s,{A:()=>a});let a=(0,t(3909).A)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]])},4163:(e,s,t)=>{"use strict";t.d(s,{A:()=>a});let a=(0,t(3909).A)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]])},5212:(e,s,t)=>{"use strict";t.d(s,{IssueBoard:()=>ee});var a=t(3031),r=t(3909);let n=(0,r.A)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]),l=(0,r.A)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]),i=(0,r.A)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);var o=t(4234),c=t(5696),d=t(7508),u=t(3590),m=t(8224),h=t(9630),x=t(8692),p=t(9983);let f=(0,r.A)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);var g=t(782),b=t(6951),v=t(5312),j=t(4163),y=t(6605),N=t(5774),k=t(7787),w=t(2320),S=t(7727),A=t(6498),C=t(4849),R=t(117),M=t(4281),$=t(5381),L=t(821);let P=(0,L.createServerReference)("60ffd0fe6ad5174db373193d3000da241f3f22705a",L.callServer,void 0,L.findSourceMapURL,"viewIssueAction"),D=(0,L.createServerReference)("60c4f556bebd97e8e33ea5f0a5e25b4c69efd9fb61",L.callServer,void 0,L.findSourceMapURL,"listSubtasksAction"),z=(0,L.createServerReference)("70e4dc19acb24df47c2355cfe0ab7339b59abf30d0",L.callServer,void 0,L.findSourceMapURL,"setIssueStateAction"),E=(0,L.createServerReference)("70292360697b846f46daaced6e9cd055a1b3fa114e",L.callServer,void 0,L.findSourceMapURL,"startIssueAction"),T=(0,L.createServerReference)("6043aab336b5fafc07522ed6feeacbe436ad9ae154",L.callServer,void 0,L.findSourceMapURL,"removeFromQueueAction"),q=(0,L.createServerReference)("708e2dc704dffb25230a6e64e862b64eb2444a2ecf",L.callServer,void 0,L.findSourceMapURL,"addToQueueAction"),I=(0,L.createServerReference)("7091288997b6f35b5c9b0defc5634dc32ac1e0bb37",L.callServer,void 0,L.findSourceMapURL,"editIssueAction"),F=(0,L.createServerReference)("788d64f9c39256e7846b3b6a0924e1d3b1d96ca84a",L.callServer,void 0,L.findSourceMapURL,"setIssueLabelsAction"),U=(0,L.createServerReference)("703e6949ede3006732766f448e39447b229baa0173",L.callServer,void 0,L.findSourceMapURL,"commentIssueAction");var H=t(5945);let O={pending:{label:"Pending",symbol:"○",tone:"neutral"},in_progress:{label:"In progress",symbol:"◐",tone:"primary"},done:{label:"Done",symbol:"✓",tone:"success"},skipped:{label:"Skipped",symbol:"⊘",tone:"neutral"},deferred:{label:"Deferred",symbol:"⏸",tone:"warning"}};function B({repoId:e,issueNumber:s,open:t,onClose:r,queueLabel:n,defaultModel:l,defaultAgent:i}){let[o,c]=(0,p.useState)(null),[d,u]=(0,p.useState)([]),[m,x]=(0,p.useState)(""),[L,V]=(0,p.useState)(""),[_,W]=(0,p.useState)(""),[G,Q]=(0,p.useState)(""),[J,K]=(0,p.useState)(l),[Z,X]=(0,p.useState)(i),[Y,ee]=(0,p.useState)(null),[es,et]=(0,p.useState)(!1),[ea,er]=(0,p.useTransition)();function en(){null!==s&&(P(e,s).then(c).catch(e=>ee(e.message)),D(e,s).then(u).catch(()=>u([])))}function el(s){o&&er(()=>{z(e,o.number,s).then(en).catch(e=>ee(e.message))})}if((0,p.useEffect)(()=>{K(l),X(i)},[l,i]),(0,p.useEffect)(()=>{t&&null!==s&&(ee(null),c(null),u([]),P(e,s).then(e=>{c(e),x(e.title),V(e.body)}).catch(e=>ee(e.message)),D(e,s).then(u).catch(()=>u([])))},[t,s,e]),null===s)return null;let ei=`issue-modal-title-${s}`;return(0,a.jsxs)(C.l,{open:t,onClose:r,labelledById:ei,children:[(0,a.jsxs)("span",{id:ei,className:"sr-only",children:["Issue #",s]}),Y&&(0,a.jsx)(k.F,{tone:"destructive",className:"mb-3",children:Y}),o?(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("span",{className:"text-xs font-mono text-muted-foreground tnum",children:["#",o.number]}),(0,a.jsx)(w.E,{status:o.state}),(0,a.jsx)(S.$,{size:"sm",variant:"outline",className:"ml-auto",disabled:ea,onClick:()=>"open"===o.state?et(!0):el("open"),children:"open"===o.state?"Close issue":"Reopen issue"})]}),(0,a.jsxs)("div",{className:"rounded-xl border border-card-border bg-secondary/40 p-4",children:[(0,a.jsxs)("p",{className:"mb-3 flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:[(0,a.jsx)(f,{className:"h-3.5 w-3.5"}),"Run settings"]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,a.jsx)(R.D,{label:"Agent",htmlFor:"modal-agent-select",children:(0,a.jsx)(y.a,{id:"modal-agent-select",value:Z,onChange:e=>{X(e),K((0,H.VJ)(e))}})}),(0,a.jsx)(R.D,{label:"Model",htmlFor:"modal-model-select",children:(0,a.jsx)(N.o,{id:"modal-model-select",value:J,onChange:K,agent:Z})}),(0,a.jsxs)(S.$,{size:"sm",disabled:ea,onClick:()=>er(()=>{E(e,o.number,{model:J!==l?J:void 0,agent:Z!==i?Z:void 0}).then(()=>r()).catch(e=>ee(e.message))}),children:[(0,a.jsx)(g.A,{}),"Start job now"]}),o.labels.includes(n)?(0,a.jsx)(S.$,{size:"sm",variant:"outline",disabled:ea,onClick:()=>er(()=>{T(e,o.number).then(en).catch(e=>ee(e.message))}),children:"Dequeue"}):(0,a.jsx)(S.$,{size:"sm",variant:"outline",disabled:ea,onClick:()=>er(()=>{q(e,o.number,{model:J!==l?J:void 0,agent:Z!==i?Z:void 0}).then(en).catch(e=>ee(e.message))}),children:"Add to queue"})]}),J!==l||Z!==i?(0,a.jsxs)("p",{className:"mt-2 text-xs text-muted-foreground",children:["Override active — repo default:"," ",(0,a.jsx)("span",{className:"font-medium text-foreground",children:l})]}):null]}),(0,a.jsx)(M.p,{value:m,onChange:e=>x(e.target.value),className:"font-medium"}),(0,a.jsx)($.T,{value:L,onChange:e=>V(e.target.value),rows:8}),(0,a.jsxs)(S.$,{size:"sm",disabled:ea,onClick:()=>er(()=>{I(e,o.number,{title:m,body:L}).then(en).catch(e=>ee(e.message))}),children:[(0,a.jsx)(b.A,{}),"Save changes"]}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("p",{className:"mb-2 flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:[(0,a.jsx)(h.A,{className:"h-3.5 w-3.5"}),"Labels"]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[o.labels.map(s=>(0,a.jsx)("button",{type:"button",title:"Remove label",disabled:ea,className:"rounded-md focus-ring disabled:opacity-50",onClick:()=>er(()=>{F(e,o.number,[],[s]).then(en).catch(e=>ee(e.message))}),children:(0,a.jsxs)(w.E,{className:"cursor-pointer",children:[s," \xd7"]})},s)),(0,a.jsx)(M.p,{value:G,onChange:e=>Q(e.target.value),placeholder:"add label",className:"h-8 w-28 text-xs"}),(0,a.jsx)(S.$,{size:"sm",variant:"outline",disabled:ea||!G.trim(),onClick:()=>er(()=>{F(e,o.number,[G.trim()],[]).then(()=>{Q(""),en()}).catch(e=>ee(e.message))}),children:"Add"})]})]}),d.length>0&&(0,a.jsxs)("div",{children:[(0,a.jsxs)("p",{className:"mb-2 flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:[(0,a.jsx)(v.A,{className:"h-3.5 w-3.5"}),"Subtasks (",d.filter(e=>"done"===e.status).length,"/",d.length,")"]}),(0,a.jsx)("ol",{className:"space-y-1.5",children:d.map(e=>{let s=O[e.status]??{label:e.status,symbol:"○",tone:"neutral"},t="done"===e.status||"skipped"===e.status;return(0,a.jsxs)("li",{className:"flex items-center gap-2 rounded-lg border border-card-border bg-secondary/40 px-3 py-1.5 text-sm",children:[(0,a.jsx)("span",{className:"text-muted-foreground","aria-hidden":!0,children:s.symbol}),(0,a.jsx)("span",{className:t?"text-muted-foreground line-through":"",children:e.title}),(0,a.jsx)("span",{className:"ml-auto",children:(0,a.jsx)(w.E,{tone:s.tone,children:s.label})})]},e.id)})})]}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("p",{className:"mb-2 flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:[(0,a.jsx)(j.A,{className:"h-3.5 w-3.5"}),"Comments"]}),(0,a.jsxs)("ul",{className:"space-y-2",children:[o.comments.map(e=>(0,a.jsxs)("li",{className:"rounded-lg border border-card-border bg-secondary/40 p-3 text-sm",children:[(0,a.jsxs)("p",{className:"text-xs text-muted-foreground",children:[(0,a.jsx)("span",{className:"font-medium text-foreground",children:e.author})," \xb7 ",e.createdAt]}),(0,a.jsx)("p",{className:"mt-1 whitespace-pre-wrap text-pretty",children:e.body})]},`${e.author}-${e.createdAt}`)),0===o.comments.length&&(0,a.jsx)("li",{className:"text-sm text-muted-foreground",children:"No comments yet."})]}),(0,a.jsx)($.T,{value:_,onChange:e=>W(e.target.value),rows:3,placeholder:"Write a comment…",className:"mt-2"}),(0,a.jsx)(S.$,{size:"sm",className:"mt-2",disabled:ea||!_.trim(),onClick:()=>er(()=>{U(e,o.number,_.trim()).then(()=>{W(""),en()}).catch(e=>ee(e.message))}),children:"Comment"})]})]}):(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading…"}),o&&(0,a.jsx)(A.T,{open:es,onOpenChange:et,onConfirm:()=>el("closed"),title:"Close issue?",description:`This closes #${o.number} on GitHub.`,confirmLabel:"Close issue",variant:"destructive",pending:ea})]})}var V=t(6960),_=t(2386),W=t(1552);let G=(0,L.createServerReference)("4084c0d5c03be8dc21aa3a546b776f2d661c453741",L.callServer,void 0,L.findSourceMapURL,"syncRepoIssuesAction"),Q=(0,L.createServerReference)("60296b15689a471166a86a073a7bc91e50041d92e7",L.callServer,void 0,L.findSourceMapURL,"reorderIssuesAction"),J=(0,L.createServerReference)("60bbe5f2f4c5a41081bebf2dbda723482a8851aa77",L.callServer,void 0,L.findSourceMapURL,"bulkAddToQueueAction"),K=(0,L.createServerReference)("60a21667d06a15fe86a364051b8462cbcf608c8808",L.callServer,void 0,L.findSourceMapURL,"bulkRemoveFromQueueAction"),Z=(0,L.createServerReference)("70b0aed01b7e941080fda97592e95601c507316588",L.callServer,void 0,L.findSourceMapURL,"bulkApplyLabelAction");var X=t(6636);function Y(e){try{let s=JSON.parse(e);return Array.isArray(s)?s:[]}catch{return[]}}function ee({repoId:e,queueLabel:s,initialIssues:t,pollIntervalSec:r,defaultModel:f,defaultAgent:g}){let[b,v]=(0,p.useState)(t),[j,y]=(0,p.useState)(""),[N,k]=(0,p.useState)(null),[A,C]=(0,p.useState)(null),[R,$]=(0,p.useState)(null),[L,P]=(0,p.useState)(null),[D,z]=(0,p.useState)(new Set),[E,I]=(0,p.useState)(""),[F,U]=(0,p.useTransition)(),[H,O]=(0,p.useState)(null),{success:es}=(0,_.d)();(0,p.useEffect)(()=>v(t),[t]),(0,p.useEffect)(()=>{let s=setInterval(()=>{G(e).then(v).catch(e=>O(e.message))},1e3*Math.max(10,r));return()=>clearInterval(s)},[e,r]);let et=e=>Y(e.labels).includes(s),ea=e=>{let s=j.toLowerCase();return!s||e.title.toLowerCase().includes(s)||String(e.number).includes(s)||Y(e.labels).some(e=>e.toLowerCase().includes(s))},er=b.filter(e=>!et(e)&&ea(e)),en=b.filter(e=>et(e)&&ea(e));function el(){z(new Set)}function ei(e){let s=[...D];0!==s.length&&(O(null),U(()=>{e(s).then(e=>{v(e),el()}).catch(e=>O(e.message))}))}function eo({issue:t,reorderable:r}){let d=b.filter(et),u=d.findIndex(e=>e.number===t.number),m=u===d.length-1,h=Y(t.labels).filter(e=>e!==s),x=N===t.number,p=A===t.number&&null!==N&&N!==t.number,f=R===t.number,g=`issue-select-${t.number}`;return(0,a.jsxs)("div",{draggable:!0,onDragStart:e=>{k(t.number),e.dataTransfer.effectAllowed="move";try{e.dataTransfer.setData("text/plain",String(t.number))}catch{}},onDragEnter:()=>C(t.number),onDragOver:e=>e.preventDefault(),onDragEnd:()=>{k(null),C(null)},onDrop:s=>{s.stopPropagation(),r&&function(s){if(null===N||N===s)return;let t=b.find(e=>e.number===N);if(!t||!et(t))return;let a=en.map(e=>e.number).filter(e=>e!==N),r=a.indexOf(s);a.splice(r,0,N),k(null),C(null),U(()=>{Q(e,a).catch(e=>O(e.message))})}(t.number)},className:(0,X.cn)("issue-row group flex items-center gap-3 rounded-lg border border-transparent bg-card px-3 py-2.5 hover-elevate",x&&"opacity-40",p&&"ring-1 ring-primary/70",f&&"bg-success/[0.06] ring-1 ring-success/70"),children:[(0,a.jsx)(n,{"aria-hidden":!0,className:"h-[15px] w-[15px] shrink-0 cursor-grab text-muted-foreground/40 group-hover:text-muted-foreground active:cursor-grabbing"}),(0,a.jsx)(V.S,{id:g,checked:D.has(t.number),onChange:()=>{var e;return e=t.number,void z(s=>{let t=new Set(s);return t.has(e)?t.delete(e):t.add(e),t})},"aria-label":`Select #${t.number} for bulk actions`,className:"shrink-0"}),r&&(0,a.jsx)("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-primary text-[11px] font-semibold tabular-nums text-primary-foreground",children:u+1}),(0,a.jsxs)("button",{type:"button",onClick:()=>P(t.number),className:"flex min-w-0 flex-1 items-center gap-2 rounded-sm text-left focus-ring",children:[(0,a.jsxs)("span",{className:"shrink-0 font-mono text-xs text-muted-foreground",children:["#",t.number]}),(0,a.jsx)("span",{className:"truncate text-sm group-hover:text-foreground",children:t.title})]}),(0,a.jsxs)("div",{className:"hidden shrink-0 items-center gap-1.5 md:flex",children:[t.triagedAt&&(0,a.jsx)(W.m,{content:"Labels applied by auto-triage — see the issue comment for reasons",children:(0,a.jsx)(w.E,{tone:"primary",children:"auto-triaged"})}),h.slice(0,2).map(e=>(0,a.jsx)("span",{className:"rounded-md bg-secondary px-1.5 py-0.5 text-[11px] text-muted-foreground",children:e},e))]}),(0,a.jsx)("div",{className:"flex shrink-0 items-center gap-0.5",children:r?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(S.$,{type:"button",size:"icon-sm",variant:"ghost","aria-label":`Move #${t.number} up in queue`,disabled:0===u||F,onClick:function(){let s=function(e,s){let t=e.indexOf(s);if(t<=0)return e;let a=[...e],r=a[t-1];return a[t-1]=a[t],a[t]=r,a}(d.map(e=>e.number),t.number);U(()=>{Q(e,s).catch(e=>O(e.message))})},className:"h-7 w-7",children:(0,a.jsx)(l,{})}),(0,a.jsx)(S.$,{type:"button",size:"icon-sm",variant:"ghost","aria-label":`Move #${t.number} down in queue`,disabled:m||F,onClick:function(){let s=function(e,s){let t=e.indexOf(s);if(-1===t||t===e.length-1)return e;let a=[...e],r=a[t+1];return a[t+1]=a[t],a[t]=r,a}(d.map(e=>e.number),t.number);U(()=>{Q(e,s).catch(e=>O(e.message))})},className:"h-7 w-7",children:(0,a.jsx)(i,{})}),(0,a.jsx)(S.$,{type:"button",size:"icon-sm",variant:"ghost","aria-label":`Remove #${t.number} from queue`,disabled:F,onClick:function(){U(()=>{T(e,t.number).then(v).catch(e=>O(e.message))})},className:"h-7 w-7 text-destructive hover:text-destructive",children:(0,a.jsx)(o.A,{})})]}):(0,a.jsx)(S.$,{type:"button",size:"icon-sm",variant:"ghost","aria-label":`Add #${t.number} to queue`,disabled:F,onClick:function(){U(()=>{q(e,t.number).then(v).catch(e=>O(e.message))})},className:"h-7 w-7",children:(0,a.jsx)(c.A,{})})})]})}let ec=null!==N;function ed({zone:e,icon:s,title:t,count:r,hint:n,empty:l,emptyDrop:i,onDrop:o,children:c,isEmpty:d}){return(0,a.jsxs)("div",{onDragOver:e=>{e.preventDefault(),e.currentTarget===e.target&&C(null)},onDrop:e=>{e.preventDefault(),o()},"data-zone":e,className:(0,X.cn)("rounded-xl border p-2 transition-colors",ec?"border-dashed border-primary/45 bg-primary/[0.03]":"border-card-border"),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5",children:[(0,a.jsx)(s,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,a.jsx)("span",{className:"text-sm font-semibold",children:t}),(0,a.jsx)(w.E,{tone:"neutral",children:r}),(0,a.jsx)("span",{className:"ml-auto hidden text-xs text-muted-foreground sm:block",children:n})]}),d?(0,a.jsx)("div",{className:(0,X.cn)("m-1 rounded-lg border border-dashed px-3 py-6 text-center text-xs transition-colors",ec?"border-primary/50 text-primary":"border-border text-muted-foreground"),children:ec?i:l}):(0,a.jsx)("div",{className:"flex flex-col gap-0.5 p-1",children:c})]})}return(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,a.jsxs)("p",{className:"inline-flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,a.jsx)(n,{className:"h-3.5 w-3.5"})," Drag to set priority, or drop an issue into the queue to schedule it."]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"relative w-full sm:w-56",children:[(0,a.jsx)(d.A,{className:"pointer-events-none absolute left-3 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground"}),(0,a.jsx)(M.p,{"aria-label":"Search issues by title or label",value:j,onChange:e=>y(e.target.value),placeholder:"Filter issues",className:"h-8 pl-8 text-xs"})]}),(0,a.jsxs)(S.$,{size:"sm",variant:"outline",disabled:F||0===er.length,onClick:function(){let s=er.map(e=>e.number);0!==s.length&&(O(null),U(()=>{J(e,s).then(v).catch(e=>O(e.message))}))},children:[(0,a.jsx)(u.A,{className:"h-3.5 w-3.5"})," Queue all"]}),(0,a.jsxs)(S.$,{size:"sm",variant:"outline",disabled:F,onClick:function(){O(null),U(()=>{G(e).then(v).catch(e=>O(e.message))})},children:[(0,a.jsx)(m.A,{className:(0,X.cn)("h-3.5 w-3.5",F&&"dd-spin")}),F?"Syncing…":"Refresh"]})]})]}),H&&(0,a.jsx)("p",{role:"alert",className:"text-xs text-destructive",children:H}),D.size>0&&(0,a.jsxs)("div",{className:"dd-fade-up flex flex-wrap items-center gap-2 rounded-xl border border-primary/40 bg-primary/[0.04] p-2",children:[(0,a.jsxs)("span",{className:"px-1 text-sm font-medium",children:[D.size," selected"]}),(0,a.jsxs)(S.$,{size:"sm",variant:"outline",disabled:F,onClick:()=>ei(s=>J(e,s)),children:[(0,a.jsx)(u.A,{className:"h-3.5 w-3.5"})," Add to queue"]}),(0,a.jsxs)(S.$,{size:"sm",variant:"outline",disabled:F,onClick:()=>ei(s=>K(e,s)),children:[(0,a.jsx)(o.A,{className:"h-3.5 w-3.5"})," Remove from queue"]}),(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(M.p,{"aria-label":"Label to apply to selected issues",value:E,onChange:e=>I(e.target.value),placeholder:"label…",className:"h-8 w-28 text-xs"}),(0,a.jsxs)(S.$,{size:"sm",variant:"outline",disabled:F||""===E.trim(),onClick:()=>{let s=E.trim();ei(t=>Z(e,t,s)),I("")},children:[(0,a.jsx)(h.A,{className:"h-3.5 w-3.5"})," Apply label"]})]}),(0,a.jsx)(S.$,{size:"sm",variant:"ghost",className:"ml-auto",disabled:F,onClick:el,children:"Clear"})]}),(0,a.jsx)(ed,{zone:"queue",icon:u.A,title:"Queue",count:en.length,hint:"top = next to run",empty:"Nothing queued. Drag an issue up from the backlog, or use the + button.",emptyDrop:"Drop here",onDrop:function(){if(null===N)return;let s=b.find(e=>e.number===N),t=s?.title;k(null),C(null),!s||et(s)||U(()=>{q(e,N).then(e=>{v(e),$(N),setTimeout(()=>$(e=>e===N?null:e),1200),es("Issue queued",`#${N} ${t??""}`.trim())}).catch(e=>O(e.message))})},isEmpty:0===en.length,children:en.map(e=>(0,a.jsx)(eo,{issue:e,reorderable:!0},e.number))}),(0,a.jsx)(ed,{zone:"backlog",icon:x.A,title:"Backlog \xb7 triage",count:er.length,hint:"drag up to schedule",empty:"Backlog is empty.",emptyDrop:"Drop here",onDrop:function(){if(null===N)return;let s=b.find(e=>e.number===N);k(null),C(null),s&&et(s)&&U(()=>{T(e,s.number).then(v).catch(e=>O(e.message))})},isEmpty:0===er.length,children:er.map(e=>(0,a.jsx)(eo,{issue:e,reorderable:!1},e.number))}),(0,a.jsx)(B,{repoId:e,issueNumber:L,open:null!==L,onClose:()=>P(null),queueLabel:s,defaultModel:f,defaultAgent:g})]})}},5312:(e,s,t)=>{"use strict";t.d(s,{A:()=>a});let a=(0,t(3909).A)("list-checks",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]])},5696:(e,s,t)=>{"use strict";t.d(s,{A:()=>a});let a=(0,t(3909).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},5924:(e,s,t)=>{"use strict";t.d(s,{A:()=>a});let a=(0,t(3909).A)("git-pull-request-arrow",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M5 9v12",key:"ih889a"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}]])},6016:(e,s,t)=>{"use strict";t.d(s,{Sparkline:()=>l});var a=t(3031),r=t(9983),n=t(1781);function l({data:e,width:s=132,height:t=36,tone:i="chart-1",fill:o=!0,strokeWidth:c=1.75}){let d=`sp${(0,r.useId)().replace(/:/g,"")}`;if(0===e.length)return null;let u=Math.min(...e),m=Math.max(...e)-u||1,h=e.length>1?s/(e.length-1):s,x=e.map((e,s)=>[s*h,t-3-(e-u)/m*(t-6)]),p=x.map((e,s)=>`${s?"L":"M"}${e[0].toFixed(1)} ${e[1].toFixed(1)}`).join(" "),f=`${p} L${s} ${t} L0 ${t} Z`,g=(0,n.U)(i),b=x[x.length-1]??[0,t-3];return(0,a.jsxs)("svg",{width:s,height:t,viewBox:`0 0 ${s} ${t}`,className:"overflow-visible","aria-hidden":"true",children:[o&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("defs",{children:(0,a.jsxs)("linearGradient",{id:d,x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,a.jsx)("stop",{offset:"0%",stopColor:g,stopOpacity:"0.22"}),(0,a.jsx)("stop",{offset:"100%",stopColor:g,stopOpacity:"0"})]})}),(0,a.jsx)("path",{d:f,fill:`url(#${d})`})]}),(0,a.jsx)("path",{d:p,fill:"none",stroke:g,strokeWidth:c,strokeLinecap:"round",strokeLinejoin:"round"}),(0,a.jsx)("circle",{cx:b[0],cy:b[1],r:2.5,fill:g})]})}},6436:(e,s,t)=>{"use strict";t.d(s,{m:()=>r});var a=t(821);let r=(0,a.createServerReference)("408cabd2f0488308c0d401856f5d1c6ed6d0d57c28",a.callServer,void 0,a.findSourceMapURL,"saveTemplateAction")},6951:(e,s,t)=>{"use strict";t.d(s,{A:()=>a});let a=(0,t(3909).A)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]])},7508:(e,s,t)=>{"use strict";t.d(s,{A:()=>a});let a=(0,t(3909).A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])},8692:(e,s,t)=>{"use strict";t.d(s,{A:()=>a});let a=(0,t(3909).A)("wand-sparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]])},8779:(e,s,t)=>{"use strict";t.d(s,{RepoWebhookPanel:()=>m});var a=t(3031);let r=(0,t(3909).A)("webhook",[["path",{d:"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2",key:"q3hayz"}],["path",{d:"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06",key:"1go1hn"}],["path",{d:"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8",key:"qlwsc0"}]]);var n=t(9983),l=t(2320),i=t(7727),o=t(117),c=t(4281),d=t(2386),u=t(305);function m({repo:e}){let[s,t]=(0,n.useState)(e.webhookSecret??""),[h,x]=(0,n.useState)(!1),[p,f]=(0,n.useState)(`/api/webhooks/${e.id}`),[g,b]=(0,n.useTransition)(),[v,j]=(0,n.useState)(!1),{error:y}=(0,d.d)();(0,n.useEffect)(()=>{f(`${window.location.origin}/api/webhooks/${e.id}`)},[e.id]);let N=(e.webhookSecret??"").length>0,k="gitlab"===e.platform;function w(s){j(!1),b(async()=>{try{await (0,u.u)(e.id,{webhookSecret:s.trim()||null}),j(!0),setTimeout(()=>j(!1),1500)}catch(e){y("Failed to update webhook",e instanceof Error?e.message:String(e))}})}return(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsxs)("h3",{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,a.jsx)(r,{className:"h-3.5 w-3.5 text-muted-foreground"})," Webhook sync"]}),(0,a.jsx)(l.E,{tone:N?"success":"neutral",children:N?"On":"Off"}),g&&(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:"Saving…"}),v&&(0,a.jsx)("span",{className:"text-xs text-success",children:"Saved"})]}),(0,a.jsx)(o.D,{label:"Shared secret",htmlFor:"webhook-secret",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(c.p,{id:"webhook-secret",type:h?"text":"password",value:s,onChange:e=>t(e.target.value),onBlur:()=>{(s.trim()||null)!==(e.webhookSecret??null)&&w(s)},placeholder:"Set a secret to enable webhook delivery",className:"min-w-0 flex-1 font-mono"}),(0,a.jsx)(i.$,{type:"button",variant:"outline",size:"sm",onClick:()=>x(e=>!e),children:h?"Hide":"Show"}),(0,a.jsx)(i.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{let e,s=(e=new Uint8Array(20),crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,"0")).join(""));t(s),x(!0),w(s)},children:"Generate"}),N&&(0,a.jsx)(i.$,{type:"button",variant:"destructive",size:"sm",onClick:()=>{t(""),w("")},children:"Disable"})]})}),(0,a.jsx)(o.D,{label:"Payload URL",htmlFor:"webhook-url",children:(0,a.jsx)(c.p,{id:"webhook-url",readOnly:!0,value:p,onFocus:e=>e.currentTarget.select(),className:"font-mono text-xs"})}),(0,a.jsxs)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:["Opt-in. Polling stays on as the default and continues unchanged whether or not webhooks are configured — the two paths share the same idempotent sync, so a change is never double-processed. Point a ",k?"GitLab":"GitHub"," webhook for"," ",(0,a.jsx)("em",{children:k?"issues and comments":"Issues and Issue comments"})," at the payload URL above with"," ",k?(0,a.jsxs)(a.Fragment,{children:["this secret as the ",(0,a.jsx)("code",{className:"font-mono",children:"Secret token"})]}):(0,a.jsxs)(a.Fragment,{children:["this secret and content type ",(0,a.jsx)("code",{className:"font-mono",children:"application/json"})]}),". Drydock binds ",(0,a.jsx)("code",{className:"font-mono",children:"127.0.0.1"}),", so expose the URL through a tunnel or forwarder (e.g. ",(0,a.jsx)("code",{className:"font-mono",children:"cloudflared"}),","," ",(0,a.jsx)("code",{className:"font-mono",children:"ngrok"}),") to receive deliveries. Each delivery is"," ",k?"token-verified":"HMAC-SHA256 signature-verified","; invalid or unsigned payloads are rejected."]})]})}},9050:(e,s,t)=>{Promise.resolve().then(t.bind(t,8564)),Promise.resolve().then(t.t.bind(t,2626,23)),Promise.resolve().then(t.bind(t,5212)),Promise.resolve().then(t.bind(t,3183)),Promise.resolve().then(t.bind(t,3331)),Promise.resolve().then(t.bind(t,9087)),Promise.resolve().then(t.bind(t,3410)),Promise.resolve().then(t.bind(t,1920)),Promise.resolve().then(t.bind(t,8779)),Promise.resolve().then(t.bind(t,9876)),Promise.resolve().then(t.bind(t,6016))},9087:(e,s,t)=>{"use strict";t.d(s,{RepoPromptsSection:()=>A});var a=t(3031),r=t(5924),n=t(8692),l=t(4163),i=t(4344),o=t(3268),c=t(2626),d=t.n(c),u=t(9983),m=t(7787),h=t(2320),x=t(7727),p=t(2205),f=t(5381),g=t(2386),b=t(3543),v=t(6436),j=t(821);let y=(0,j.createServerReference)("609b3bab1c542c1d95ee7210d1b770047734cf91a2",j.callServer,void 0,j.findSourceMapURL,"deleteTemplateAction");var N=t(661),k=t(6636);let w=[{id:"work",name:N._.main,title:"Work prompt",icon:r.A,desc:"Injected when the agent starts an issue."},{id:"triage",name:"triage",title:"Triage prompt",icon:n.A,desc:"Classifies and labels new issues."},{id:"review",name:"review-feedback",title:"Review-feedback prompt",icon:l.A,desc:"Runs when a trusted reviewer comments."}];function S({repo:e,stage:s}){let{success:t,error:r}=(0,g.d)(),[n,l]=(0,u.useState)("standard"),[o,c]=(0,u.useState)(""),[m,j]=(0,u.useState)(""),[N,k]=(0,u.useState)(!1),[w,A]=(0,u.useTransition)();(0,u.useEffect)(()=>{let t=!0;return(0,b.v)(e.id,s.name).then(e=>{t&&(c(e.content),j(e.content),l(e.hasRow?"custom":"standard"),k(!0))}).catch(e=>{t&&(r("Failed to load prompt",e instanceof Error?e.message:String(e)),k(!0))}),()=>{t=!1}},[e.id,s.name,r]);let C=m.trim()!==o.trim(),R=s.icon;return(0,a.jsxs)("div",{className:"rounded-lg border border-border p-4",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,a.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-secondary text-muted-foreground",children:(0,a.jsx)(R,{className:"h-4 w-4"})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("h4",{className:"text-sm font-semibold",children:s.title}),"standard"===n?(0,a.jsx)(h.E,{tone:"neutral",children:"Standard"}):(0,a.jsx)(h.E,{tone:"primary",children:"Custom"})]}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:s.desc})]}),(0,a.jsx)(p.I,{value:n,onChange:function(t){"custom"===t?l("custom"):A(async()=>{try{let t=await y(e.id,s.name);c(t.content),j(t.content),l("standard")}catch(e){r("Failed to revert to standard",e instanceof Error?e.message:String(e))}})},disabled:!N||w,options:[{value:"standard",label:"Standard"},{value:"custom",label:"Custom"}]})]}),"standard"===n?(0,a.jsxs)("div",{className:"mt-3 rounded-lg border border-dashed border-border bg-secondary/30 p-3",children:[(0,a.jsx)("p",{className:"whitespace-pre-wrap font-mono text-xs leading-relaxed text-muted-foreground",children:N?o:"Loading…"}),(0,a.jsxs)("p",{className:"mt-2 inline-flex items-center gap-1.5 text-[11px] text-muted-foreground",children:[(0,a.jsx)(i.A,{className:"h-3 w-3"})," Inherits the global default.",(0,a.jsx)(d(),{href:"/prompts",className:"text-primary hover:underline",children:"Edit the standard →"})]})]}):(0,a.jsxs)("div",{className:"mt-3",children:[(0,a.jsx)(f.T,{value:m,onChange:e=>j(e.target.value),rows:4,disabled:!N||w,className:"font-mono text-xs leading-relaxed"}),(0,a.jsxs)("div",{className:"mt-2 flex items-center justify-end gap-2",children:[(0,a.jsx)(x.$,{size:"sm",variant:"ghost",disabled:!C||w,onClick:()=>j(o),children:"Discard changes"}),(0,a.jsx)(x.$,{size:"sm",disabled:!C||w,onClick:function(){A(async()=>{try{await (0,v.m)({repoId:e.id,name:s.name,content:m}),c(m),t("Prompt saved",`${s.title} \xb7 ${e.name}`)}catch(e){r("Failed to save prompt",e instanceof Error?e.message:String(e))}})},children:"Save override"})]})]})]})}function A({repo:e,className:s}){return(0,a.jsxs)("div",{className:(0,k.cn)("flex flex-col gap-3",s),children:[(0,a.jsxs)(m.F,{tone:"info",icon:o.A,title:"Per-repo prompt overrides",children:["Each stage uses the global"," ",(0,a.jsx)(d(),{href:"/prompts",className:"font-medium text-primary hover:underline",children:"standard prompt"})," ","unless you switch it to ",(0,a.jsx)("span",{className:"font-medium",children:"Custom"})," here. Overrides apply only to ",e.name,"."]}),w.map(s=>(0,a.jsx)(S,{repo:e,stage:s},s.id))]})}},9630:(e,s,t)=>{"use strict";t.d(s,{A:()=>a});let a=(0,t(3909).A)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]])},9876:(e,s,t)=>{"use strict";t.d(s,{Section:()=>o});var a=t(3031),r=t(7822),n=t(9983),l=t(6636);let i={neutral:"bg-secondary text-muted-foreground",primary:"bg-primary/10 text-primary",success:"bg-success-muted text-success",warning:"bg-warning-muted text-warning",destructive:"bg-destructive/10 text-destructive"};function o({icon:e,title:s,description:t,defaultOpen:c=!0,right:d,collapsible:u=!0,children:m,tone:h="neutral",id:x}){let[p,f]=(0,n.useState)(c),g=(0,n.useId)(),b=()=>f(e=>!e),v=e&&(0,a.jsx)("span",{className:(0,l.cn)("flex h-8 w-8 shrink-0 items-center justify-center rounded-lg",i[h]),children:(0,a.jsx)(e,{className:"h-4 w-4"})}),j=(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("h2",{className:"text-base font-semibold tracking-tight",children:s}),t&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:t})]});return(0,a.jsxs)("section",{id:x,className:"rounded-xl border border-card-border bg-card shadow-sm",children:[(0,a.jsxs)("div",{className:(0,l.cn)("flex items-center gap-3 p-4",!p&&"rounded-b-xl"),children:[u?(0,a.jsxs)("button",{type:"button",onClick:b,"aria-expanded":p,"aria-controls":g,className:"-m-1.5 flex min-w-0 flex-1 items-center gap-3 rounded-lg p-1.5 text-left hover-elevate focus-ring",children:[v,j]}):(0,a.jsxs)(a.Fragment,{children:[v,j]}),d&&(0,a.jsx)("div",{className:"flex items-center gap-2",children:d}),u&&(0,a.jsx)("button",{type:"button",onClick:b,"aria-label":p?"Collapse section":"Expand section","aria-expanded":p,"aria-controls":g,className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-muted-foreground hover-elevate focus-ring",children:(0,a.jsx)(r.A,{className:(0,l.cn)("h-[18px] w-[18px] transition-transform duration-200",p&&"rotate-180")})})]}),p&&(0,a.jsx)("div",{id:g,className:"dd-fade-up border-t border-card-border p-4 sm:p-5",children:m})]})}}},e=>{e.O(0,[736,878,381,188,174,730,633,586,358],()=>e(e.s=9050)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[662],{2386:(e,a,t)=>{"use strict";t.d(a,{t:()=>m,d:()=>u});var s=t(3031),l=t(5051),r=t(3931),n=t(4344),i=t(4234),o=t(9983);function d(e){return"error"===e?"assertive":"polite"}var c=t(6636);let h=(0,o.createContext)(null);function m({children:e}){let[a,t]=(0,o.useState)([]),l=(0,o.useCallback)(e=>{t(a=>a.filter(a=>a.id!==e))},[]),r=(0,o.useCallback)(e=>{let a=Date.now()+Math.random(),s={id:a,title:e.title,description:e.description,variant:e.variant??"info"};t(e=>[...e,s]),setTimeout(()=>l(a),5e3)},[l]),n=(0,o.useMemo)(()=>({toast:r,success:(e,a)=>r({title:e,description:a,variant:"success"}),error:(e,a)=>r({title:e,description:a,variant:"error"}),info:(e,a)=>r({title:e,description:a,variant:"info"})}),[r]);return(0,s.jsxs)(h.Provider,{value:n,children:[e,(0,s.jsx)(v,{toasts:a,onDismiss:l})]})}function u(){let e=(0,o.useContext)(h);if(!e)throw Error("useToast must be used within a ToastProvider");return e}let x={success:l.A,error:r.A,info:n.A},p={success:{icon:"text-success",bar:"bg-success"},error:{icon:"text-destructive",bar:"bg-destructive"},info:{icon:"text-primary",bar:"bg-primary"}};function g({toast:e,onDismiss:a}){let t=x[e.variant],l=p[e.variant];return(0,s.jsxs)("div",{className:"dd-toast dd-toast-in pointer-events-auto relative flex items-start gap-3 overflow-hidden rounded-xl border border-card-border bg-card p-3.5 shadow-lg",children:[(0,s.jsx)(t,{className:(0,c.cn)("mt-0.5 h-[18px] w-[18px] shrink-0",l.icon)}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("p",{className:"text-sm font-medium",children:e.title}),e.description&&(0,s.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:e.description})]}),(0,s.jsx)("button",{type:"button","aria-label":"Dismiss notification",onClick:()=>a(e.id),className:"shrink-0 rounded-md p-0.5 text-muted-foreground hover-elevate",children:(0,s.jsx)(i.A,{className:"h-3.5 w-3.5"})}),(0,s.jsx)("span",{className:(0,c.cn)("dd-toast-progress absolute bottom-0 left-0 h-0.5 w-full",l.bar),style:{animationDuration:"5000ms"}})]})}function v({toasts:e,onDismiss:a}){let t=e.filter(e=>"assertive"===d(e.variant)),l=e.filter(e=>"polite"===d(e.variant));return(0,s.jsxs)("div",{className:"pointer-events-none fixed bottom-4 right-4 z-[60] flex w-full max-w-sm flex-col gap-2",children:[(0,s.jsx)("div",{role:"alert","aria-live":"assertive","aria-atomic":"false",className:"flex flex-col gap-2",children:t.map(e=>(0,s.jsx)(g,{toast:e,onDismiss:a},e.id))}),(0,s.jsx)("div",{"aria-live":"polite","aria-atomic":"false",className:"flex flex-col gap-2",children:l.map(e=>(0,s.jsx)(g,{toast:e,onDismiss:a},e.id))})]})}},2834:(e,a,t)=>{"use strict";t.d(a,{A:()=>s});let s=(0,t(3909).A)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]])},6636:(e,a,t)=>{"use strict";function s(...e){return e.filter(Boolean).join(" ")}function l(e){if(!e)return"no activity";let a=Math.floor(Date.now()/1e3)-e;return a<60?"just now":a<3600?`${Math.floor(a/60)}m ago`:a<86400?`${Math.floor(a/3600)}h ago`:a<604800?`${Math.floor(a/86400)}d ago`:new Date(1e3*e).toLocaleDateString()}function r(e){if(e>=3600){let a=Math.floor(e/3600),t=Math.round(e%3600/60);return t>0?`${a}h ${t}m`:`${a}h`}return e>=60?`${Math.floor(e/60)}m ${e%60}s`:`${e}s`}function n(e,a=2){return`$${e.toFixed(a)}`}t.d(a,{KW:()=>l,UK:()=>n,a3:()=>r,cn:()=>s})},7727:(e,a,t)=>{"use strict";t.d(a,{$:()=>o});var s=t(3031),l=t(9983),r=t(6636);let n={default:"bg-primary text-primary-foreground shadow-sm hover-elevate active-elevate-2",secondary:"bg-secondary text-secondary-foreground hover-elevate active-elevate-2",outline:"border border-border bg-transparent shadow-sm hover-elevate active-elevate-2",destructive:"bg-destructive text-destructive-foreground shadow-sm hover-elevate active-elevate-2",ghost:"border border-transparent hover-elevate active-elevate-2",success:"bg-success text-white shadow-sm hover-elevate active-elevate-2"},i={default:"h-9 px-4 py-2 rounded-lg text-sm",sm:"h-8 px-3 rounded-md text-xs",lg:"h-10 px-6 rounded-lg text-sm",icon:"h-9 w-9 rounded-lg","icon-sm":"h-8 w-8 rounded-md"},o=l.forwardRef(({className:e,variant:a="default",size:t="default",type:l="button",...o},d)=>(0,s.jsx)("button",{ref:d,type:l,className:(0,r.cn)("inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-ring","disabled:pointer-events-none disabled:opacity-50","[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",n[a],i[t],e),...o}));o.displayName="Button"},7836:(e,a,t)=>{"use strict";t.d(a,{$:()=>l});var s=t(821);let l=(0,s.createServerReference)("4018a3a5110655d354c7e22a6d779657adb9f269e2",s.callServer,void 0,s.findSourceMapURL,"togglePauseAction")},8551:(e,a,t)=>{Promise.resolve().then(t.bind(t,8564)),Promise.resolve().then(t.t.bind(t,2626,23)),Promise.resolve().then(t.bind(t,9618))},9618:(e,a,t)=>{"use strict";t.d(a,{SettingsForm:()=>A});var s=t(3031),l=t(3030),r=t(3909);let n=(0,r.A)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),i=(0,r.A)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]),o=(0,r.A)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]),d=(0,r.A)("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);var c=t(2834),h=t(9983),m=t(6605),u=t(5774),x=t(7787),p=t(7727),g=t(2445),v=t(6960),f=t(117),b=t(4281),j=t(9090),y=t(2767),w=t(2386);let N=["needs_human","job_failed","pr_opened","pr_merged","release_published","cost_limit","automation_paused"],C={needs_human:"Job needs human",job_failed:"Job aborted or failed",pr_opened:"Pull request opened",pr_merged:"Pull request merged",release_published:"Release published",cost_limit:"Daily cost limit reached",automation_paused:"Automation paused or draining"};var k=t(7836),D=t(821);let M=(0,D.createServerReference)("409c7401bd6ca2cc239985d3c09dde17c0e997f7c4",D.callServer,void 0,D.findSourceMapURL,"saveSettingsAction"),S=(0,D.createServerReference)("00fd6a1b7893056d97e217bcc54e97e8f2ec7eadfb",D.callServer,void 0,D.findSourceMapURL,"sendTestNotificationAction");function A({initial:e}){let[a,t]=(0,h.useState)(e),[r,D]=(0,h.useTransition)(),[P,_]=(0,h.useTransition)(),[T,$]=(0,h.useTransition)(),{success:U,error:L,info:E}=(0,w.d)(),I=(e,a)=>{t(t=>({...t,[e]:a}))};return(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[a.paused&&(0,s.jsx)(x.F,{tone:"warning",icon:l.A,title:"Global kill-switch is on",children:"All automation is suspended across every repository. Manual runs still work."}),(0,s.jsxs)(g.Zp,{pad:"lg",children:[(0,s.jsxs)("div",{className:"mb-4 flex items-center gap-3",children:[(0,s.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",children:(0,s.jsx)(n,{className:"h-4 w-4"})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-base font-semibold",children:"Automation & limits"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"One switch to halt everything, plus how aggressively the dock works."})]})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Global kill-switch"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Immediately pause all triage, processing, healing and releases."})]}),(0,s.jsx)(y.d,{checked:a.paused,disabled:T,onChange:e=>{I("paused",e),$(async()=>{try{await (0,k.$)(e),E(e?"Automation suspended":"Automation resumed")}catch(a){I("paused",!e),L("Failed to toggle automation",a instanceof Error?a.message:String(a))}})},"aria-label":"Global kill-switch"})]}),(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Release management"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Let the dock tag and publish releases automatically."})]}),(0,s.jsx)(y.d,{checked:a.releaseManagementEnabled,onChange:e=>I("releaseManagementEnabled",e),"aria-label":"Release management"})]}),(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[(0,s.jsx)(f.D,{label:"Poll interval (s)",hint:"How often to check for new issues.",children:(0,s.jsx)(b.p,{type:"number",value:a.pollIntervalSec,onChange:e=>I("pollIntervalSec",Number(e.target.value))})}),(0,s.jsx)(f.D,{label:"Concurrent jobs",hint:"Max runs in flight at once.",children:(0,s.jsx)(b.p,{type:"number",value:a.maxParallelJobs,onChange:e=>I("maxParallelJobs",Number(e.target.value))})}),(0,s.jsx)(f.D,{label:"Daily cost limit (USD)",hint:"Stops new runs once reached today.",children:(0,s.jsx)(b.p,{type:"number",step:"0.5",value:a.dailyCostLimitUsd,onChange:e=>I("dailyCostLimitUsd",Number(e.target.value))})}),(0,s.jsx)(f.D,{label:"Max turns",hint:"Hard cap on agent turns per job.",children:(0,s.jsx)(b.p,{type:"number",value:a.maxTurns,onChange:e=>I("maxTurns",Number(e.target.value))})}),(0,s.jsx)(f.D,{label:"Max job minutes",hint:"Abort a run after this wall-clock time.",children:(0,s.jsx)(b.p,{type:"number",value:a.maxJobMinutes,onChange:e=>I("maxJobMinutes",Number(e.target.value))})}),(0,s.jsx)(f.D,{label:"Max CI wait (min)",hint:"How long to wait for CI before giving up.",children:(0,s.jsx)(b.p,{type:"number",value:a.maxCiWaitMinutes,onChange:e=>I("maxCiWaitMinutes",Number(e.target.value))})}),(0,s.jsx)(f.D,{label:"Max job cost (USD)",hint:"0 disables the per-job cost cap.",children:(0,s.jsx)(b.p,{type:"number",min:"0",step:"0.01",value:a.maxJobCostUsd,onChange:e=>I("maxJobCostUsd",Number(e.target.value))})}),(0,s.jsx)(f.D,{label:"Default agent",hint:"Used when a repo has none set.",children:(0,s.jsx)(m.a,{value:a.defaultAgent,onChange:e=>I("defaultAgent",e)})}),(0,s.jsx)(f.D,{label:"Default model",hint:"Used when a repo has none set.",children:(0,s.jsx)(u.o,{value:a.defaultModel,onChange:e=>I("defaultModel",e),agent:a.defaultAgent})})]})]})]}),(0,s.jsxs)(g.Zp,{pad:"lg",children:[(0,s.jsxs)("div",{className:"mb-4 flex items-center gap-3",children:[(0,s.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-secondary text-muted-foreground",children:(0,s.jsx)(i,{className:"h-4 w-4"})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-base font-semibold",children:"Execution paths"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Where to find the CLIs the dock shells out to."})]})]}),(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-3",children:[(0,s.jsx)(f.D,{label:"claude CLI path",children:(0,s.jsx)(b.p,{value:a.claudePath,onChange:e=>I("claudePath",e.target.value),spellCheck:!1})}),(0,s.jsx)(f.D,{label:"codex CLI path",children:(0,s.jsx)(b.p,{value:a.codexPath,onChange:e=>I("codexPath",e.target.value),spellCheck:!1})}),(0,s.jsx)(f.D,{label:"gh CLI path",children:(0,s.jsx)(b.p,{value:a.ghPath,onChange:e=>I("ghPath",e.target.value),spellCheck:!1})})]})]}),(0,s.jsxs)(g.Zp,{pad:"lg",children:[(0,s.jsxs)("div",{className:"mb-4 flex items-center gap-3",children:[(0,s.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",children:(0,s.jsx)(o,{className:"h-4 w-4"})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-base font-semibold",children:"Notification channels"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Configure one or more channels, then send yourself a test."})]})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,s.jsx)(f.D,{label:"Telegram bot token",hint:"Leave empty to disable Telegram.",children:(0,s.jsx)(b.p,{value:a.telegramBotToken,onChange:e=>I("telegramBotToken",e.target.value),autoComplete:"off",spellCheck:!1})}),(0,s.jsx)(f.D,{label:"Telegram chat ID",children:(0,s.jsx)(b.p,{value:a.telegramChatId,onChange:e=>I("telegramChatId",e.target.value),spellCheck:!1})})]}),(0,s.jsx)("div",{className:"grid gap-4",children:(0,s.jsx)(f.D,{label:"Slack incoming webhook URL",hint:"Leave empty to disable Slack.",children:(0,s.jsx)(b.p,{value:a.slackWebhookUrl,onChange:e=>I("slackWebhookUrl",e.target.value),spellCheck:!1})})}),(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,s.jsx)(f.D,{label:"SMTP host",hint:"Leave empty to disable email.",children:(0,s.jsx)(b.p,{value:a.smtpHost,onChange:e=>I("smtpHost",e.target.value)})}),(0,s.jsx)(f.D,{label:"SMTP port",children:(0,s.jsx)(b.p,{type:"number",value:a.smtpPort,onChange:e=>I("smtpPort",Number(e.target.value))})}),(0,s.jsx)(f.D,{label:"SMTP username",children:(0,s.jsx)(b.p,{value:a.smtpUser,onChange:e=>I("smtpUser",e.target.value),autoComplete:"off"})}),(0,s.jsx)(f.D,{label:"SMTP password",children:(0,s.jsx)(b.p,{type:"password",value:a.smtpPass,onChange:e=>I("smtpPass",e.target.value),autoComplete:"new-password"})}),(0,s.jsx)(f.D,{label:"From address",children:(0,s.jsx)(b.p,{type:"email",value:a.emailFrom,onChange:e=>I("emailFrom",e.target.value),placeholder:"drydock@example.com"})}),(0,s.jsx)(f.D,{label:"To address",children:(0,s.jsx)(b.p,{type:"email",value:a.emailTo,onChange:e=>I("emailTo",e.target.value),placeholder:"you@example.com"})})]}),(0,s.jsx)(f.D,{label:"Notify me about",children:(0,s.jsx)("div",{className:"grid gap-2.5 sm:grid-cols-2",children:N.map(e=>(0,s.jsxs)("label",{htmlFor:`notify-${e}`,className:"flex cursor-pointer items-center gap-2.5 text-sm text-foreground",children:[(0,s.jsx)(v.S,{id:`notify-${e}`,checked:a.notifyEvents.includes(e),onChange:t=>I("notifyEvents",t?[...a.notifyEvents,e]:a.notifyEvents.filter(a=>a!==e)),"aria-label":C[e]}),C[e]]},e))})})]})]}),(0,s.jsxs)(g.Zp,{pad:"lg",children:[(0,s.jsxs)("div",{className:"mb-4 flex items-center gap-3",children:[(0,s.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-secondary text-muted-foreground",children:(0,s.jsx)(d,{className:"h-4 w-4"})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-base font-semibold",children:"Retention"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"How long to keep job logs before they are pruned."})]})]}),(0,s.jsx)("div",{className:"grid gap-4 sm:grid-cols-3",children:(0,s.jsx)(f.D,{label:"Log retention (days)",hint:"Older job logs are deleted automatically.",children:(0,s.jsx)(b.p,{type:"number",value:a.retentionDays,onChange:e=>I("retentionDays",Number(e.target.value))})})})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2",children:[(0,s.jsxs)(p.$,{variant:"outline",onClick:()=>_(async()=>{try{await M(a);let e=await S();if(0===e.length)return void L("No channels configured","Save a channel before sending a test.");let t=e.filter(e=>!e.ok);0===t.length?U(`Test sent to ${e.map(e=>e.channel).join(", ")}`):L("Some channels failed",t.map(e=>`${e.channel}: ${e.error??"unknown error"}`).join("; "))}catch(e){L("Failed to send test",e instanceof Error?e.message:String(e))}}),disabled:P,children:[P?(0,s.jsx)(j.y,{size:16}):(0,s.jsx)(c.A,{className:"h-4 w-4"}),P?"Sending…":"Send test notification"]}),(0,s.jsxs)(p.$,{onClick:()=>D(async()=>{try{await M(a),U("Settings saved")}catch(e){L("Failed to save settings",e instanceof Error?e.message:String(e))}}),disabled:r,children:[r&&(0,s.jsx)(j.y,{size:16}),r?"Saving…":"Save changes"]})]})]})}}},e=>{e.O(0,[736,878,174,633,586,358],()=>e(e.s=8551)),_N_E=e.O()}]);