@nilsr0711/drydock 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +5 -3
  3. package/.next/standalone/.next/build-manifest.json +2 -2
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/routes-manifest.json +12 -0
  6. package/.next/standalone/.next/server/app/_global-error/page.js +2 -2
  7. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
  17. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/adrs/page.js +2 -2
  20. package/.next/standalone/.next/server/app/adrs/page.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/adrs/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/analytics/page.js +2 -0
  23. package/.next/standalone/.next/server/app/analytics/page.js.nft.json +1 -0
  24. package/.next/standalone/.next/server/app/analytics/page_client-reference-manifest.js +1 -0
  25. package/.next/standalone/.next/server/app/api/cost/export/route.js +2 -1
  26. package/.next/standalone/.next/server/app/api/cost/export/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/sse/dashboard/route.js +15 -2
  28. package/.next/standalone/.next/server/app/api/sse/dashboard/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/sse/jobs/[id]/route.js +2 -2
  30. package/.next/standalone/.next/server/app/api/sse/jobs/[id]/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/webhooks/[repoId]/route.js +14 -1
  32. package/.next/standalone/.next/server/app/api/webhooks/[repoId]/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/costs/page.js +2 -2
  34. package/.next/standalone/.next/server/app/costs/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/costs/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/jobs/[id]/page.js +3 -5
  37. package/.next/standalone/.next/server/app/jobs/[id]/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/jobs/[id]/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/jobs/page.js +2 -0
  40. package/.next/standalone/.next/server/app/jobs/page.js.nft.json +1 -0
  41. package/.next/standalone/.next/server/app/jobs/page_client-reference-manifest.js +1 -0
  42. package/.next/standalone/.next/server/app/needs-human/page.js +2 -2
  43. package/.next/standalone/.next/server/app/needs-human/page.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/needs-human/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/page.js +2 -2
  46. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/prompts/page.js +2 -2
  49. package/.next/standalone/.next/server/app/prompts/page.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/prompts/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/repos/[id]/page.js +2 -2
  52. package/.next/standalone/.next/server/app/repos/[id]/page.js.nft.json +1 -1
  53. package/.next/standalone/.next/server/app/repos/[id]/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/settings/page.js +2 -2
  55. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app-paths-manifest.json +5 -3
  58. package/.next/standalone/.next/server/chunks/318.js +14 -0
  59. package/.next/standalone/.next/server/chunks/468.js +24 -0
  60. package/.next/standalone/.next/server/chunks/49.js +3 -0
  61. package/.next/standalone/.next/server/chunks/541.js +1 -1
  62. package/.next/standalone/.next/server/chunks/665.js +9 -0
  63. package/.next/standalone/.next/server/chunks/675.js +1 -0
  64. package/.next/standalone/.next/server/chunks/785.js +93 -0
  65. package/.next/standalone/.next/server/chunks/859.js +1 -0
  66. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  67. package/.next/standalone/.next/server/pages/500.html +1 -1
  68. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  70. package/.next/standalone/.next/static/chunks/131-754f0b3c6a7625f0.js +1 -0
  71. package/.next/standalone/.next/static/chunks/{750-1062dd98095cb147.js → 334-ac65cc1c43f3e786.js} +3 -3
  72. package/.next/standalone/.next/static/chunks/488-94313c3750ed9fec.js +1 -0
  73. package/.next/standalone/.next/static/chunks/626-25255b0a66c520cb.js +1 -0
  74. package/.next/standalone/.next/static/chunks/751-17d24a843c68c75a.js +1 -0
  75. package/.next/standalone/.next/static/chunks/860-5c68ffeb97288824.js +1 -0
  76. package/.next/standalone/.next/static/chunks/app/adrs/page-d427443f113c3575.js +1 -0
  77. package/.next/standalone/.next/static/chunks/app/analytics/page-4154e54399ac6fb4.js +1 -0
  78. package/.next/standalone/.next/static/chunks/app/costs/page-85ceb7f167a8095a.js +1 -0
  79. package/.next/standalone/.next/static/chunks/app/jobs/[id]/page-eb2e6d420c330df8.js +1 -0
  80. package/.next/standalone/.next/static/chunks/app/jobs/page-73240c8c9b0571cf.js +1 -0
  81. package/.next/standalone/.next/static/chunks/app/layout-717833ce6aaa45ee.js +1 -0
  82. package/.next/standalone/.next/static/chunks/app/needs-human/page-fd702f6eeab08820.js +1 -0
  83. package/.next/standalone/.next/static/chunks/app/page-43ce9934744597e6.js +1 -0
  84. package/.next/standalone/.next/static/chunks/app/prompts/page-ecd6816b8dd8b583.js +1 -0
  85. package/.next/standalone/.next/static/chunks/app/repos/[id]/page-df838c0805fce188.js +1 -0
  86. package/.next/standalone/.next/static/chunks/app/settings/page-3274e07b560fc8bc.js +1 -0
  87. package/.next/standalone/.next/static/css/1f98a1f790475168.css +3 -0
  88. package/.next/standalone/.next/static/eWyghWWF4zppTRQ7rmwde/_buildManifest.js +1 -0
  89. package/.next/standalone/drizzle/0010_one_shot_costs.sql +12 -0
  90. package/.next/standalone/drizzle/0021_robust_wind_dancer.sql +48 -0
  91. package/.next/standalone/drizzle/0022_issue_model_override.sql +2 -0
  92. package/.next/standalone/drizzle/meta/0021_snapshot.json +1780 -0
  93. package/.next/standalone/drizzle/meta/_journal.json +7 -0
  94. package/.next/standalone/package.json +2 -1
  95. package/.next/static/chunks/131-754f0b3c6a7625f0.js +1 -0
  96. package/.next/static/chunks/{750-1062dd98095cb147.js → 334-ac65cc1c43f3e786.js} +3 -3
  97. package/.next/static/chunks/488-94313c3750ed9fec.js +1 -0
  98. package/.next/static/chunks/626-25255b0a66c520cb.js +1 -0
  99. package/.next/static/chunks/751-17d24a843c68c75a.js +1 -0
  100. package/.next/static/chunks/860-5c68ffeb97288824.js +1 -0
  101. package/.next/static/chunks/app/adrs/page-d427443f113c3575.js +1 -0
  102. package/.next/static/chunks/app/analytics/page-4154e54399ac6fb4.js +1 -0
  103. package/.next/static/chunks/app/costs/page-85ceb7f167a8095a.js +1 -0
  104. package/.next/static/chunks/app/jobs/[id]/page-eb2e6d420c330df8.js +1 -0
  105. package/.next/static/chunks/app/jobs/page-73240c8c9b0571cf.js +1 -0
  106. package/.next/static/chunks/app/layout-717833ce6aaa45ee.js +1 -0
  107. package/.next/static/chunks/app/needs-human/page-fd702f6eeab08820.js +1 -0
  108. package/.next/static/chunks/app/page-43ce9934744597e6.js +1 -0
  109. package/.next/static/chunks/app/prompts/page-ecd6816b8dd8b583.js +1 -0
  110. package/.next/static/chunks/app/repos/[id]/page-df838c0805fce188.js +1 -0
  111. package/.next/static/chunks/app/settings/page-3274e07b560fc8bc.js +1 -0
  112. package/.next/static/css/1f98a1f790475168.css +3 -0
  113. package/.next/static/eWyghWWF4zppTRQ7rmwde/_buildManifest.js +1 -0
  114. package/README.md +11 -3
  115. package/bin/drydock.mjs +32 -0
  116. package/drizzle/0010_one_shot_costs.sql +12 -0
  117. package/drizzle/0021_robust_wind_dancer.sql +48 -0
  118. package/drizzle/0022_issue_model_override.sql +2 -0
  119. package/drizzle/meta/0021_snapshot.json +1780 -0
  120. package/drizzle/meta/_journal.json +7 -0
  121. package/package.json +2 -1
  122. package/.next/standalone/.next/server/chunks/185.js +0 -32
  123. package/.next/standalone/.next/server/chunks/235.js +0 -1
  124. package/.next/standalone/.next/server/chunks/309.js +0 -1
  125. package/.next/standalone/.next/server/chunks/350.js +0 -9
  126. package/.next/standalone/.next/server/chunks/39.js +0 -3
  127. package/.next/standalone/.next/server/chunks/447.js +0 -1
  128. package/.next/standalone/.next/server/chunks/507.js +0 -9
  129. package/.next/standalone/.next/server/chunks/579.js +0 -62
  130. package/.next/standalone/.next/server/chunks/710.js +0 -1
  131. package/.next/standalone/.next/server/chunks/777.js +0 -1
  132. package/.next/standalone/.next/server/chunks/9.js +0 -3
  133. package/.next/standalone/.next/static/chunks/66-a23941cbbf88d6cd.js +0 -1
  134. package/.next/standalone/.next/static/chunks/700-c294ac6d353097ec.js +0 -1
  135. package/.next/standalone/.next/static/chunks/app/adrs/page-54954f500bc3e3c6.js +0 -1
  136. package/.next/standalone/.next/static/chunks/app/costs/page-737c89e70adff98b.js +0 -1
  137. package/.next/standalone/.next/static/chunks/app/jobs/[id]/page-217e04f338b50a7e.js +0 -1
  138. package/.next/standalone/.next/static/chunks/app/layout-f6048a8c9f541e0d.js +0 -1
  139. package/.next/standalone/.next/static/chunks/app/needs-human/page-c047e3e842681979.js +0 -1
  140. package/.next/standalone/.next/static/chunks/app/page-382b7fef1f749214.js +0 -1
  141. package/.next/standalone/.next/static/chunks/app/prompts/page-9e32fb8f51e7873e.js +0 -1
  142. package/.next/standalone/.next/static/chunks/app/repos/[id]/page-55b03bdcf107eefe.js +0 -1
  143. package/.next/standalone/.next/static/chunks/app/settings/page-5b2b8683fa6afdf4.js +0 -1
  144. package/.next/standalone/.next/static/css/64af283f7f467bc0.css +0 -3
  145. package/.next/standalone/.next/static/g7t6i0qpogjrDGpmNgFei/_buildManifest.js +0 -1
  146. package/.next/static/chunks/66-a23941cbbf88d6cd.js +0 -1
  147. package/.next/static/chunks/700-c294ac6d353097ec.js +0 -1
  148. package/.next/static/chunks/app/adrs/page-54954f500bc3e3c6.js +0 -1
  149. package/.next/static/chunks/app/costs/page-737c89e70adff98b.js +0 -1
  150. package/.next/static/chunks/app/jobs/[id]/page-217e04f338b50a7e.js +0 -1
  151. package/.next/static/chunks/app/layout-f6048a8c9f541e0d.js +0 -1
  152. package/.next/static/chunks/app/needs-human/page-c047e3e842681979.js +0 -1
  153. package/.next/static/chunks/app/page-382b7fef1f749214.js +0 -1
  154. package/.next/static/chunks/app/prompts/page-9e32fb8f51e7873e.js +0 -1
  155. package/.next/static/chunks/app/repos/[id]/page-55b03bdcf107eefe.js +0 -1
  156. package/.next/static/chunks/app/settings/page-5b2b8683fa6afdf4.js +0 -1
  157. package/.next/static/css/64af283f7f467bc0.css +0 -3
  158. package/.next/static/g7t6i0qpogjrDGpmNgFei/_buildManifest.js +0 -1
  159. /package/.next/standalone/.next/static/{g7t6i0qpogjrDGpmNgFei → eWyghWWF4zppTRQ7rmwde}/_ssgManifest.js +0 -0
  160. /package/.next/static/{g7t6i0qpogjrDGpmNgFei → eWyghWWF4zppTRQ7rmwde}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
- (()=>{var a={};a.id=530,a.ids=[530],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2874:(a,b,c)=>{"use strict";c.d(b,{a:()=>A});var d=c(37477),e=c(73801);let f={"claude-opus-4-7":{inputPerMTok:15,outputPerMTok:75},"claude-sonnet-4-5":{inputPerMTok:3,outputPerMTok:15},"claude-haiku-4-5":{inputPerMTok:1,outputPerMTok:5}},g=f["claude-sonnet-4-5"];var h=c(14868);let i=h.Ik({input_tokens:h.ai().optional(),output_tokens:h.ai().optional(),cache_creation_input_tokens:h.ai().optional(),cache_read_input_tokens:h.ai().optional()}).passthrough(),j=h.Ik({type:h.eu("system"),subtype:h.Yj().optional(),session_id:h.Yj().optional(),model:h.Yj().optional()}),k=h.Ik({type:h.eu("assistant"),message:h.Ik({role:h.eu("assistant"),content:h.YO(h.g1(h.Yj(),h.L5())),usage:i.optional()})}),l=h.Ik({type:h.eu("user"),message:h.Ik({role:h.eu("user"),content:h.YO(h.g1(h.Yj(),h.L5()))})}),m=h.Ik({type:h.eu("result"),subtype:h.Yj().optional(),session_id:h.Yj().optional(),is_error:h.zM().optional(),total_cost_usd:h.ai().optional(),usage:i.optional()}),n=h.gM("type",[j,k,l,m]);function o(a){return a instanceof Error?a.message:String(a)}function p(a){let b=[];for(let c of a)"text"===c.type&&"string"==typeof c.text?b.push({kind:"text",text:c.text}):"tool_use"===c.type?b.push({kind:"tool_use",name:String(c.name??"unknown"),id:String(c.id??""),input:c.input}):"tool_result"===c.type&&b.push({kind:"tool_result",toolUseId:String(c.tool_use_id??""),isError:!!c.is_error});return b}class q{push(a){this.buffer+=a;let b=[],c=this.buffer.indexOf("\n");for(;-1!==c;){let a=this.buffer.slice(0,c);this.buffer=this.buffer.slice(c+1);let d=this.consume(a);d&&b.push(d),c=this.buffer.indexOf("\n")}return b}flush(){let a=this.buffer;this.buffer="";let b=this.consume(a);return b?[b]:[]}consume(a){let b;try{b=function(a){var b;let c,d=a.trim();if(!d)return null;let e=JSON.parse(d);return c={type:(b=n.parse(e)).type,chunks:[],inputTokens:0,outputTokens:0,isError:!1,raw:b},"system"===b.type?(c.sessionId=b.session_id,c.model=b.model):"assistant"===b.type?(c.chunks=p(b.message.content),c.inputTokens=b.message.usage?.input_tokens??0,c.outputTokens=b.message.usage?.output_tokens??0):"user"===b.type?c.chunks=p(b.message.content):(c.sessionId=b.session_id,c.costUsd=b.total_cost_usd,c.inputTokens=b.usage?.input_tokens??0,c.outputTokens=b.usage?.output_tokens??0,c.isError=b.is_error??!1),c}(a)}catch(b){return this.onParseError?.({line:a.trim(),message:o(b)}),null}return b?(b.sessionId&&(this.sessionId=b.sessionId),b.model&&(this.model=b.model),this.totalInputTokens+=b.inputTokens,this.totalOutputTokens+=b.outputTokens,"result"===b.type&&void 0!==b.costUsd&&(this.costUsd=b.costUsd),b):null}constructor(){this.buffer="",this.totalInputTokens=0,this.totalOutputTokens=0,this.costUsd=0}}let r="gpt-5-codex",s={"gpt-5-codex":{inputPerMTok:1.25,outputPerMTok:10},"gpt-5":{inputPerMTok:1.25,outputPerMTok:10},"gpt-5-mini":{inputPerMTok:.25,outputPerMTok:2}},t=s[r],u=h.Ik({input_tokens:h.ai().optional(),cached_input_tokens:h.ai().optional(),output_tokens:h.ai().optional(),reasoning_output_tokens:h.ai().optional()}).passthrough(),v=h.Ik({id:h.Yj().optional(),item_type:h.Yj().optional(),text:h.Yj().optional(),command:h.Yj().optional(),exit_code:h.ai().optional(),server:h.Yj().optional(),tool:h.Yj().optional()}).passthrough(),w=h.Ik({type:h.Yj(),thread_id:h.Yj().optional(),usage:u.optional(),item:v.optional()}).passthrough();class x{push(a){this.buffer+=a;let b=[],c=this.buffer.indexOf("\n");for(;-1!==c;){let a=this.buffer.slice(0,c);this.buffer=this.buffer.slice(c+1);let d=this.consume(a);d&&b.push(d),c=this.buffer.indexOf("\n")}return b}flush(){let a=this.buffer;this.buffer="";let b=this.consume(a);return b?[b]:[]}consume(a){let b;try{b=function(a){let b=a.trim();if(!b)return null;let c=JSON.parse(b);var d=w.parse(c);let e={type:"assistant",chunks:[],inputTokens:0,outputTokens:0,isError:!1,raw:d};if("thread.started"===d.type)return{...e,type:"system",sessionId:d.thread_id};if("item.completed"===d.type&&d.item)return{...e,type:"assistant",chunks:function(a){let b=a.id??"";switch(a.item_type){case"assistant_message":case"reasoning":return a.text?[{kind:"text",text:a.text}]:[];case"command_execution":return[{kind:"tool_use",name:"command",id:b,input:{command:a.command,exit_code:a.exit_code}}];case"file_change":return[{kind:"tool_use",name:"edit",id:b,input:a}];case"mcp_tool_call":return[{kind:"tool_use",name:`${a.server??"mcp"}/${a.tool??"tool"}`,id:b,input:a}];default:return[]}}(d.item)};if("turn.completed"===d.type){let a=d.usage;return{...e,type:"result",inputTokens:a?.input_tokens??0,outputTokens:(a?.output_tokens??0)+(a?.reasoning_output_tokens??0)}}return"turn.failed"===d.type||"error"===d.type?{...e,type:"result",isError:!0}:null}(a)}catch(b){return this.onParseError?.({line:a.trim(),message:o(b)}),null}return b?(b.sessionId&&(this.sessionId=b.sessionId),this.totalInputTokens+=b.inputTokens,this.totalOutputTokens+=b.outputTokens,b):null}constructor(){this.buffer="",this.totalInputTokens=0,this.totalOutputTokens=0,this.costUsd=0}}let y={claude:{id:"claude",label:"Claude Code",defaultCommand:"claude",supportsResume:!0,resumeModel:"claude-haiku-4-5",resumeMaxTurns:15,defaultModel:"claude-opus-4-7",buildStartArgs:({prompt:a,model:b,maxTurns:c})=>["-p",a,"--max-turns",String(c),"--permission-mode","acceptEdits","--model",b,"--output-format","stream-json","--verbose"],buildResumeArgs:({prompt:a,sessionId:b,model:c,maxTurns:d})=>["-p",a,"--resume",b,"--max-turns",String(d),"--model",c,"--output-format","stream-json","--verbose"],buildOneShotArgs:({prompt:a,model:b})=>["-p",a,"--model",b],createParser:()=>new q,estimateCost:function(a,b,c){let d=a?f[a]??g:g;return b/1e6*d.inputPerMTok+c/1e6*d.outputPerMTok}},codex:{id:"codex",label:"Codex CLI",defaultCommand:"codex",supportsResume:!0,resumeModel:r,resumeMaxTurns:15,defaultModel:r,buildStartArgs:({prompt:a,model:b})=>["exec","--json","--sandbox","workspace-write","--model",b,a],buildResumeArgs:({prompt:a,sessionId:b,model:c})=>["exec","resume",b,"--json","--sandbox","workspace-write","--model",c,a],buildOneShotArgs:({prompt:a,model:b})=>["exec","--model",b,a],createParser:()=>new x,estimateCost:function(a,b,c){let d=a?s[a]??t:t;return b/1e6*d.inputPerMTok+c/1e6*d.outputPerMTok}}},z=["claude","codex"].map(a=>y[a]);function A({value:a,onChange:b,id:c,className:f}){return(0,d.jsx)(e.l,{id:c,value:a,onChange:a=>b(a.target.value),className:f,children:z.map(a=>(0,d.jsx)("option",{value:a.id,children:a.label},a.id))})}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},3746:(a,b,c)=>{"use strict";c.d(b,{u:()=>e});var d=c(47609);let e=(0,d.createServerReference)("60b4ffb77facbef3de2d7373e591218110583105bb",d.callServer,void 0,d.findSourceMapURL,"updateRepoAction")},4184:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>O,handler:()=>Q,routeModule:()=>P});var d=c(86565),e=c(66626),f=c(38002),g=c(52419),h=c(27345),i=c(75665),j=c(69880),k=c(61385),l=c(97785),m=c(38011),n=c(41897),o=c(74767),p=c(89447),q=c(8350),r=c(261),s=c(52714),t=c(46967),u=c(26713),v=c(10523),w=c(48120),x=c(14284),y=c(3077),z=c(70227),A=c(54369),B=c(1089),C=c(86439),D=c(77068),E=c(377),F=c(32185),G=c(28795),H=c(23578),I=c(70722),J=c(10013),K=c(43954),L=c(17891),M={};for(let a in G)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(M[a]=()=>G[a]);c.d(b,M);let N={children:["",{children:["repos",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,11862)),"/home/runner/work/drydock/drydock/src/app/repos/[id]/page.tsx"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,74111,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,74111,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,38593)),"/home/runner/work/drydock/drydock/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,74111,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,76335,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45034,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,21205,23)),"next/dist/client/components/builtin/unauthorized.js"]},[]]}.children,O={require:c,loadChunk:()=>Promise.resolve()},P=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/repos/[id]/page",pathname:"/repos/[id]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:N},distDir:".next",relativeProjectDir:""});async function Q(a,b,d){var M,R,S,T,U;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),P.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let V=!!(0,h.getRequestMeta)(a,"minimalMode"),W="/repos/[id]/page";"/index"===W&&(W="/");let X=await P.prepare(a,b,{srcPage:W,multiZoneDraftMode:!1});if(!X)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Y,query:Z,params:$,pageIsDynamic:_,buildManifest:aa,nextFontManifest:ab,reactLoadableManifest:ac,serverActionsManifest:ad,clientReferenceManifest:ae,subresourceIntegrityManifest:af,prerenderManifest:ag,isDraftMode:ah,resolvedPathname:ai,revalidateOnlyGenerated:aj,routerServerContext:ak,nextConfig:al,parsedUrl:am,interceptionRoutePatterns:an,deploymentId:ao,clientAssetToken:ap}=X,aq=(0,r.normalizeAppPath)(W),{isOnDemandRevalidate:ar}=X,as=al.experimental.ppr&&!al.cacheComponents&&(0,K.isInterceptionRouteAppPath)(ai)?null:P.match(ai,ag),at=(null==as?void 0:as.route)??null,au=!!ag.routes[ai],av=a.headers["user-agent"]||"",aw=(0,u.getBotType)(av),ax=(0,q.isHtmlBotRequest)(a),ay=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],az=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[t.RSC_HEADER]),aA=(0,s.getIsPossibleServerAction)(a),aB=(0,m.checkIsAppPPREnabled)(al.experimental.ppr),aC=a.headers[y.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&V&&aB&&aA&&aC&&"string"==typeof aC){let e=parseInt(aC,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,E.getMaxPostponedStateSize)(al.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,E.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(U=al.experimental.serverActions)?void 0:U.bodySizeLimit)??i,k=e+(j!==i?c(85802).parse(j):1048576),l=await (0,E.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&aB&&"1"===a.headers[y.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,E.getMaxPostponedStateSize)(al.experimental.maxPostponedStateSize),f=await (0,E.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,E.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aD=!0===P.isDev||!0===al.experimental.exposeTestingApiInProductionBuild,aE=aD&&("1"===a.headers[t.NEXT_INSTANT_PREFETCH_HEADER]||!(0,n.f)(a.headers[t.RSC_HEADER])&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(t.NEXT_INSTANT_TEST_COOKIE+"=")),aF=(aB||aE)&&((null==(M=ag.routes[aq]??ag.dynamicRoutes[aq])?void 0:M.renderingMode)==="PARTIALLY_STATIC"||aE&&(aD||(null==ak?void 0:ak.experimentalTestProxy)===!0)),aG=aE&&aF,aH=aG&&!0===P.isDev,aI=!1,aJ=aF?(0,h.getRequestMeta)(a,"postponed"):void 0,aK=null==(R=ag.routes[ai])?void 0:R.prefetchDataRoute,aL=aF&&az&&!ay&&!aK;V&&(aL=aL&&!!aJ);let aM=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aN=(!aw||!aF)&&(!av||(0,q.shouldServeStreamingMetadata)(av,al.htmlLimitedBots)),aO=!!((at||au||ag.routes[aq])&&!(aw&&aF)),aP=aF&&!0===al.cacheComponents,aQ=!0===P.isDev||!aO||"string"==typeof aJ||(aP&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aL&&!V:aL),aR=!!aw&&aF,aS=(null==at?void 0:at.remainingPrerenderableParams)??[],aT=(null==at?void 0:at.fallback)===null&&((null==(S=at.fallbackRootParams)?void 0:S.length)??0)>0,aU=null;if(!ah&&aO&&!aQ&&!aA&&!aJ&&!aL){let a=as?"string"==typeof(null==at?void 0:at.fallback)?at.fallback:as.source:null;if(!0===al.experimental.partialFallbacks&&a&&(null==at?void 0:at.fallbackRouteParams)&&!aT){if(aS.length>0){let b,c=(b=new Map(aS.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,L.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==$?void 0:$[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace((0,o.buildDynamicSegmentPlaceholder)(d),f)}).join("/")||"/");aU=c!==a?c:null}}else aU=ai}let aV=aU;!aV&&(P.isDev||aO&&_&&(null==at?void 0:at.fallbackRouteParams)&&!aA)&&(aV=ai),P.isDev||ah||!aO||!az||aL||(0,k.d)(a.headers);let aW={...G,tree:N,handler:Q,routeModule:P,__next_app__:O};ad&&ae&&(0,p.setManifestsSingleton)({page:W,clientReferenceManifest:ae,serverActionsManifest:ad});let aX=a.method||"GET",aY=(0,g.getTracer)(),aZ=aY.getActiveScopeSpan(),a$=!!(null==ak?void 0:ak.isWrappedByNextServer),a_=!0===al.experimental.partialFallbacks&&aS.length>0?(null==at||null==(T=at.fallbackRouteParams)?void 0:T.filter(a=>!aS.some(b=>b.paramName===a.paramName)))??[]:[],a0=async()=>((null==ak?void 0:ak.render404)?await ak.render404(a,b,am,!1):b.end("This page could not be found"),null);try{let k,m=P.getVaryHeader(ai,an);b.setHeader("Vary",m);let n=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return P.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aY.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aX} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),k&&k!==c&&(k.setAttribute("http.route",d),k.updateName(a))}else c.updateName(`${aX} ${W}`)})},p=(0,h.getRequestMeta)(a,"incrementalCache")||await P.getIncrementalCache(a,al,ag,V);null==p||p.resetRequestCache(),globalThis.__incrementalCache=p;let q=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:Z,params:$,page:aq,sharedContext:{buildId:Y,deploymentId:ao,clientAssetToken:ap},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aW,Component:(0,j.T)(aW),params:$,routeModule:P,page:W,postponed:f,shouldWaitOnAllReady:aR,serveStreamingMetadata:aN,supportsDynamicResponse:"string"==typeof f||aQ,buildManifest:aa,nextFontManifest:ab,reactLoadableManifest:ac,subresourceIntegrityManifest:af,setCacheStatus:null==ak?void 0:ak.setCacheStatus,setIsrStatus:null==ak?void 0:ak.setIsrStatus,setReactDebugChannel:null==ak?void 0:ak.setReactDebugChannel,sendErrorsToBrowser:null==ak?void 0:ak.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),P.relativeProjectDir),isDraftMode:ah,botType:aw,isOnDemandRevalidate:ar,isPossibleServerAction:aA,assetPrefix:al.assetPrefix,nextConfigOutput:al.output,crossOrigin:al.crossOrigin,trailingSlash:al.trailingSlash,images:al.images,previewProps:ag.preview,enableTainting:al.experimental.taint,htmlLimitedBots:al.htmlLimitedBots,reactMaxHeadersLength:al.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:p,cacheLifeProfiles:al.cacheLife,basePath:al.basePath,serverActions:al.experimental.serverActions,logServerFunctions:"object"==typeof al.logging&&!!al.logging.serverFunctions,...aG||aH||aI?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aH}:{},cacheComponents:!!al.cacheComponents,experimental:{isRoutePPREnabled:aF,expireTime:al.expireTime,staleTimes:al.experimental.staleTimes,dynamicOnHover:!!al.experimental.dynamicOnHover,optimisticRouting:!!al.experimental.optimisticRouting,inlineCss:!!al.experimental.inlineCss,prefetchInlining:al.experimental.prefetchInlining??!1,authInterrupts:!!al.experimental.authInterrupts,cachedNavigations:!!al.experimental.cachedNavigations,clientTraceMetadata:al.experimental.clientTraceMetadata||[],clientParamParsingOrigins:al.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,D.parseMaxPostponedStateSize)(al.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>P.onRequestError(a,b,d,e,ak),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await n(e,k),{metadata:m}=l,{cacheControl:o,headers:q={},fetchTags:r,fetchMetrics:s}=m;if(r&&(q[y.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aO&&(null==o?void 0:o.revalidate)===0&&!P.isDev&&!aF){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ai}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
2
- see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:o}},r=async({hasResolved:c,previousCacheEntry:g,isRevalidating:i,span:j,forceStaticRender:k=!1})=>{let l=!1===P.isDev,m=c||b.writableEnded;try{var n;let f;if(ar&&aj&&!g&&!V)return(null==ak?void 0:ak.render404)?await ak.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(at&&(f=(0,w.parseFallbackField)(at.fallback)),!0===al.experimental.partialFallbacks&&(null==at?void 0:at.fallback)===null&&!aT&&aS.length>0&&(f=w.FallbackMode.PRERENDER),f===w.FallbackMode.PRERENDER&&(0,u.isBot)(av)&&(!aF||ax)&&(f=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==g?void 0:g.isStale)===-1&&(ar=!0),ar&&(f!==w.FallbackMode.NOT_FOUND||g)&&(f=w.FallbackMode.BLOCKING_STATIC_RENDER),!V&&f!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aV&&!m&&!ah&&_&&(l||!au)){if((l||at)&&f===w.FallbackMode.NOT_FOUND){if(al.adapterPath)return await a0();throw new C.NoFallbackError}if(aF&&(al.cacheComponents?!aL:!az)){let b=l&&"string"==typeof(null==at?void 0:at.fallback)?at.fallback:aq,f=(l||aG)&&(null==at?void 0:at.fallbackRouteParams)?(0,o.createOpaqueFallbackRouteParams)(at.fallbackRouteParams):aI?(0,o.getFallbackRouteParams)(aq,P):null;aG&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await P.handleResponse({cacheKey:b,req:a,nextConfig:al,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ag,isRoutePPREnabled:aF,responseGenerator:async()=>q({span:j,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:V});if(null===g)return null;if(g)return V||!aF||!(aS.length>0)||!0!==al.experimental.partialFallbacks||!aU||!p||ar||aI||aD||aE||ay||(0,J.scheduleOnNextTick)(async()=>{let b=P.getResponseCache(a);try{await b.revalidate(aU,p,aF,!1,a=>q({span:a.span,postponed:void 0,fallbackRouteParams:a_.length>0?(0,o.createOpaqueFallbackRouteParams)(a_):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let s=ar||i||!aJ?void 0:aJ;if(aP&&!V&&p&&(aL||aA)&&!k){let b=await p.get(ai,{kind:v.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===v.CachedRouteKind.APP_PAGE&&(s=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,J.scheduleOnNextTick)(async()=>{let b=P.getResponseCache(a);try{await b.revalidate(ai,p,aF,!1,a=>r({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aG||aH)&&void 0!==s)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let t=!P.isDev&&_&&(null==at?void 0:at.fallbackRouteParams)?(0,o.getPlaceholderFallbackRouteParams)($,at.fallbackRouteParams):null,y=t&&t.length>0?t:null==at?void 0:at.fallbackRouteParams,z=null!=t&&t.length>0,A=null;if(al.cacheComponents&&(null==at?void 0:at.fallbackRouteParams)){let b=(0,h.getRequestMeta)(a,"resolvedRouteParamKeys");b&&b.size>0&&(A=at.fallbackRouteParams.filter(a=>!b.has(a.paramName)))}let B=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||z||aG&&!au)&&y?(0,o.createOpaqueFallbackRouteParams)(y):A&&A.length>0&&A.length<((null==at||null==(n=at.fallbackRouteParams)?void 0:n.length)??0)?(0,o.createOpaqueFallbackRouteParams)(A):aI?(0,o.getFallbackRouteParams)(aq,P):null;if((l||aG)&&al.cacheComponents&&!au&&(null==at?void 0:at.fallbackRouteParams)){let b=(0,o.createOpaqueFallbackRouteParams)(y??at.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return q({span:j,postponed:s,fallbackRouteParams:B,forceStaticRender:k})}catch(b){throw(null==g?void 0:g.isStale)&&await P.onRequestError(a,b,{routerKind:"App Router",routePath:W,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aO,isOnDemandRevalidate:ar})},!1,ak),b}},s=async c=>{var f,g,i,j,k,l;let m,n=await P.handleResponse({cacheKey:aU,responseGenerator:a=>r({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ar,isRoutePPREnabled:aF,req:a,nextConfig:al,prerenderManifest:ag,waitUntil:d.waitUntil,isMinimalMode:V});if(ah&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),P.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!n){if(aU)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let o="string"==typeof n.value.postponed;az&&!aA&&ao&&b.setHeader(y.NEXT_NAV_DEPLOYMENT_ID_HEADER,ao),aO&&!aL&&(!o||ay)&&(V||b.setHeader("x-nextjs-cache",ar?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:p}=n;if(aJ)m={revalidate:0,expire:void 0};else if(aL)m={revalidate:0,expire:void 0};else if(!P.isDev)if(ah)m={revalidate:0,expire:void 0};else if(aO){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});m={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??al.expireTime}}else m={revalidate:y.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(m={revalidate:0,expire:void 0});if(n.cacheControl=m,"string"==typeof aM&&(null==p?void 0:p.kind)===v.CachedRouteKind.APP_PAGE&&p.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=p.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];V&&aO&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=p.segmentData.get(aM);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let s=aP?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(s){let b=(0,h.getRequestMeta)(a,"initURL")??a.url,c=b?(null==(l=(0,F.parseUrl)(b))?void 0:l.pathname)??b:void 0;if(await s(n,{url:c}))return null}if(p.headers){let a={...p.headers};for(let[c,d]of(V&&aO||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let u=null==(g=p.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(V&&aO&&u&&"string"==typeof u&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,u),!p.status||az&&aF||(b.statusCode=p.status),!V&&p.status&&H.RedirectStatusCode[p.status]&&az&&(b.statusCode=200),o&&!aL&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),az&&!ah){if(void 0===p.rscData){if(p.html.contentType!==t.RSC_CONTENT_TYPE_HEADER)if(al.cacheComponents)return b.statusCode=404,(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl});else throw Object.defineProperty(new I.InvariantError(`Expected RSC response, got ${p.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:p.html,cacheControl:n.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.fromStatic(p.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let w=p.html;if(aE&&aG){let c=!0===P.isDev?crypto.randomUUID():null;return w.pipeThrough(await (0,A.createInstantTestScriptInsertionTransformStream)(c)),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}})}if(!o||V||az)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:n.cacheControl});if(aG||aH)return w.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}});let C=new TransformStream;return w.push(C.readable),q({span:c,postponed:p.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(C.writable)}).catch(a=>{C.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}})};if(!a$||!aZ)return k=aY.getActiveScopeSpan(),await aY.withPropagatedContext(a.headers,()=>aY.trace(i.BaseServerSpan.handleRequest,{spanName:`${aX} ${W}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aX,"http.target":a.url}},s),void 0,!a$);await s(aZ)}catch(b){throw b instanceof C.NoFallbackError||await P.onRequestError(a,b,{routerKind:"App Router",routePath:W,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aO,isOnDemandRevalidate:ar})},!1,ak),b}}},7050:(a,b,c)=>{"use strict";c.d(b,{RepoAutomationBar:()=>d});let d=(0,c(37251).registerClientReference)(function(){throw Error("Attempted to call RepoAutomationBar() from the server but RepoAutomationBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/drydock/drydock/src/components/repo-automation-bar.tsx","RepoAutomationBar")},8552:(a,b,c)=>{"use strict";c.d(b,{E:()=>i});var d=c(37477),e=c(2210);let f={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"},g={queued:"neutral",working:"primary",ci_running:"warning",ci_failed:"destructive",retrying:"warning",merged:"success",needs_human:"destructive",aborted:"neutral",interrupted:"warning"},h=new Set(["working","ci_running","retrying"]);function i({className:a,status:b,tone:c,children:j,...k}){let l=c??(b?g[b]??"neutral":"neutral"),m=void 0!==b&&h.has(b);return(0,d.jsxs)("span",{className:(0,e.cn)("inline-flex items-center gap-1.5 whitespace-nowrap rounded-md border px-2 py-0.5 text-[11px] font-semibold leading-4",f[l],a),...k,children:[m&&(0,d.jsxs)("span",{className:"relative flex h-1.5 w-1.5",children:[(0,d.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-current opacity-60"}),(0,d.jsx)("span",{className:"relative inline-flex h-1.5 w-1.5 rounded-full bg-current"})]}),j??b?.replace(/_/g," ")]})}},10268:(a,b,c)=>{"use strict";function d(...a){return a.filter(Boolean).join(" ")}c.d(b,{cn:()=>d})},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11862:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>I,dynamic:()=>H});var d=c(39747),e=c(37003),f=c(24007),g=c.n(f),h=c(95430),i=c(20096),j=c(49033),k=c(68298);let l=[{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"}];function m({activeJob:a,recentJobs:b,initialLog:c=[]}){var e;return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("h2",{className:"text-sm font-semibold uppercase tracking-wide text-muted-foreground",children:"Activity"}),a?(0,d.jsxs)("div",{className:"space-y-3 rounded-xl border border-card-border bg-card p-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)(g(),{href:`/jobs/${a.id}`,className:"font-medium hover:underline",children:["Job #",a.id," \xb7 Issue #",a.issueNumber]}),(0,d.jsx)(k.E,{status:a.status,children:a.status})]}),(0,d.jsxs)("dl",{className:"grid grid-cols-2 gap-1 text-xs text-muted-foreground",children:[(0,d.jsxs)("div",{children:["Model: ",(e=a.model)?l.find(a=>a.id===e)?.label??e:"—"]}),(0,d.jsxs)("div",{children:["Cost: $",a.costUsd.toFixed(4)]}),(0,d.jsxs)("div",{children:["Tokens: ",a.totalInputTokens," in / ",a.totalOutputTokens," out"]})]}),(0,d.jsx)(j.LogViewer,{jobId:a.id,initial:c})]}):(0,d.jsx)("p",{className:"rounded-xl border border-dashed border-border p-6 text-center text-sm text-muted-foreground",children:"No job is running. Start an issue from the queue."}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"History"}),(0,d.jsxs)("ul",{className:"space-y-1",children:[b.map(a=>(0,d.jsxs)("li",{className:"flex items-center gap-2 text-sm",children:[(0,d.jsxs)(g(),{href:`/jobs/${a.id}`,className:"hover:underline",children:["#",a.issueNumber]}),(0,d.jsx)(k.E,{status:a.status,children:a.status}),(0,d.jsxs)("span",{className:"ml-auto text-xs text-muted-foreground",children:["$",a.costUsd.toFixed(2)]})]},a.id)),0===b.length&&(0,d.jsx)("li",{className:"text-sm text-muted-foreground",children:"No jobs yet."})]})]})]})}var n=c(15613);function o({adrs:a}){return(0,d.jsxs)(n.Zp,{children:[(0,d.jsx)(n.aR,{children:(0,d.jsx)(n.ZB,{children:"ADRs"})}),(0,d.jsx)(n.Wu,{children:0===a.length?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"No ADRs yet."}):(0,d.jsx)("ul",{className:"space-y-1 text-xs",children:a.map(a=>(0,d.jsxs)("li",{className:"flex justify-between gap-2",children:[(0,d.jsx)("span",{className:"truncate",children:a.title}),(0,d.jsx)("span",{className:"text-muted-foreground",children:a.status})]},a.id))})})]})}var p=c(7050);function q({todayUsd:a,limitUsd:b,daily:c}){return(0,d.jsxs)(n.Zp,{children:[(0,d.jsxs)(n.aR,{children:[(0,d.jsx)(n.ZB,{children:"Cost"}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Today: $",a.toFixed(2)," / $",b.toFixed(2)]})]}),(0,d.jsx)(n.Wu,{children:0===c.length?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"No spend recorded yet."}):(0,d.jsx)("ul",{className:"space-y-1 text-xs text-muted-foreground",children:c.slice(0,7).map(a=>(0,d.jsxs)("li",{className:"flex justify-between",children:[(0,d.jsx)("span",{children:a.day}),(0,d.jsxs)("span",{children:["$",a.costUsd.toFixed(2)]})]},a.day))})})]})}let r={monitoring:"neutral",healthy:"success",failed:"destructive",repairing:"warning",repaired:"primary",escalated:"destructive"};function s({sessions:a}){return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("h2",{className:"text-sm font-semibold uppercase tracking-wide text-muted-foreground",children:"Deployments"}),(0,d.jsxs)("ul",{className:"space-y-1",children:[a.map(a=>(0,d.jsxs)("li",{className:"flex items-center gap-2 text-sm",children:[(0,d.jsxs)(g(),{href:`/jobs/${a.jobId}`,className:"hover:underline",children:["#",a.issueNumber]}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:[a.platform," \xb7 PR #",a.prNumber," \xb7 ",a.commitSha.slice(0,7)]}),(0,d.jsx)(k.E,{tone:r[a.status]??"neutral",children:a.status}),null!=a.followupPrNumber&&(0,d.jsxs)("span",{className:"ml-auto text-xs text-muted-foreground",children:["fix PR #",a.followupPrNumber]})]},a.id)),0===a.length&&(0,d.jsx)("li",{className:"text-sm text-muted-foreground",children:"No deployment sessions yet."})]})]})}let t={healed:"success",triaging:"neutral",awaiting_slot:"neutral",repairing:"primary",awaiting_ci:"warning",verifying:"warning",cooldown:"warning",blocked:"destructive",escalated:"destructive",superseded:"neutral"};function u({sessions:a}){return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("h2",{className:"text-sm font-semibold uppercase tracking-wide text-muted-foreground",children:"CI auto-heal"}),(0,d.jsxs)("ul",{className:"space-y-1",children:[a.map(a=>(0,d.jsxs)("li",{className:"flex items-center gap-2 text-sm",children:[(0,d.jsxs)(g(),{href:`/jobs/${a.jobId}`,className:"hover:underline",children:["#",a.issueNumber]}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["PR #",a.prNumber," \xb7 ",a.headSha.slice(0,7)]}),(0,d.jsx)(k.E,{tone:t[a.status]??"neutral",children:a.status}),(0,d.jsxs)("span",{className:"ml-auto text-xs text-muted-foreground",children:[a.attempts," attempt",1===a.attempts?"":"s"]})]},a.id)),0===a.length&&(0,d.jsx)("li",{className:"text-sm text-muted-foreground",children:"No healing sessions yet."})]})]})}var v=c(39425),w=c(34736),x=c(72693),y=c(24532),z=c(2937),A=c(51026),B=c(68464),C=c(93929),D=c(53566),E=c(46146),F=c(34717),G=c(78293);let H="force-dynamic";async function I({params:a}){let{id:b}=await a,c=(0,B.m)(Number(b));c||(0,h.notFound)();let f=(0,G.mt)(),j=(0,z.Lf)(),k=(0,A.Bt)(j,c.repo.id),l=(0,A.i_)(j,c.repo.id).map(a=>({day:a.day,costUsd:a.costUsd})),n=(0,y.Pe)(void 0,j,c.repo.id),r=c.repo.autoHealCi?(0,D.ZA)(c.repo.id,j):[],t=c.repo.autoHealDeployments?(0,E.ED)(c.repo.id,j):[],H=c.repo.releaseEnabled?(0,F.Dn)(c.repo.id,j):[],J=c.activeJob?j.select().from(C.jobEvents).where((0,e.eq)(C.jobEvents.jobId,c.activeJob.id)).all().map(a=>({id:a.id,type:a.type,payload:JSON.parse(a.payload)})):[];return(0,d.jsxs)("div",{className:"space-y-6",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)(g(),{href:"/",className:"text-xs text-muted-foreground hover:underline",children:"← Dashboard"}),(0,d.jsx)("h1",{className:"mt-1 text-2xl font-bold tracking-tight",children:c.repo.name}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:c.repo.path})]}),(0,d.jsx)(w.RepoSettingsBar,{repo:c.repo}),(0,d.jsx)(p.RepoAutomationBar,{repo:c.repo}),(0,d.jsx)(x.RepoWebhookPanel,{repo:c.repo}),(0,d.jsx)(i.IssueBoard,{repoId:c.repo.id,queueLabel:c.repo.queueLabel,initialIssues:c.issues,pollIntervalSec:f.pollIntervalSec}),(0,d.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,d.jsx)(m,{activeJob:c.activeJob,recentJobs:c.recentJobs,initialLog:J}),(0,d.jsx)(q,{todayUsd:k,limitUsd:c.repo.dailyCostLimitUsd,daily:l}),(0,d.jsx)(o,{adrs:n}),c.repo.autoHealCi&&(0,d.jsx)(u,{sessions:r}),c.repo.autoHealDeployments&&(0,d.jsx)(s,{sessions:t}),c.repo.releaseEnabled&&(0,d.jsx)(v.RepoReleasePanel,{repoId:c.repo.id,initialRuns:H})]})]})}},14985:a=>{"use strict";a.exports=require("dns")},15613:(a,b,c)=>{"use strict";c.d(b,{Wu:()=>i,ZB:()=>h,Zp:()=>f,aR:()=>g});var d=c(39747),e=c(10268);function f({className:a,...b}){return(0,d.jsx)("div",{className:(0,e.cn)("rounded-xl border border-card-border bg-card text-card-foreground shadow-sm",a),...b})}function g({className:a,...b}){return(0,d.jsx)("div",{className:(0,e.cn)("flex flex-col gap-1.5 p-5",a),...b})}function h({className:a,...b}){return(0,d.jsx)("h3",{className:(0,e.cn)("text-base font-semibold leading-none tracking-tight",a),...b})}function i({className:a,...b}){return(0,d.jsx)("div",{className:(0,e.cn)("p-5 pt-0",a),...b})}},16698:a=>{"use strict";a.exports=require("node:async_hooks")},17233:(a,b,c)=>{"use strict";c.d(b,{l:()=>e});var d=c(37477);function e({open:a,onClose:b,children:c}){return a?(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-start justify-center overflow-y-auto bg-black/50 p-4 sm:p-8",onMouseDown:b,children:(0,d.jsx)("div",{role:"dialog","aria-modal":"true",className:"mt-8 w-full max-w-2xl rounded-xl border border-card-border bg-card p-5 shadow-lg",onMouseDown:a=>a.stopPropagation(),children:c})}):null}c(54848)},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},20096:(a,b,c)=>{"use strict";c.d(b,{IssueBoard:()=>d});let d=(0,c(37251).registerClientReference)(function(){throw Error("Attempted to call IssueBoard() from the server but IssueBoard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/drydock/drydock/src/components/issue-board.tsx","IssueBoard")},21820:a=>{"use strict";a.exports=require("os")},23325:(a,b,c)=>{"use strict";c.d(b,{L6:()=>d,UB:()=>e,VJ:()=>g,tT:()=>f});let d=[{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"}],e="claude-opus-4-7";function f(a){return d.filter(b=>b.agent===a)}function g(a){return f(a)[0]?.id??e}},24007:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(47432),g=c(39747),h=f._(c(30426));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},28486:(a,b,c)=>{"use strict";c.d(b,{RepoSettingsBar:()=>k});var d=c(37477),e=c(54848),f=c(2874),g=c(29974),h=c(4356),i=c(23325),j=c(3746);function k({repo:a}){let[b,c]=(0,e.useState)(a.agent),[l,m]=(0,e.useState)(a.defaultModel),[n,o]=(0,e.useState)(a.dailyCostLimitUsd),[p,q]=(0,e.useState)(a.adrGating),[r,s]=(0,e.useState)(a.sequential),[t,u]=(0,e.useTransition)(),[v,w]=(0,e.useState)(!1),{error:x}=(0,h.d)();function y(b){w(!1),u(async()=>{try{await (0,j.u)(a.id,b),w(!0),setTimeout(()=>w(!1),1500)}catch(a){x("Failed to update repository",a instanceof Error?a.message:String(a))}})}return(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-3 rounded-xl border border-card-border bg-card p-3 text-sm",children:[(0,d.jsx)("span",{className:"text-muted-foreground",children:"Queue label:"}),(0,d.jsx)("code",{className:"rounded bg-muted px-1.5 py-0.5 font-mono text-xs",children:a.queueLabel}),(0,d.jsx)("span",{className:"ml-auto text-muted-foreground",children:"Daily limit $"}),(0,d.jsx)("input",{type:"number",min:0,step:1,value:n,onChange:a=>{var b;o(b=Number(a.target.value)),y({dailyCostLimitUsd:b})},className:"w-20 rounded border border-card-border bg-background px-2 py-1 text-sm"}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:p,onChange:a=>{var b;q(b=a.target.checked),y({adrGating:b})}}),"ADR gate"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:r,onChange:a=>{var b;s(b=a.target.checked),y({sequential:b})}}),"Sequential (wait for merge)"]}),(0,d.jsx)("span",{className:"text-muted-foreground",children:"Agent:"}),(0,d.jsx)(f.a,{value:b,onChange:function(a){let b=(0,i.VJ)(a);c(a),m(b),y({agent:a,defaultModel:b})}}),(0,d.jsx)("span",{className:"text-muted-foreground",children:"Model:"}),(0,d.jsx)(g.o,{value:l,onChange:function(a){m(a),y({defaultModel:a})},agent:b}),t&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Saving…"}),v&&(0,d.jsx)("span",{className:"text-xs text-success",children:"Saved"})]})}},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29974:(a,b,c)=>{"use strict";c.d(b,{o:()=>g});var d=c(37477),e=c(73801),f=c(23325);function g({value:a,onChange:b,agent:c,id:h,className:i}){let j=c?(0,f.tT)(c):f.L6;return(0,d.jsx)(e.l,{id:h,value:a,onChange:a=>b(a.target.value),className:i,children:j.map(a=>(0,d.jsx)("option",{value:a.id,children:a.label},a.id))})}},30426:(a,b,c)=>{let{createProxy:d}=c(37762);a.exports=d("/home/runner/work/drydock/drydock/node_modules/.pnpm/next@16.2.6_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/next/dist/client/app-dir/link.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},33873:a=>{"use strict";a.exports=require("path")},34631:a=>{"use strict";a.exports=require("tls")},34736:(a,b,c)=>{"use strict";c.d(b,{RepoSettingsBar:()=>d});let d=(0,c(37251).registerClientReference)(function(){throw Error("Attempted to call RepoSettingsBar() from the server but RepoSettingsBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/drydock/drydock/src/components/repo-settings-bar.tsx","RepoSettingsBar")},39425:(a,b,c)=>{"use strict";c.d(b,{RepoReleasePanel:()=>d});let d=(0,c(37251).registerClientReference)(function(){throw Error("Attempted to call RepoReleasePanel() from the server but RepoReleasePanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/drydock/drydock/src/components/repo-release-panel.tsx","RepoReleasePanel")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},47432:(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}function e(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}c.r(b),c.d(b,{_:()=>e})},47887:(a,b,c)=>{"use strict";c.d(b,{RepoWebhookPanel:()=>h});var d=c(37477),e=c(54848),f=c(4356),g=c(3746);function h({repo:a}){let[b,c]=(0,e.useState)(a.webhookSecret??""),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(`/api/webhooks/${a.id}`),[m,n]=(0,e.useTransition)(),[o,p]=(0,e.useState)(!1),{error:q}=(0,f.d)(),r=(a.webhookSecret??"").length>0,s="gitlab"===a.platform;function t(b){p(!1),n(async()=>{try{await (0,g.u)(a.id,{webhookSecret:b.trim()||null}),p(!0),setTimeout(()=>p(!1),1500)}catch(a){q("Failed to update webhook",a instanceof Error?a.message:String(a))}})}return(0,d.jsxs)("div",{className:"space-y-3 rounded-xl border border-card-border bg-card p-3 text-sm",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-semibold",children:"Webhook sync"}),(0,d.jsx)("span",{className:`rounded px-1.5 py-0.5 text-xs ${r?"bg-success/15 text-success":"bg-muted text-muted-foreground"}`,children:r?"On":"Off"}),m&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Saving…"}),o&&(0,d.jsx)("span",{className:"text-xs text-success",children:"Saved"})]}),(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted-foreground",htmlFor:"webhook-secret",children:["Shared secret",(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("input",{id:"webhook-secret",type:i?"text":"password",value:b,onChange:a=>c(a.target.value),onBlur:()=>{(b.trim()||null)!==(a.webhookSecret??null)&&t(b)},placeholder:"Set a secret to enable webhook delivery",className:"min-w-0 flex-1 rounded border border-card-border bg-background px-2 py-1 font-mono text-sm text-foreground"}),(0,d.jsx)("button",{type:"button",onClick:()=>j(a=>!a),className:"rounded border border-card-border px-2 py-1 text-xs text-muted-foreground hover:bg-muted",children:i?"Hide":"Show"}),(0,d.jsx)("button",{type:"button",onClick:()=>{let a,b=(a=new Uint8Array(20),crypto.getRandomValues(a),Array.from(a,a=>a.toString(16).padStart(2,"0")).join(""));c(b),j(!0),t(b)},className:"rounded border border-card-border px-2 py-1 text-xs text-muted-foreground hover:bg-muted",children:"Generate"}),r&&(0,d.jsx)("button",{type:"button",onClick:()=>{c(""),t("")},className:"rounded border border-card-border px-2 py-1 text-xs text-destructive hover:bg-muted",children:"Disable"})]})]}),(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted-foreground",htmlFor:"webhook-url",children:["Payload URL",(0,d.jsx)("input",{id:"webhook-url",readOnly:!0,value:k,onFocus:a=>a.currentTarget.select(),className:"rounded border border-card-border bg-background px-2 py-1 font-mono text-xs text-foreground"})]}),(0,d.jsxs)("p",{className:"text-xs 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 ",s?"GitLab":"GitHub"," webhook for"," ",(0,d.jsx)("em",{children:s?"issues and comments":"Issues and Issue comments"})," at the payload URL above with"," ",s?(0,d.jsxs)(d.Fragment,{children:["this secret as the ",(0,d.jsx)("code",{className:"font-mono",children:"Secret token"})]}):(0,d.jsxs)(d.Fragment,{children:["this secret and content type ",(0,d.jsx)("code",{className:"font-mono",children:"application/json"})]}),". Drydock binds ",(0,d.jsx)("code",{className:"font-mono",children:"127.0.0.1"}),", so expose the URL through a tunnel or forwarder (e.g. ",(0,d.jsx)("code",{className:"font-mono",children:"cloudflared"}),","," ",(0,d.jsx)("code",{className:"font-mono",children:"ngrok"}),") to receive deliveries. Each delivery is"," ",s?"token-verified":"HMAC-SHA256 signature-verified","; invalid or unsigned payloads are rejected."]})]})}},48161:a=>{"use strict";a.exports=require("node:os")},49033:(a,b,c)=>{"use strict";c.d(b,{LogViewer:()=>d});let d=(0,c(37251).registerClientReference)(function(){throw Error("Attempted to call LogViewer() from the server but LogViewer is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/drydock/drydock/src/components/log-viewer.tsx","LogViewer")},50257:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,71416,23)),Promise.resolve().then(c.bind(c,62427)),Promise.resolve().then(c.bind(c,77927)),Promise.resolve().then(c.bind(c,63943)),Promise.resolve().then(c.bind(c,96949)),Promise.resolve().then(c.bind(c,28486)),Promise.resolve().then(c.bind(c,47887))},51455:a=>{"use strict";a.exports=require("node:fs/promises")},52229:(a,b,c)=>{"use strict";c.d(b,{oW:()=>n,VL:()=>p,u3:()=>o});var d=c(15465),e=c(66406),f=c(34546),g=c(54452),h=c(22579),i=c(55710),j=c(84654),k=c(37567);function l(a){return h.YO(h.Yj()).default(()=>JSON.parse(a)).transform(a=>JSON.stringify(a))}let m=h.Ik({path:h.Yj().min(1,"path is required"),name:h.Yj().min(1,"name is required"),defaultBranch:h.Yj().min(1).default("main"),queueLabel:h.Yj().min(1).default("drydock:queue"),workingLabel:h.Yj().min(1).default("drydock:working"),needsHumanLabel:h.Yj().min(1).default("drydock:needs-human"),defaultModel:h.Yj().min(1).default("claude-opus-4-7"),agent:h.k5(["claude","codex"]).default("claude"),platform:h.k5(["github","gitlab"]).default("github"),apiBaseUrl:h.Yj().nullish(),apiToken:h.Yj().nullish(),dailyCostLimitUsd:h.ai().nonnegative().default(10),adrGating:h.zM().default(!1),sequential:h.zM().default(!0),autoTriageEnabled:h.zM().default(!1),autoProcessEnabled:h.zM().default(!1),autoHealCi:h.zM().default(!1),autoReviewFeedback:h.zM().default(!1),autoResolveMergeConflicts:h.zM().default(!1),includeProgressReplies:h.zM().default(!1),autoDecompose:h.zM().default(!1),verifyPr:h.zM().default(!1),autoHealDeployments:h.zM().default(!1),releaseEnabled:h.zM().default(!1),deploymentPlatform:h.k5(["vercel","railway"]).nullish(),readyLabels:l('["ready","ready-for-agent","ready-to-work"]'),blockingLabels:l('["blocked","question","needs-human","needs-discussion","wontfix","duplicate","invalid"]'),autoLabelWhitelist:l('["bug","enhancement","documentation","ready"]'),priorityAuthors:l("[]"),trustedReviewers:l("[]"),ignoredBots:l('["dependabot[bot]","github-actions[bot]","codecov[bot]"]'),minAuthorAssociation:h.k5(["approved","any"]).default("approved"),maxAttempts:h.ai().int().positive().default(3),maxJobCostUsd:h.ai().nonnegative().nullish(),agentInstructions:h.Yj().max(k.v).nullish(),webhookSecret:h.Yj().nullish()});async function n(a){let b=function(a,b=(0,i.Lf)()){let c=m.parse(a);return b.insert(j.repos).values(c).returning().get()}(a);return(0,e.revalidatePath)("/"),(0,f.ej)(),b}async function o(a,b){let c=function(a,b,c=(0,i.Lf)()){let d=m.partial().parse(b),e=c.update(j.repos).set(d).where((0,g.eq)(j.repos.id,a)).returning().get();if(!e)throw Error(`repo ${a} not found`);return e}(a,b);return(0,e.revalidatePath)("/"),(0,e.revalidatePath)(`/repos/${a}`),(0,f.ej)(),c}async function p(a){!function(a,b=(0,i.Lf)()){b.delete(j.repos).where((0,g.eq)(j.repos.id,a)).run()}(a),(0,e.revalidatePath)("/"),(0,f.ej)()}(0,c(72269).D)([n,o,p]),(0,d.A)(n,"401545d16e784c563161a1b4dd98bf5411129e13eb",null),(0,d.A)(o,"60b4ffb77facbef3de2d7373e591218110583105bb",null),(0,d.A)(p,"4013304a93859665f54c2bac312ba5883bf710165f",null)},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},59410:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"4013304a93859665f54c2bac312ba5883bf710165f":()=>w.VL,"401545d16e784c563161a1b4dd98bf5411129e13eb":()=>w.oW,"40ad78727d00427eee62c00d5fe4a0c4eb5fd6c2e2":()=>F,"40de1fe5a29c732fb7eb65c670a9a369946829223a":()=>G,"40edb32d0f19cf9dfb999aa52424e5effc621586e5":()=>l,"602827ad72db86d5341c318e6263fc1168ac051dbd":()=>p,"60b4ffb77facbef3de2d7373e591218110583105bb":()=>w.u3,"60c4f9de4bd6166ee9f372eedd1023b3a8c8d0adad":()=>r,"60c4fd79531d61bf51cc2ebc90eca47cb11ae154b7":()=>n,"60d0061590f6703e2098b668fd45e712610c3da7ca":()=>o,"60e0e52af87bbfe8e7a1521095070a72abd5759720":()=>m,"60f8185da31741f275b57b866d309e723334a4e36f":()=>q,"70b85da4517941b7d1571923c3a68ea6bb3fec05a1":()=>s,"70d1c0f28ea0312c5677b60eceb4f213056acfcda3":()=>v,"70d5dd10640e5351881dd9754ece7474c161b21990":()=>t,"78419259d1ecda5a1b98a83330d221211a9b4e4672":()=>u});var d=c(15465),e=c(66406),f=c(40129),g=c(89508),h=c(69914),i=c(71218),j=c(15629),k=c(72269);async function l(a){let b=await (0,h.GX)(a);return(0,e.revalidatePath)(`/repos/${a}`),b}async function m(a,b){(0,h.mU)(a,b),(0,e.revalidatePath)(`/repos/${a}`)}async function n(a,b){let c=(0,f.L8)(a);if(!c)throw Error(`repo ${a} not found`);let d=(0,j._S)({repoId:a,issueNumber:b,model:c.defaultModel});return(0,e.revalidatePath)(`/repos/${a}`),d}async function o(a,b){let c=await (0,h.xt)(a,b);return(0,e.revalidatePath)(`/repos/${a}`),c}async function p(a,b){let c=await (0,h.c1)(a,b);return(0,e.revalidatePath)(`/repos/${a}`),c}async function q(a,b){let c=(0,f.L8)(a);if(!c)throw Error(`repo ${a} not found`);return(0,g.Ie)(c).viewIssue(b)}async function r(a,b){return(0,i.t0)(a,b)}async function s(a,b,c){let d=(0,f.L8)(a);if(!d)throw Error(`repo ${a} not found`);await (0,g.Ie)(d).editIssue(b,c),(0,e.revalidatePath)(`/repos/${a}`)}async function t(a,b,c){let d=(0,f.L8)(a);if(!d)throw Error(`repo ${a} not found`);await (0,g.Ie)(d).commentIssue(b,c)}async function u(a,b,c,d){await (0,h.Fg)(a,b,c,d),(0,e.revalidatePath)(`/repos/${a}`)}async function v(a,b,c){let d=(0,f.L8)(a);if(!d)throw Error(`repo ${a} not found`);let h=(0,g.Ie)(d);"closed"===c?await h.closeIssue(b):await h.reopenIssue(b),(0,e.revalidatePath)(`/repos/${a}`)}(0,k.D)([l,m,n,o,p,q,r,s,t,u,v]),(0,d.A)(l,"40edb32d0f19cf9dfb999aa52424e5effc621586e5",null),(0,d.A)(m,"60e0e52af87bbfe8e7a1521095070a72abd5759720",null),(0,d.A)(n,"60c4fd79531d61bf51cc2ebc90eca47cb11ae154b7",null),(0,d.A)(o,"60d0061590f6703e2098b668fd45e712610c3da7ca",null),(0,d.A)(p,"602827ad72db86d5341c318e6263fc1168ac051dbd",null),(0,d.A)(q,"60f8185da31741f275b57b866d309e723334a4e36f",null),(0,d.A)(r,"60c4f9de4bd6166ee9f372eedd1023b3a8c8d0adad",null),(0,d.A)(s,"70b85da4517941b7d1571923c3a68ea6bb3fec05a1",null),(0,d.A)(t,"70d5dd10640e5351881dd9754ece7474c161b21990",null),(0,d.A)(u,"78419259d1ecda5a1b98a83330d221211a9b4e4672",null),(0,d.A)(v,"70d1c0f28ea0312c5677b60eceb4f213056acfcda3",null);var w=c(52229),x=c(35743),y=c(55710),z=c(36212),A=c(35078),B=c(77173),C=c(38529),D=c(51605);function E(a){let b=(0,y.Lf)(),c=(0,f.L8)(a,b);if(!c)throw Error(`repo ${a} not found`);if(!(0,D.mt)(b).releaseManagementEnabled)throw Error("Release management is disabled globally.");if(!(0,C.A)(c).releaseEnabled)throw Error("Release management is not enabled for this repo.");let d=(0,g.Ie)(c);if("function"!=typeof d.listReleases||"function"!=typeof d.listMergedPrs||"function"!=typeof d.createRelease)throw Error("This repo's forge does not support releases.");let e=(0,x.X$)(c.agent);return{db:b,repo:c,forge:d,provider:e,command:(0,z.m)(e,b),model:c.defaultModel}}async function F(a){let{forge:b,provider:c,command:d,model:e}=E(a);return(0,A.NF)({provider:c,command:d,model:e},a=>(0,A.st)({forge:b,generate:a}))}async function G(a){let{db:b,repo:c,forge:d,provider:f,command:g,model:h}=E(a),i=(0,B.v0)({repoId:c.id,mode:"manual"},b);return await (0,A.NF)({provider:f,command:g,model:h},a=>(0,A.Dl)(i.id,{repo:c,forge:d,db:b,generate:a})),(0,e.revalidatePath)(`/repos/${a}`),(0,B.Dn)(c.id,b)}(0,k.D)([F,G]),(0,d.A)(F,"40ad78727d00427eee62c00d5fe4a0c4eb5fd6c2e2",null),(0,d.A)(G,"40de1fe5a29c732fb7eb65c670a9a369946829223a",null)},59985:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,30426,23)),Promise.resolve().then(c.bind(c,20096)),Promise.resolve().then(c.bind(c,49033)),Promise.resolve().then(c.bind(c,7050)),Promise.resolve().then(c.bind(c,39425)),Promise.resolve().then(c.bind(c,34736)),Promise.resolve().then(c.bind(c,72693))},62427:(a,b,c)=>{"use strict";c.d(b,{IssueBoard:()=>x});var d=c(37477),e=c(54848),f=c(8552),g=c(78233),h=c(98872),i=c(17233),j=c(47609);let k=(0,j.createServerReference)("60f8185da31741f275b57b866d309e723334a4e36f",j.callServer,void 0,j.findSourceMapURL,"viewIssueAction"),l=(0,j.createServerReference)("60c4f9de4bd6166ee9f372eedd1023b3a8c8d0adad",j.callServer,void 0,j.findSourceMapURL,"listSubtasksAction"),m=(0,j.createServerReference)("70d1c0f28ea0312c5677b60eceb4f213056acfcda3",j.callServer,void 0,j.findSourceMapURL,"setIssueStateAction"),n=(0,j.createServerReference)("70b85da4517941b7d1571923c3a68ea6bb3fec05a1",j.callServer,void 0,j.findSourceMapURL,"editIssueAction"),o=(0,j.createServerReference)("78419259d1ecda5a1b98a83330d221211a9b4e4672",j.callServer,void 0,j.findSourceMapURL,"setIssueLabelsAction"),p=(0,j.createServerReference)("70d5dd10640e5351881dd9754ece7474c161b21990",j.callServer,void 0,j.findSourceMapURL,"commentIssueAction"),q={pending:{label:"Pending",symbol:"○"},in_progress:{label:"In progress",symbol:"◐"},done:{label:"Done",symbol:"✓"},skipped:{label:"Skipped",symbol:"⊘"},deferred:{label:"Deferred",symbol:"⏸"}};function r({repoId:a,issueNumber:b,open:c,onClose:j}){let[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)([]),[w,x]=(0,e.useState)(""),[y,z]=(0,e.useState)(""),[A,B]=(0,e.useState)(""),[C,D]=(0,e.useState)(""),[E,F]=(0,e.useState)(null),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useTransition)();function K(){null!==b&&(k(a,b).then(t).catch(a=>F(a.message)),l(a,b).then(v).catch(()=>v([])))}function L(b){s&&J(()=>{m(a,s.number,b).then(K).catch(a=>F(a.message))})}return null===b?null:(0,d.jsxs)(i.l,{open:c,onClose:j,children:[E&&(0,d.jsx)("p",{className:"mb-2 text-xs text-destructive",children:E}),s?(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["#",s.number]}),(0,d.jsx)(f.E,{children:s.state}),(0,d.jsx)(g.$,{size:"sm",variant:"outline",className:"ml-auto",disabled:I,onClick:()=>"open"===s.state?H(!0):L("open"),children:"open"===s.state?"Close issue":"Reopen issue"})]}),(0,d.jsx)("input",{value:w,onChange:a=>x(a.target.value),className:"w-full rounded-md border border-input bg-background px-3 py-1.5 text-sm font-medium"}),(0,d.jsx)("textarea",{value:y,onChange:a=>z(a.target.value),rows:8,className:"w-full rounded-md border border-input bg-background px-3 py-2 text-sm"}),(0,d.jsx)(g.$,{size:"sm",disabled:I,onClick:()=>J(()=>{n(a,s.number,{title:w,body:y}).then(K).catch(a=>F(a.message))}),children:"Save changes"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"mb-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Labels"}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[s.labels.map(b=>(0,d.jsx)("button",{type:"button",title:"Remove label",disabled:I,onClick:()=>J(()=>{o(a,s.number,[],[b]).then(K).catch(a=>F(a.message))}),children:(0,d.jsxs)(f.E,{children:[b," \xd7"]})},b)),(0,d.jsx)("input",{value:C,onChange:a=>D(a.target.value),placeholder:"add label",className:"w-28 rounded-md border border-input bg-background px-2 py-1 text-xs"}),(0,d.jsx)(g.$,{size:"sm",variant:"outline",disabled:I||!C.trim(),onClick:()=>J(()=>{o(a,s.number,[C.trim()],[]).then(()=>{D(""),K()}).catch(a=>F(a.message))}),children:"Add"})]})]}),u.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("p",{className:"mb-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:["Subtasks (",u.filter(a=>"done"===a.status).length,"/",u.length,")"]}),(0,d.jsx)("ol",{className:"space-y-1",children:u.map(a=>{let b=q[a.status]??{label:a.status,symbol:"○"},c="done"===a.status||"skipped"===a.status;return(0,d.jsxs)("li",{className:"flex items-center gap-2 rounded-md border border-card-border bg-background px-2 py-1 text-sm",children:[(0,d.jsx)("span",{className:"text-muted-foreground","aria-hidden":!0,children:b.symbol}),(0,d.jsx)("span",{className:c?"text-muted-foreground line-through":"",children:a.title}),(0,d.jsx)("span",{className:"ml-auto",children:(0,d.jsx)(f.E,{children:b.label})})]},a.id)})})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"mb-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Comments"}),(0,d.jsxs)("ul",{className:"space-y-2",children:[s.comments.map(a=>(0,d.jsxs)("li",{className:"rounded-md border border-card-border bg-background p-2 text-sm",children:[(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:[a.author," \xb7 ",a.createdAt]}),(0,d.jsx)("p",{className:"whitespace-pre-wrap",children:a.body})]},`${a.author}-${a.createdAt}`)),0===s.comments.length&&(0,d.jsx)("li",{className:"text-sm text-muted-foreground",children:"No comments yet."})]}),(0,d.jsx)("textarea",{value:A,onChange:a=>B(a.target.value),rows:3,placeholder:"Write a comment…",className:"mt-2 w-full rounded-md border border-input bg-background px-3 py-2 text-sm"}),(0,d.jsx)(g.$,{size:"sm",className:"mt-2",disabled:I||!A.trim(),onClick:()=>J(()=>{p(a,s.number,A.trim()).then(()=>{B(""),K()}).catch(a=>F(a.message))}),children:"Comment"})]})]}):(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading…"}),s&&(0,d.jsx)(h.T,{open:G,onOpenChange:H,onConfirm:()=>L("closed"),title:"Close issue?",description:`This closes #${s.number} on GitHub.`,confirmLabel:"Close issue",variant:"destructive",pending:I})]})}let s=(0,j.createServerReference)("40edb32d0f19cf9dfb999aa52424e5effc621586e5",j.callServer,void 0,j.findSourceMapURL,"syncRepoIssuesAction"),t=(0,j.createServerReference)("60d0061590f6703e2098b668fd45e712610c3da7ca",j.callServer,void 0,j.findSourceMapURL,"addToQueueAction"),u=(0,j.createServerReference)("602827ad72db86d5341c318e6263fc1168ac051dbd",j.callServer,void 0,j.findSourceMapURL,"removeFromQueueAction"),v=(0,j.createServerReference)("60e0e52af87bbfe8e7a1521095070a72abd5759720",j.callServer,void 0,j.findSourceMapURL,"reorderIssuesAction");function w(a){try{let b=JSON.parse(a);return Array.isArray(b)?b:[]}catch{return[]}}function x({repoId:a,queueLabel:b,initialIssues:c,pollIntervalSec:h}){let[i,j]=(0,e.useState)(c),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),[q,y]=(0,e.useTransition)(),[z,A]=(0,e.useState)(null),B=a=>w(a.labels).includes(b),C=a=>{let b=k.toLowerCase();return!b||a.title.toLowerCase().includes(b)||String(a.number).includes(b)||w(a.labels).some(a=>a.toLowerCase().includes(b))},D=i.filter(a=>!B(a)&&C(a)),E=i.filter(a=>B(a)&&C(a));function F({issue:c,index:e,reorderable:g}){return(0,d.jsxs)("li",{draggable:!0,onDragStart:()=>n(c.number),onDragOver:a=>a.preventDefault(),onDrop:b=>{b.stopPropagation(),g&&function(b){if(null===m||m===b)return;let c=i.find(a=>a.number===m);if(!c||!B(c))return;let d=E.map(a=>a.number).filter(a=>a!==m),e=d.indexOf(b);d.splice(e,0,m),n(null),y(()=>{v(a,d).catch(a=>A(a.message))})}(c.number)},className:"issue-row flex cursor-pointer items-center gap-3 rounded-xl border border-card-border bg-card p-3",onClick:()=>p(c.number),children:[g&&(0,d.jsx)("span",{className:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary text-xs font-semibold text-primary-foreground",children:e+1}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("p",{className:"truncate text-sm font-medium",children:["#",c.number," ",c.title]}),(0,d.jsxs)("div",{className:"mt-1 flex flex-wrap gap-1",children:[c.triagedAt&&(0,d.jsx)(f.E,{tone:"primary",title:"Labels applied by auto-triage — see the issue comment for reasons",children:"auto-triaged"}),w(c.labels).filter(a=>a!==b).map(a=>(0,d.jsx)(f.E,{children:a},a))]})]}),(0,d.jsx)("span",{className:"cursor-grab text-muted-foreground",title:"Drag",children:"⠿"})]})}return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h2",{className:"text-sm font-semibold uppercase tracking-wide text-muted-foreground",children:"Issues"}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",i.length,")"]}),(0,d.jsx)(g.$,{size:"sm",variant:"outline",className:"ml-auto",disabled:q,onClick:function(){A(null),y(()=>{s(a).then(j).catch(a=>A(a.message))})},children:q?"Syncing…":"Refresh"})]}),(0,d.jsx)("input",{"aria-label":"Search issues by title or label",value:k,onChange:a=>l(a.target.value),placeholder:"Search by title or label…",className:"w-full rounded-md border border-input bg-background px-3 py-1.5 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background"}),z&&(0,d.jsx)("p",{className:"text-xs text-destructive",children:z}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{onDragOver:a=>a.preventDefault(),onDrop:function(){if(null===m)return;let b=i.find(a=>a.number===m);n(null),b&&B(b)&&y(()=>{u(a,b.number).then(j).catch(a=>A(a.message))})},className:"space-y-2 rounded-xl border border-dashed border-card-border p-2",children:[(0,d.jsxs)("p",{className:"px-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:["Backlog (",D.length,")"]}),(0,d.jsxs)("ul",{className:"space-y-2",children:[D.map((a,b)=>(0,d.jsx)(F,{issue:a,index:b,reorderable:!1},a.number)),0===D.length&&(0,d.jsx)("li",{className:"px-1 text-sm text-muted-foreground",children:"No backlog issues."})]})]}),(0,d.jsxs)("div",{onDragOver:a=>a.preventDefault(),onDrop:function(){if(null===m)return;let b=i.find(a=>a.number===m);n(null),!b||B(b)||y(()=>{t(a,b.number).then(j).catch(a=>A(a.message))})},className:"space-y-2 rounded-xl border border-dashed border-card-border p-2",children:[(0,d.jsxs)("p",{className:"px-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:["Queue (",E.length,")"]}),(0,d.jsxs)("ul",{className:"space-y-2",children:[E.map((a,b)=>(0,d.jsx)(F,{issue:a,index:b,reorderable:!0},a.number)),0===E.length&&(0,d.jsx)("li",{className:"px-1 text-sm text-muted-foreground",children:"Drag issues here to auto-process them."})]})]})]}),(0,d.jsx)(r,{repoId:a,issueNumber:o,open:null!==o,onClose:()=>p(null)})]})}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63943:(a,b,c)=>{"use strict";c.d(b,{RepoAutomationBar:()=>i});var d=c(37477),e=c(54848),f=c(4356),g=c(3746);function h(a){try{let b=JSON.parse(a);return Array.isArray(b)?b.filter(a=>"string"==typeof a):[]}catch{return[]}}function i({repo:a}){let[b,c]=(0,e.useState)(a.autoTriageEnabled),[j,k]=(0,e.useState)(a.autoProcessEnabled),[l,m]=(0,e.useState)(a.autoHealCi),[n,o]=(0,e.useState)(a.autoReviewFeedback),[p,q]=(0,e.useState)(a.autoDecompose),[r,s]=(0,e.useState)(a.verifyPr),[t,u]=(0,e.useState)(a.autoHealDeployments),[v,w]=(0,e.useState)(a.releaseEnabled),[x,y]=(0,e.useState)(a.autoResolveMergeConflicts),[z,A]=(0,e.useState)(a.includeProgressReplies),[B,C]=(0,e.useState)(h(a.readyLabels).join(", ")),[D,E]=(0,e.useState)(h(a.blockingLabels).join(", ")),[F,G]=(0,e.useState)(h(a.autoLabelWhitelist).join(", ")),[H,I]=(0,e.useState)(h(a.priorityAuthors).join(", ")),[J,K]=(0,e.useState)(h(a.trustedReviewers).join(", ")),[L,M]=(0,e.useState)(h(a.ignoredBots).join(", ")),[N,O]=(0,e.useState)(a.minAuthorAssociation),[P,Q]=(0,e.useState)(a.deploymentPlatform??""),[R,S]=(0,e.useState)(a.maxAttempts),[T,U]=(0,e.useState)(a.agentInstructions??""),[V,W]=(0,e.useTransition)(),[X,Y]=(0,e.useState)(!1),{error:Z}=(0,f.d)();function $(b){Y(!1),W(async()=>{try{await (0,g.u)(a.id,b),Y(!0),setTimeout(()=>Y(!1),1500)}catch(a){Z("Failed to update automation",a instanceof Error?a.message:String(a))}})}let _=(a,b,c,e,f)=>(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted-foreground",htmlFor:a,children:[b,(0,d.jsx)("input",{id:a,value:c,onChange:a=>e(a.target.value),onBlur:()=>$({[f]:[...new Set(c.split(/[,\n]/).map(a=>a.trim()).filter(Boolean))]}),placeholder:"comma-separated",className:"rounded border border-card-border bg-background px-2 py-1 text-sm text-foreground"})]});return(0,d.jsxs)("div",{className:"space-y-3 rounded-xl border border-card-border bg-card p-3 text-sm",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-4",children:[(0,d.jsx)("span",{className:"text-sm font-semibold",children:"Automation"}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:b,onChange:a=>{c(a.target.checked),$({autoTriageEnabled:a.target.checked})}}),"Auto-triage new issues"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:j,onChange:a=>{k(a.target.checked),$({autoProcessEnabled:a.target.checked})}}),"Auto-process ready issues"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:l,onChange:a=>{m(a.target.checked),$({autoHealCi:a.target.checked})}}),"Auto-heal failing CI"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:n,onChange:a=>{o(a.target.checked),$({autoReviewFeedback:a.target.checked})}}),"Address PR review feedback"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:p,onChange:a=>{q(a.target.checked),$({autoDecompose:a.target.checked})}}),"Decompose large issues"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:r,onChange:a=>{s(a.target.checked),$({verifyPr:a.target.checked})}}),"Verify PR satisfies issue"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:t,onChange:a=>{u(a.target.checked),$({autoHealDeployments:a.target.checked})}}),"Heal failed deployments"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:v,onChange:a=>{w(a.target.checked),$({releaseEnabled:a.target.checked})}}),"Manage releases"]}),V&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Saving…"}),X&&(0,d.jsx)("span",{className:"text-xs text-success",children:"Saved"})]}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Opt-in. All stages are off by default and consume paid agent usage. Triage may only apply whitelisted labels; auto-processing works issues that are ",(0,d.jsx)("em",{children:"ready"})," and not blocked; auto-heal attempts bounded, verified fixes for failing CI (never external or AI-review checks). PR review feedback is applied only for trusted reviewers (bots ignored) and runs the mechanical iteration for you. Decomposing large issues splits them into ordered, tracked subtasks (checklist/heading heuristics, with an agent fallback for prose). Verifying a PR runs a read-only pass after it opens that checks whether the diff actually satisfies the issue and its subtasks, flags what remains, and never changes state on failure. Deployment healing monitors a merged PR's deployment and, on failure, opens a follow-up fix PR with the captured logs. Managing releases evaluates merged PRs since the last tag, decides the semver bump, and publishes a release — gated by a global kill-switch and fully previewable. Drydock never auto-merges — a human always reviews the PR."]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[_("ready-labels","Ready labels",B,C,"readyLabels"),_("blocking-labels","Blocking labels",D,E,"blockingLabels"),_("whitelist","Auto-label whitelist",F,G,"autoLabelWhitelist"),_("priority-authors","Priority authors",H,I,"priorityAuthors"),_("trusted-reviewers","Trusted reviewers (feedback)",J,K,"trustedReviewers"),_("ignored-bots","Ignored bots (feedback)",L,M,"ignoredBots"),(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted-foreground",htmlFor:"min-assoc",children:["Act on authors",(0,d.jsxs)("select",{id:"min-assoc",value:N,onChange:a=>{O(a.target.value),$({minAuthorAssociation:a.target.value})},className:"rounded border border-card-border bg-background px-2 py-1 text-sm text-foreground",children:[(0,d.jsx)("option",{value:"approved",children:"Owners / members / collaborators"}),(0,d.jsx)("option",{value:"any",children:"Anyone (public participation)"})]})]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",htmlFor:"resolve-conflicts",children:[(0,d.jsx)("input",{id:"resolve-conflicts",type:"checkbox",checked:x,onChange:a=>{y(a.target.checked),$({autoResolveMergeConflicts:a.target.checked})}}),"Repair trivial merge conflicts"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",htmlFor:"progress-replies",children:[(0,d.jsx)("input",{id:"progress-replies",type:"checkbox",checked:z,onChange:a=>{A(a.target.checked),$({includeProgressReplies:a.target.checked})}}),"Post progress replies"]}),(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted-foreground",htmlFor:"deploy-platform",children:["Deployment platform (healing)",(0,d.jsxs)("select",{id:"deploy-platform",value:P,onChange:a=>{Q(a.target.value),$({deploymentPlatform:a.target.value?a.target.value:null})},className:"rounded border border-card-border bg-background px-2 py-1 text-sm text-foreground",children:[(0,d.jsx)("option",{value:"",children:"Auto-detect"}),(0,d.jsx)("option",{value:"vercel",children:"Vercel"}),(0,d.jsx)("option",{value:"railway",children:"Railway"})]})]}),(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted-foreground",htmlFor:"max-attempts",children:["Max attempts",(0,d.jsx)("input",{id:"max-attempts",type:"number",min:1,step:1,value:R,onChange:a=>S(Number(a.target.value)),onBlur:()=>$({maxAttempts:R}),className:"w-24 rounded border border-card-border bg-background px-2 py-1 text-sm text-foreground"})]})]}),(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted-foreground",htmlFor:"agent-instructions",children:["Agent instructions",(0,d.jsx)("textarea",{id:"agent-instructions",value:T,maxLength:4e3,rows:4,onChange:a=>U(a.target.value),onBlur:()=>$({agentInstructions:T.trim()||null}),placeholder:'Per-repo guidance injected into the work prompt — e.g. coding conventions, "always run pnpm test", "don\'t touch legacy/", preferred PR style.',className:"rounded border border-card-border bg-background px-2 py-1 font-mono text-sm text-foreground"}),(0,d.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:["Optional. Appended to the work prompt as a dedicated section. Max"," ",4e3," characters; empty leaves the prompt unchanged."]})]})]})}},68298:(a,b,c)=>{"use strict";c.d(b,{E:()=>i});var d=c(39747),e=c(10268);let f={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"},g={queued:"neutral",working:"primary",ci_running:"warning",ci_failed:"destructive",retrying:"warning",merged:"success",needs_human:"destructive",aborted:"neutral",interrupted:"warning"},h=new Set(["working","ci_running","retrying"]);function i({className:a,status:b,tone:c,children:j,...k}){let l=c??(b?g[b]??"neutral":"neutral"),m=void 0!==b&&h.has(b);return(0,d.jsxs)("span",{className:(0,e.cn)("inline-flex items-center gap-1.5 whitespace-nowrap rounded-md border px-2 py-0.5 text-[11px] font-semibold leading-4",f[l],a),...k,children:[m&&(0,d.jsxs)("span",{className:"relative flex h-1.5 w-1.5",children:[(0,d.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-current opacity-60"}),(0,d.jsx)("span",{className:"relative inline-flex h-1.5 w-1.5 rounded-full bg-current"})]}),j??b?.replace(/_/g," ")]})}},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},72693:(a,b,c)=>{"use strict";c.d(b,{RepoWebhookPanel:()=>d});let d=(0,c(37251).registerClientReference)(function(){throw Error("Attempted to call RepoWebhookPanel() from the server but RepoWebhookPanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/drydock/drydock/src/components/repo-webhook-panel.tsx","RepoWebhookPanel")},73024:a=>{"use strict";a.exports=require("node:fs")},73801:(a,b,c)=>{"use strict";c.d(b,{l:()=>g});var d=c(37477),e=c(54848),f=c(2210);let g=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("select",{ref:c,className:(0,f.cn)("h-9 rounded-md border border-input bg-background px-2.5 text-sm text-foreground","focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-1 focus:ring-offset-background","disabled:cursor-not-allowed disabled:opacity-50",a),...b}));g.displayName="Select"},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},77927:(a,b,c)=>{"use strict";c.d(b,{LogViewer:()=>g});var d=c(37477),e=c(54848),f=c(70780);function g({jobId:a,initial:b=[]}){let[c,h]=(0,e.useState)(b);return(0,e.useRef)(new Set(b.map(a=>a.id))),(0,d.jsx)("div",{className:"h-96 rounded border border-card-border",children:(0,d.jsx)(f.aY,{data:c,followOutput:"smooth",itemContent:(a,b)=>(0,d.jsxs)("div",{className:"px-3 py-1 font-mono text-xs",children:[(0,d.jsx)("span",{className:"mr-2 text-muted-foreground",children:b.type}),(0,d.jsx)("span",{children:"string"==typeof b.payload?b.payload:JSON.stringify(b.payload)})]})})})}},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81630:a=>{"use strict";a.exports=require("http")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},96949:(a,b,c)=>{"use strict";c.d(b,{RepoReleasePanel:()=>m});var d=c(37477),e=c(54848),f=c(8552),g=c(78233),h=c(4356),i=c(47609);let j=(0,i.createServerReference)("40ad78727d00427eee62c00d5fe4a0c4eb5fd6c2e2",i.callServer,void 0,i.findSourceMapURL,"previewReleaseAction"),k=(0,i.createServerReference)("40de1fe5a29c732fb7eb65c670a9a369946829223a",i.callServer,void 0,i.findSourceMapURL,"publishReleaseAction"),l={detected:"neutral",evaluating:"neutral",proposed:"primary",publishing:"warning",published:"success",skipped:"neutral",error:"destructive"};function m({repoId:a,initialRuns:b}){let[c,i]=(0,e.useState)(b),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useTransition)(),{error:r,success:s}=(0,h.d)();return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("h2",{className:"text-sm font-semibold uppercase tracking-wide text-muted-foreground",children:"Releases"}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(g.$,{variant:"outline",size:"sm",onClick:function(){q(async()=>{try{o(await j(a))}catch(a){r("Preview failed",a instanceof Error?a.message:String(a))}})},disabled:p,children:"Preview"}),(0,d.jsx)(g.$,{size:"sm",onClick:function(){q(async()=>{try{let b=await k(a);i(b),o(null),s("Release published","A release run was cut from the latest changes.")}catch(a){r("Publish failed",a instanceof Error?a.message:String(a))}})},disabled:p,children:"Publish release"})]})]}),n&&(0,d.jsxs)("div",{className:"space-y-1 rounded-lg border border-card-border bg-card p-3 text-sm",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-medium",children:"Proposed:"}),(0,d.jsx)(f.E,{tone:"primary",children:n.candidateTag}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:[n.fromTag?`from ${n.fromTag}`:"first release"," \xb7 ",n.bump," \xb7"," ",n.shouldRelease?"release recommended":"no release recommended"]})]}),(0,d.jsxs)("ul",{className:"text-xs text-muted-foreground",children:[n.prs.map(a=>(0,d.jsxs)("li",{children:["#",a.number," ",a.title]},a.number)),0===n.prs.length&&(0,d.jsx)("li",{children:"No unreleased pull requests."})]})]}),(0,d.jsxs)("ul",{className:"space-y-1",children:[c.map(a=>(0,d.jsxs)("li",{className:"flex items-center gap-2 text-sm",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:a.mode}),a.tag&&(0,d.jsx)("span",{className:"font-medium",children:a.tag}),null!=a.triggerPrNumber&&(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["PR #",a.triggerPrNumber]}),(0,d.jsx)(f.E,{tone:l[a.status]??"neutral",children:a.status}),a.errorMessage&&(0,d.jsx)("span",{className:"ml-auto truncate text-xs text-destructive",title:a.errorMessage,children:a.errorMessage})]},a.id)),0===c.length&&(0,d.jsx)("li",{className:"text-sm text-muted-foreground",children:"No release runs yet."})]})]})}},98872:(a,b,c)=>{"use strict";c.d(b,{T:()=>g});var d=c(37477),e=c(78233),f=c(17233);function g({open:a,onOpenChange:b,onConfirm:c,title:h,description:i,confirmLabel:j="Confirm",cancelLabel:k="Cancel",variant:l="default",pending:m=!1}){return(0,d.jsx)(f.l,{open:a,onClose:()=>b(!1),children:(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("h2",{className:"text-base font-semibold",children:h}),i&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:i})]}),(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)(e.$,{variant:"outline",size:"sm",disabled:m,onClick:()=>b(!1),children:k}),(0,d.jsx)(e.$,{variant:"destructive"===l?"destructive":"default",size:"sm",disabled:m,onClick:()=>{c(),b(!1)},children:j})]})]})})}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[692,0,895,251,309,185,579,868,235,541,777,710,9,447,75],()=>b(b.s=4184));module.exports=c})();
1
+ (()=>{var a={};a.id=530,a.ids=[530],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},7050:(a,b,c)=>{"use strict";c.d(b,{RepoAutomationBar:()=>d});let d=(0,c(37251).registerClientReference)(function(){throw Error("Attempted to call RepoAutomationBar() from the server but RepoAutomationBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/drydock/drydock/src/components/repo-automation-bar.tsx","RepoAutomationBar")},8552:(a,b,c)=>{"use strict";c.d(b,{E:()=>i});var d=c(37477),e=c(2210);let f={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"},g={queued:"neutral",working:"primary",ci_running:"warning",ci_failed:"destructive",retrying:"warning",merged:"success",needs_human:"destructive",aborted:"neutral",interrupted:"warning"},h=new Set(["working","ci_running","retrying"]);function i({className:a,status:b,tone:c,children:j,...k}){let l=c??(b?g[b]??"neutral":"neutral"),m=void 0!==b&&h.has(b);return(0,d.jsxs)("span",{className:(0,e.cn)("inline-flex items-center gap-1.5 whitespace-nowrap rounded-md border px-2 py-0.5 text-[11px] font-semibold leading-4",f[l],a),...k,children:[m&&(0,d.jsxs)("span",{className:"relative flex h-1.5 w-1.5",children:[(0,d.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-current opacity-60"}),(0,d.jsx)("span",{className:"relative inline-flex h-1.5 w-1.5 rounded-full bg-current"})]}),j??b?.replace(/_/g," ")]})}},10268:(a,b,c)=>{"use strict";function d(...a){return a.filter(Boolean).join(" ")}c.d(b,{cn:()=>d})},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11003:(a,b,c)=>{"use strict";c.d(b,{IssueBoard:()=>J});var d=c(37477),e=c(46031);let f=(0,e.A)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]),g=(0,e.A)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);var h=c(37561),i=c(32019),j=c(54848),k=c(2874),l=c(29974),m=c(8552),n=c(78233),o=c(98872),p=c(76558),q=c(47609);let r=(0,q.createServerReference)("60d93a9c0a198c749679a771e22e3ceaf53e959aef",q.callServer,void 0,q.findSourceMapURL,"viewIssueAction"),s=(0,q.createServerReference)("60446dececaa42785ab034a6e859f841d6be712509",q.callServer,void 0,q.findSourceMapURL,"listSubtasksAction"),t=(0,q.createServerReference)("70a022d903a559ada6dc1baa58d009ad08ff8f9466",q.callServer,void 0,q.findSourceMapURL,"setIssueStateAction"),u=(0,q.createServerReference)("7083e49388a7fc48b69ba047c2e4b0b82eebc826ea",q.callServer,void 0,q.findSourceMapURL,"startIssueAction"),v=(0,q.createServerReference)("60fb3c0b67f6c29762084ab3bd836996c22d6451f9",q.callServer,void 0,q.findSourceMapURL,"removeFromQueueAction"),w=(0,q.createServerReference)("7033ed62475545493a07d7a8b8c5785e3809edfd44",q.callServer,void 0,q.findSourceMapURL,"addToQueueAction"),x=(0,q.createServerReference)("70086ad1dae1a50e17fc5411b618128f813e2f7b8b",q.callServer,void 0,q.findSourceMapURL,"editIssueAction"),y=(0,q.createServerReference)("78d230388e73c05547b26d5a9d723a7d1c08333f6e",q.callServer,void 0,q.findSourceMapURL,"setIssueLabelsAction"),z=(0,q.createServerReference)("70959693b0516dd5ab898508f71c8e075a0dae5306",q.callServer,void 0,q.findSourceMapURL,"commentIssueAction");var A=c(23325);let B={pending:{label:"Pending",symbol:"○"},in_progress:{label:"In progress",symbol:"◐"},done:{label:"Done",symbol:"✓"},skipped:{label:"Skipped",symbol:"⊘"},deferred:{label:"Deferred",symbol:"⏸"}};function C({repoId:a,issueNumber:b,open:c,onClose:e,queueLabel:f,defaultModel:g,defaultAgent:h}){let[i,q]=(0,j.useState)(null),[D,E]=(0,j.useState)([]),[F,G]=(0,j.useState)(""),[H,I]=(0,j.useState)(""),[J,K]=(0,j.useState)(""),[L,M]=(0,j.useState)(""),[N,O]=(0,j.useState)(g),[P,Q]=(0,j.useState)(h),[R,S]=(0,j.useState)(null),[T,U]=(0,j.useState)(!1),[V,W]=(0,j.useTransition)();function X(){null!==b&&(r(a,b).then(q).catch(a=>S(a.message)),s(a,b).then(E).catch(()=>E([])))}function Y(b){i&&W(()=>{t(a,i.number,b).then(X).catch(a=>S(a.message))})}if(null===b)return null;let Z=`issue-modal-title-${b}`;return(0,d.jsxs)(p.l,{open:c,onClose:e,labelledById:Z,children:[(0,d.jsxs)("span",{id:Z,className:"sr-only",children:["Issue #",b]}),R&&(0,d.jsx)("p",{className:"mb-2 text-xs text-destructive",children:R}),i?(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["#",i.number]}),(0,d.jsx)(m.E,{children:i.state}),(0,d.jsx)(n.$,{size:"sm",variant:"outline",className:"ml-auto",disabled:V,onClick:()=>"open"===i.state?U(!0):Y("open"),children:"open"===i.state?"Close issue":"Reopen issue"})]}),(0,d.jsxs)("div",{className:"rounded-lg border border-card-border bg-card p-3",children:[(0,d.jsx)("p",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Run settings"}),(0,d.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("label",{className:"text-xs text-muted-foreground",htmlFor:"modal-agent-select",children:"Agent"}),(0,d.jsx)(k.a,{id:"modal-agent-select",value:P,onChange:a=>{Q(a),O((0,A.VJ)(a))},className:"h-8 text-sm"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("label",{className:"text-xs text-muted-foreground",htmlFor:"modal-model-select",children:"Model"}),(0,d.jsx)(l.o,{id:"modal-model-select",value:N,onChange:O,agent:P,className:"h-8 text-sm"})]}),(0,d.jsx)(n.$,{size:"sm",disabled:V,onClick:()=>W(()=>{u(a,i.number,{model:N!==g?N:void 0,agent:P!==h?P:void 0}).then(()=>e()).catch(a=>S(a.message))}),children:"Start job now"}),i.labels.includes(f)?(0,d.jsx)(n.$,{size:"sm",variant:"outline",disabled:V,onClick:()=>W(()=>{v(a,i.number).then(X).catch(a=>S(a.message))}),children:"Dequeue"}):(0,d.jsx)(n.$,{size:"sm",variant:"outline",disabled:V,onClick:()=>W(()=>{w(a,i.number,{model:N!==g?N:void 0,agent:P!==h?P:void 0}).then(X).catch(a=>S(a.message))}),children:"Add to queue"})]}),N!==g||P!==h?(0,d.jsxs)("p",{className:"mt-1.5 text-xs text-muted-foreground",children:["Override active — repo default: ",(0,d.jsx)("span",{className:"font-medium",children:g})]}):null]}),(0,d.jsx)("input",{value:F,onChange:a=>G(a.target.value),className:"w-full rounded-md border border-input bg-background px-3 py-1.5 text-sm font-medium"}),(0,d.jsx)("textarea",{value:H,onChange:a=>I(a.target.value),rows:8,className:"w-full rounded-md border border-input bg-background px-3 py-2 text-sm"}),(0,d.jsx)(n.$,{size:"sm",disabled:V,onClick:()=>W(()=>{x(a,i.number,{title:F,body:H}).then(X).catch(a=>S(a.message))}),children:"Save changes"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"mb-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Labels"}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[i.labels.map(b=>(0,d.jsx)("button",{type:"button",title:"Remove label",disabled:V,onClick:()=>W(()=>{y(a,i.number,[],[b]).then(X).catch(a=>S(a.message))}),children:(0,d.jsxs)(m.E,{children:[b," \xd7"]})},b)),(0,d.jsx)("input",{value:L,onChange:a=>M(a.target.value),placeholder:"add label",className:"w-28 rounded-md border border-input bg-background px-2 py-1 text-xs"}),(0,d.jsx)(n.$,{size:"sm",variant:"outline",disabled:V||!L.trim(),onClick:()=>W(()=>{y(a,i.number,[L.trim()],[]).then(()=>{M(""),X()}).catch(a=>S(a.message))}),children:"Add"})]})]}),D.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("p",{className:"mb-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:["Subtasks (",D.filter(a=>"done"===a.status).length,"/",D.length,")"]}),(0,d.jsx)("ol",{className:"space-y-1",children:D.map(a=>{let b=B[a.status]??{label:a.status,symbol:"○"},c="done"===a.status||"skipped"===a.status;return(0,d.jsxs)("li",{className:"flex items-center gap-2 rounded-md border border-card-border bg-background px-2 py-1 text-sm",children:[(0,d.jsx)("span",{className:"text-muted-foreground","aria-hidden":!0,children:b.symbol}),(0,d.jsx)("span",{className:c?"text-muted-foreground line-through":"",children:a.title}),(0,d.jsx)("span",{className:"ml-auto",children:(0,d.jsx)(m.E,{children:b.label})})]},a.id)})})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"mb-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Comments"}),(0,d.jsxs)("ul",{className:"space-y-2",children:[i.comments.map(a=>(0,d.jsxs)("li",{className:"rounded-md border border-card-border bg-background p-2 text-sm",children:[(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:[a.author," \xb7 ",a.createdAt]}),(0,d.jsx)("p",{className:"whitespace-pre-wrap",children:a.body})]},`${a.author}-${a.createdAt}`)),0===i.comments.length&&(0,d.jsx)("li",{className:"text-sm text-muted-foreground",children:"No comments yet."})]}),(0,d.jsx)("textarea",{value:J,onChange:a=>K(a.target.value),rows:3,placeholder:"Write a comment…",className:"mt-2 w-full rounded-md border border-input bg-background px-3 py-2 text-sm"}),(0,d.jsx)(n.$,{size:"sm",className:"mt-2",disabled:V||!J.trim(),onClick:()=>W(()=>{z(a,i.number,J.trim()).then(()=>{K(""),X()}).catch(a=>S(a.message))}),children:"Comment"})]})]}):(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading…"}),i&&(0,d.jsx)(o.T,{open:T,onOpenChange:U,onConfirm:()=>Y("closed"),title:"Close issue?",description:`This closes #${i.number} on GitHub.`,confirmLabel:"Close issue",variant:"destructive",pending:V})]})}let D=(0,q.createServerReference)("4002bc1bf0917e2037b42d22fa2055f5dadadace27",q.callServer,void 0,q.findSourceMapURL,"syncRepoIssuesAction"),E=(0,q.createServerReference)("60acfafd829b95bc79c695cfef3502cc51e3ad2c16",q.callServer,void 0,q.findSourceMapURL,"reorderIssuesAction"),F=(0,q.createServerReference)("604946766a78c03e7534b653f8095ce8f0fc2775d6",q.callServer,void 0,q.findSourceMapURL,"bulkAddToQueueAction"),G=(0,q.createServerReference)("6095ab8d6f3bdb79ba20b2d74944241a85bb8c04f9",q.callServer,void 0,q.findSourceMapURL,"bulkRemoveFromQueueAction"),H=(0,q.createServerReference)("70e7eb2993a36a1b29558a593e50289f042eeb72dc",q.callServer,void 0,q.findSourceMapURL,"bulkApplyLabelAction");function I(a){try{let b=JSON.parse(a);return Array.isArray(b)?b:[]}catch{return[]}}function J({repoId:a,queueLabel:b,initialIssues:c,pollIntervalSec:e,defaultModel:k,defaultAgent:l}){let[o,p]=(0,j.useState)(c),[q,r]=(0,j.useState)(""),[s,t]=(0,j.useState)(null),[u,x]=(0,j.useState)(null),[y,z]=(0,j.useState)(new Set),[A,B]=(0,j.useState)(""),[K,L]=(0,j.useTransition)(),[M,N]=(0,j.useState)(null),O=a=>I(a.labels).includes(b),P=a=>{let b=q.toLowerCase();return!b||a.title.toLowerCase().includes(b)||String(a.number).includes(b)||I(a.labels).some(a=>a.toLowerCase().includes(b))},Q=o.filter(a=>!O(a)&&P(a)),R=o.filter(a=>O(a)&&P(a));function S(){z(new Set)}function T(a){let b=[...y];0!==b.length&&(N(null),L(()=>{a(b).then(a=>{p(a),S()}).catch(a=>N(a.message))}))}function U({issue:c,reorderable:e}){let j=o.filter(O),k=j.findIndex(a=>a.number===c.number),l=k===j.length-1;return(0,d.jsxs)("li",{draggable:!0,onDragStart:()=>t(c.number),onDragOver:a=>a.preventDefault(),onDrop:b=>{b.stopPropagation(),e&&function(b){if(null===s||s===b)return;let c=o.find(a=>a.number===s);if(!c||!O(c))return;let d=R.map(a=>a.number).filter(a=>a!==s),e=d.indexOf(b);d.splice(e,0,s),t(null),L(()=>{E(a,d).catch(a=>N(a.message))})}(c.number)},className:"issue-row flex items-center gap-3 rounded-xl border border-card-border bg-card p-3",children:[(0,d.jsx)("input",{type:"checkbox",checked:y.has(c.number),onChange:()=>{var a;return a=c.number,void z(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},onClick:a=>a.stopPropagation(),"aria-label":`Select #${c.number} for bulk actions`,className:"h-4 w-4 shrink-0 cursor-pointer"}),e&&(0,d.jsx)("span",{className:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary text-xs font-semibold text-primary-foreground",children:k+1}),(0,d.jsxs)("button",{type:"button",className:"min-w-0 flex-1 cursor-pointer rounded-sm text-left focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",onClick:()=>x(c.number),children:[(0,d.jsxs)("p",{className:"truncate text-sm font-medium",children:["#",c.number," ",c.title]}),(0,d.jsxs)("div",{className:"mt-1 flex flex-wrap gap-1",children:[c.triagedAt&&(0,d.jsx)(m.E,{tone:"primary",title:"Labels applied by auto-triage — see the issue comment for reasons",children:"auto-triaged"}),I(c.labels).filter(a=>a!==b).map(a=>(0,d.jsx)(m.E,{children:a},a))]})]}),(0,d.jsx)("div",{className:"flex shrink-0 items-center gap-0.5",children:e?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.$,{type:"button",size:"icon",variant:"ghost","aria-label":`Move #${c.number} up in queue`,disabled:0===k||K,onClick:function(b){b.stopPropagation();let d=function(a,b){let c=a.indexOf(b);if(c<=0)return a;let d=[...a],e=d[c-1];return d[c-1]=d[c],d[c]=e,d}(j.map(a=>a.number),c.number);L(()=>{E(a,d).catch(a=>N(a.message))})},className:"h-7 w-7",children:(0,d.jsx)(f,{})}),(0,d.jsx)(n.$,{type:"button",size:"icon",variant:"ghost","aria-label":`Move #${c.number} down in queue`,disabled:l||K,onClick:function(b){b.stopPropagation();let d=function(a,b){let c=a.indexOf(b);if(-1===c||c===a.length-1)return a;let d=[...a],e=d[c+1];return d[c+1]=d[c],d[c]=e,d}(j.map(a=>a.number),c.number);L(()=>{E(a,d).catch(a=>N(a.message))})},className:"h-7 w-7",children:(0,d.jsx)(g,{})}),(0,d.jsx)(n.$,{type:"button",size:"icon",variant:"ghost","aria-label":`Remove #${c.number} from queue`,disabled:K,onClick:function(b){b.stopPropagation(),L(()=>{v(a,c.number).then(p).catch(a=>N(a.message))})},className:"h-7 w-7 text-destructive hover:text-destructive",children:(0,d.jsx)(h.A,{})})]}):(0,d.jsx)(n.$,{type:"button",size:"icon",variant:"ghost","aria-label":`Add #${c.number} to queue`,disabled:K,onClick:function(b){b.stopPropagation(),L(()=>{w(a,c.number).then(p).catch(a=>N(a.message))})},className:"h-7 w-7",children:(0,d.jsx)(i.A,{})})}),(0,d.jsx)("span",{"aria-hidden":!0,className:"cursor-grab text-muted-foreground",title:"Drag to reorder",children:"⠿"})]})}return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h2",{className:"text-sm font-semibold uppercase tracking-wide text-muted-foreground",children:"Issues"}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",o.length,")"]}),(0,d.jsx)(n.$,{size:"sm",variant:"outline",className:"ml-auto",disabled:K,onClick:function(){N(null),L(()=>{D(a).then(p).catch(a=>N(a.message))})},children:K?"Syncing…":"Refresh"})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("input",{"aria-label":"Search issues by title or label",value:q,onChange:a=>r(a.target.value),placeholder:"Search by title or label…",className:"min-w-0 flex-1 rounded-md border border-input bg-background px-3 py-1.5 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background"}),(0,d.jsx)(n.$,{size:"sm",variant:"outline",disabled:K||0===Q.length,onClick:function(){let b=Q.map(a=>a.number);0!==b.length&&(N(null),L(()=>{F(a,b).then(p).catch(a=>N(a.message))}))},children:"Queue all (filtered)"})]}),M&&(0,d.jsx)("p",{role:"alert",className:"text-xs text-destructive",children:M}),y.size>0&&(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2 rounded-xl border border-card-border bg-accent/40 p-2",children:[(0,d.jsxs)("span",{className:"px-1 text-sm font-medium",children:[y.size," selected"]}),(0,d.jsx)(n.$,{size:"sm",variant:"outline",disabled:K,onClick:()=>T(b=>F(a,b)),children:"Add to queue"}),(0,d.jsx)(n.$,{size:"sm",variant:"outline",disabled:K,onClick:()=>T(b=>G(a,b)),children:"Remove from queue"}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("input",{"aria-label":"Label to apply to selected issues",value:A,onChange:a=>B(a.target.value),placeholder:"label…",className:"h-8 w-28 rounded-md border border-input bg-background px-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"}),(0,d.jsx)(n.$,{size:"sm",variant:"outline",disabled:K||""===A.trim(),onClick:()=>{let b=A.trim();T(c=>H(a,c,b)),B("")},children:"Apply label"})]}),(0,d.jsx)(n.$,{size:"sm",variant:"ghost",className:"ml-auto",disabled:K,onClick:S,children:"Clear"})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2",children:[(0,d.jsxs)("div",{onDragOver:a=>a.preventDefault(),onDrop:function(){if(null===s)return;let b=o.find(a=>a.number===s);t(null),b&&O(b)&&L(()=>{v(a,b.number).then(p).catch(a=>N(a.message))})},className:"space-y-2 rounded-xl border border-dashed border-card-border p-2",children:[(0,d.jsxs)("p",{className:"px-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:["Backlog (",Q.length,")"]}),(0,d.jsxs)("ul",{className:"space-y-2",children:[Q.map(a=>(0,d.jsx)(U,{issue:a,reorderable:!1},a.number)),0===Q.length&&(0,d.jsx)("li",{className:"px-1 text-sm text-muted-foreground",children:"No backlog issues."})]})]}),(0,d.jsxs)("div",{onDragOver:a=>a.preventDefault(),onDrop:function(){if(null===s)return;let b=o.find(a=>a.number===s);t(null),!b||O(b)||L(()=>{w(a,b.number).then(p).catch(a=>N(a.message))})},className:"space-y-2 rounded-xl border border-dashed border-card-border p-2",children:[(0,d.jsxs)("p",{className:"px-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:["Queue (",R.length,")"]}),(0,d.jsxs)("ul",{className:"space-y-2",children:[R.map(a=>(0,d.jsx)(U,{issue:a,reorderable:!0},a.number)),0===R.length&&(0,d.jsx)("li",{className:"px-1 text-sm text-muted-foreground",children:"Drag issues here to queue them, or use the + button."})]})]})]}),(0,d.jsx)(C,{repoId:a,issueNumber:u,open:null!==u,onClose:()=>x(null),queueLabel:b,defaultModel:k,defaultAgent:l})]})}},12694:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>I,dynamic:()=>H});var d=c(39747),e=c(37003),f=c(24007),g=c.n(f),h=c(95430),i=c(20096),j=c(49033),k=c(68298),l=c(34271);function m({activeJob:a,recentJobs:b,initialLog:c=[],repoId:e}){return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("h2",{className:"text-sm font-semibold uppercase tracking-wide text-muted-foreground",children:"Activity"}),a?(0,d.jsxs)("div",{className:"space-y-3 rounded-xl border border-card-border bg-card p-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)(g(),{href:`/jobs/${a.id}`,className:"font-medium hover:underline",children:["Job #",a.id," \xb7 Issue #",a.issueNumber]}),(0,d.jsx)(k.E,{status:a.status,children:a.status})]}),(0,d.jsxs)("dl",{className:"grid grid-cols-2 gap-1 text-xs text-muted-foreground",children:[(0,d.jsxs)("div",{children:["Model: ",(0,l.mM)(a.model)]}),(0,d.jsxs)("div",{children:["Cost: $",a.costUsd.toFixed(4)]}),(0,d.jsxs)("div",{children:["Tokens: ",a.totalInputTokens," in / ",a.totalOutputTokens," out"]})]}),(0,d.jsx)(j.LogViewer,{jobId:a.id,initial:c})]}):(0,d.jsx)("p",{className:"rounded-xl border border-dashed border-border p-6 text-center text-sm text-muted-foreground",children:"No job is running. Start an issue from the queue."}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,d.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"History"}),void 0!==e&&(0,d.jsx)(g(),{href:`/jobs?repo=${e}`,className:"text-xs text-muted-foreground hover:underline",children:"View all runs →"})]}),(0,d.jsxs)("ul",{className:"space-y-1",children:[b.map(a=>(0,d.jsxs)("li",{className:"flex items-center gap-2 text-sm",children:[(0,d.jsxs)(g(),{href:`/jobs/${a.id}`,className:"hover:underline",children:["#",a.issueNumber]}),(0,d.jsx)(k.E,{status:a.status,children:a.status}),(0,d.jsxs)("span",{className:"ml-auto text-xs text-muted-foreground",children:["$",a.costUsd.toFixed(2)]})]},a.id)),0===b.length&&(0,d.jsx)("li",{className:"text-sm text-muted-foreground",children:"No jobs yet."})]})]})]})}var n=c(15613);function o({adrs:a}){return(0,d.jsxs)(n.Zp,{children:[(0,d.jsx)(n.aR,{children:(0,d.jsx)(n.ZB,{children:"ADRs"})}),(0,d.jsx)(n.Wu,{children:0===a.length?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"No ADRs yet."}):(0,d.jsx)("ul",{className:"space-y-1 text-xs",children:a.map(a=>(0,d.jsxs)("li",{className:"flex justify-between gap-2",children:[(0,d.jsx)("span",{className:"truncate",children:a.title}),(0,d.jsx)("span",{className:"text-muted-foreground",children:a.status})]},a.id))})})]})}var p=c(7050);function q({todayUsd:a,limitUsd:b,daily:c}){return(0,d.jsxs)(n.Zp,{children:[(0,d.jsxs)(n.aR,{children:[(0,d.jsx)(n.ZB,{children:"Cost"}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Today: $",a.toFixed(2)," / $",b.toFixed(2)]})]}),(0,d.jsx)(n.Wu,{children:0===c.length?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:"No spend recorded yet."}):(0,d.jsx)("ul",{className:"space-y-1 text-xs text-muted-foreground",children:c.slice(0,7).map(a=>(0,d.jsxs)("li",{className:"flex justify-between",children:[(0,d.jsx)("span",{children:a.day}),(0,d.jsxs)("span",{children:["$",a.costUsd.toFixed(2)]})]},a.day))})})]})}let r={monitoring:"neutral",healthy:"success",failed:"destructive",repairing:"warning",repaired:"primary",escalated:"destructive"};function s({sessions:a}){return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("h2",{className:"text-sm font-semibold uppercase tracking-wide text-muted-foreground",children:"Deployments"}),(0,d.jsxs)("ul",{className:"space-y-1",children:[a.map(a=>(0,d.jsxs)("li",{className:"flex items-center gap-2 text-sm",children:[(0,d.jsxs)(g(),{href:`/jobs/${a.jobId}`,className:"hover:underline",children:["#",a.issueNumber]}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:[a.platform," \xb7 PR #",a.prNumber," \xb7 ",a.commitSha.slice(0,7)]}),(0,d.jsx)(k.E,{tone:r[a.status]??"neutral",children:a.status}),null!=a.followupPrNumber&&(0,d.jsxs)("span",{className:"ml-auto text-xs text-muted-foreground",children:["fix PR #",a.followupPrNumber]})]},a.id)),0===a.length&&(0,d.jsx)("li",{className:"text-sm text-muted-foreground",children:"No deployment sessions yet."})]})]})}let t={healed:"success",triaging:"neutral",awaiting_slot:"neutral",repairing:"primary",awaiting_ci:"warning",verifying:"warning",cooldown:"warning",blocked:"destructive",escalated:"destructive",superseded:"neutral"};function u({sessions:a}){return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("h2",{className:"text-sm font-semibold uppercase tracking-wide text-muted-foreground",children:"CI auto-heal"}),(0,d.jsxs)("ul",{className:"space-y-1",children:[a.map(a=>(0,d.jsxs)("li",{className:"flex items-center gap-2 text-sm",children:[(0,d.jsxs)(g(),{href:`/jobs/${a.jobId}`,className:"hover:underline",children:["#",a.issueNumber]}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["PR #",a.prNumber," \xb7 ",a.headSha.slice(0,7)]}),(0,d.jsx)(k.E,{tone:t[a.status]??"neutral",children:a.status}),(0,d.jsxs)("span",{className:"ml-auto text-xs text-muted-foreground",children:[a.attempts," attempt",1===a.attempts?"":"s"]})]},a.id)),0===a.length&&(0,d.jsx)("li",{className:"text-sm text-muted-foreground",children:"No healing sessions yet."})]})]})}var v=c(39425),w=c(34736),x=c(72693),y=c(24532),z=c(2937),A=c(51026),B=c(68464),C=c(93929),D=c(53566),E=c(46146),F=c(34717),G=c(78293);let H="force-dynamic";async function I({params:a}){let{id:b}=await a,c=(0,B.m)(Number(b));c||(0,h.notFound)();let f=(0,G.mt)(),j=(0,z.Lf)(),k=(0,A.Bt)(j,c.repo.id),l=(0,A.i_)(j,c.repo.id).map(a=>({day:a.day,costUsd:a.costUsd})),n=(0,y.Pe)(void 0,j,c.repo.id),r=c.repo.autoHealCi?(0,D.ZA)(c.repo.id,j):[],t=c.repo.autoHealDeployments?(0,E.ED)(c.repo.id,j):[],H=c.repo.releaseEnabled?(0,F.Dn)(c.repo.id,j):[],J=c.activeJob?j.select().from(C.jobEvents).where((0,e.eq)(C.jobEvents.jobId,c.activeJob.id)).all().map(a=>({id:a.id,type:a.type,payload:JSON.parse(a.payload)})):[];return(0,d.jsxs)("div",{className:"space-y-6",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)(g(),{href:"/",className:"text-xs text-muted-foreground hover:underline",children:"← Dashboard"}),(0,d.jsx)("h1",{className:"mt-1 text-2xl font-bold tracking-tight",children:c.repo.name}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:c.repo.path})]}),(0,d.jsx)(w.RepoSettingsBar,{repo:c.repo}),(0,d.jsx)(p.RepoAutomationBar,{repo:c.repo}),(0,d.jsx)(x.RepoWebhookPanel,{repo:c.repo}),(0,d.jsx)(i.IssueBoard,{repoId:c.repo.id,queueLabel:c.repo.queueLabel,initialIssues:c.issues,pollIntervalSec:f.pollIntervalSec,defaultModel:c.repo.defaultModel,defaultAgent:c.repo.agent}),(0,d.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,d.jsx)(m,{activeJob:c.activeJob,recentJobs:c.recentJobs,initialLog:J,repoId:c.repo.id}),(0,d.jsx)(q,{todayUsd:k,limitUsd:c.repo.dailyCostLimitUsd,daily:l}),(0,d.jsx)(o,{adrs:n}),c.repo.autoHealCi&&(0,d.jsx)(u,{sessions:r}),c.repo.autoHealDeployments&&(0,d.jsx)(s,{sessions:t}),c.repo.releaseEnabled&&(0,d.jsx)(v.RepoReleasePanel,{repoId:c.repo.id,initialRuns:H})]})]})}},14985:a=>{"use strict";a.exports=require("dns")},15613:(a,b,c)=>{"use strict";c.d(b,{Wu:()=>i,ZB:()=>h,Zp:()=>f,aR:()=>g});var d=c(39747),e=c(10268);function f({className:a,...b}){return(0,d.jsx)("div",{className:(0,e.cn)("rounded-xl border border-card-border bg-card text-card-foreground shadow-sm",a),...b})}function g({className:a,...b}){return(0,d.jsx)("div",{className:(0,e.cn)("flex flex-col gap-1.5 p-5",a),...b})}function h({className:a,...b}){return(0,d.jsx)("h3",{className:(0,e.cn)("text-base font-semibold leading-none tracking-tight",a),...b})}function i({className:a,...b}){return(0,d.jsx)("div",{className:(0,e.cn)("p-5 pt-0",a),...b})}},16698:a=>{"use strict";a.exports=require("node:async_hooks")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19208:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>O,handler:()=>Q,routeModule:()=>P});var d=c(86565),e=c(66626),f=c(38002),g=c(52419),h=c(27345),i=c(75665),j=c(69880),k=c(61385),l=c(97785),m=c(38011),n=c(41897),o=c(74767),p=c(89447),q=c(8350),r=c(261),s=c(52714),t=c(46967),u=c(26713),v=c(10523),w=c(48120),x=c(14284),y=c(3077),z=c(70227),A=c(54369),B=c(1089),C=c(86439),D=c(77068),E=c(377),F=c(32185),G=c(28795),H=c(23578),I=c(70722),J=c(10013),K=c(43954),L=c(17891),M={};for(let a in G)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(M[a]=()=>G[a]);c.d(b,M);let N={children:["",{children:["repos",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,12694)),"/home/runner/work/drydock/drydock/src/app/repos/[id]/page.tsx"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,74111,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,74111,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,38593)),"/home/runner/work/drydock/drydock/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,74111,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,76335,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45034,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,21205,23)),"next/dist/client/components/builtin/unauthorized.js"]},[]]}.children,O={require:c,loadChunk:()=>Promise.resolve()},P=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/repos/[id]/page",pathname:"/repos/[id]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:N},distDir:".next",relativeProjectDir:""});async function Q(a,b,d){var M,R,S,T,U;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),P.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let V=!!(0,h.getRequestMeta)(a,"minimalMode"),W="/repos/[id]/page";"/index"===W&&(W="/");let X=await P.prepare(a,b,{srcPage:W,multiZoneDraftMode:!1});if(!X)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Y,query:Z,params:$,pageIsDynamic:_,buildManifest:aa,nextFontManifest:ab,reactLoadableManifest:ac,serverActionsManifest:ad,clientReferenceManifest:ae,subresourceIntegrityManifest:af,prerenderManifest:ag,isDraftMode:ah,resolvedPathname:ai,revalidateOnlyGenerated:aj,routerServerContext:ak,nextConfig:al,parsedUrl:am,interceptionRoutePatterns:an,deploymentId:ao,clientAssetToken:ap}=X,aq=(0,r.normalizeAppPath)(W),{isOnDemandRevalidate:ar}=X,as=al.experimental.ppr&&!al.cacheComponents&&(0,K.isInterceptionRouteAppPath)(ai)?null:P.match(ai,ag),at=(null==as?void 0:as.route)??null,au=!!ag.routes[ai],av=a.headers["user-agent"]||"",aw=(0,u.getBotType)(av),ax=(0,q.isHtmlBotRequest)(a),ay=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],az=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[t.RSC_HEADER]),aA=(0,s.getIsPossibleServerAction)(a),aB=(0,m.checkIsAppPPREnabled)(al.experimental.ppr),aC=a.headers[y.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&V&&aB&&aA&&aC&&"string"==typeof aC){let e=parseInt(aC,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,E.getMaxPostponedStateSize)(al.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,E.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(U=al.experimental.serverActions)?void 0:U.bodySizeLimit)??i,k=e+(j!==i?c(85802).parse(j):1048576),l=await (0,E.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&aB&&"1"===a.headers[y.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,E.getMaxPostponedStateSize)(al.experimental.maxPostponedStateSize),f=await (0,E.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,E.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aD=!0===P.isDev||!0===al.experimental.exposeTestingApiInProductionBuild,aE=aD&&("1"===a.headers[t.NEXT_INSTANT_PREFETCH_HEADER]||!(0,n.f)(a.headers[t.RSC_HEADER])&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(t.NEXT_INSTANT_TEST_COOKIE+"=")),aF=(aB||aE)&&((null==(M=ag.routes[aq]??ag.dynamicRoutes[aq])?void 0:M.renderingMode)==="PARTIALLY_STATIC"||aE&&(aD||(null==ak?void 0:ak.experimentalTestProxy)===!0)),aG=aE&&aF,aH=aG&&!0===P.isDev,aI=!1,aJ=aF?(0,h.getRequestMeta)(a,"postponed"):void 0,aK=null==(R=ag.routes[ai])?void 0:R.prefetchDataRoute,aL=aF&&az&&!ay&&!aK;V&&(aL=aL&&!!aJ);let aM=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aN=(!aw||!aF)&&(!av||(0,q.shouldServeStreamingMetadata)(av,al.htmlLimitedBots)),aO=!!((at||au||ag.routes[aq])&&!(aw&&aF)),aP=aF&&!0===al.cacheComponents,aQ=!0===P.isDev||!aO||"string"==typeof aJ||(aP&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aL&&!V:aL),aR=!!aw&&aF,aS=(null==at?void 0:at.remainingPrerenderableParams)??[],aT=(null==at?void 0:at.fallback)===null&&((null==(S=at.fallbackRootParams)?void 0:S.length)??0)>0,aU=null;if(!ah&&aO&&!aQ&&!aA&&!aJ&&!aL){let a=as?"string"==typeof(null==at?void 0:at.fallback)?at.fallback:as.source:null;if(!0===al.experimental.partialFallbacks&&a&&(null==at?void 0:at.fallbackRouteParams)&&!aT){if(aS.length>0){let b,c=(b=new Map(aS.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,L.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==$?void 0:$[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace((0,o.buildDynamicSegmentPlaceholder)(d),f)}).join("/")||"/");aU=c!==a?c:null}}else aU=ai}let aV=aU;!aV&&(P.isDev||aO&&_&&(null==at?void 0:at.fallbackRouteParams)&&!aA)&&(aV=ai),P.isDev||ah||!aO||!az||aL||(0,k.d)(a.headers);let aW={...G,tree:N,handler:Q,routeModule:P,__next_app__:O};ad&&ae&&(0,p.setManifestsSingleton)({page:W,clientReferenceManifest:ae,serverActionsManifest:ad});let aX=a.method||"GET",aY=(0,g.getTracer)(),aZ=aY.getActiveScopeSpan(),a$=!!(null==ak?void 0:ak.isWrappedByNextServer),a_=!0===al.experimental.partialFallbacks&&aS.length>0?(null==at||null==(T=at.fallbackRouteParams)?void 0:T.filter(a=>!aS.some(b=>b.paramName===a.paramName)))??[]:[],a0=async()=>((null==ak?void 0:ak.render404)?await ak.render404(a,b,am,!1):b.end("This page could not be found"),null);try{let k,m=P.getVaryHeader(ai,an);b.setHeader("Vary",m);let n=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return P.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aY.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aX} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),k&&k!==c&&(k.setAttribute("http.route",d),k.updateName(a))}else c.updateName(`${aX} ${W}`)})},p=(0,h.getRequestMeta)(a,"incrementalCache")||await P.getIncrementalCache(a,al,ag,V);null==p||p.resetRequestCache(),globalThis.__incrementalCache=p;let q=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:Z,params:$,page:aq,sharedContext:{buildId:Y,deploymentId:ao,clientAssetToken:ap},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aW,Component:(0,j.T)(aW),params:$,routeModule:P,page:W,postponed:f,shouldWaitOnAllReady:aR,serveStreamingMetadata:aN,supportsDynamicResponse:"string"==typeof f||aQ,buildManifest:aa,nextFontManifest:ab,reactLoadableManifest:ac,subresourceIntegrityManifest:af,setCacheStatus:null==ak?void 0:ak.setCacheStatus,setIsrStatus:null==ak?void 0:ak.setIsrStatus,setReactDebugChannel:null==ak?void 0:ak.setReactDebugChannel,sendErrorsToBrowser:null==ak?void 0:ak.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),P.relativeProjectDir),isDraftMode:ah,botType:aw,isOnDemandRevalidate:ar,isPossibleServerAction:aA,assetPrefix:al.assetPrefix,nextConfigOutput:al.output,crossOrigin:al.crossOrigin,trailingSlash:al.trailingSlash,images:al.images,previewProps:ag.preview,enableTainting:al.experimental.taint,htmlLimitedBots:al.htmlLimitedBots,reactMaxHeadersLength:al.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:p,cacheLifeProfiles:al.cacheLife,basePath:al.basePath,serverActions:al.experimental.serverActions,logServerFunctions:"object"==typeof al.logging&&!!al.logging.serverFunctions,...aG||aH||aI?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aH}:{},cacheComponents:!!al.cacheComponents,experimental:{isRoutePPREnabled:aF,expireTime:al.expireTime,staleTimes:al.experimental.staleTimes,dynamicOnHover:!!al.experimental.dynamicOnHover,optimisticRouting:!!al.experimental.optimisticRouting,inlineCss:!!al.experimental.inlineCss,prefetchInlining:al.experimental.prefetchInlining??!1,authInterrupts:!!al.experimental.authInterrupts,cachedNavigations:!!al.experimental.cachedNavigations,clientTraceMetadata:al.experimental.clientTraceMetadata||[],clientParamParsingOrigins:al.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,D.parseMaxPostponedStateSize)(al.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>P.onRequestError(a,b,d,e,ak),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await n(e,k),{metadata:m}=l,{cacheControl:o,headers:q={},fetchTags:r,fetchMetrics:s}=m;if(r&&(q[y.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aO&&(null==o?void 0:o.revalidate)===0&&!P.isDev&&!aF){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ai}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
2
+ see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:o}},r=async({hasResolved:c,previousCacheEntry:g,isRevalidating:i,span:j,forceStaticRender:k=!1})=>{let l=!1===P.isDev,m=c||b.writableEnded;try{var n;let f;if(ar&&aj&&!g&&!V)return(null==ak?void 0:ak.render404)?await ak.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(at&&(f=(0,w.parseFallbackField)(at.fallback)),!0===al.experimental.partialFallbacks&&(null==at?void 0:at.fallback)===null&&!aT&&aS.length>0&&(f=w.FallbackMode.PRERENDER),f===w.FallbackMode.PRERENDER&&(0,u.isBot)(av)&&(!aF||ax)&&(f=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==g?void 0:g.isStale)===-1&&(ar=!0),ar&&(f!==w.FallbackMode.NOT_FOUND||g)&&(f=w.FallbackMode.BLOCKING_STATIC_RENDER),!V&&f!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aV&&!m&&!ah&&_&&(l||!au)){if((l||at)&&f===w.FallbackMode.NOT_FOUND){if(al.adapterPath)return await a0();throw new C.NoFallbackError}if(aF&&(al.cacheComponents?!aL:!az)){let b=l&&"string"==typeof(null==at?void 0:at.fallback)?at.fallback:aq,f=(l||aG)&&(null==at?void 0:at.fallbackRouteParams)?(0,o.createOpaqueFallbackRouteParams)(at.fallbackRouteParams):aI?(0,o.getFallbackRouteParams)(aq,P):null;aG&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await P.handleResponse({cacheKey:b,req:a,nextConfig:al,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ag,isRoutePPREnabled:aF,responseGenerator:async()=>q({span:j,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:V});if(null===g)return null;if(g)return V||!aF||!(aS.length>0)||!0!==al.experimental.partialFallbacks||!aU||!p||ar||aI||aD||aE||ay||(0,J.scheduleOnNextTick)(async()=>{let b=P.getResponseCache(a);try{await b.revalidate(aU,p,aF,!1,a=>q({span:a.span,postponed:void 0,fallbackRouteParams:a_.length>0?(0,o.createOpaqueFallbackRouteParams)(a_):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let s=ar||i||!aJ?void 0:aJ;if(aP&&!V&&p&&(aL||aA)&&!k){let b=await p.get(ai,{kind:v.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===v.CachedRouteKind.APP_PAGE&&(s=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,J.scheduleOnNextTick)(async()=>{let b=P.getResponseCache(a);try{await b.revalidate(ai,p,aF,!1,a=>r({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aG||aH)&&void 0!==s)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let t=!P.isDev&&_&&(null==at?void 0:at.fallbackRouteParams)?(0,o.getPlaceholderFallbackRouteParams)($,at.fallbackRouteParams):null,y=t&&t.length>0?t:null==at?void 0:at.fallbackRouteParams,z=null!=t&&t.length>0,A=null;if(al.cacheComponents&&(null==at?void 0:at.fallbackRouteParams)){let b=(0,h.getRequestMeta)(a,"resolvedRouteParamKeys");b&&b.size>0&&(A=at.fallbackRouteParams.filter(a=>!b.has(a.paramName)))}let B=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||z||aG&&!au)&&y?(0,o.createOpaqueFallbackRouteParams)(y):A&&A.length>0&&A.length<((null==at||null==(n=at.fallbackRouteParams)?void 0:n.length)??0)?(0,o.createOpaqueFallbackRouteParams)(A):aI?(0,o.getFallbackRouteParams)(aq,P):null;if((l||aG)&&al.cacheComponents&&!au&&(null==at?void 0:at.fallbackRouteParams)){let b=(0,o.createOpaqueFallbackRouteParams)(y??at.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return q({span:j,postponed:s,fallbackRouteParams:B,forceStaticRender:k})}catch(b){throw(null==g?void 0:g.isStale)&&await P.onRequestError(a,b,{routerKind:"App Router",routePath:W,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aO,isOnDemandRevalidate:ar})},!1,ak),b}},s=async c=>{var f,g,i,j,k,l;let m,n=await P.handleResponse({cacheKey:aU,responseGenerator:a=>r({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ar,isRoutePPREnabled:aF,req:a,nextConfig:al,prerenderManifest:ag,waitUntil:d.waitUntil,isMinimalMode:V});if(ah&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),P.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!n){if(aU)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let o="string"==typeof n.value.postponed;az&&!aA&&ao&&b.setHeader(y.NEXT_NAV_DEPLOYMENT_ID_HEADER,ao),aO&&!aL&&(!o||ay)&&(V||b.setHeader("x-nextjs-cache",ar?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:p}=n;if(aJ)m={revalidate:0,expire:void 0};else if(aL)m={revalidate:0,expire:void 0};else if(!P.isDev)if(ah)m={revalidate:0,expire:void 0};else if(aO){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});m={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??al.expireTime}}else m={revalidate:y.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(m={revalidate:0,expire:void 0});if(n.cacheControl=m,"string"==typeof aM&&(null==p?void 0:p.kind)===v.CachedRouteKind.APP_PAGE&&p.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=p.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];V&&aO&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=p.segmentData.get(aM);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let s=aP?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(s){let b=(0,h.getRequestMeta)(a,"initURL")??a.url,c=b?(null==(l=(0,F.parseUrl)(b))?void 0:l.pathname)??b:void 0;if(await s(n,{url:c}))return null}if(p.headers){let a={...p.headers};for(let[c,d]of(V&&aO||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let u=null==(g=p.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(V&&aO&&u&&"string"==typeof u&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,u),!p.status||az&&aF||(b.statusCode=p.status),!V&&p.status&&H.RedirectStatusCode[p.status]&&az&&(b.statusCode=200),o&&!aL&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),az&&!ah){if(void 0===p.rscData){if(p.html.contentType!==t.RSC_CONTENT_TYPE_HEADER)if(al.cacheComponents)return b.statusCode=404,(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl});else throw Object.defineProperty(new I.InvariantError(`Expected RSC response, got ${p.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:p.html,cacheControl:n.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.fromStatic(p.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let w=p.html;if(aE&&aG){let c=!0===P.isDev?crypto.randomUUID():null;return w.pipeThrough(await (0,A.createInstantTestScriptInsertionTransformStream)(c)),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}})}if(!o||V||az)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:n.cacheControl});if(aG||aH)return w.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}});let C=new TransformStream;return w.push(C.readable),q({span:c,postponed:p.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(C.writable)}).catch(a=>{C.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}})};if(!a$||!aZ)return k=aY.getActiveScopeSpan(),await aY.withPropagatedContext(a.headers,()=>aY.trace(i.BaseServerSpan.handleRequest,{spanName:`${aX} ${W}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aX,"http.target":a.url}},s),void 0,!a$);await s(aZ)}catch(b){throw b instanceof C.NoFallbackError||await P.onRequestError(a,b,{routerKind:"App Router",routePath:W,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aO,isOnDemandRevalidate:ar})},!1,ak),b}}},20096:(a,b,c)=>{"use strict";c.d(b,{IssueBoard:()=>d});let d=(0,c(37251).registerClientReference)(function(){throw Error("Attempted to call IssueBoard() from the server but IssueBoard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/drydock/drydock/src/components/issue-board.tsx","IssueBoard")},21820:a=>{"use strict";a.exports=require("os")},24007:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(47432),g=c(39747),h=f._(c(30426));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},28486:(a,b,c)=>{"use strict";c.d(b,{RepoSettingsBar:()=>k});var d=c(37477),e=c(54848),f=c(2874),g=c(29974),h=c(50720),i=c(23325),j=c(49542);function k({repo:a}){let[b,c]=(0,e.useState)(a.agent),[l,m]=(0,e.useState)(a.defaultModel),[n,o]=(0,e.useState)(a.dailyCostLimitUsd),[p,q]=(0,e.useState)(a.adrGating),[r,s]=(0,e.useState)(a.sequential),[t,u]=(0,e.useTransition)(),[v,w]=(0,e.useState)(!1),{error:x}=(0,h.d)();function y(b){w(!1),u(async()=>{try{await (0,j.u)(a.id,b),w(!0),setTimeout(()=>w(!1),1500)}catch(a){x("Failed to update repository",a instanceof Error?a.message:String(a))}})}return(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-3 rounded-xl border border-card-border bg-card p-3 text-sm",children:[(0,d.jsx)("span",{className:"text-muted-foreground",children:"Queue label:"}),(0,d.jsx)("code",{className:"rounded bg-muted px-1.5 py-0.5 font-mono text-xs",children:a.queueLabel}),(0,d.jsx)("span",{className:"ml-auto text-muted-foreground",children:"Daily limit $"}),(0,d.jsx)("input",{type:"number",min:0,step:1,value:n,onChange:a=>{var b;o(b=Number(a.target.value)),y({dailyCostLimitUsd:b})},className:"w-20 rounded border border-card-border bg-background px-2 py-1 text-sm"}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:p,onChange:a=>{var b;q(b=a.target.checked),y({adrGating:b})}}),"ADR gate"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:r,onChange:a=>{var b;s(b=a.target.checked),y({sequential:b})}}),"Sequential (wait for merge)"]}),(0,d.jsx)("label",{htmlFor:"agent-select",className:"text-muted-foreground",children:"Agent:"}),(0,d.jsx)(f.a,{id:"agent-select",value:b,onChange:function(a){let b=(0,i.VJ)(a);c(a),m(b),y({agent:a,defaultModel:b})}}),(0,d.jsx)("label",{htmlFor:"model-select",className:"text-muted-foreground",children:"Model:"}),(0,d.jsx)(g.o,{id:"model-select",value:l,onChange:function(a){m(a),y({defaultModel:a})},agent:b}),t&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Saving…"}),v&&(0,d.jsx)("span",{className:"text-xs text-success-foreground",children:"Saved"})]})}},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30426:(a,b,c)=>{let{createProxy:d}=c(37762);a.exports=d("/home/runner/work/drydock/drydock/node_modules/.pnpm/next@16.2.6_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/next/dist/client/app-dir/link.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},32019:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(46031).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},33873:a=>{"use strict";a.exports=require("path")},34631:a=>{"use strict";a.exports=require("tls")},34736:(a,b,c)=>{"use strict";c.d(b,{RepoSettingsBar:()=>d});let d=(0,c(37251).registerClientReference)(function(){throw Error("Attempted to call RepoSettingsBar() from the server but RepoSettingsBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/drydock/drydock/src/components/repo-settings-bar.tsx","RepoSettingsBar")},39425:(a,b,c)=>{"use strict";c.d(b,{RepoReleasePanel:()=>d});let d=(0,c(37251).registerClientReference)(function(){throw Error("Attempted to call RepoReleasePanel() from the server but RepoReleasePanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/drydock/drydock/src/components/repo-release-panel.tsx","RepoReleasePanel")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},47432:(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}function e(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}c.r(b),c.d(b,{_:()=>e})},47887:(a,b,c)=>{"use strict";c.d(b,{RepoWebhookPanel:()=>h});var d=c(37477),e=c(54848),f=c(50720),g=c(49542);function h({repo:a}){let[b,c]=(0,e.useState)(a.webhookSecret??""),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(`/api/webhooks/${a.id}`),[m,n]=(0,e.useTransition)(),[o,p]=(0,e.useState)(!1),{error:q}=(0,f.d)(),r=(a.webhookSecret??"").length>0,s="gitlab"===a.platform;function t(b){p(!1),n(async()=>{try{await (0,g.u)(a.id,{webhookSecret:b.trim()||null}),p(!0),setTimeout(()=>p(!1),1500)}catch(a){q("Failed to update webhook",a instanceof Error?a.message:String(a))}})}return(0,d.jsxs)("div",{className:"space-y-3 rounded-xl border border-card-border bg-card p-3 text-sm",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-semibold",children:"Webhook sync"}),(0,d.jsx)("span",{className:`rounded px-1.5 py-0.5 text-xs ${r?"bg-success/15 text-success-foreground":"bg-muted text-muted-foreground"}`,children:r?"On":"Off"}),m&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Saving…"}),o&&(0,d.jsx)("span",{className:"text-xs text-success-foreground",children:"Saved"})]}),(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted-foreground",htmlFor:"webhook-secret",children:["Shared secret",(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("input",{id:"webhook-secret",type:i?"text":"password",value:b,onChange:a=>c(a.target.value),onBlur:()=>{(b.trim()||null)!==(a.webhookSecret??null)&&t(b)},placeholder:"Set a secret to enable webhook delivery",className:"min-w-0 flex-1 rounded border border-card-border bg-background px-2 py-1 font-mono text-sm text-foreground"}),(0,d.jsx)("button",{type:"button",onClick:()=>j(a=>!a),className:"rounded border border-card-border px-2 py-1 text-xs text-muted-foreground hover:bg-muted",children:i?"Hide":"Show"}),(0,d.jsx)("button",{type:"button",onClick:()=>{let a,b=(a=new Uint8Array(20),crypto.getRandomValues(a),Array.from(a,a=>a.toString(16).padStart(2,"0")).join(""));c(b),j(!0),t(b)},className:"rounded border border-card-border px-2 py-1 text-xs text-muted-foreground hover:bg-muted",children:"Generate"}),r&&(0,d.jsx)("button",{type:"button",onClick:()=>{c(""),t("")},className:"rounded border border-card-border px-2 py-1 text-xs text-destructive hover:bg-muted",children:"Disable"})]})]}),(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted-foreground",htmlFor:"webhook-url",children:["Payload URL",(0,d.jsx)("input",{id:"webhook-url",readOnly:!0,value:k,onFocus:a=>a.currentTarget.select(),className:"rounded border border-card-border bg-background px-2 py-1 font-mono text-xs text-foreground"})]}),(0,d.jsxs)("p",{className:"text-xs 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 ",s?"GitLab":"GitHub"," webhook for"," ",(0,d.jsx)("em",{children:s?"issues and comments":"Issues and Issue comments"})," at the payload URL above with"," ",s?(0,d.jsxs)(d.Fragment,{children:["this secret as the ",(0,d.jsx)("code",{className:"font-mono",children:"Secret token"})]}):(0,d.jsxs)(d.Fragment,{children:["this secret and content type ",(0,d.jsx)("code",{className:"font-mono",children:"application/json"})]}),". Drydock binds ",(0,d.jsx)("code",{className:"font-mono",children:"127.0.0.1"}),", so expose the URL through a tunnel or forwarder (e.g. ",(0,d.jsx)("code",{className:"font-mono",children:"cloudflared"}),","," ",(0,d.jsx)("code",{className:"font-mono",children:"ngrok"}),") to receive deliveries. Each delivery is"," ",s?"token-verified":"HMAC-SHA256 signature-verified","; invalid or unsigned payloads are rejected."]})]})}},48161:a=>{"use strict";a.exports=require("node:os")},49033:(a,b,c)=>{"use strict";c.d(b,{LogViewer:()=>d});let d=(0,c(37251).registerClientReference)(function(){throw Error("Attempted to call LogViewer() from the server but LogViewer is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/drydock/drydock/src/components/log-viewer.tsx","LogViewer")},49542:(a,b,c)=>{"use strict";c.d(b,{u:()=>e});var d=c(47609);let e=(0,d.createServerReference)("6049326c9eeafc5ce32fcdc2f0ef082947f86cbecd",d.callServer,void 0,d.findSourceMapURL,"updateRepoAction")},50257:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,71416,23)),Promise.resolve().then(c.bind(c,11003)),Promise.resolve().then(c.bind(c,77927)),Promise.resolve().then(c.bind(c,63943)),Promise.resolve().then(c.bind(c,95941)),Promise.resolve().then(c.bind(c,28486)),Promise.resolve().then(c.bind(c,47887))},51455:a=>{"use strict";a.exports=require("node:fs/promises")},52229:(a,b,c)=>{"use strict";c.d(b,{oW:()=>p,VL:()=>r,u3:()=>q});var d=c(15465),e=c(66406),f=c(34546),g=c(54452),h=c(22579),i=c(55710),j=c(84654),k=c(14921),l=c(40568),m=c(37567);function n(a){return h.YO(h.Yj()).default(()=>JSON.parse(a)).transform(a=>JSON.stringify(a))}let o=h.Ik({path:h.Yj().min(1,"path is required"),name:h.Yj().min(1,"name is required"),defaultBranch:h.Yj().min(1).default("main"),queueLabel:h.Yj().min(1).default("drydock:queue"),workingLabel:h.Yj().min(1).default("drydock:working"),needsHumanLabel:h.Yj().min(1).default("drydock:needs-human"),defaultModel:h.Yj().min(1).refine(l.WM,{message:"unknown model id"}).default("claude-opus-4-8"),agent:h.k5(["claude","codex"]).default("claude"),platform:h.k5(["github","gitlab"]).default("github"),apiBaseUrl:h.Yj().refine(a=>""===a||(0,k.g)(a),{message:"apiBaseUrl must be an absolute http(s) URL"}).nullish(),apiToken:h.Yj().nullish(),dailyCostLimitUsd:h.ai().nonnegative().default(10),adrGating:h.zM().default(!1),sequential:h.zM().default(!0),autoTriageEnabled:h.zM().default(!1),autoProcessEnabled:h.zM().default(!1),autoHealCi:h.zM().default(!1),autoReviewFeedback:h.zM().default(!1),autoResolveMergeConflicts:h.zM().default(!1),includeProgressReplies:h.zM().default(!1),autoDecompose:h.zM().default(!1),verifyPr:h.zM().default(!1),autoHealDeployments:h.zM().default(!1),releaseEnabled:h.zM().default(!1),deploymentPlatform:h.k5(["vercel","railway"]).nullish(),readyLabels:n('["ready","ready-for-agent","ready-to-work"]'),blockingLabels:n('["blocked","question","needs-human","needs-discussion","wontfix","duplicate","invalid"]'),autoLabelWhitelist:n('["bug","enhancement","documentation","ready"]'),priorityAuthors:n("[]"),trustedReviewers:n("[]"),ignoredBots:n('["dependabot[bot]","github-actions[bot]","codecov[bot]"]'),minAuthorAssociation:h.k5(["approved","any"]).default("approved"),maxAttempts:h.ai().int().positive().default(3),maxJobCostUsd:h.ai().nonnegative().nullish(),agentInstructions:h.Yj().max(m.v).nullish(),webhookSecret:h.Yj().nullish()});async function p(a){let b=function(a,b=(0,i.Lf)()){let c=o.parse(a);return b.insert(j.repos).values(c).returning().get()}(a);return(0,e.revalidatePath)("/"),(0,f.ej)(),b}async function q(a,b){let c=function(a,b,c=(0,i.Lf)()){let d=o.partial().parse(b),e=c.update(j.repos).set(d).where((0,g.eq)(j.repos.id,a)).returning().get();if(!e)throw Error(`repo ${a} not found`);return e}(a,b);return(0,e.revalidatePath)("/"),(0,e.revalidatePath)(`/repos/${a}`),(0,f.ej)(),c}async function r(a){!function(a,b=(0,i.Lf)()){b.delete(j.repos).where((0,g.eq)(j.repos.id,a)).run()}(a),(0,e.revalidatePath)("/"),(0,f.ej)()}(0,c(72269).D)([p,q,r]),(0,d.A)(p,"4089bb57b402540defb9a432bb995070016369e18e",null),(0,d.A)(q,"6049326c9eeafc5ce32fcdc2f0ef082947f86cbecd",null),(0,d.A)(r,"40298ec570944af01628c1aa6e6a74bc94efabdd33",null)},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},59985:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,30426,23)),Promise.resolve().then(c.bind(c,20096)),Promise.resolve().then(c.bind(c,49033)),Promise.resolve().then(c.bind(c,7050)),Promise.resolve().then(c.bind(c,39425)),Promise.resolve().then(c.bind(c,34736)),Promise.resolve().then(c.bind(c,72693))},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63943:(a,b,c)=>{"use strict";c.d(b,{RepoAutomationBar:()=>i});var d=c(37477),e=c(54848),f=c(50720),g=c(49542);function h(a){try{let b=JSON.parse(a);return Array.isArray(b)?b.filter(a=>"string"==typeof a):[]}catch{return[]}}function i({repo:a}){let[b,c]=(0,e.useState)(a.autoTriageEnabled),[j,k]=(0,e.useState)(a.autoProcessEnabled),[l,m]=(0,e.useState)(a.autoHealCi),[n,o]=(0,e.useState)(a.autoReviewFeedback),[p,q]=(0,e.useState)(a.autoDecompose),[r,s]=(0,e.useState)(a.verifyPr),[t,u]=(0,e.useState)(a.autoHealDeployments),[v,w]=(0,e.useState)(a.releaseEnabled),[x,y]=(0,e.useState)(a.autoResolveMergeConflicts),[z,A]=(0,e.useState)(a.includeProgressReplies),[B,C]=(0,e.useState)(h(a.readyLabels).join(", ")),[D,E]=(0,e.useState)(h(a.blockingLabels).join(", ")),[F,G]=(0,e.useState)(h(a.autoLabelWhitelist).join(", ")),[H,I]=(0,e.useState)(h(a.priorityAuthors).join(", ")),[J,K]=(0,e.useState)(h(a.trustedReviewers).join(", ")),[L,M]=(0,e.useState)(h(a.ignoredBots).join(", ")),[N,O]=(0,e.useState)(a.minAuthorAssociation),[P,Q]=(0,e.useState)(a.deploymentPlatform??""),[R,S]=(0,e.useState)(a.maxAttempts),[T,U]=(0,e.useState)(a.agentInstructions??""),[V,W]=(0,e.useTransition)(),[X,Y]=(0,e.useState)(!1),{error:Z}=(0,f.d)();function $(b){Y(!1),W(async()=>{try{await (0,g.u)(a.id,b),Y(!0),setTimeout(()=>Y(!1),1500)}catch(a){Z("Failed to update automation",a instanceof Error?a.message:String(a))}})}let _=(a,b,c,e,f)=>(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted-foreground",htmlFor:a,children:[b,(0,d.jsx)("input",{id:a,value:c,onChange:a=>e(a.target.value),onBlur:()=>$({[f]:[...new Set(c.split(/[,\n]/).map(a=>a.trim()).filter(Boolean))]}),placeholder:"comma-separated",className:"rounded border border-card-border bg-background px-2 py-1 text-sm text-foreground"})]});return(0,d.jsxs)("div",{className:"space-y-3 rounded-xl border border-card-border bg-card p-3 text-sm",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-4",children:[(0,d.jsx)("span",{className:"text-sm font-semibold",children:"Automation"}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:b,onChange:a=>{c(a.target.checked),$({autoTriageEnabled:a.target.checked})}}),"Auto-triage new issues"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:j,onChange:a=>{k(a.target.checked),$({autoProcessEnabled:a.target.checked})}}),"Auto-process ready issues"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:l,onChange:a=>{m(a.target.checked),$({autoHealCi:a.target.checked})}}),"Auto-heal failing CI"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:n,onChange:a=>{o(a.target.checked),$({autoReviewFeedback:a.target.checked})}}),"Address PR review feedback"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:p,onChange:a=>{q(a.target.checked),$({autoDecompose:a.target.checked})}}),"Decompose large issues"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:r,onChange:a=>{s(a.target.checked),$({verifyPr:a.target.checked})}}),"Verify PR satisfies issue"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:t,onChange:a=>{u(a.target.checked),$({autoHealDeployments:a.target.checked})}}),"Heal failed deployments"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,d.jsx)("input",{type:"checkbox",checked:v,onChange:a=>{w(a.target.checked),$({releaseEnabled:a.target.checked})}}),"Manage releases"]}),V&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Saving…"}),X&&(0,d.jsx)("span",{className:"text-xs text-success-foreground",children:"Saved"})]}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Opt-in. All stages are off by default and consume paid agent usage. Triage may only apply whitelisted labels; auto-processing works issues that are ",(0,d.jsx)("em",{children:"ready"})," and not blocked; auto-heal attempts bounded, verified fixes for failing CI (never external or AI-review checks). PR review feedback is applied only for trusted reviewers (bots ignored) and runs the mechanical iteration for you. Decomposing large issues splits them into ordered, tracked subtasks (checklist/heading heuristics, with an agent fallback for prose). Verifying a PR runs a read-only pass after it opens that checks whether the diff actually satisfies the issue and its subtasks, flags what remains, and never changes state on failure. Deployment healing monitors a merged PR's deployment and, on failure, opens a follow-up fix PR with the captured logs. Managing releases evaluates merged PRs since the last tag, decides the semver bump, and publishes a release — gated by a global kill-switch and fully previewable. Drydock never auto-merges — a human always reviews the PR."]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[_("ready-labels","Ready labels",B,C,"readyLabels"),_("blocking-labels","Blocking labels",D,E,"blockingLabels"),_("whitelist","Auto-label whitelist",F,G,"autoLabelWhitelist"),_("priority-authors","Priority authors",H,I,"priorityAuthors"),_("trusted-reviewers","Trusted reviewers (feedback)",J,K,"trustedReviewers"),_("ignored-bots","Ignored bots (feedback)",L,M,"ignoredBots"),(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted-foreground",htmlFor:"min-assoc",children:["Act on authors",(0,d.jsxs)("select",{id:"min-assoc",value:N,onChange:a=>{O(a.target.value),$({minAuthorAssociation:a.target.value})},className:"rounded border border-card-border bg-background px-2 py-1 text-sm text-foreground",children:[(0,d.jsx)("option",{value:"approved",children:"Owners / members / collaborators"}),(0,d.jsx)("option",{value:"any",children:"Anyone (public participation)"})]})]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",htmlFor:"resolve-conflicts",children:[(0,d.jsx)("input",{id:"resolve-conflicts",type:"checkbox",checked:x,onChange:a=>{y(a.target.checked),$({autoResolveMergeConflicts:a.target.checked})}}),"Repair trivial merge conflicts"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",htmlFor:"progress-replies",children:[(0,d.jsx)("input",{id:"progress-replies",type:"checkbox",checked:z,onChange:a=>{A(a.target.checked),$({includeProgressReplies:a.target.checked})}}),"Post progress replies"]}),(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted-foreground",htmlFor:"deploy-platform",children:["Deployment platform (healing)",(0,d.jsxs)("select",{id:"deploy-platform",value:P,onChange:a=>{Q(a.target.value),$({deploymentPlatform:a.target.value?a.target.value:null})},className:"rounded border border-card-border bg-background px-2 py-1 text-sm text-foreground",children:[(0,d.jsx)("option",{value:"",children:"Auto-detect"}),(0,d.jsx)("option",{value:"vercel",children:"Vercel"}),(0,d.jsx)("option",{value:"railway",children:"Railway"})]})]}),(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted-foreground",htmlFor:"max-attempts",children:["Max attempts",(0,d.jsx)("input",{id:"max-attempts",type:"number",min:1,step:1,value:R,onChange:a=>S(Number(a.target.value)),onBlur:()=>$({maxAttempts:R}),className:"w-24 rounded border border-card-border bg-background px-2 py-1 text-sm text-foreground"})]})]}),(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted-foreground",htmlFor:"agent-instructions",children:["Agent instructions",(0,d.jsx)("textarea",{id:"agent-instructions",value:T,maxLength:4e3,rows:4,onChange:a=>U(a.target.value),onBlur:()=>$({agentInstructions:T.trim()||null}),placeholder:'Per-repo guidance injected into the work prompt — e.g. coding conventions, "always run pnpm test", "don\'t touch legacy/", preferred PR style.',className:"rounded border border-card-border bg-background px-2 py-1 font-mono text-sm text-foreground"}),(0,d.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:["Optional. Appended to the work prompt as a dedicated section. Max"," ",4e3," characters; empty leaves the prompt unchanged."]})]})]})}},68298:(a,b,c)=>{"use strict";c.d(b,{E:()=>i});var d=c(39747),e=c(10268);let f={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"},g={queued:"neutral",working:"primary",ci_running:"warning",ci_failed:"destructive",retrying:"warning",merged:"success",needs_human:"destructive",aborted:"neutral",interrupted:"warning"},h=new Set(["working","ci_running","retrying"]);function i({className:a,status:b,tone:c,children:j,...k}){let l=c??(b?g[b]??"neutral":"neutral"),m=void 0!==b&&h.has(b);return(0,d.jsxs)("span",{className:(0,e.cn)("inline-flex items-center gap-1.5 whitespace-nowrap rounded-md border px-2 py-0.5 text-[11px] font-semibold leading-4",f[l],a),...k,children:[m&&(0,d.jsxs)("span",{className:"relative flex h-1.5 w-1.5",children:[(0,d.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-current opacity-60"}),(0,d.jsx)("span",{className:"relative inline-flex h-1.5 w-1.5 rounded-full bg-current"})]}),j??b?.replace(/_/g," ")]})}},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},72693:(a,b,c)=>{"use strict";c.d(b,{RepoWebhookPanel:()=>d});let d=(0,c(37251).registerClientReference)(function(){throw Error("Attempted to call RepoWebhookPanel() from the server but RepoWebhookPanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/drydock/drydock/src/components/repo-webhook-panel.tsx","RepoWebhookPanel")},72935:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"0091e788d04117a34b2cb0037b45b7f1f53987ba91":()=>e.MA,"00e11e1cd8053120843b8dd2d222841edf7946ac37":()=>d.o$,"4002bc1bf0917e2037b42d22fa2055f5dadadace27":()=>n,"4010b8b40072f29c6a0fe100fbd97f4f7ce63fa76f":()=>e.r6,"4011e21222e2b56613c057bbde429dbabe6a309359":()=>d.aE,"40298ec570944af01628c1aa6e6a74bc94efabdd33":()=>B.VL,"406ec111693d339611cf8ea33d5f97241962673b65":()=>d.AU,"40739d805ab454e5a3e677797218255a0f14b83852":()=>K,"4089bb57b402540defb9a432bb995070016369e18e":()=>B.oW,"40e2ea9be4fefe1f1db7e95e67f449495ca39b1942":()=>L,"40f753c4fb4fd148c1b57eb92aec027419e39cfa6c":()=>e.$y,"60446dececaa42785ab034a6e859f841d6be712509":()=>w,"6049326c9eeafc5ce32fcdc2f0ef082947f86cbecd":()=>B.u3,"604946766a78c03e7534b653f8095ce8f0fc2775d6":()=>s,"6095ab8d6f3bdb79ba20b2d74944241a85bb8c04f9":()=>t,"60acfafd829b95bc79c695cfef3502cc51e3ad2c16":()=>o,"60d93a9c0a198c749679a771e22e3ceaf53e959aef":()=>v,"60fb3c0b67f6c29762084ab3bd836996c22d6451f9":()=>r,"70086ad1dae1a50e17fc5411b618128f813e2f7b8b":()=>x,"7033ed62475545493a07d7a8b8c5785e3809edfd44":()=>q,"7083e49388a7fc48b69ba047c2e4b0b82eebc826ea":()=>p,"70959693b0516dd5ab898508f71c8e075a0dae5306":()=>y,"70a022d903a559ada6dc1baa58d009ad08ff8f9466":()=>A,"70e7eb2993a36a1b29558a593e50289f042eeb72dc":()=>u,"78d230388e73c05547b26d5a9d723a7d1c08333f6e":()=>z});var d=c(6844),e=c(99773),f=c(15465),g=c(66406),h=c(40129),i=c(84656),j=c(69914),k=c(71218),l=c(15629),m=c(72269);async function n(a){let b=await (0,j.GX)(a);return(0,g.revalidatePath)(`/repos/${a}`),b}async function o(a,b){(0,j.mU)(a,b),(0,g.revalidatePath)(`/repos/${a}`)}async function p(a,b,c={}){let d=(0,h.L8)(a);if(!d)throw Error(`repo ${a} not found`);let e=(0,l._S)({repoId:a,issueNumber:b,model:c.model??d.defaultModel,agent:c.agent});return(0,g.revalidatePath)(`/repos/${a}`),e}async function q(a,b,c={}){let d=await (0,j.xt)(a,b,c);return(0,g.revalidatePath)(`/repos/${a}`),d}async function r(a,b){let c=await (0,j.c1)(a,b);return(0,g.revalidatePath)(`/repos/${a}`),c}async function s(a,b){let c=await (0,j.CY)(a,b);return(0,g.revalidatePath)(`/repos/${a}`),c}async function t(a,b){let c=await (0,j.RC)(a,b);return(0,g.revalidatePath)(`/repos/${a}`),c}async function u(a,b,c){let d=await (0,j.NV)(a,b,c);return(0,g.revalidatePath)(`/repos/${a}`),d}async function v(a,b){let c=(0,h.L8)(a);if(!c)throw Error(`repo ${a} not found`);return(0,i.Ie)(c).viewIssue(b)}async function w(a,b){return(0,k.t0)(a,b)}async function x(a,b,c){let d=(0,h.L8)(a);if(!d)throw Error(`repo ${a} not found`);await (0,i.Ie)(d).editIssue(b,c),(0,g.revalidatePath)(`/repos/${a}`)}async function y(a,b,c){let d=(0,h.L8)(a);if(!d)throw Error(`repo ${a} not found`);await (0,i.Ie)(d).commentIssue(b,c)}async function z(a,b,c,d){await (0,j.Fg)(a,b,c,d),(0,g.revalidatePath)(`/repos/${a}`)}async function A(a,b,c){let d=(0,h.L8)(a);if(!d)throw Error(`repo ${a} not found`);let e=(0,i.Ie)(d);"closed"===c?await e.closeIssue(b):await e.reopenIssue(b),(0,g.revalidatePath)(`/repos/${a}`)}(0,m.D)([n,o,p,q,r,s,t,u,v,w,x,y,z,A]),(0,f.A)(n,"4002bc1bf0917e2037b42d22fa2055f5dadadace27",null),(0,f.A)(o,"60acfafd829b95bc79c695cfef3502cc51e3ad2c16",null),(0,f.A)(p,"7083e49388a7fc48b69ba047c2e4b0b82eebc826ea",null),(0,f.A)(q,"7033ed62475545493a07d7a8b8c5785e3809edfd44",null),(0,f.A)(r,"60fb3c0b67f6c29762084ab3bd836996c22d6451f9",null),(0,f.A)(s,"604946766a78c03e7534b653f8095ce8f0fc2775d6",null),(0,f.A)(t,"6095ab8d6f3bdb79ba20b2d74944241a85bb8c04f9",null),(0,f.A)(u,"70e7eb2993a36a1b29558a593e50289f042eeb72dc",null),(0,f.A)(v,"60d93a9c0a198c749679a771e22e3ceaf53e959aef",null),(0,f.A)(w,"60446dececaa42785ab034a6e859f841d6be712509",null),(0,f.A)(x,"70086ad1dae1a50e17fc5411b618128f813e2f7b8b",null),(0,f.A)(y,"70959693b0516dd5ab898508f71c8e075a0dae5306",null),(0,f.A)(z,"78d230388e73c05547b26d5a9d723a7d1c08333f6e",null),(0,f.A)(A,"70a022d903a559ada6dc1baa58d009ad08ff8f9466",null);var B=c(52229),C=c(65332),D=c(55710),E=c(36212),F=c(35078),G=c(77173),H=c(38529),I=c(51605);function J(a){let b=(0,D.Lf)(),c=(0,h.L8)(a,b);if(!c)throw Error(`repo ${a} not found`);if(!(0,I.mt)(b).releaseManagementEnabled)throw Error("Release management is disabled globally.");if(!(0,H.A)(c).releaseEnabled)throw Error("Release management is not enabled for this repo.");let d=(0,i.Ie)(c);if("function"!=typeof d.listReleases||"function"!=typeof d.listMergedPrs||"function"!=typeof d.createRelease)throw Error("This repo's forge does not support releases.");let e=(0,C.X$)(c.agent);return{db:b,repo:c,forge:d,provider:e,command:(0,E.m)(e,b),model:c.defaultModel}}async function K(a){let{forge:b,provider:c,command:d,model:e}=J(a);return(0,F.NF)({provider:c,command:d,model:e},a=>(0,F.st)({forge:b,generate:a}))}async function L(a){let{db:b,repo:c,forge:d,provider:e,command:f,model:h}=J(a),i=(0,G.v0)({repoId:c.id,mode:"manual"},b);return await (0,F.NF)({provider:e,command:f,model:h},a=>(0,F.Dl)(i.id,{repo:c,forge:d,db:b,generate:a})),(0,g.revalidatePath)(`/repos/${a}`),(0,G.Dn)(c.id,b)}(0,m.D)([K,L]),(0,f.A)(K,"40739d805ab454e5a3e677797218255a0f14b83852",null),(0,f.A)(L,"40e2ea9be4fefe1f1db7e95e67f449495ca39b1942",null)},73024:a=>{"use strict";a.exports=require("node:fs")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},77927:(a,b,c)=>{"use strict";c.d(b,{LogViewer:()=>g});var d=c(37477),e=c(54848),f=c(70780);function g({jobId:a,initial:b=[]}){let[c,h]=(0,e.useState)(b);return(0,e.useRef)(new Set(b.map(a=>a.id))),(0,d.jsx)("div",{role:"log","aria-live":"polite","aria-label":"Job log stream",className:"h-96 rounded border border-card-border",children:(0,d.jsx)(f.aY,{data:c,followOutput:"smooth",itemContent:(a,b)=>(0,d.jsxs)("div",{className:"px-3 py-1 font-mono text-xs",children:[(0,d.jsx)("span",{className:"mr-2 text-muted-foreground",children:b.type}),(0,d.jsx)("span",{children:"string"==typeof b.payload?b.payload:JSON.stringify(b.payload)})]})})})}},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81630:a=>{"use strict";a.exports=require("http")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},95941:(a,b,c)=>{"use strict";c.d(b,{RepoReleasePanel:()=>m});var d=c(37477),e=c(54848),f=c(8552),g=c(78233),h=c(50720),i=c(47609);let j=(0,i.createServerReference)("40739d805ab454e5a3e677797218255a0f14b83852",i.callServer,void 0,i.findSourceMapURL,"previewReleaseAction"),k=(0,i.createServerReference)("40e2ea9be4fefe1f1db7e95e67f449495ca39b1942",i.callServer,void 0,i.findSourceMapURL,"publishReleaseAction"),l={detected:"neutral",evaluating:"neutral",proposed:"primary",publishing:"warning",published:"success",skipped:"neutral",error:"destructive"};function m({repoId:a,initialRuns:b}){let[c,i]=(0,e.useState)(b),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useTransition)(),{error:r,success:s}=(0,h.d)();return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("h2",{className:"text-sm font-semibold uppercase tracking-wide text-muted-foreground",children:"Releases"}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(g.$,{variant:"outline",size:"sm",onClick:function(){q(async()=>{try{o(await j(a))}catch(a){r("Preview failed",a instanceof Error?a.message:String(a))}})},disabled:p,children:"Preview"}),(0,d.jsx)(g.$,{size:"sm",onClick:function(){q(async()=>{try{let b=await k(a);i(b),o(null),s("Release published","A release run was cut from the latest changes.")}catch(a){r("Publish failed",a instanceof Error?a.message:String(a))}})},disabled:p,children:"Publish release"})]})]}),n&&(0,d.jsxs)("div",{className:"space-y-1 rounded-lg border border-card-border bg-card p-3 text-sm",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-medium",children:"Proposed:"}),(0,d.jsx)(f.E,{tone:"primary",children:n.candidateTag}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:[n.fromTag?`from ${n.fromTag}`:"first release"," \xb7 ",n.bump," \xb7"," ",n.shouldRelease?"release recommended":"no release recommended"]})]}),(0,d.jsxs)("ul",{className:"text-xs text-muted-foreground",children:[n.prs.map(a=>(0,d.jsxs)("li",{children:["#",a.number," ",a.title]},a.number)),0===n.prs.length&&(0,d.jsx)("li",{children:"No unreleased pull requests."})]})]}),(0,d.jsxs)("ul",{className:"space-y-1",children:[c.map(a=>(0,d.jsxs)("li",{className:"flex items-center gap-2 text-sm",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:a.mode}),a.tag&&(0,d.jsx)("span",{className:"font-medium",children:a.tag}),null!=a.triggerPrNumber&&(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["PR #",a.triggerPrNumber]}),(0,d.jsx)(f.E,{tone:l[a.status]??"neutral",children:a.status}),a.errorMessage&&(0,d.jsx)("span",{className:"ml-auto truncate text-xs text-destructive",title:a.errorMessage,children:a.errorMessage})]},a.id)),0===c.length&&(0,d.jsx)("li",{className:"text-sm text-muted-foreground",children:"No release runs yet."})]})]})}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[692,0,895,251,785,868,859,541,318,468,675,75],()=>b(b.s=19208));module.exports=c})();