@mndrk/agx 2.4.10 → 2.4.11

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 (511) hide show
  1. package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +7 -0
  3. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +5 -5
  4. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +47 -0
  6. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page/build-manifest.json +3 -3
  7. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +2 -2
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page/build-manifest.json +3 -3
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page/next-font-manifest.json +3 -1
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js +1 -1
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +3 -3
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page/build-manifest.json +3 -3
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page/next-font-manifest.json +3 -1
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js +1 -1
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page/build-manifest.json +3 -3
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page/next-font-manifest.json +3 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js +1 -1
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +5 -3
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +5 -3
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +3 -3
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +5 -3
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +1 -1
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/route.js +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/active-agents/route.js +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/active-agents/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/route.js +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js +1 -1
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route/app-paths-manifest.json +3 -0
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route/build-manifest.json +11 -0
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route/server-reference-manifest.json +4 -0
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route.js +7 -0
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route.js.map +5 -0
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route.js.nft.json +1 -0
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route_client-reference-manifest.js +2 -0
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route/app-paths-manifest.json +3 -0
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route/build-manifest.json +11 -0
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route/server-reference-manifest.json +4 -0
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route.js +7 -0
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route.js.map +5 -0
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route.js.nft.json +1 -0
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route_client-reference-manifest.js +2 -0
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route/app-paths-manifest.json +3 -0
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route/build-manifest.json +11 -0
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route/server-reference-manifest.json +4 -0
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route.js +7 -0
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route.js.map +5 -0
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route.js.nft.json +1 -0
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route_client-reference-manifest.js +2 -0
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route/app-paths-manifest.json +3 -0
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route/build-manifest.json +11 -0
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route/server-reference-manifest.json +4 -0
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route.js +7 -0
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route.js.map +5 -0
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route.js.nft.json +1 -0
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route_client-reference-manifest.js +2 -0
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route/app-paths-manifest.json +3 -0
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route/build-manifest.json +11 -0
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route/server-reference-manifest.json +4 -0
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route.js +7 -0
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route.js.map +5 -0
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route.js.nft.json +1 -0
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route_client-reference-manifest.js +2 -0
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route/app-paths-manifest.json +3 -0
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route/build-manifest.json +11 -0
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route/server-reference-manifest.json +4 -0
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route.js +7 -0
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route.js.map +5 -0
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route.js.nft.json +1 -0
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route_client-reference-manifest.js +2 -0
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route.js.nft.json +1 -1
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route.js.nft.json +1 -1
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route.js.nft.json +1 -1
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/api/messages/[id]/route.js +1 -1
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/api/processes/route.js +1 -1
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/api/processes/route.js.nft.json +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/api/system/db-status/route.js +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/active-agents/route.js +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/active-agents/route.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/auth/route.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/callback/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/groups/route.js.nft.json +1 -1
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/activity/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js.nft.json +1 -1
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/route.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/route.js.nft.json +1 -1
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route.js.nft.json +1 -1
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route.js.nft.json +1 -1
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/mcp-setup/route.js.nft.json +1 -1
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route.js.nft.json +1 -1
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/options/route.js.nft.json +1 -1
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/[id]/route.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/route.js.nft.json +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js +1 -1
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js.nft.json +1 -1
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route.js.nft.json +1 -1
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route.js.nft.json +1 -1
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route.js.nft.json +1 -1
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/connections/route.js.nft.json +1 -1
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js +1 -1
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js.nft.json +1 -1
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +6 -4
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +6 -4
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +3 -3
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +5 -3
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/build-manifest.json +3 -3
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/next-font-manifest.json +3 -1
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page.js +1 -1
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page.js.nft.json +1 -1
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page_client-reference-manifest.js +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.html +2 -2
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.rsc +5 -3
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_full.segment.rsc +5 -3
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_head.segment.rsc +1 -1
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_index.segment.rsc +3 -3
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_tree.segment.rsc +5 -3
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos/__PAGE__.segment.rsc +1 -1
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos.segment.rsc +1 -1
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations.segment.rsc +1 -1
  197. package/cloud-runtime/standalone/apps/local/.next/server/app/page/build-manifest.json +3 -3
  198. package/cloud-runtime/standalone/apps/local/.next/server/app/page/next-font-manifest.json +3 -1
  199. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js +1 -1
  200. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
  201. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  202. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/build-manifest.json +3 -3
  203. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/next-font-manifest.json +3 -1
  204. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js +1 -1
  205. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  206. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  207. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page/build-manifest.json +3 -3
  208. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page/next-font-manifest.json +3 -1
  209. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js +1 -1
  210. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  211. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  212. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/build-manifest.json +3 -3
  213. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/next-font-manifest.json +3 -1
  214. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  216. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  217. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +3 -3
  218. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page/next-font-manifest.json +3 -1
  219. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js +1 -1
  220. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  221. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  222. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/build-manifest.json +3 -3
  223. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/next-font-manifest.json +3 -1
  224. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js +1 -1
  225. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js.nft.json +1 -1
  226. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page_client-reference-manifest.js +1 -1
  227. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page/build-manifest.json +3 -3
  228. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page/next-font-manifest.json +3 -1
  229. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js +1 -1
  230. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  231. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  232. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page/build-manifest.json +3 -3
  233. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page/next-font-manifest.json +3 -1
  234. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js +1 -1
  235. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  236. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  237. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page/build-manifest.json +3 -3
  238. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page/next-font-manifest.json +3 -1
  239. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js +1 -1
  240. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  241. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  242. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/app-paths-manifest.json +3 -0
  243. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/build-manifest.json +18 -0
  244. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/next-font-manifest.json +13 -0
  245. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/react-loadable-manifest.json +1 -0
  246. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/server-reference-manifest.json +4 -0
  247. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page.js +16 -0
  248. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page.js.map +5 -0
  249. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page.js.nft.json +1 -0
  250. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page_client-reference-manifest.js +2 -0
  251. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/build-manifest.json +3 -3
  252. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/next-font-manifest.json +3 -1
  253. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js +1 -1
  254. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js.nft.json +1 -1
  255. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page_client-reference-manifest.js +1 -1
  256. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page/build-manifest.json +3 -3
  257. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page/next-font-manifest.json +3 -1
  258. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js +1 -1
  259. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  260. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page/build-manifest.json +3 -3
  262. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page/next-font-manifest.json +3 -1
  263. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js +1 -1
  264. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  265. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page/build-manifest.json +3 -3
  267. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page/next-font-manifest.json +3 -1
  268. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js +1 -1
  269. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  271. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page/build-manifest.json +3 -3
  272. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page/next-font-manifest.json +3 -1
  273. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js +1 -1
  274. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  275. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  276. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page/build-manifest.json +3 -3
  277. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page/next-font-manifest.json +3 -1
  278. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js +1 -1
  279. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  280. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  281. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page/build-manifest.json +3 -3
  282. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page/next-font-manifest.json +3 -1
  283. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js +1 -1
  284. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  285. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  286. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page/build-manifest.json +3 -3
  287. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page/next-font-manifest.json +3 -1
  288. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js +1 -1
  289. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  290. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  291. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page/build-manifest.json +3 -3
  292. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page/next-font-manifest.json +3 -1
  293. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js +1 -1
  294. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  295. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  296. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/build-manifest.json +3 -3
  297. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/next-font-manifest.json +3 -1
  298. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js +1 -1
  299. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js.nft.json +1 -1
  300. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page_client-reference-manifest.js +1 -1
  301. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page/build-manifest.json +3 -3
  302. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page/next-font-manifest.json +3 -1
  303. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js +1 -1
  304. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js.nft.json +1 -1
  305. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page_client-reference-manifest.js +1 -1
  306. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/build-manifest.json +3 -3
  307. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/next-font-manifest.json +3 -1
  308. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js +1 -1
  309. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js.nft.json +1 -1
  310. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page_client-reference-manifest.js +1 -1
  311. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/build-manifest.json +3 -3
  312. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/next-font-manifest.json +3 -1
  313. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js +1 -1
  314. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js.nft.json +1 -1
  315. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page_client-reference-manifest.js +1 -1
  316. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page/build-manifest.json +3 -3
  317. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page/next-font-manifest.json +3 -1
  318. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js +1 -1
  319. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
  320. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  321. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  322. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +5 -3
  323. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +5 -3
  324. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  325. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +3 -3
  326. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +5 -3
  327. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  328. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  329. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page/build-manifest.json +3 -3
  330. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page/next-font-manifest.json +3 -1
  331. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js +1 -1
  332. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  333. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  334. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  335. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +6 -4
  336. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +6 -4
  337. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  338. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +3 -3
  339. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +5 -3
  340. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
  341. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  342. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page/build-manifest.json +3 -3
  343. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page/next-font-manifest.json +3 -1
  344. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js +1 -1
  345. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
  346. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  347. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  348. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +6 -4
  349. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +6 -4
  350. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  351. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +3 -3
  352. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +5 -3
  353. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  354. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  355. package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +7 -0
  356. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__037eb67e._.js +3 -0
  357. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__97e7a600._.js → [root-of-the-server]__0ce28b4a._.js} +2 -2
  358. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2564bd1e._.js +3 -0
  359. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__26904897._.js +3 -0
  360. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__f48224f7._.js → [root-of-the-server]__273384ad._.js} +2 -2
  361. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__bdc396a9._.js → [root-of-the-server]__2d6f22a3._.js} +2 -2
  362. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__af70f062._.js → [root-of-the-server]__3a038592._.js} +2 -2
  363. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__9cb1dc55._.js → [root-of-the-server]__3b27260f._.js} +2 -2
  364. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__1321970e._.js → [root-of-the-server]__5da8d281._.js} +2 -2
  365. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__92d34a52._.js → [root-of-the-server]__69a60d71._.js} +2 -2
  366. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__66437bd3._.js → [root-of-the-server]__6edb829d._.js} +2 -2
  367. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__870fac73._.js → [root-of-the-server]__8cb4fb94._.js} +2 -2
  368. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__95298612._.js +3 -0
  369. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__aa1b171a._.js +3 -0
  370. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b719a2ed._.js +3 -0
  371. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__94f42197._.js → [root-of-the-server]__be9b56bb._.js} +2 -2
  372. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c57c0958._.js +3 -0
  373. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__cce177d8._.js +3 -0
  374. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e33b34ce._.js +3 -0
  375. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__61c40dc9._.js → [root-of-the-server]__ee43b5b0._.js} +2 -2
  376. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_1d99e7a5._.js +1 -1
  377. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_56a2544c._.js +2 -2
  378. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5843a1a1._.js +2 -2
  379. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_git_diff_route_actions_5ed8f528.js +3 -0
  380. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_git_repos_route_actions_24bb70fb.js +3 -0
  381. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_git_workspaces_route_actions_2ffcb8e1.js +3 -0
  382. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_prs_[id]_route_actions_97f96f83.js +3 -0
  383. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_bd72806a._.js +2 -2
  384. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_6bd3d8a2._.js +12 -12
  385. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_cli-runner_ts_ead5489c._.js +12 -12
  386. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_d268503a._.js +12 -12
  387. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_46384f36._.js +1 -1
  388. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_git_workspaces_refresh_route_actions_6586e386.js +3 -0
  389. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_git_workspaces_rescan_route_actions_2566b872.js +3 -0
  390. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__14448535._.js +3 -0
  391. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__17c701d2._.js +3 -0
  392. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__ce586680._.js → [root-of-the-server]__24007358._.js} +2 -2
  393. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__263b7091._.js +2 -2
  394. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__2c4531d0._.js → [root-of-the-server]__6e4038bb._.js} +2 -2
  395. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__5f31e40b._.js → [root-of-the-server]__af9b12ac._.js} +2 -2
  396. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__c027b3e3._.js +15 -0
  397. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__9434d6d7._.js → [root-of-the-server]__c2331483._.js} +2 -2
  398. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__d8f968ee._.js +3 -0
  399. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_a0f42923._.js → _f2cf58ea._.js} +2 -2
  400. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_4d3f9c1e._.js +3 -0
  401. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_6d8c811a._.js +3 -0
  402. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_folders_page_tsx_72fb68e5._.js +1 -1
  403. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_9a67cfaf._.js +1 -1
  404. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_b87f08ce._.js +4 -0
  405. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_c012eb07._.js +3 -0
  406. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +3 -3
  407. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_prs_review_6ac47c7c._.js +3 -0
  408. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/ebff2__next-internal_server_app_projects_[slug]_prs_[prId]_page_actions_37d43e50.js +3 -0
  409. package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +6 -0
  410. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
  411. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  412. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
  413. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +93 -29
  414. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  415. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
  416. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  417. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  418. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16786eff1b844fce.css +1 -0
  419. package/cloud-runtime/standalone/apps/local/.next/static/chunks/38a2210cf8c5fa16.js +1 -0
  420. package/cloud-runtime/standalone/apps/local/.next/static/chunks/4f3bd9585037d960.js +16 -0
  421. package/cloud-runtime/standalone/apps/local/.next/static/chunks/60239e52ecfd3f7e.js +1 -0
  422. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{afad1102543847bf.js → 6135e7752be76b7e.js} +11 -11
  423. package/cloud-runtime/standalone/apps/local/.next/static/chunks/731deba285de6535.js +16 -0
  424. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7ca9570f1f269043.js +1 -0
  425. package/cloud-runtime/standalone/apps/local/.next/static/chunks/86c552479b09e1f3.js +1 -0
  426. package/cloud-runtime/standalone/apps/local/.next/static/chunks/8f6587b3b3255b54.js +16 -0
  427. package/cloud-runtime/standalone/apps/local/.next/static/chunks/a2eeffc281bd68bc.js +1 -0
  428. package/cloud-runtime/standalone/apps/local/.next/static/chunks/a68ffbf383609000.js +1 -0
  429. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b2c704fe1711d660.js +16 -0
  430. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b59bb2518194866e.css +1 -0
  431. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{72b4109642bf21f4.js → cb34ff86458b2477.js} +2 -2
  432. package/cloud-runtime/standalone/apps/local/.next/static/chunks/dc12676eea40fd39.css +4 -0
  433. package/cloud-runtime/standalone/apps/local/.next/static/chunks/de6617e175bb536b.js +1 -0
  434. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{turbopack-87f23485587f08c3.js → turbopack-90109c6adbc88193.js} +2 -2
  435. package/cloud-runtime/standalone/apps/local/.next/static/media/04c5164763c40239-s.690580e8.woff2 +0 -0
  436. package/cloud-runtime/standalone/apps/local/.next/static/media/051742360c26797e-s.p.102b7f24.woff2 +0 -0
  437. package/cloud-runtime/standalone/apps/local/.next/static/media/0ee4b8f05dcd9fee-s.45e2741a.woff2 +0 -0
  438. package/cloud-runtime/standalone/apps/local/.next/static/media/13ae3e01af63c0ce-s.3ec27879.woff2 +0 -0
  439. package/cloud-runtime/standalone/apps/local/.next/static/media/26f284dcc38c84c0-s.303a03d6.woff2 +0 -0
  440. package/cloud-runtime/standalone/apps/local/.next/static/media/6a5386fd6038edbe-s.719084df.woff2 +0 -0
  441. package/cloud-runtime/standalone/apps/local/.next/static/media/7e7f32a39836f228-s.0b4edfe7.woff2 +0 -0
  442. package/cloud-runtime/standalone/apps/local/.next/static/media/9eba4caf7edd2921-s.57f6a4a3.woff2 +0 -0
  443. package/cloud-runtime/standalone/apps/local/.next/static/media/ab57efd000576a30-s.p.37015d44.woff2 +0 -0
  444. package/cloud-runtime/standalone/apps/local/.next/static/media/b8d1f0a88dfecec3-s.cf53ec14.woff2 +0 -0
  445. package/cloud-runtime/standalone/apps/local/.next/static/media/f285987c35230861-s.b3721d2b.woff2 +0 -0
  446. package/cloud-runtime/standalone/apps/local/.next/static/media/f6752bd2263820da-s.95b8f539.woff2 +0 -0
  447. package/cloud-runtime/standalone/apps/local/.next/static/media/fa39153a3fc630ba-s.bff0868b.woff2 +0 -0
  448. package/cloud-runtime/standalone/apps/local/app/api/git/diff/route.ts +54 -0
  449. package/cloud-runtime/standalone/apps/local/app/api/git/repos/route.ts +47 -0
  450. package/cloud-runtime/standalone/apps/local/app/api/git/workspaces/refresh/route.ts +52 -0
  451. package/cloud-runtime/standalone/apps/local/app/api/git/workspaces/rescan/route.ts +23 -0
  452. package/cloud-runtime/standalone/apps/local/app/api/git/workspaces/route.ts +46 -0
  453. package/cloud-runtime/standalone/apps/local/app/api/github/prs/[id]/route.ts +28 -0
  454. package/cloud-runtime/standalone/apps/local/app/layout.tsx +14 -2
  455. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/prs/[prId]/page.tsx +13 -0
  456. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/prs/page.tsx +5 -4
  457. package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +27 -9
  458. package/cloud-runtime/standalone/apps/local/components/projects/RepoPathCombobox.tsx +301 -0
  459. package/cloud-runtime/standalone/apps/local/components/prs/review/AgentChip.tsx +61 -0
  460. package/cloud-runtime/standalone/apps/local/components/prs/review/CommitRail.tsx +149 -0
  461. package/cloud-runtime/standalone/apps/local/components/prs/review/DiffPane.tsx +294 -0
  462. package/cloud-runtime/standalone/apps/local/components/prs/review/FilesPane.tsx +216 -0
  463. package/cloud-runtime/standalone/apps/local/components/prs/review/PrReviewView.tsx +68 -0
  464. package/cloud-runtime/standalone/apps/local/components/prs/review/ReviewLayout.tsx +148 -0
  465. package/cloud-runtime/standalone/apps/local/components/prs/review/StatusBar.tsx +53 -0
  466. package/cloud-runtime/standalone/apps/local/components/prs/review/TopBar.tsx +137 -0
  467. package/cloud-runtime/standalone/apps/local/components/prs/review/review.module.css +112 -0
  468. package/cloud-runtime/standalone/apps/local/components/tracker/LinkedPrsSection.tsx +4 -3
  469. package/cloud-runtime/standalone/apps/local/components/tracker/TicketPanel.tsx +111 -25
  470. package/cloud-runtime/standalone/apps/local/components/tracker/TicketWorkspaceView.tsx +472 -0
  471. package/cloud-runtime/standalone/apps/local/components/tracker/WorkspacePicker.tsx +338 -0
  472. package/cloud-runtime/standalone/apps/local/hooks/useProviders.ts +1 -0
  473. package/cloud-runtime/standalone/apps/local/lib/cli-runner.ts +20 -0
  474. package/cloud-runtime/standalone/apps/local/lib/diff-parser.ts +56 -0
  475. package/cloud-runtime/standalone/apps/local/lib/gh-pr-cli.ts +198 -0
  476. package/cloud-runtime/standalone/apps/local/lib/git-diff-cli.ts +232 -0
  477. package/cloud-runtime/standalone/apps/local/lib/git-repo-index.ts +144 -0
  478. package/cloud-runtime/standalone/apps/local/lib/git-workspaces.ts +187 -0
  479. package/cloud-runtime/standalone/apps/local/lib/provider-clis.ts +12 -1
  480. package/cloud-runtime/standalone/apps/local/lib/repo-suggestions.ts +104 -0
  481. package/cloud-runtime/standalone/apps/local/lib/stream-multiplexer.ts +1 -0
  482. package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -1
  483. package/cloud-runtime/standalone/apps/local/server.ts +14 -0
  484. package/cloud-runtime/standalone/apps/local/src/graph/work-dispatcher.ts +1 -0
  485. package/cloud-runtime/standalone/apps/local/state/windowState.ts +20 -0
  486. package/cloud-runtime/standalone/apps/local/worker/index.js +23 -4
  487. package/lib/cli/runCli.js +20 -4
  488. package/package.json +1 -1
  489. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4ea9a658._.js +0 -3
  490. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6465e9c6._.js +0 -3
  491. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8ddbf4ca._.js +0 -3
  492. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__5187dece._.js +0 -15
  493. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__d08d7899._.js +0 -3
  494. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e3a1fef0._.js +0 -3
  495. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_16eaf7ae._.js +0 -3
  496. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_620cb123._.js +0 -3
  497. package/cloud-runtime/standalone/apps/local/.next/static/chunks/114ea1bfd6907330.js +0 -1
  498. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2473c16c0c2f6b5f.css +0 -2
  499. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2586c0baa16e9a0d.js +0 -16
  500. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5709a6f7c5c182d6.js +0 -1
  501. package/cloud-runtime/standalone/apps/local/.next/static/chunks/67b36c70b72e0e10.js +0 -1
  502. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6d8a7494a0cea7a0.css +0 -1
  503. package/cloud-runtime/standalone/apps/local/.next/static/chunks/aa3029ae0b62f930.js +0 -1
  504. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c5436b2b7e8f0ca9.js +0 -16
  505. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c8c0c4b13e08bb14.js +0 -1
  506. package/cloud-runtime/standalone/apps/local/.next/static/chunks/de56d09bb0de7dd5.js +0 -16
  507. package/cloud-runtime/standalone/apps/local/.next/static/chunks/e5fdfbbe9bae1f03.js +0 -1
  508. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f007705fe5db26f1.js +0 -16
  509. /package/cloud-runtime/standalone/apps/local/.next/static/{x7w3oijN4B1r7IvTuL96T → 5TAcMQcrkt4mBnsqrfw6B}/_buildManifest.js +0 -0
  510. /package/cloud-runtime/standalone/apps/local/.next/static/{x7w3oijN4B1r7IvTuL96T → 5TAcMQcrkt4mBnsqrfw6B}/_clientMiddlewareManifest.json +0 -0
  511. /package/cloud-runtime/standalone/apps/local/.next/static/{x7w3oijN4B1r7IvTuL96T → 5TAcMQcrkt4mBnsqrfw6B}/_ssgManifest.js +0 -0
@@ -0,0 +1,16 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,133232,e=>{"use strict";var t=e.i(762281),r=e.i(935851),n=e.i(208343),a=e.i(423709),s=e.i(498027),i=e.i(367859),l=e.i(906724);let o=(0,e.i(363732).default)("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]);function u({content:e,thoughts:r}){let s=(0,a.parseStreamSegments)(e);return(0,t.jsxs)("div",{className:"space-y-1",children:[r&&r.length>0&&r.map((e,r)=>(0,t.jsx)(c,{content:e},`thought-${r}`)),s.map((e,r)=>"text"===e.type?(0,t.jsx)("div",{className:"text-[15px] leading-relaxed",children:(0,t.jsx)(n.Markdown,{content:e.content,isUser:!1})},r):(0,t.jsx)(d,{name:e.name,input:e.input,pending:e.pending},r))]})}function c({content:e}){let[a,l]=(0,r.useState)(!1);return(0,t.jsxs)("div",{className:"text-xs text-[var(--muted-foreground)]",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>l(!a),className:"flex items-center gap-1.5 hover:text-[var(--foreground)] transition-colors py-1 font-medium",children:[a?(0,t.jsx)(s.ChevronDown,{className:"w-3 h-3"}):(0,t.jsx)(i.ChevronRight,{className:"w-3 h-3"}),(0,t.jsx)(o,{className:"w-3 h-3"}),(0,t.jsx)("span",{children:"Thinking"})]}),a&&(0,t.jsx)("div",{className:"ml-4 pl-3 border-l border-[var(--app-shell-border)] py-1 text-[var(--muted-foreground)] text-[13px] leading-relaxed",children:(0,t.jsx)(n.Markdown,{content:e,isUser:!1})})]})}function d({name:e,input:n,pending:a}){let[o,u]=(0,r.useState)(!1);return(0,t.jsxs)("div",{className:"text-xs text-[var(--muted-foreground)] font-medium",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>u(!o),className:"flex items-center gap-1.5 hover:text-[var(--foreground)] transition-colors py-1",children:[a?(0,t.jsx)(l.Loader2,{className:"w-3 h-3 animate-spin"}):o?(0,t.jsx)(s.ChevronDown,{className:"w-3 h-3"}):(0,t.jsx)(i.ChevronRight,{className:"w-3 h-3"}),(0,t.jsx)("span",{children:e}),a&&(0,t.jsx)("span",{className:"opacity-60",children:"running..."})]}),o&&n&&(0,t.jsx)("div",{className:"ml-4 pl-3 border-l border-[var(--app-shell-border)] py-1 text-[var(--muted-foreground)] whitespace-pre-wrap break-all max-h-40 overflow-y-auto font-mono text-[11px]",children:n})]})}e.s(["StreamingSegments",()=>u],133232)},982141,e=>{"use strict";let t="agx:lastRun",r="agx:lastSession";function n(){return void 0!==window.localStorage}function a(e){if(!n())return{};try{let t=window.localStorage.getItem(e);if(!t)return{};return JSON.parse(t)}catch{return{}}}function s(e,t){if(n())try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}}function i(e){return a(t)[e]??null}function l(e,r){let n=a(t);n[e]=r,s(t,n)}function o(e){return a(r)[e]??null}function u(e,t){let n=a(r);n[e]=t,s(r,n)}e.s(["loadLastRunForIssue",()=>i,"loadLastSessionForEntity",()=>o,"persistLastRunForIssue",()=>l,"persistLastSessionForEntity",()=>u])},276013,e=>{"use strict";var t=e.i(762281),r=e.i(935851);function n({onResize:e,className:n,ariaLabel:a}){let s=(0,r.useRef)(0),i=(0,r.useRef)(e);i.current=e;let l=(0,r.useCallback)(e=>{e.preventDefault(),s.current=e.clientX,document.body.style.cursor="col-resize",document.body.style.userSelect="none";let t=e=>{let t=e.clientX-s.current;s.current=e.clientX,i.current(t)},r=()=>{document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",r)};window.addEventListener("mousemove",t),window.addEventListener("mouseup",r)},[]);return(0,t.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":a,className:`group relative z-10 w-0 shrink-0 cursor-col-resize ${n??""}`,onMouseDown:l,children:(0,t.jsx)("div",{className:"absolute inset-y-0 -left-1 w-2 transition-colors group-hover:bg-[var(--primary)]/40"})})}e.s(["ResizeHandle",()=>n])},640481,e=>{"use strict";let t=(0,e.i(363732).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",()=>t],640481)},558201,e=>{"use strict";let t=(0,e.i(363732).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],558201)},781873,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return a}});let n=e.r(804984);function a({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new n.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},373512,(e,t,r)=>{"use strict";function n(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return n}})},974052,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return o}});let n=e.r(762281),a=e.r(866389),s=e.r(721014),i=e.r(373512),l=e.r(162998);function o({moduleIds:e}){if("u">typeof window)return null;let t=s.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let n=t.reactLoadableManifest;for(let t of e){if(!n[t])continue;let e=n[t].files;r.push(...e)}}if(0===r.length)return null;let o=(0,l.getDeploymentIdQueryOrEmptyString)();return(0,n.jsx)(n.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,i.encodeURIPath)(e)}${o}`;return e.endsWith(".css")?(0,n.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,a.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},184790,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return u}});let n=e.r(762281),a=e.r(935851),s=e.r(781873),i=e.r(974052);function l(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},u=function(e){let t={...o,...e},r=(0,a.lazy)(()=>t.loader().then(l)),u=t.loading;function c(e){let l=u?(0,n.jsx)(u,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,c=o?a.Suspense:a.Fragment,d=t.ssr?(0,n.jsxs)(n.Fragment,{children:["u"<typeof window?(0,n.jsx)(i.PreloadChunks,{moduleIds:t.modules}):null,(0,n.jsx)(r,{...e})]}):(0,n.jsx)(s.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(r,{...e})});return(0,n.jsx)(c,{...o?{fallback:l}:{},children:d})}return c.displayName="LoadableComponent",c}},353899,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let n=e.r(555682)._(e.r(184790));function a(e,t){let r={};"function"==typeof e&&(r.loader=e);let a={...r,...t};return(0,n.default)({...a,modules:a.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},638703,e=>{"use strict";var t=e.i(762281),r=e.i(498027);let n=(0,e.i(363732).default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);function a({visible:e,onClick:a,direction:s="bottom",label:i,offsetClassName:l}){if(!e)return null;let o="top"===s?n:r.ChevronDown;return(0,t.jsx)("div",{className:`pointer-events-none absolute inset-x-0 ${l??("top"===s?"top-3":"bottom-3")} z-10 flex justify-center`,children:(0,t.jsxs)("button",{type:"button",onClick:a,className:`pointer-events-auto inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] text-[var(--foreground)] text-xs font-medium shadow-md hover:bg-[var(--app-shell-elevated)] transition-colors animate-in fade-in ${"top"===s?"slide-in-from-top-1":"slide-in-from-bottom-1"} duration-200`,children:[(0,t.jsx)(o,{className:"w-3.5 h-3.5"}),i??("top"===s?"Back to top":"Jump to latest")]})})}e.s(["JumpToLatestButton",()=>a],638703)},741746,e=>{"use strict";let t=(0,e.i(363732).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",()=>t],741746)},889016,e=>{"use strict";let t=(0,e.i(363732).default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);e.s(["Tag",()=>t],889016)},794731,e=>{"use strict";let t=(0,e.i(363732).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],794731)},66386,e=>{"use strict";var t=e.i(935851),r=e.i(506420);function n(e){return"string"!=typeof e?null:e.trim()||null}function a(e,t){return(e.get(t)?.trim()??"")||null}function s(){let e=(0,r.useRouter)(),s=(0,r.usePathname)(),i=(0,r.useSearchParams)(),l=(0,t.useCallback)(e=>a(i,e),[i]),o=(0,t.useCallback)((e,t)=>(function(e,t,r){let s=function(e,t){let r={...t},s=e=>Object.prototype.hasOwnProperty.call(t,e);if(s("issue")&&!s("run")){let s=a(e,"issue");n(t.issue)!==s&&(r.run=null)}if(s("job")&&!s("run")){let s=a(e,"job");n(t.job)!==s&&(r.run=null)}if(s("open")&&!s("message")){let s=a(e,"open");n(t.open)!==s&&(r.message=null)}if(s("group")&&!s("issue")){let s=a(e,"group");n(t.group)!==s&&(r.issue=null,r.run=null)}if(s("issue")&&!s("group")){let s=a(e,"issue");n(t.issue)!==s&&(r.group=null)}return r}(t,r),i=new URLSearchParams(t.toString());for(let[e,t]of Object.entries(s)){let r=n(t);r?i.set(e,r):i.delete(e)}let l=i.toString();return l?`${e}?${l}`:e})(t??s,i,e),[s,i]),u=(0,t.useCallback)((t,r)=>{e.push(o(t,r))},[o,e]),c=(0,t.useCallback)((t,r)=>{e.replace(o(t,r))},[o,e]);return{pathname:s,searchParams:i,getSelection:l,buildHref:o,pushSelection:u,replaceSelection:c}}e.s(["useUrlSelection",()=>s])},203096,e=>{"use strict";let t=(0,e.i(363732).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],203096)},580873,e=>{"use strict";let t=(0,e.i(363732).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",()=>t],580873)},990933,e=>{"use strict";function t(e){if("string"==typeof e)return e.trim()||void 0}function r(e,r){let n=new Set,a=new Set;!function e(t,r){if(t)for(let n of t)r(n),e(n.content,r)}(e.content,e=>{if("participantMention"!==e.type)return;let t=e.attrs??{},r="string"==typeof t.id?t.id.trim():"",s="string"==typeof t.kind?t.kind:"agent";r&&"agent"===s&&(n.add(r),"parallel"===t.mode&&a.add(r))});let s=t(r);return{...s?{pinnedParticipantId:s}:{},mentionedParticipantIds:Array.from(n),parallelParticipantIds:Array.from(a)}}function n(e,r){let n=function(e){if(!Array.isArray(e))return[];let t=new Set,r=[];for(let n of e){if("string"!=typeof n)continue;let e=n.trim();!e||t.has(e)||(t.add(e),r.push(e))}return r}(e),a=t(r);return a&&n.includes(a)?[a,...n.filter(e=>e!==a)]:n}e.s(["extractComposerRouting",()=>r,"orderParticipantIds",()=>n])},352687,e=>{"use strict";var t=e.i(762281),r=e.i(935851);function n({isOpen:e,title:n,message:a,preview:s,confirmLabel:i="Confirm",cancelLabel:l="Cancel",variant:o="default",onConfirm:u,onCancel:c}){let d=(0,r.useRef)(null),p=(0,r.useRef)(null);(0,r.useEffect)(()=>{if(e){let e=setTimeout(()=>d.current?.focus(),50);return()=>clearTimeout(e)}},[e]);let f=(0,r.useCallback)(e=>{"Escape"===e.key&&c()},[c]);if(!e)return null;let m="danger"===o;return(0,t.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-md",style:{animation:"confirm-overlay-in 200ms ease-out"},onClick:e=>e.target===e.currentTarget&&c(),onKeyDown:f,children:[(0,t.jsxs)("div",{ref:p,className:"w-full max-w-md mx-4 bg-[var(--card-bg)] rounded-2xl border border-[var(--card-border)] shadow-2xl overflow-hidden",style:{animation:"confirm-dialog-in 250ms cubic-bezier(0.34, 1.56, 0.64, 1)"},children:[(0,t.jsx)("div",{className:"px-6 pt-6 pb-3",children:(0,t.jsxs)("div",{className:"flex items-start gap-4",children:[m&&(0,t.jsx)("div",{className:"flex-shrink-0 w-11 h-11 rounded-full bg-red-500/10 border border-red-500/20 flex items-center justify-center",children:(0,t.jsx)("svg",{className:"w-5 h-5 text-red-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h3",{className:"text-[15px] font-semibold text-[var(--foreground)]",children:n}),(0,t.jsx)("p",{className:"mt-1 text-[13px] text-[var(--muted-foreground)] leading-relaxed",children:a})]})]})}),s&&(0,t.jsx)("div",{className:"mx-6 mb-3 px-3 py-2.5 rounded-lg bg-[var(--muted)]/40 border border-[var(--card-border)]",children:(0,t.jsxs)("p",{className:"text-[12px] text-[var(--muted-foreground)] line-clamp-3 leading-relaxed italic",children:["“",s,"”"]})}),(0,t.jsx)("div",{className:"mx-6 border-t border-[var(--card-border)]"}),(0,t.jsxs)("div",{className:"px-6 py-4 flex items-center justify-end gap-2.5",children:[(0,t.jsx)("button",{onClick:c,className:"px-4 py-2 rounded-lg text-[13px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]/60 transition-all duration-150",children:l}),(0,t.jsx)("button",{ref:d,onClick:u,className:`px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150 ${m?"bg-red-500 text-white hover:bg-red-600 active:scale-[0.97]":"btn-primary active:scale-[0.97]"}`,children:i})]})]}),(0,t.jsx)("style",{children:`
2
+ @keyframes confirm-overlay-in {
3
+ from { opacity: 0; }
4
+ to { opacity: 1; }
5
+ }
6
+ @keyframes confirm-dialog-in {
7
+ from {
8
+ opacity: 0;
9
+ transform: scale(0.9) translateY(10px);
10
+ }
11
+ to {
12
+ opacity: 1;
13
+ transform: scale(1) translateY(0);
14
+ }
15
+ }
16
+ `})]})}e.s(["default",()=>n])},945028,490011,e=>{"use strict";var t=e.i(935851);function r(e){return`threadId=${encodeURIComponent(e)}`}function n(e){return`workspaceId=${encodeURIComponent(e)}`}function a(e){let[a,s]=(0,t.useState)([]),[i,l]=(0,t.useState)([]),[o,u]=(0,t.useState)([]),c=(0,t.useRef)(e),d=(0,t.useRef)(e);c.current=e,d.current!==e&&(d.current=e,s([]),l([]),u([]));let p=(0,t.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();if(!t){s([]),l([]);return}let a=r(t);try{let[e,r]=await Promise.all([fetch(`/api/history?${a}`),fetch(`/api/logs?${n(t)}`)]);if(c.current!==t)return;e.ok&&s(await e.json()),r.ok&&l(await r.json())}catch{}},[]),f=(0,t.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();if(!t){s([]),l([]);return}let a=r(t);await Promise.all([fetch(`/api/history?${a}`,{method:"DELETE"}),fetch(`/api/logs?${n(t)}`,{method:"DELETE"})]),c.current===t&&(s([]),l([]))},[]),m=(0,t.useCallback)(async(e,t=10,r,n,a,i,l,o,d,p)=>{let f=r?.trim()||c.current?.trim();if(!f)return;let m=Date.now(),h=crypto.randomUUID(),y={id:h,role:"user",participantId:null,content:e,timestamp:m,rootMessageId:n||null,parentMessageId:n||null,depth:+!!n,...i&&i.length>0?{attachments:i}:{}};s(e=>[...e,y]);try{let r=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:f,prompt:e,promptPrefix:d||void 0,maxRounds:t,userMessageId:h,rootMessageId:n||void 0,attachmentIds:a?.length?a:void 0,activeParticipantIds:Array.isArray(l)?l:void 0,projectSlug:o?.trim()||void 0,routing:p})}),i=await r.json().catch(e=>(console.warn("[useGroupChat] failed to parse run response:",e),null));r.ok&&i?.chatRunId?u(e=>[{chatRunId:i.chatRunId,threadId:f,rootMessageId:n||h,status:"queued",optimistic:!0,enqueuedAt:Date.now()},...e.filter(e=>e.chatRunId!==i.chatRunId)]):r.ok||(console.error(`[useGroupChat] POST /api/chat failed (${r.status}):`,i?.error||r.statusText),s(e=>e.map(e=>e.id===h?{...e,sendFailed:!0}:e)))}catch(e){console.error("[useGroupChat] network error sending message:",e),s(e=>e.map(e=>e.id===h?{...e,sendFailed:!0}:e))}return h},[]),h=(0,t.useCallback)(async()=>{let e=c.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),y=(0,t.useCallback)(async e=>{let t=c.current?.trim();if(t)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(t)}&threadId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]);return{messages:a,setMessages:s,logs:i,sendMessage:m,loadHistory:p,clearHistory:f,clearLogs:(0,t.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();t?(await fetch(`/api/logs?${n(t)}`,{method:"DELETE"}).catch(e=>console.warn("[useGroupChat] delete logs failed:",e)),c.current===t&&l([])):l([])},[]),chatRuns:o,setChatRuns:u,stop:h,stopThread:y}}e.s(["useGroupChat",()=>a],945028);let s=new Set(["spawning","running"]);function i(e,r){let n=r?.intervalMs??1500,a=r?.idleIntervalMs??1e4,[i,l]=(0,t.useState)(new Set),[o,u]=(0,t.useState)([]),[c,d]=(0,t.useState)({}),[p,f]=(0,t.useState)([]),m=(0,t.useRef)(e);m.current=e,(0,t.useRef)(r?.messages??[]).current=r?.messages??[];let h=(0,t.useRef)(r?.setMessages);h.current=r?.setMessages;let y=(0,t.useRef)(0),g=(0,t.useRef)(new Map),x=(0,t.useRef)(new Map);(0,t.useEffect)(()=>{let e=r?.messages??[];if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>y.current&&(y.current=t)}},[r?.messages]),(0,t.useEffect)(()=>()=>{for(let e of g.current.values())e.close();g.current.clear()},[]);let v=(0,t.useCallback)(async()=>{let e=m.current;if(!e){l(new Set),u([]),d({}),f([]);return}let t=null;if(e.threadId?t=`/api/processes?threadId=${encodeURIComponent(e.threadId)}`:e.workspaceId&&(t=`/api/processes?workspaceId=${encodeURIComponent(e.workspaceId)}`),!t){l(new Set),u([]),d({}),f([]);return}try{let n=e.workspaceId||e.threadId,a=n?`/api/history?threadId=${encodeURIComponent(n)}&since=${y.current}`:null,i=n?`/api/chat-runs?threadId=${encodeURIComponent(n)}&limit=20`:null,o=[fetch(t)];a&&o.push(fetch(a)),i&&o.push(fetch(i));let[c,d,p]=await Promise.all(o),g=m.current;if(g?.threadId!==e.threadId||g?.workspaceId!==e.workspaceId)return;if(c.ok){let e=await c.json();u(e);let t=new Set(e.filter(e=>s.has(e.state)).map(e=>e.agentId));l(t)}if(p?.ok){var r;let e=(r=await p.json(),Array.isArray(r)?r.map(e=>{if(!e||"object"!=typeof e)return null;let t="string"==typeof e.chatRunId?e.chatRunId:"string"==typeof e.id?e.id:null,r="string"==typeof e.threadId?e.threadId:null,n="string"==typeof e.status?e.status:null,a="string"==typeof e.rootMessageId?e.rootMessageId:(e.rootMessageId,null);return t&&r&&n&&("queued"===n||"running"===n||"awaiting_user"===n||"blocked"===n||"completed"===n||"failed"===n||"cancelled"===n)?{chatRunId:t,threadId:r,rootMessageId:a,status:n,optimistic:!1}:null}).filter(e=>!!e):[]);f(e)}if(d?.ok&&h.current){let e=await d.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>y.current&&(y.current=t),h.current(t=>{let r=new Set(t.map(e=>e.id)),n=e.filter(e=>!r.has(e.id)),a=t.map(t=>e.find(e=>e.id===t.id)??t);return 0===n.length?a:[...a,...n].sort((e,t)=>e.timestamp-t.timestamp)})}}}catch{}},[]);(0,t.useEffect)(()=>{let e=p.filter(e=>"queued"===e.status||"running"===e.status),t=new Set(e.map(e=>e.chatRunId));for(let[e,r]of g.current.entries())t.has(e)||(r.close(),g.current.delete(e),x.current.delete(e));for(let t of e){if(g.current.has(t.chatRunId))continue;let e=new EventSource(`/api/chat-runs/${encodeURIComponent(t.chatRunId)}/events`);g.current.set(t.chatRunId,e);let r=new Map;x.current.set(t.chatRunId,r);let n=new Set;e.addEventListener("chat",a=>{let s;try{s=JSON.parse(a.data)}catch{return}switch(s.type){case"participant-start":case"participant-thinking":n.add(s.participantId),r.has(s.participantId)||r.set(s.participantId,{text:"",thoughts:[]}),d(e=>e[s.participantId]?e:{...e,[s.participantId]:{content:"",rootMessageId:t.rootMessageId??null}});break;case"text-delta":{r.has(s.participantId)||r.set(s.participantId,{text:"",thoughts:[]});let e=r.get(s.participantId);e&&(e.text+=s.delta,d(r=>{let n={...r},a=t.rootMessageId??null;return n[s.participantId]={content:e.text,rootMessageId:a},n}));break}case"participant-thought":{let e=r.get(s.participantId);e&&(e.thoughts.push(s.content),d(t=>{let r=t[s.participantId];return r?{...t,[s.participantId]:{...r,thoughts:[...e.thoughts]}}:t}));break}case"participant-end":n.delete(s.participantId),v().then(()=>{d(e=>{let t={...e};return delete t[s.participantId],t})});break;case"participant-error":n.delete(s.participantId),v().then(()=>{d(e=>{let t={...e};return delete t[s.participantId],t})});break;case"done":e.close(),g.current.delete(t.chatRunId),x.current.delete(t.chatRunId)}}),e.onerror=()=>{e.close(),g.current.delete(t.chatRunId),x.current.delete(t.chatRunId)}}},[p]);let b=e?.threadId||e?.workspaceId||null,k=p.some(e=>"queued"===e.status||"running"===e.status),w=o.some(e=>s.has(e.state)),I=k||w?n:a;return(0,t.useEffect)(()=>{if(!b){l(new Set),u([]),d({}),f([]);return}v();let e=setInterval(v,I);return()=>clearInterval(e)},[b,I,v]),{activeAgents:i,processes:o,streaming:c,chatRuns:p,poll:v}}e.s(["useProcessPolling",()=>i],490011)},417442,e=>{"use strict";let t=(0,e.i(363732).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",()=>t],417442)},437307,e=>{"use strict";let t=(0,e.i(363732).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",()=>t],437307)},74636,e=>{"use strict";var t=e.i(762281),r=e.i(935851),n=e.i(568656);function a({params:e}){let{slug:a}=(0,r.use)(e);return(0,t.jsx)(n.ProjectObjectivesOverview,{projectSlug:a})}e.s(["default",()=>a])},501223,e=>{e.v(t=>Promise.all(["static/chunks/5591af73db0a3aee.js"].map(t=>e.l(t))).then(()=>t(844118)))},469612,e=>{e.v(t=>Promise.all(["static/chunks/256961ed1522219b.js"].map(t=>e.l(t))).then(()=>t(668610)))}]);
@@ -0,0 +1 @@
1
+ .review-module__lz5SUa__root{--bg:var(--background);--bg-raised:var(--column-header-bg,var(--card-bg));--bg-card:var(--card-bg);--bg-inset:var(--background);--line:var(--card-border);--line-strong:var(--card-hover-border,var(--card-border));--fg:var(--foreground);--fg-dim:var(--muted-foreground);--fg-mute:var(--muted-foreground);--fg-ghost:var(--card-border);--accent:var(--primary);--accent-ink:var(--primary-foreground);--warm:var(--warning,#ce9178);--cool:var(--info,#569cd6);--danger:var(--destructive,#f44747);--add:var(--success,#6a9955);--add-bg:var(--success-muted,#6a99551a);--add-gut:#6a995538;--del:var(--destructive,#f44747);--del-bg:var(--destructive-muted,#f447471a);--del-gut:#f447473d;--font-sans:var(--font-inter-tight),ui-sans-serif,system-ui,sans-serif;--font-mono:var(--font-jetbrains-mono),ui-monospace,Menlo,monospace;background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;flex-direction:column;height:100%;min-height:0;display:flex}.review-module__lz5SUa__mono{font-family:var(--font-mono)}.review-module__lz5SUa__kbd{border:1px solid var(--line-strong);background:var(--bg-inset);min-width:16px;height:16px;color:var(--fg-mute);font-family:var(--font-mono);border-radius:3px;justify-content:center;align-items:center;padding:0 4px;font-size:9px;display:inline-flex}.review-module__lz5SUa__btn{font-family:var(--font-mono);cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:4px;align-items:center;gap:7px;padding:5px 10px;font-size:11px;font-weight:600;text-decoration:none;display:inline-flex}.review-module__lz5SUa__btnPrimary{background:var(--accent);color:var(--accent-ink)}.review-module__lz5SUa__btnGhost{border-color:var(--line-strong);color:var(--fg-dim);background:0 0}.review-module__lz5SUa__btnGhost:hover{background:var(--bg-raised);color:var(--fg)}.review-module__lz5SUa__slim::-webkit-scrollbar{width:6px;height:6px}.review-module__lz5SUa__slim::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}.review-module__lz5SUa__slim::-webkit-scrollbar-track{background:0 0}@keyframes review-module__lz5SUa__blip{0%,to{opacity:.3;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}.review-module__lz5SUa__blip{animation:1.6s ease-in-out infinite review-module__lz5SUa__blip}.review-module__lz5SUa__reviewBody{flex:1;min-height:0;display:flex}.review-module__lz5SUa__leftCol{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.review-module__lz5SUa__midRow{flex:1;min-height:0;display:flex}.review-module__lz5SUa__rightPane{flex:none;min-width:0;min-height:0;display:flex}
@@ -1,3 +1,3 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,945028,490011,e=>{"use strict";var t=e.i(935851);function r(e){return`threadId=${encodeURIComponent(e)}`}function a(e){return`workspaceId=${encodeURIComponent(e)}`}function n(e){let[n,s]=(0,t.useState)([]),[l,i]=(0,t.useState)([]),[o,c]=(0,t.useState)([]),d=(0,t.useRef)(e),u=(0,t.useRef)(e);d.current=e,u.current!==e&&(u.current=e,s([]),i([]),c([]));let p=(0,t.useCallback)(async e=>{let t=e?.trim()||d.current?.trim();if(!t){s([]),i([]);return}let n=r(t);try{let[e,r]=await Promise.all([fetch(`/api/history?${n}`),fetch(`/api/logs?${a(t)}`)]);if(d.current!==t)return;e.ok&&s(await e.json()),r.ok&&i(await r.json())}catch{}},[]),f=(0,t.useCallback)(async e=>{let t=e?.trim()||d.current?.trim();if(!t){s([]),i([]);return}let n=r(t);await Promise.all([fetch(`/api/history?${n}`,{method:"DELETE"}),fetch(`/api/logs?${a(t)}`,{method:"DELETE"})]),d.current===t&&(s([]),i([]))},[]),h=(0,t.useCallback)(async(e,t=10,r,a,n,l,i,o,u,p)=>{let f=r?.trim()||d.current?.trim();if(!f)return;let h=Date.now(),m=crypto.randomUUID(),x={id:m,role:"user",participantId:null,content:e,timestamp:h,rootMessageId:a||null,parentMessageId:a||null,depth:+!!a,...l&&l.length>0?{attachments:l}:{}};s(e=>[...e,x]);try{let r=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:f,prompt:e,promptPrefix:u||void 0,maxRounds:t,userMessageId:m,rootMessageId:a||void 0,attachmentIds:n?.length?n:void 0,activeParticipantIds:Array.isArray(i)?i:void 0,projectSlug:o?.trim()||void 0,routing:p})}),l=await r.json().catch(e=>(console.warn("[useGroupChat] failed to parse run response:",e),null));r.ok&&l?.chatRunId?c(e=>[{chatRunId:l.chatRunId,threadId:f,rootMessageId:a||m,status:"queued",optimistic:!0,enqueuedAt:Date.now()},...e.filter(e=>e.chatRunId!==l.chatRunId)]):r.ok||(console.error(`[useGroupChat] POST /api/chat failed (${r.status}):`,l?.error||r.statusText),s(e=>e.map(e=>e.id===m?{...e,sendFailed:!0}:e)))}catch(e){console.error("[useGroupChat] network error sending message:",e),s(e=>e.map(e=>e.id===m?{...e,sendFailed:!0}:e))}return m},[]),m=(0,t.useCallback)(async()=>{let e=d.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),x=(0,t.useCallback)(async e=>{let t=d.current?.trim();if(t)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(t)}&threadId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]);return{messages:n,setMessages:s,logs:l,sendMessage:h,loadHistory:p,clearHistory:f,clearLogs:(0,t.useCallback)(async e=>{let t=e?.trim()||d.current?.trim();t?(await fetch(`/api/logs?${a(t)}`,{method:"DELETE"}).catch(e=>console.warn("[useGroupChat] delete logs failed:",e)),d.current===t&&i([])):i([])},[]),chatRuns:o,setChatRuns:c,stop:m,stopThread:x}}e.s(["useGroupChat",()=>n],945028);let s=new Set(["spawning","running"]);function l(e,r){let a=r?.intervalMs??1500,n=r?.idleIntervalMs??1e4,[l,i]=(0,t.useState)(new Set),[o,c]=(0,t.useState)([]),[d,u]=(0,t.useState)({}),[p,f]=(0,t.useState)([]),h=(0,t.useRef)(e);h.current=e,(0,t.useRef)(r?.messages??[]).current=r?.messages??[];let m=(0,t.useRef)(r?.setMessages);m.current=r?.setMessages;let x=(0,t.useRef)(0),g=(0,t.useRef)(new Map),b=(0,t.useRef)(new Map);(0,t.useEffect)(()=>{let e=r?.messages??[];if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>x.current&&(x.current=t)}},[r?.messages]),(0,t.useEffect)(()=>()=>{for(let e of g.current.values())e.close();g.current.clear()},[]);let y=(0,t.useCallback)(async()=>{let e=h.current;if(!e){i(new Set),c([]),u({}),f([]);return}let t=null;if(e.threadId?t=`/api/processes?threadId=${encodeURIComponent(e.threadId)}`:e.workspaceId&&(t=`/api/processes?workspaceId=${encodeURIComponent(e.workspaceId)}`),!t){i(new Set),c([]),u({}),f([]);return}try{let a=e.workspaceId||e.threadId,n=a?`/api/history?threadId=${encodeURIComponent(a)}&since=${x.current}`:null,l=a?`/api/chat-runs?threadId=${encodeURIComponent(a)}&limit=20`:null,o=[fetch(t)];n&&o.push(fetch(n)),l&&o.push(fetch(l));let[d,u,p]=await Promise.all(o),g=h.current;if(g?.threadId!==e.threadId||g?.workspaceId!==e.workspaceId)return;if(d.ok){let e=await d.json();c(e);let t=new Set(e.filter(e=>s.has(e.state)).map(e=>e.agentId));i(t)}if(p?.ok){var r;let e=(r=await p.json(),Array.isArray(r)?r.map(e=>{if(!e||"object"!=typeof e)return null;let t="string"==typeof e.chatRunId?e.chatRunId:"string"==typeof e.id?e.id:null,r="string"==typeof e.threadId?e.threadId:null,a="string"==typeof e.status?e.status:null,n="string"==typeof e.rootMessageId?e.rootMessageId:(e.rootMessageId,null);return t&&r&&a&&("queued"===a||"running"===a||"awaiting_user"===a||"blocked"===a||"completed"===a||"failed"===a||"cancelled"===a)?{chatRunId:t,threadId:r,rootMessageId:n,status:a,optimistic:!1}:null}).filter(e=>!!e):[]);f(e)}if(u?.ok&&m.current){let e=await u.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>x.current&&(x.current=t),m.current(t=>{let r=new Set(t.map(e=>e.id)),a=e.filter(e=>!r.has(e.id)),n=t.map(t=>e.find(e=>e.id===t.id)??t);return 0===a.length?n:[...n,...a].sort((e,t)=>e.timestamp-t.timestamp)})}}}catch{}},[]);(0,t.useEffect)(()=>{let e=p.filter(e=>"queued"===e.status||"running"===e.status),t=new Set(e.map(e=>e.chatRunId));for(let[e,r]of g.current.entries())t.has(e)||(r.close(),g.current.delete(e),b.current.delete(e));for(let t of e){if(g.current.has(t.chatRunId))continue;let e=new EventSource(`/api/chat-runs/${encodeURIComponent(t.chatRunId)}/events`);g.current.set(t.chatRunId,e);let r=new Map;b.current.set(t.chatRunId,r);let a=new Set;e.addEventListener("chat",n=>{let s;try{s=JSON.parse(n.data)}catch{return}switch(s.type){case"participant-start":case"participant-thinking":a.add(s.participantId),r.has(s.participantId)||r.set(s.participantId,{text:"",thoughts:[]}),u(e=>e[s.participantId]?e:{...e,[s.participantId]:{content:"",rootMessageId:t.rootMessageId??null}});break;case"text-delta":{r.has(s.participantId)||r.set(s.participantId,{text:"",thoughts:[]});let e=r.get(s.participantId);e&&(e.text+=s.delta,u(r=>{let a={...r},n=t.rootMessageId??null;return a[s.participantId]={content:e.text,rootMessageId:n},a}));break}case"participant-thought":{let e=r.get(s.participantId);e&&(e.thoughts.push(s.content),u(t=>{let r=t[s.participantId];return r?{...t,[s.participantId]:{...r,thoughts:[...e.thoughts]}}:t}));break}case"participant-end":a.delete(s.participantId),y().then(()=>{u(e=>{let t={...e};return delete t[s.participantId],t})});break;case"participant-error":a.delete(s.participantId),y().then(()=>{u(e=>{let t={...e};return delete t[s.participantId],t})});break;case"done":e.close(),g.current.delete(t.chatRunId),b.current.delete(t.chatRunId)}}),e.onerror=()=>{e.close(),g.current.delete(t.chatRunId),b.current.delete(t.chatRunId)}}},[p]);let I=e?.threadId||e?.workspaceId||null,w=p.some(e=>"queued"===e.status||"running"===e.status),j=o.some(e=>s.has(e.state)),v=w||j?a:n;return(0,t.useEffect)(()=>{if(!I){i(new Set),c([]),u({}),f([]);return}y();let e=setInterval(y,v);return()=>clearInterval(e)},[I,v,y]),{activeAgents:l,processes:o,streaming:d,chatRuns:p,poll:y}}e.s(["useProcessPolling",()=>l],490011)},781873,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return n}});let a=e.r(804984);function n({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new a.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},373512,(e,t,r)=>{"use strict";function a(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return a}})},974052,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return o}});let a=e.r(762281),n=e.r(866389),s=e.r(721014),l=e.r(373512),i=e.r(162998);function o({moduleIds:e}){if("u">typeof window)return null;let t=s.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let a=t.reactLoadableManifest;for(let t of e){if(!a[t])continue;let e=a[t].files;r.push(...e)}}if(0===r.length)return null;let o=(0,i.getDeploymentIdQueryOrEmptyString)();return(0,a.jsx)(a.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,l.encodeURIPath)(e)}${o}`;return e.endsWith(".css")?(0,a.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,n.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},184790,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return c}});let a=e.r(762281),n=e.r(935851),s=e.r(781873),l=e.r(974052);function i(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},c=function(e){let t={...o,...e},r=(0,n.lazy)(()=>t.loader().then(i)),c=t.loading;function d(e){let i=c?(0,a.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,d=o?n.Suspense:n.Fragment,u=t.ssr?(0,a.jsxs)(a.Fragment,{children:["u"<typeof window?(0,a.jsx)(l.PreloadChunks,{moduleIds:t.modules}):null,(0,a.jsx)(r,{...e})]}):(0,a.jsx)(s.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(r,{...e})});return(0,a.jsx)(d,{...o?{fallback:i}:{},children:u})}return d.displayName="LoadableComponent",d}},353899,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return n}});let a=e.r(555682)._(e.r(184790));function n(e,t){let r={};"function"==typeof e&&(r.loader=e);let n={...r,...t};return(0,a.default)({...n,modules:n.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},509501,e=>{"use strict";var t=e.i(935851);function r(e,r){let[a,n]=(0,t.useState)([]),[s,l]=(0,t.useState)(!1);return(0,t.useEffect)(()=>{let t=!1;return async function(){try{let a=await fetch("/api/participants"),s=a.ok?await a.json():[];if(!r){t||(n(s),l(!0));return}let i=new URLSearchParams;i.set("projectId",r);let o=await fetch(`/api/trackers/${encodeURIComponent(e)}/worker?${i}`).catch(()=>null),c=o?.ok?await o.json().catch(()=>null):null,d=c?.job?.teamId||void 0;if(d){let e=await fetch(`/api/projects/${encodeURIComponent(r)}/teams/${encodeURIComponent(d)}/agents`);if(e.ok){let r=await e.json(),a=Array.isArray(r.agents)?r.agents.sort((e,t)=>(e.routing_order??0)-(t.routing_order??0)).map(e=>e.agent_id).filter(e=>"string"==typeof e&&e.trim().length>0):[];if(a.length>0){let e=new Map(a.map((e,t)=>[e,t])),r=s.filter(t=>e.has(t.id)).sort((t,r)=>(e.get(t.id)??Number.MAX_SAFE_INTEGER)-(e.get(r.id)??Number.MAX_SAFE_INTEGER));if(!t&&r.length>0){n(r),l(!0);return}}}}let u=await fetch(`/api/projects/${encodeURIComponent(r)}/agents`);if(!u.ok){t||(n(s),l(!0));return}let p=await u.json(),f=Array.isArray(p.agents)?p.agents.map(e=>e.agent_id).filter(e=>"string"==typeof e&&e.trim().length>0):[],h=new Map(f.map((e,t)=>[e,t])),m=s.filter(e=>h.has(e.id)).sort((e,t)=>(h.get(e.id)??Number.MAX_SAFE_INTEGER)-(h.get(t.id)??Number.MAX_SAFE_INTEGER));t||(n(m),l(!0))}catch{t||(n([]),l(!0))}}(),()=>{t=!0}},[e,r]),{participants:a,participantsLoaded:s}}e.s(["useTrackerParticipants",()=>r])},343942,e=>{"use strict";e.i(827976);var t=e.i(762281),r=e.i(935851),a=e.i(524123),n=e.i(353899);function s(e,t){return e<<t|e>>>32-t}let l=function(e){let t=[0x5a827999,0x6ed9eba1,0x8f1bbcdc,0xca62c1d6],r=[0x67452301,0xefcdab89,0x98badcfe,0x10325476,0xc3d2e1f0],a=new Uint8Array(e.length+1);a.set(e),a[e.length]=128;let n=Math.ceil(((e=a).length/4+2)/16),l=Array(n);for(let t=0;t<n;++t){let r=new Uint32Array(16);for(let a=0;a<16;++a)r[a]=e[64*t+4*a]<<24|e[64*t+4*a+1]<<16|e[64*t+4*a+2]<<8|e[64*t+4*a+3];l[t]=r}l[n-1][14]=(e.length-1)*8/0x100000000,l[n-1][14]=Math.floor(l[n-1][14]),l[n-1][15]=(e.length-1)*8|0;for(let e=0;e<n;++e){let a=new Uint32Array(80);for(let t=0;t<16;++t)a[t]=l[e][t];for(let e=16;e<80;++e)a[e]=s(a[e-3]^a[e-8]^a[e-14]^a[e-16],1);let n=r[0],i=r[1],o=r[2],c=r[3],d=r[4];for(let e=0;e<80;++e){let r=Math.floor(e/20),l=s(n,5)+function(e,t,r,a){switch(e){case 0:return t&r^~t&a;case 1:case 3:return t^r^a;case 2:return t&r^t&a^r&a}}(r,i,o,c)+d+t[r]+a[e]>>>0;d=c,c=o,o=s(i,30)>>>0,i=n,n=l}r[0]=r[0]+n>>>0,r[1]=r[1]+i>>>0,r[2]=r[2]+o>>>0,r[3]=r[3]+c>>>0,r[4]=r[4]+d>>>0}return Uint8Array.of(r[0]>>24,r[0]>>16,r[0]>>8,r[0],r[1]>>24,r[1]>>16,r[1]>>8,r[1],r[2]>>24,r[2]>>16,r[2]>>8,r[2],r[3]>>24,r[3]>>16,r[3]>>8,r[3],r[4]>>24,r[4]>>16,r[4]>>8,r[4])},i=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i,o=function(e){let t;if(!("string"==typeof e&&i.test(e)))throw TypeError("Invalid UUID");return Uint8Array.of((t=parseInt(e.slice(0,8),16))>>>24,t>>>16&255,t>>>8&255,255&t,(t=parseInt(e.slice(9,13),16))>>>8,255&t,(t=parseInt(e.slice(14,18),16))>>>8,255&t,(t=parseInt(e.slice(19,23),16))>>>8,255&t,(t=parseInt(e.slice(24,36),16))/0x10000000000&255,t/0x100000000&255,t>>>24&255,t>>>16&255,t>>>8&255,255&t)},c=[];for(let e=0;e<256;++e)c.push((e+256).toString(16).slice(1));function d(e,t,r,a){var n=t,s=a;let i="string"==typeof e?function(e){let t=new Uint8Array((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<e.length;++r)t[r]=e.charCodeAt(r);return t}(e):e,d="string"==typeof n?o(n):n;if("string"==typeof n&&(n=o(n)),n?.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let u=new Uint8Array(16+i.length);if(u.set(d),u.set(i,d.length),(u=l(u))[6]=15&u[6]|80,u[8]=63&u[8]|128,r){s=s||0;for(let e=0;e<16;++e)r[s+e]=u[e];return r}return function(e,t=0){return(c[e[t+0]]+c[e[t+1]]+c[e[t+2]]+c[e[t+3]]+"-"+c[e[t+4]]+c[e[t+5]]+"-"+c[e[t+6]]+c[e[t+7]]+"-"+c[e[t+8]]+c[e[t+9]]+"-"+c[e[t+10]]+c[e[t+11]]+c[e[t+12]]+c[e[t+13]]+c[e[t+14]]+c[e[t+15]]).toLowerCase()}(u)}d.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",d.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8";var u=e.i(945028),p=e.i(490011),f=e.i(509501);let h=(0,n.default)(()=>e.A(501223).then(e=>e.Composer),{loadableGenerated:{modules:[844118]},ssr:!1});function m({messages:e,participants:a}){let n=(0,r.useMemo)(()=>new Map(a.map(e=>[e.id,e.name])),[a]),s=(0,r.useMemo)(()=>{let t=[],r=new Map,a=new Map,n=new Map;for(let s of e)if(s.rootMessageId){r.set(s.rootMessageId,(r.get(s.rootMessageId)??0)+1);let e=a.get(s.rootMessageId)??0;s.timestamp>e&&(a.set(s.rootMessageId,s.timestamp),s.participantId&&n.set(s.rootMessageId,s.participantId))}else t.push(s),(!a.has(s.id)||(a.get(s.id)??0)<s.timestamp)&&a.set(s.id,s.timestamp);return t.map(e=>({id:e.id,text:e.content,replyCount:r.get(e.id)??0,updatedAt:a.get(e.id)??e.timestamp,agent:n.get(e.id)??null})).sort((e,t)=>t.updatedAt-e.updatedAt)},[e]);return 0===s.length?(0,t.jsx)("div",{className:"px-4 py-6 text-center text-xs text-neutral-500",children:"No sessions yet. Start one below."}):(0,t.jsx)("div",{className:"flex flex-col",children:s.map(e=>(0,t.jsx)("div",{className:"flex w-full items-start justify-between gap-3 border-b border-neutral-800/60 px-4 py-3 text-left",children:(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-neutral-100",children:e.text.length>80?e.text.slice(0,80)+"…":e.text||"(empty)"}),(0,t.jsxs)("p",{className:"mt-1 flex items-center gap-2 text-[11px] text-neutral-500",children:[e.agent&&(0,t.jsx)("span",{children:n.get(e.agent)??e.agent}),e.agent&&(0,t.jsx)("span",{children:"·"}),(0,t.jsxs)("span",{children:[e.replyCount," repl",1===e.replyCount?"y":"ies"]}),(0,t.jsx)("span",{children:"·"}),(0,t.jsx)("span",{children:new Date(e.updatedAt).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})})]})]})},e.id))})}function x({pr:e,projectId:a,projectSlug:n}){let s=(0,r.useMemo)(()=>d(e.id,"6b1c08a3-3d48-4a8d-9d60-6b9c6f8f5a01"),[e.id]),{participants:l}=(0,f.useTrackerParticipants)("linear",a),i=l[0],{messages:o,setMessages:c,sendMessage:x,loadHistory:g,chatRuns:b,stop:y}=(0,u.useGroupChat)(s),{processes:I}=(0,p.useProcessPolling)({workspaceId:s},{messages:o,setMessages:c});(0,r.useEffect)(()=>{g()},[g,s]);let w=(0,r.useRef)(!0);(0,r.useEffect)(()=>{w.current=0===o.length},[o.length]);let j=(0,r.useMemo)(()=>new Set(["queued","running","awaiting_user","blocked"]),[]),v=b.some(e=>j.has(e.status))||I.some(e=>"spawning"===e.state||"running"===e.state)?b.some(e=>"queued"===e.status)?"queued":"working":"ready",k=(0,r.useCallback)((t,r,a,s,o,c,d)=>{let u=(o?l.find(e=>e.id===o):null)??i;if(!u)return;let p=w.current?`Regarding PR ${e.repoId}#${e.number} (${e.title}). URL: ${e.url}
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,945028,490011,e=>{"use strict";var t=e.i(935851);function r(e){return`threadId=${encodeURIComponent(e)}`}function a(e){return`workspaceId=${encodeURIComponent(e)}`}function n(e){let[n,s]=(0,t.useState)([]),[l,i]=(0,t.useState)([]),[o,c]=(0,t.useState)([]),d=(0,t.useRef)(e),u=(0,t.useRef)(e);d.current=e,u.current!==e&&(u.current=e,s([]),i([]),c([]));let p=(0,t.useCallback)(async e=>{let t=e?.trim()||d.current?.trim();if(!t){s([]),i([]);return}let n=r(t);try{let[e,r]=await Promise.all([fetch(`/api/history?${n}`),fetch(`/api/logs?${a(t)}`)]);if(d.current!==t)return;e.ok&&s(await e.json()),r.ok&&i(await r.json())}catch{}},[]),f=(0,t.useCallback)(async e=>{let t=e?.trim()||d.current?.trim();if(!t){s([]),i([]);return}let n=r(t);await Promise.all([fetch(`/api/history?${n}`,{method:"DELETE"}),fetch(`/api/logs?${a(t)}`,{method:"DELETE"})]),d.current===t&&(s([]),i([]))},[]),h=(0,t.useCallback)(async(e,t=10,r,a,n,l,i,o,u,p)=>{let f=r?.trim()||d.current?.trim();if(!f)return;let h=Date.now(),m=crypto.randomUUID(),x={id:m,role:"user",participantId:null,content:e,timestamp:h,rootMessageId:a||null,parentMessageId:a||null,depth:+!!a,...l&&l.length>0?{attachments:l}:{}};s(e=>[...e,x]);try{let r=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:f,prompt:e,promptPrefix:u||void 0,maxRounds:t,userMessageId:m,rootMessageId:a||void 0,attachmentIds:n?.length?n:void 0,activeParticipantIds:Array.isArray(i)?i:void 0,projectSlug:o?.trim()||void 0,routing:p})}),l=await r.json().catch(e=>(console.warn("[useGroupChat] failed to parse run response:",e),null));r.ok&&l?.chatRunId?c(e=>[{chatRunId:l.chatRunId,threadId:f,rootMessageId:a||m,status:"queued",optimistic:!0,enqueuedAt:Date.now()},...e.filter(e=>e.chatRunId!==l.chatRunId)]):r.ok||(console.error(`[useGroupChat] POST /api/chat failed (${r.status}):`,l?.error||r.statusText),s(e=>e.map(e=>e.id===m?{...e,sendFailed:!0}:e)))}catch(e){console.error("[useGroupChat] network error sending message:",e),s(e=>e.map(e=>e.id===m?{...e,sendFailed:!0}:e))}return m},[]),m=(0,t.useCallback)(async()=>{let e=d.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),x=(0,t.useCallback)(async e=>{let t=d.current?.trim();if(t)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(t)}&threadId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]);return{messages:n,setMessages:s,logs:l,sendMessage:h,loadHistory:p,clearHistory:f,clearLogs:(0,t.useCallback)(async e=>{let t=e?.trim()||d.current?.trim();t?(await fetch(`/api/logs?${a(t)}`,{method:"DELETE"}).catch(e=>console.warn("[useGroupChat] delete logs failed:",e)),d.current===t&&i([])):i([])},[]),chatRuns:o,setChatRuns:c,stop:m,stopThread:x}}e.s(["useGroupChat",()=>n],945028);let s=new Set(["spawning","running"]);function l(e,r){let a=r?.intervalMs??1500,n=r?.idleIntervalMs??1e4,[l,i]=(0,t.useState)(new Set),[o,c]=(0,t.useState)([]),[d,u]=(0,t.useState)({}),[p,f]=(0,t.useState)([]),h=(0,t.useRef)(e);h.current=e,(0,t.useRef)(r?.messages??[]).current=r?.messages??[];let m=(0,t.useRef)(r?.setMessages);m.current=r?.setMessages;let x=(0,t.useRef)(0),g=(0,t.useRef)(new Map),b=(0,t.useRef)(new Map);(0,t.useEffect)(()=>{let e=r?.messages??[];if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>x.current&&(x.current=t)}},[r?.messages]),(0,t.useEffect)(()=>()=>{for(let e of g.current.values())e.close();g.current.clear()},[]);let y=(0,t.useCallback)(async()=>{let e=h.current;if(!e){i(new Set),c([]),u({}),f([]);return}let t=null;if(e.threadId?t=`/api/processes?threadId=${encodeURIComponent(e.threadId)}`:e.workspaceId&&(t=`/api/processes?workspaceId=${encodeURIComponent(e.workspaceId)}`),!t){i(new Set),c([]),u({}),f([]);return}try{let a=e.workspaceId||e.threadId,n=a?`/api/history?threadId=${encodeURIComponent(a)}&since=${x.current}`:null,l=a?`/api/chat-runs?threadId=${encodeURIComponent(a)}&limit=20`:null,o=[fetch(t)];n&&o.push(fetch(n)),l&&o.push(fetch(l));let[d,u,p]=await Promise.all(o),g=h.current;if(g?.threadId!==e.threadId||g?.workspaceId!==e.workspaceId)return;if(d.ok){let e=await d.json();c(e);let t=new Set(e.filter(e=>s.has(e.state)).map(e=>e.agentId));i(t)}if(p?.ok){var r;let e=(r=await p.json(),Array.isArray(r)?r.map(e=>{if(!e||"object"!=typeof e)return null;let t="string"==typeof e.chatRunId?e.chatRunId:"string"==typeof e.id?e.id:null,r="string"==typeof e.threadId?e.threadId:null,a="string"==typeof e.status?e.status:null,n="string"==typeof e.rootMessageId?e.rootMessageId:(e.rootMessageId,null);return t&&r&&a&&("queued"===a||"running"===a||"awaiting_user"===a||"blocked"===a||"completed"===a||"failed"===a||"cancelled"===a)?{chatRunId:t,threadId:r,rootMessageId:n,status:a,optimistic:!1}:null}).filter(e=>!!e):[]);f(e)}if(u?.ok&&m.current){let e=await u.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>x.current&&(x.current=t),m.current(t=>{let r=new Set(t.map(e=>e.id)),a=e.filter(e=>!r.has(e.id)),n=t.map(t=>e.find(e=>e.id===t.id)??t);return 0===a.length?n:[...n,...a].sort((e,t)=>e.timestamp-t.timestamp)})}}}catch{}},[]);(0,t.useEffect)(()=>{let e=p.filter(e=>"queued"===e.status||"running"===e.status),t=new Set(e.map(e=>e.chatRunId));for(let[e,r]of g.current.entries())t.has(e)||(r.close(),g.current.delete(e),b.current.delete(e));for(let t of e){if(g.current.has(t.chatRunId))continue;let e=new EventSource(`/api/chat-runs/${encodeURIComponent(t.chatRunId)}/events`);g.current.set(t.chatRunId,e);let r=new Map;b.current.set(t.chatRunId,r);let a=new Set;e.addEventListener("chat",n=>{let s;try{s=JSON.parse(n.data)}catch{return}switch(s.type){case"participant-start":case"participant-thinking":a.add(s.participantId),r.has(s.participantId)||r.set(s.participantId,{text:"",thoughts:[]}),u(e=>e[s.participantId]?e:{...e,[s.participantId]:{content:"",rootMessageId:t.rootMessageId??null}});break;case"text-delta":{r.has(s.participantId)||r.set(s.participantId,{text:"",thoughts:[]});let e=r.get(s.participantId);e&&(e.text+=s.delta,u(r=>{let a={...r},n=t.rootMessageId??null;return a[s.participantId]={content:e.text,rootMessageId:n},a}));break}case"participant-thought":{let e=r.get(s.participantId);e&&(e.thoughts.push(s.content),u(t=>{let r=t[s.participantId];return r?{...t,[s.participantId]:{...r,thoughts:[...e.thoughts]}}:t}));break}case"participant-end":a.delete(s.participantId),y().then(()=>{u(e=>{let t={...e};return delete t[s.participantId],t})});break;case"participant-error":a.delete(s.participantId),y().then(()=>{u(e=>{let t={...e};return delete t[s.participantId],t})});break;case"done":e.close(),g.current.delete(t.chatRunId),b.current.delete(t.chatRunId)}}),e.onerror=()=>{e.close(),g.current.delete(t.chatRunId),b.current.delete(t.chatRunId)}}},[p]);let I=e?.threadId||e?.workspaceId||null,w=p.some(e=>"queued"===e.status||"running"===e.status),j=o.some(e=>s.has(e.state)),v=w||j?a:n;return(0,t.useEffect)(()=>{if(!I){i(new Set),c([]),u({}),f([]);return}y();let e=setInterval(y,v);return()=>clearInterval(e)},[I,v,y]),{activeAgents:l,processes:o,streaming:d,chatRuns:p,poll:y}}e.s(["useProcessPolling",()=>l],490011)},781873,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return n}});let a=e.r(804984);function n({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new a.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},373512,(e,t,r)=>{"use strict";function a(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return a}})},974052,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return o}});let a=e.r(762281),n=e.r(866389),s=e.r(721014),l=e.r(373512),i=e.r(162998);function o({moduleIds:e}){if("u">typeof window)return null;let t=s.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let a=t.reactLoadableManifest;for(let t of e){if(!a[t])continue;let e=a[t].files;r.push(...e)}}if(0===r.length)return null;let o=(0,i.getDeploymentIdQueryOrEmptyString)();return(0,a.jsx)(a.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,l.encodeURIPath)(e)}${o}`;return e.endsWith(".css")?(0,a.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,n.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},184790,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return c}});let a=e.r(762281),n=e.r(935851),s=e.r(781873),l=e.r(974052);function i(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},c=function(e){let t={...o,...e},r=(0,n.lazy)(()=>t.loader().then(i)),c=t.loading;function d(e){let i=c?(0,a.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,d=o?n.Suspense:n.Fragment,u=t.ssr?(0,a.jsxs)(a.Fragment,{children:["u"<typeof window?(0,a.jsx)(l.PreloadChunks,{moduleIds:t.modules}):null,(0,a.jsx)(r,{...e})]}):(0,a.jsx)(s.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(r,{...e})});return(0,a.jsx)(d,{...o?{fallback:i}:{},children:u})}return d.displayName="LoadableComponent",d}},353899,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return n}});let a=e.r(555682)._(e.r(184790));function n(e,t){let r={};"function"==typeof e&&(r.loader=e);let n={...r,...t};return(0,a.default)({...n,modules:n.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},509501,e=>{"use strict";var t=e.i(935851);function r(e,r){let[a,n]=(0,t.useState)([]),[s,l]=(0,t.useState)(!1);return(0,t.useEffect)(()=>{let t=!1;return async function(){try{let a=await fetch("/api/participants"),s=a.ok?await a.json():[];if(!r){t||(n(s),l(!0));return}let i=new URLSearchParams;i.set("projectId",r);let o=await fetch(`/api/trackers/${encodeURIComponent(e)}/worker?${i}`).catch(()=>null),c=o?.ok?await o.json().catch(()=>null):null,d=c?.job?.teamId||void 0;if(d){let e=await fetch(`/api/projects/${encodeURIComponent(r)}/teams/${encodeURIComponent(d)}/agents`);if(e.ok){let r=await e.json(),a=Array.isArray(r.agents)?r.agents.sort((e,t)=>(e.routing_order??0)-(t.routing_order??0)).map(e=>e.agent_id).filter(e=>"string"==typeof e&&e.trim().length>0):[];if(a.length>0){let e=new Map(a.map((e,t)=>[e,t])),r=s.filter(t=>e.has(t.id)).sort((t,r)=>(e.get(t.id)??Number.MAX_SAFE_INTEGER)-(e.get(r.id)??Number.MAX_SAFE_INTEGER));if(!t&&r.length>0){n(r),l(!0);return}}}}let u=await fetch(`/api/projects/${encodeURIComponent(r)}/agents`);if(!u.ok){t||(n(s),l(!0));return}let p=await u.json(),f=Array.isArray(p.agents)?p.agents.map(e=>e.agent_id).filter(e=>"string"==typeof e&&e.trim().length>0):[],h=new Map(f.map((e,t)=>[e,t])),m=s.filter(e=>h.has(e.id)).sort((e,t)=>(h.get(e.id)??Number.MAX_SAFE_INTEGER)-(h.get(t.id)??Number.MAX_SAFE_INTEGER));t||(n(m),l(!0))}catch{t||(n([]),l(!0))}}(),()=>{t=!0}},[e,r]),{participants:a,participantsLoaded:s}}e.s(["useTrackerParticipants",()=>r])},343942,e=>{"use strict";e.i(827976);var t=e.i(762281),r=e.i(935851),a=e.i(307241),n=e.i(524123),s=e.i(353899);function l(e,t){return e<<t|e>>>32-t}let i=function(e){let t=[0x5a827999,0x6ed9eba1,0x8f1bbcdc,0xca62c1d6],r=[0x67452301,0xefcdab89,0x98badcfe,0x10325476,0xc3d2e1f0],a=new Uint8Array(e.length+1);a.set(e),a[e.length]=128;let n=Math.ceil(((e=a).length/4+2)/16),s=Array(n);for(let t=0;t<n;++t){let r=new Uint32Array(16);for(let a=0;a<16;++a)r[a]=e[64*t+4*a]<<24|e[64*t+4*a+1]<<16|e[64*t+4*a+2]<<8|e[64*t+4*a+3];s[t]=r}s[n-1][14]=(e.length-1)*8/0x100000000,s[n-1][14]=Math.floor(s[n-1][14]),s[n-1][15]=(e.length-1)*8|0;for(let e=0;e<n;++e){let a=new Uint32Array(80);for(let t=0;t<16;++t)a[t]=s[e][t];for(let e=16;e<80;++e)a[e]=l(a[e-3]^a[e-8]^a[e-14]^a[e-16],1);let n=r[0],i=r[1],o=r[2],c=r[3],d=r[4];for(let e=0;e<80;++e){let r=Math.floor(e/20),s=l(n,5)+function(e,t,r,a){switch(e){case 0:return t&r^~t&a;case 1:case 3:return t^r^a;case 2:return t&r^t&a^r&a}}(r,i,o,c)+d+t[r]+a[e]>>>0;d=c,c=o,o=l(i,30)>>>0,i=n,n=s}r[0]=r[0]+n>>>0,r[1]=r[1]+i>>>0,r[2]=r[2]+o>>>0,r[3]=r[3]+c>>>0,r[4]=r[4]+d>>>0}return Uint8Array.of(r[0]>>24,r[0]>>16,r[0]>>8,r[0],r[1]>>24,r[1]>>16,r[1]>>8,r[1],r[2]>>24,r[2]>>16,r[2]>>8,r[2],r[3]>>24,r[3]>>16,r[3]>>8,r[3],r[4]>>24,r[4]>>16,r[4]>>8,r[4])},o=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i,c=function(e){let t;if(!("string"==typeof e&&o.test(e)))throw TypeError("Invalid UUID");return Uint8Array.of((t=parseInt(e.slice(0,8),16))>>>24,t>>>16&255,t>>>8&255,255&t,(t=parseInt(e.slice(9,13),16))>>>8,255&t,(t=parseInt(e.slice(14,18),16))>>>8,255&t,(t=parseInt(e.slice(19,23),16))>>>8,255&t,(t=parseInt(e.slice(24,36),16))/0x10000000000&255,t/0x100000000&255,t>>>24&255,t>>>16&255,t>>>8&255,255&t)},d=[];for(let e=0;e<256;++e)d.push((e+256).toString(16).slice(1));function u(e,t,r,a){var n=t,s=a;let l="string"==typeof e?function(e){let t=new Uint8Array((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<e.length;++r)t[r]=e.charCodeAt(r);return t}(e):e,o="string"==typeof n?c(n):n;if("string"==typeof n&&(n=c(n)),n?.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let u=new Uint8Array(16+l.length);if(u.set(o),u.set(l,o.length),(u=i(u))[6]=15&u[6]|80,u[8]=63&u[8]|128,r){s=s||0;for(let e=0;e<16;++e)r[s+e]=u[e];return r}return function(e,t=0){return(d[e[t+0]]+d[e[t+1]]+d[e[t+2]]+d[e[t+3]]+"-"+d[e[t+4]]+d[e[t+5]]+"-"+d[e[t+6]]+d[e[t+7]]+"-"+d[e[t+8]]+d[e[t+9]]+"-"+d[e[t+10]]+d[e[t+11]]+d[e[t+12]]+d[e[t+13]]+d[e[t+14]]+d[e[t+15]]).toLowerCase()}(u)}u.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",u.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8";var p=e.i(945028),f=e.i(490011),h=e.i(509501);let m=(0,s.default)(()=>e.A(501223).then(e=>e.Composer),{loadableGenerated:{modules:[844118]},ssr:!1});function x({messages:e,participants:a}){let n=(0,r.useMemo)(()=>new Map(a.map(e=>[e.id,e.name])),[a]),s=(0,r.useMemo)(()=>{let t=[],r=new Map,a=new Map,n=new Map;for(let s of e)if(s.rootMessageId){r.set(s.rootMessageId,(r.get(s.rootMessageId)??0)+1);let e=a.get(s.rootMessageId)??0;s.timestamp>e&&(a.set(s.rootMessageId,s.timestamp),s.participantId&&n.set(s.rootMessageId,s.participantId))}else t.push(s),(!a.has(s.id)||(a.get(s.id)??0)<s.timestamp)&&a.set(s.id,s.timestamp);return t.map(e=>({id:e.id,text:e.content,replyCount:r.get(e.id)??0,updatedAt:a.get(e.id)??e.timestamp,agent:n.get(e.id)??null})).sort((e,t)=>t.updatedAt-e.updatedAt)},[e]);return 0===s.length?(0,t.jsx)("div",{className:"px-4 py-6 text-center text-xs text-neutral-500",children:"No sessions yet. Start one below."}):(0,t.jsx)("div",{className:"flex flex-col",children:s.map(e=>(0,t.jsx)("div",{className:"flex w-full items-start justify-between gap-3 border-b border-neutral-800/60 px-4 py-3 text-left",children:(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-neutral-100",children:e.text.length>80?e.text.slice(0,80)+"…":e.text||"(empty)"}),(0,t.jsxs)("p",{className:"mt-1 flex items-center gap-2 text-[11px] text-neutral-500",children:[e.agent&&(0,t.jsx)("span",{children:n.get(e.agent)??e.agent}),e.agent&&(0,t.jsx)("span",{children:"·"}),(0,t.jsxs)("span",{children:[e.replyCount," repl",1===e.replyCount?"y":"ies"]}),(0,t.jsx)("span",{children:"·"}),(0,t.jsx)("span",{children:new Date(e.updatedAt).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})})]})]})},e.id))})}function g({pr:e,projectId:a,projectSlug:n}){let s=(0,r.useMemo)(()=>u(e.id,"6b1c08a3-3d48-4a8d-9d60-6b9c6f8f5a01"),[e.id]),{participants:l}=(0,h.useTrackerParticipants)("linear",a),i=l[0],{messages:o,setMessages:c,sendMessage:d,loadHistory:g,chatRuns:b,stop:y}=(0,p.useGroupChat)(s),{processes:I}=(0,f.useProcessPolling)({workspaceId:s},{messages:o,setMessages:c});(0,r.useEffect)(()=>{g()},[g,s]);let w=(0,r.useRef)(!0);(0,r.useEffect)(()=>{w.current=0===o.length},[o.length]);let j=(0,r.useMemo)(()=>new Set(["queued","running","awaiting_user","blocked"]),[]),v=b.some(e=>j.has(e.status))||I.some(e=>"spawning"===e.state||"running"===e.state)?b.some(e=>"queued"===e.status)?"queued":"working":"ready",k=(0,r.useCallback)((t,r,a,s,o,c,u)=>{let p=(o?l.find(e=>e.id===o):null)??i;if(!p)return;let f=w.current?`Regarding PR ${e.repoId}#${e.number} (${e.title}). URL: ${e.url}
2
2
 
3
- `:"";x(t,r,void 0,void 0,a,void 0,[u.id],n,p+(c??"")||void 0,d),w.current=!1},[e,l,i,x,n]);return(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:(0,t.jsx)(m,{messages:o,participants:l})}),(0,t.jsx)("div",{className:"shrink-0 border-t border-neutral-800 p-2",children:(0,t.jsx)(h,{onSend:k,onStop:y,participants:l,projectId:a,projectSlug:n,loading:"ready"!==v,commands:[],activityStatus:v,placeholder:"Ask agents about this PR…",initialPinnedParticipantId:i?.id})})]})}function g(e){return"merged"===e.state?"bg-purple-500/15 text-purple-400 border-purple-500/30":"closed"===e.state?"bg-red-500/15 text-red-400 border-red-500/30":e.draft?"bg-neutral-500/15 text-neutral-400 border-neutral-500/30":"bg-green-500/15 text-green-400 border-green-500/30"}function b(e){return"merged"===e.state?"Merged":"closed"===e.state?"Closed":e.draft?"Draft":"Open"}function y(e){return"success"===e?{symbol:"✓",color:"text-green-500"}:"failure"===e?{symbol:"✗",color:"text-red-500"}:"pending"===e?{symbol:"●",color:"text-amber-500"}:{symbol:"—",color:"text-neutral-500"}}function I({params:e}){let{slug:n}=(0,r.use)(e),{projects:s}=(0,a.useProjectsWithAgents)(),l=(0,r.useMemo)(()=>s.find(e=>e.slug===n)?.id,[s,n]),[i,o]=(0,r.useState)([]),[c,d]=(0,r.useState)([]),[u,p]=(0,r.useState)("all"),[f,h]=(0,r.useState)(""),[m,I]=(0,r.useState)(!1),[w,j]=(0,r.useState)(null),[v,k]=(0,r.useState)(null),[R,S]=(0,r.useState)(!1),N=(0,r.useCallback)(async()=>{I(!0),j(null);try{let e=new URLSearchParams;e.set("quickFilter",u),e.set("authorLogin","mendrika"),f&&e.set("repoId",f);let t=await fetch(`/api/github/prs?${e.toString()}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let r=await t.json();o(r.prs),d(r.repos)}catch(e){j(e instanceof Error?e.message:String(e))}finally{I(!1)}},[u,f]);(0,r.useEffect)(()=>{N()},[N]),(0,r.useCallback)(async()=>{S(!0);try{let e=await fetch("/api/github/prs/seed",{method:"POST"});if(!e.ok)throw Error(`Seed failed: HTTP ${e.status}`);await N()}catch(e){j(e instanceof Error?e.message:String(e))}finally{S(!1)}},[N]);let M=(0,r.useMemo)(()=>i.find(e=>e.id===v)??null,[i,v]);return(0,t.jsxs)("div",{className:"flex h-full min-h-0 w-full flex-col bg-[var(--app-shell-pane,#0f1115)] text-neutral-200",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-neutral-800 px-4 py-3",children:[(0,t.jsx)("h1",{className:"text-lg font-semibold",children:"Pull Requests"}),!1]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 border-b border-neutral-800 px-4 py-2",children:[(0,t.jsx)("div",{className:"flex items-center gap-1",children:[["all","All"],["mine","My PRs"],["awaiting_review","Awaiting my review"]].map(([e,r])=>(0,t.jsx)("button",{type:"button",onClick:()=>p(e),className:`rounded px-2.5 py-1 text-xs ${u===e?"bg-neutral-700 text-white":"text-neutral-400 hover:bg-neutral-800"}`,children:r},e))}),(0,t.jsx)("div",{className:"ml-auto",children:(0,t.jsxs)("select",{value:f,onChange:e=>h(e.target.value),className:"rounded border border-neutral-700 bg-neutral-900 px-2 py-1 text-xs text-neutral-200",children:[(0,t.jsx)("option",{value:"",children:"All repos"}),c.map(e=>(0,t.jsx)("option",{value:e.id,children:e.id},e.id))]})})]}),(0,t.jsxs)("div",{className:"flex min-h-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col overflow-y-auto",children:[m&&0===i.length&&(0,t.jsx)("div",{className:"px-4 py-6 text-sm text-neutral-500",children:"Loading…"}),w&&(0,t.jsxs)("div",{className:"px-4 py-6 text-sm text-red-400",children:["Error: ",w]}),!m&&!w&&0===i.length&&(0,t.jsxs)("div",{className:"px-4 py-6 text-sm text-neutral-500",children:["No pull requests."," ",!1]}),i.map(e=>{let r=c.find(t=>t.id===e.repoId),a=y(e.ciStatus),n=e.id===v;return(0,t.jsxs)("button",{type:"button",onClick:()=>k(e.id),className:`flex flex-col gap-0.5 border-b border-neutral-800/60 px-4 py-2 text-left text-sm hover:bg-neutral-800/50 ${n?"bg-neutral-800/70":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"truncate font-mono text-xs text-neutral-500",children:[r?`${r.owner}/${r.name}`:e.repoId,"#",e.number]}),(0,t.jsx)("span",{className:`rounded border px-1.5 py-0.5 text-[10px] uppercase tracking-wide ${g(e)}`,children:b(e)}),(0,t.jsx)("span",{className:`text-xs ${a.color}`,title:`CI: ${e.ciStatus??"none"}`,children:a.symbol})]}),(0,t.jsx)("div",{className:"truncate text-neutral-100",children:e.title}),(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[11px] text-neutral-500",children:[(0,t.jsxs)("span",{children:["@",e.authorLogin]}),(0,t.jsx)("span",{children:"·"}),(0,t.jsx)("span",{children:function(e){let t=Math.floor((Date.now()-e)/6e4);if(t<1)return"just now";if(t<60)return`${t}m ago`;let r=Math.floor(t/60);if(r<24)return`${r}h ago`;let a=Math.floor(r/24);return`${a}d ago`}(e.updatedAt)})]})]},e.id)})]}),(0,t.jsx)("div",{className:"hidden w-[380px] shrink-0 flex-col border-l border-neutral-800 md:flex",children:M?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex shrink-0 flex-col gap-3 border-b border-neutral-800 p-4 text-sm",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"font-mono text-xs text-neutral-500",children:[M.repoId,"#",M.number]}),(0,t.jsx)("span",{className:`rounded border px-1.5 py-0.5 text-[10px] uppercase tracking-wide ${g(M)}`,children:b(M)}),(0,t.jsx)("span",{className:`text-xs ${y(M.ciStatus).color}`,children:y(M.ciStatus).symbol})]}),(0,t.jsx)("div",{className:"text-base font-semibold text-neutral-100",children:M.title}),(0,t.jsx)("div",{className:"whitespace-pre-wrap text-xs text-neutral-400",children:M.body.length>500?M.body.slice(0,500)+"…":M.body||"(no description)"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[11px] uppercase tracking-wide text-neutral-500",children:"Reviewers"}),0===M.reviewers.length?(0,t.jsx)("div",{className:"text-xs text-neutral-500",children:"None"}):(0,t.jsx)("ul",{className:"mt-1 flex flex-col gap-0.5",children:M.reviewers.map(e=>(0,t.jsxs)("li",{className:"flex items-center justify-between text-xs",children:[(0,t.jsxs)("span",{children:["@",e.login]}),(0,t.jsx)("span",{className:"text-neutral-500",children:e.state})]},e.login))})]}),(0,t.jsx)("a",{href:M.url,target:"_blank",rel:"noreferrer",className:"inline-block self-start rounded border border-neutral-700 bg-neutral-800 px-2.5 py-1 text-xs hover:bg-neutral-700",children:"Open on GitHub ↗"})]}),(0,t.jsx)(x,{pr:M,projectId:l,projectSlug:n})]}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center p-4 text-xs text-neutral-500",children:"Select a PR to see details."})})]})]})}e.s(["default",()=>I],343942)},501223,e=>{e.v(t=>Promise.all(["static/chunks/c00eea0c6533548d.js","static/chunks/42a62b80b32a97f7.js","static/chunks/94f26a112344ab1b.css"].map(t=>e.l(t))).then(()=>t(844118)))}]);
3
+ `:"";d(t,r,void 0,void 0,a,void 0,[p.id],n,f+(c??"")||void 0,u),w.current=!1},[e,l,i,d,n]);return(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:(0,t.jsx)(x,{messages:o,participants:l})}),(0,t.jsx)("div",{className:"shrink-0 border-t border-neutral-800 p-2",children:(0,t.jsx)(m,{onSend:k,onStop:y,participants:l,projectId:a,projectSlug:n,loading:"ready"!==v,commands:[],activityStatus:v,placeholder:"Ask agents about this PR…",initialPinnedParticipantId:i?.id})})]})}function b(e){return"merged"===e.state?"bg-purple-500/15 text-purple-400 border-purple-500/30":"closed"===e.state?"bg-red-500/15 text-red-400 border-red-500/30":e.draft?"bg-neutral-500/15 text-neutral-400 border-neutral-500/30":"bg-green-500/15 text-green-400 border-green-500/30"}function y(e){return"merged"===e.state?"Merged":"closed"===e.state?"Closed":e.draft?"Draft":"Open"}function I(e){return"success"===e?{symbol:"✓",color:"text-green-500"}:"failure"===e?{symbol:"✗",color:"text-red-500"}:"pending"===e?{symbol:"●",color:"text-amber-500"}:{symbol:"—",color:"text-neutral-500"}}function w({params:e}){let{slug:s}=(0,r.use)(e),{projects:l}=(0,n.useProjectsWithAgents)(),i=(0,r.useMemo)(()=>l.find(e=>e.slug===s)?.id,[l,s]),[o,c]=(0,r.useState)([]),[d,u]=(0,r.useState)([]),[p,f]=(0,r.useState)("all"),[h,m]=(0,r.useState)(""),[x,w]=(0,r.useState)(!1),[j,v]=(0,r.useState)(null),[k,R]=(0,r.useState)(null),[S,N]=(0,r.useState)(!1),M=(0,r.useCallback)(async()=>{w(!0),v(null);try{let e=new URLSearchParams;e.set("quickFilter",p),e.set("authorLogin","mendrika"),h&&e.set("repoId",h);let t=await fetch(`/api/github/prs?${e.toString()}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let r=await t.json();c(r.prs),u(r.repos)}catch(e){v(e instanceof Error?e.message:String(e))}finally{w(!1)}},[p,h]);(0,r.useEffect)(()=>{M()},[M]),(0,r.useCallback)(async()=>{N(!0);try{let e=await fetch("/api/github/prs/seed",{method:"POST"});if(!e.ok)throw Error(`Seed failed: HTTP ${e.status}`);await M()}catch(e){v(e instanceof Error?e.message:String(e))}finally{N(!1)}},[M]);let C=(0,r.useMemo)(()=>o.find(e=>e.id===k)??null,[o,k]);return(0,t.jsxs)("div",{className:"flex h-full min-h-0 w-full flex-col bg-[var(--app-shell-pane,#0f1115)] text-neutral-200",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-neutral-800 px-4 py-3",children:[(0,t.jsx)("h1",{className:"text-lg font-semibold",children:"Pull Requests"}),!1]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 border-b border-neutral-800 px-4 py-2",children:[(0,t.jsx)("div",{className:"flex items-center gap-1",children:[["all","All"],["mine","My PRs"],["awaiting_review","Awaiting my review"]].map(([e,r])=>(0,t.jsx)("button",{type:"button",onClick:()=>f(e),className:`rounded px-2.5 py-1 text-xs ${p===e?"bg-neutral-700 text-white":"text-neutral-400 hover:bg-neutral-800"}`,children:r},e))}),(0,t.jsx)("div",{className:"ml-auto",children:(0,t.jsxs)("select",{value:h,onChange:e=>m(e.target.value),className:"rounded border border-neutral-700 bg-neutral-900 px-2 py-1 text-xs text-neutral-200",children:[(0,t.jsx)("option",{value:"",children:"All repos"}),d.map(e=>(0,t.jsx)("option",{value:e.id,children:e.id},e.id))]})})]}),(0,t.jsxs)("div",{className:"flex min-h-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col overflow-y-auto",children:[x&&0===o.length&&(0,t.jsx)("div",{className:"px-4 py-6 text-sm text-neutral-500",children:"Loading…"}),j&&(0,t.jsxs)("div",{className:"px-4 py-6 text-sm text-red-400",children:["Error: ",j]}),!x&&!j&&0===o.length&&(0,t.jsxs)("div",{className:"px-4 py-6 text-sm text-neutral-500",children:["No pull requests."," ",!1]}),o.map(e=>{let r=d.find(t=>t.id===e.repoId),n=I(e.ciStatus),l=e.id===k;return(0,t.jsxs)(a.default,{href:`/projects/${s}/prs/${encodeURIComponent(e.id)}`,onMouseEnter:()=>R(e.id),className:`flex flex-col gap-0.5 border-b border-neutral-800/60 px-4 py-2 text-left text-sm hover:bg-neutral-800/50 ${l?"bg-neutral-800/70":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"truncate font-mono text-xs text-neutral-500",children:[r?`${r.owner}/${r.name}`:e.repoId,"#",e.number]}),(0,t.jsx)("span",{className:`rounded border px-1.5 py-0.5 text-[10px] uppercase tracking-wide ${b(e)}`,children:y(e)}),(0,t.jsx)("span",{className:`text-xs ${n.color}`,title:`CI: ${e.ciStatus??"none"}`,children:n.symbol})]}),(0,t.jsx)("div",{className:"truncate text-neutral-100",children:e.title}),(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[11px] text-neutral-500",children:[(0,t.jsxs)("span",{children:["@",e.authorLogin]}),(0,t.jsx)("span",{children:"·"}),(0,t.jsx)("span",{children:function(e){let t=Math.floor((Date.now()-e)/6e4);if(t<1)return"just now";if(t<60)return`${t}m ago`;let r=Math.floor(t/60);if(r<24)return`${r}h ago`;let a=Math.floor(r/24);return`${a}d ago`}(e.updatedAt)})]})]},e.id)})]}),(0,t.jsx)("div",{className:"hidden w-[380px] shrink-0 flex-col border-l border-neutral-800 md:flex",children:C?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex shrink-0 flex-col gap-3 border-b border-neutral-800 p-4 text-sm",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"font-mono text-xs text-neutral-500",children:[C.repoId,"#",C.number]}),(0,t.jsx)("span",{className:`rounded border px-1.5 py-0.5 text-[10px] uppercase tracking-wide ${b(C)}`,children:y(C)}),(0,t.jsx)("span",{className:`text-xs ${I(C.ciStatus).color}`,children:I(C.ciStatus).symbol})]}),(0,t.jsx)("div",{className:"text-base font-semibold text-neutral-100",children:C.title}),(0,t.jsx)("div",{className:"whitespace-pre-wrap text-xs text-neutral-400",children:C.body.length>500?C.body.slice(0,500)+"…":C.body||"(no description)"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[11px] uppercase tracking-wide text-neutral-500",children:"Reviewers"}),0===C.reviewers.length?(0,t.jsx)("div",{className:"text-xs text-neutral-500",children:"None"}):(0,t.jsx)("ul",{className:"mt-1 flex flex-col gap-0.5",children:C.reviewers.map(e=>(0,t.jsxs)("li",{className:"flex items-center justify-between text-xs",children:[(0,t.jsxs)("span",{children:["@",e.login]}),(0,t.jsx)("span",{className:"text-neutral-500",children:e.state})]},e.login))})]}),(0,t.jsx)("a",{href:C.url,target:"_blank",rel:"noreferrer",className:"inline-block self-start rounded border border-neutral-700 bg-neutral-800 px-2.5 py-1 text-xs hover:bg-neutral-700",children:"Open on GitHub ↗"})]}),(0,t.jsx)(g,{pr:C,projectId:i,projectSlug:s})]}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center p-4 text-xs text-neutral-500",children:"Select a PR to see details."})})]})]})}e.s(["default",()=>w],343942)},501223,e=>{e.v(t=>Promise.all(["static/chunks/c00eea0c6533548d.js","static/chunks/42a62b80b32a97f7.js","static/chunks/94f26a112344ab1b.css"].map(t=>e.l(t))).then(()=>t(844118)))}]);
@@ -0,0 +1,4 @@
1
+ @font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
2
+ @font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
3
+ @font-face{font-family:Inter Tight;font-style:normal;font-weight:400;font-display:swap;src:url(../media/13ae3e01af63c0ce-s.3ec27879.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0ee4b8f05dcd9fee-s.45e2741a.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9eba4caf7edd2921-s.57f6a4a3.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter Tight;font-style:normal;font-weight:400;font-display:swap;src:url(../media/f6752bd2263820da-s.95b8f539.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:400;font-display:swap;src:url(../media/f285987c35230861-s.b3721d2b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b8d1f0a88dfecec3-s.cf53ec14.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ab57efd000576a30-s.p.37015d44.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight;font-style:normal;font-weight:500;font-display:swap;src:url(../media/13ae3e01af63c0ce-s.3ec27879.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0ee4b8f05dcd9fee-s.45e2741a.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9eba4caf7edd2921-s.57f6a4a3.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter Tight;font-style:normal;font-weight:500;font-display:swap;src:url(../media/f6752bd2263820da-s.95b8f539.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:500;font-display:swap;src:url(../media/f285987c35230861-s.b3721d2b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b8d1f0a88dfecec3-s.cf53ec14.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ab57efd000576a30-s.p.37015d44.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight;font-style:normal;font-weight:600;font-display:swap;src:url(../media/13ae3e01af63c0ce-s.3ec27879.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0ee4b8f05dcd9fee-s.45e2741a.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9eba4caf7edd2921-s.57f6a4a3.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter Tight;font-style:normal;font-weight:600;font-display:swap;src:url(../media/f6752bd2263820da-s.95b8f539.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:600;font-display:swap;src:url(../media/f285987c35230861-s.b3721d2b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b8d1f0a88dfecec3-s.cf53ec14.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ab57efd000576a30-s.p.37015d44.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(../media/13ae3e01af63c0ce-s.3ec27879.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0ee4b8f05dcd9fee-s.45e2741a.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9eba4caf7edd2921-s.57f6a4a3.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(../media/f6752bd2263820da-s.95b8f539.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(../media/f285987c35230861-s.b3721d2b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b8d1f0a88dfecec3-s.cf53ec14.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(../media/ab57efd000576a30-s.p.37015d44.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight;font-style:normal;font-weight:800;font-display:swap;src:url(../media/13ae3e01af63c0ce-s.3ec27879.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight;font-style:normal;font-weight:800;font-display:swap;src:url(../media/0ee4b8f05dcd9fee-s.45e2741a.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:800;font-display:swap;src:url(../media/9eba4caf7edd2921-s.57f6a4a3.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter Tight;font-style:normal;font-weight:800;font-display:swap;src:url(../media/f6752bd2263820da-s.95b8f539.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:800;font-display:swap;src:url(../media/f285987c35230861-s.b3721d2b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight;font-style:normal;font-weight:800;font-display:swap;src:url(../media/b8d1f0a88dfecec3-s.cf53ec14.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:800;font-display:swap;src:url(../media/ab57efd000576a30-s.p.37015d44.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight;font-style:normal;font-weight:900;font-display:swap;src:url(../media/13ae3e01af63c0ce-s.3ec27879.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight;font-style:normal;font-weight:900;font-display:swap;src:url(../media/0ee4b8f05dcd9fee-s.45e2741a.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:900;font-display:swap;src:url(../media/9eba4caf7edd2921-s.57f6a4a3.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter Tight;font-style:normal;font-weight:900;font-display:swap;src:url(../media/f6752bd2263820da-s.95b8f539.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:900;font-display:swap;src:url(../media/f285987c35230861-s.b3721d2b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight;font-style:normal;font-weight:900;font-display:swap;src:url(../media/b8d1f0a88dfecec3-s.cf53ec14.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:normal;font-weight:900;font-display:swap;src:url(../media/ab57efd000576a30-s.p.37015d44.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight Fallback;src:local(Arial);ascent-override:100.51%;descent-override:25.03%;line-gap-override:0.0%;size-adjust:96.39%}.inter_tight_65b2ca06-module__c5ufqa__className{font-family:Inter Tight,Inter Tight Fallback;font-style:normal}.inter_tight_65b2ca06-module__c5ufqa__variable{--font-inter-tight:"Inter Tight","Inter Tight Fallback"}
4
+ @font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/04c5164763c40239-s.690580e8.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/26f284dcc38c84c0-s.303a03d6.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e7f32a39836f228-s.0b4edfe7.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fa39153a3fc630ba-s.bff0868b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6a5386fd6038edbe-s.719084df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/051742360c26797e-s.p.102b7f24.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/04c5164763c40239-s.690580e8.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/26f284dcc38c84c0-s.303a03d6.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7e7f32a39836f228-s.0b4edfe7.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fa39153a3fc630ba-s.bff0868b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6a5386fd6038edbe-s.719084df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/051742360c26797e-s.p.102b7f24.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/04c5164763c40239-s.690580e8.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/26f284dcc38c84c0-s.303a03d6.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/7e7f32a39836f228-s.0b4edfe7.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fa39153a3fc630ba-s.bff0868b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6a5386fd6038edbe-s.719084df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/051742360c26797e-s.p.102b7f24.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/04c5164763c40239-s.690580e8.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/26f284dcc38c84c0-s.303a03d6.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/7e7f32a39836f228-s.0b4edfe7.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/fa39153a3fc630ba-s.bff0868b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6a5386fd6038edbe-s.719084df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/051742360c26797e-s.p.102b7f24.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_c765f1e1-module__TOcNWq__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_c765f1e1-module__TOcNWq__variable{--font-jetbrains-mono:"JetBrains Mono","JetBrains Mono Fallback"}
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,276013,e=>{"use strict";var t=e.i(762281),n=e.i(935851);function i({onResize:e,className:i,ariaLabel:r}){let l=(0,n.useRef)(0),a=(0,n.useRef)(e);a.current=e;let o=(0,n.useCallback)(e=>{e.preventDefault(),l.current=e.clientX,document.body.style.cursor="col-resize",document.body.style.userSelect="none";let t=e=>{let t=e.clientX-l.current;l.current=e.clientX,a.current(t)},n=()=>{document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",n)};window.addEventListener("mousemove",t),window.addEventListener("mouseup",n)},[]);return(0,t.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":r,className:`group relative z-10 w-0 shrink-0 cursor-col-resize ${i??""}`,onMouseDown:o,children:(0,t.jsx)("div",{className:"absolute inset-y-0 -left-1 w-2 transition-colors group-hover:bg-[var(--primary)]/40"})})}e.s(["ResizeHandle",()=>i])},695717,e=>{e.v({blip:"review-module__lz5SUa__blip",btn:"review-module__lz5SUa__btn",btnGhost:"review-module__lz5SUa__btnGhost",btnPrimary:"review-module__lz5SUa__btnPrimary",kbd:"review-module__lz5SUa__kbd",leftCol:"review-module__lz5SUa__leftCol",midRow:"review-module__lz5SUa__midRow",mono:"review-module__lz5SUa__mono",reviewBody:"review-module__lz5SUa__reviewBody",rightPane:"review-module__lz5SUa__rightPane",root:"review-module__lz5SUa__root",slim:"review-module__lz5SUa__slim"})},666213,860641,e=>{"use strict";var t=e.i(762281),n=e.i(935851),i=e.i(695717);function r({pr:e}){return(0,t.jsxs)("header",{style:{height:44,flex:"0 0 auto",display:"flex",alignItems:"center",borderBottom:"1px solid var(--line)",background:"var(--bg-raised)",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"0 14px",color:"var(--fg)",fontWeight:700,borderRight:"1px solid var(--line)",height:"100%"},children:[(0,t.jsx)("span",{style:{fontFamily:"var(--font-sans)",letterSpacing:"-0.02em",fontSize:14},children:"AGX"}),(0,t.jsx)("span",{style:{color:"var(--fg-mute)",fontSize:10,marginLeft:4},children:"review"})]}),(0,t.jsx)(l,{label:"Repository",value:e.repoId,caret:!0}),(0,t.jsx)(l,{label:"Branch",value:e.headRef,caret:!0,accent:!0}),(0,t.jsx)(l,{label:"Base",value:`← ${e.baseRef}`,caret:!0}),(0,t.jsx)(l,{label:"PR",value:`#${e.number}`}),(0,t.jsx)("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:12,padding:"0 14px"},children:(0,t.jsx)("a",{href:e.url,target:"_blank",rel:"noreferrer",className:`${i.default.btn} ${i.default.btnGhost}`,children:"↗ open on github"})})]})}function l({label:e,value:n,caret:i,accent:r}){return(0,t.jsxs)("div",{style:{height:"100%",borderRight:"1px solid var(--line)",padding:"0 16px",display:"flex",flexDirection:"column",justifyContent:"center",minWidth:180},children:[(0,t.jsx)("div",{style:{color:"var(--fg-mute)",fontSize:9,letterSpacing:"0.16em",textTransform:"uppercase",marginBottom:2,fontFamily:"var(--font-mono)"},children:e}),(0,t.jsxs)("div",{style:{color:r?"var(--accent)":"var(--fg)",fontFamily:"var(--font-mono)",fontSize:12,display:"flex",alignItems:"center",gap:6,maxWidth:240,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:n}),i&&(0,t.jsx)("span",{style:{color:"var(--fg-ghost)",fontSize:10},children:"⌄"})]})]})}let a={added:"A",modified:"M",removed:"D",renamed:"R"},o={A:"var(--add)",M:"var(--accent)",D:"var(--del)",R:"var(--cool)"};function s({files:e,selected:n,onSelect:r}){let l=e.reduce((e,t)=>({a:e.a+t.additions,d:e.d+t.deletions}),{a:0,d:0});return(0,t.jsxs)("aside",{className:i.default.filesSide,style:{flex:1,borderRight:"1px solid var(--line)",background:"var(--bg-inset)",display:"flex",flexDirection:"column",minWidth:0,overflow:"hidden"},children:[(0,t.jsx)("div",{style:{display:"flex",alignItems:"stretch",borderBottom:"1px solid var(--line)",fontFamily:"var(--font-mono)",fontSize:10},children:(0,t.jsxs)("div",{style:{flex:1,padding:"10px 12px",background:"var(--bg-card)",color:"var(--fg)",borderBottom:"2px solid var(--accent)",letterSpacing:"0.1em",textTransform:"uppercase"},children:["Changes ",(0,t.jsx)("span",{style:{color:"var(--fg-mute)",marginLeft:4},children:e.length})]})}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",borderBottom:"1px solid var(--line)",fontFamily:"var(--font-mono)",fontSize:9,letterSpacing:"0.1em",textTransform:"uppercase"},children:[(0,t.jsx)(d,{k:"changed",v:String(e.length),sub:`+${l.a} −${l.d}`,border:!0}),(0,t.jsx)(d,{k:"lines",v:`+${l.a}`,sub:`−${l.d}`})]}),(0,t.jsx)("div",{className:i.default.slim,style:{flex:1,overflow:"auto"},children:e.map(e=>(0,t.jsx)(c,{file:e,active:n===e.path,onClick:()=>r(e.path)},e.path))})]})}function d({k:e,v:n,sub:i,border:r}){return(0,t.jsxs)("div",{style:{padding:"8px 10px",borderRight:r?"1px solid var(--line)":"none",background:"var(--bg-card)"},children:[(0,t.jsx)("div",{style:{color:"var(--fg-mute)",marginBottom:3},children:e}),(0,t.jsx)("div",{style:{color:"var(--fg)",fontSize:13,letterSpacing:0,fontWeight:600},children:n}),(0,t.jsx)("div",{style:{color:"var(--fg-mute)",marginTop:2,fontSize:9,letterSpacing:0,textTransform:"none"},children:i})]})}function c({file:e,active:n,onClick:i}){let r=e.path.lastIndexOf("/"),l=r>=0?e.path.slice(0,r):"",s=r>=0?e.path.slice(r+1):e.path,d=a[e.status]??"M",c=o[d]??"var(--fg)";return(0,t.jsxs)("div",{role:"button",tabIndex:0,onClick:i,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&i()},style:{display:"grid",gridTemplateColumns:"14px 1fr auto",gap:8,padding:"7px 12px",cursor:"pointer",background:n?"var(--bg-card)":"transparent",borderLeft:n?"2px solid var(--accent)":"2px solid transparent",alignItems:"center"},children:[(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,fontWeight:700,color:c,textAlign:"center"},children:d}),(0,t.jsxs)("div",{style:{minWidth:0,display:"flex",flexDirection:"column"},children:[(0,t.jsx)("span",{style:{color:n?"var(--fg)":"var(--fg-dim)",fontFamily:"var(--font-mono)",fontSize:12,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:s}),l&&(0,t.jsxs)("span",{style:{color:"var(--fg-mute)",fontFamily:"var(--font-mono)",fontSize:9,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:[l,"/"]})]}),(0,t.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,display:"flex",gap:6},children:[(0,t.jsxs)("span",{style:{color:"var(--add)"},children:["+",e.additions]}),(0,t.jsxs)("span",{style:{color:"var(--del)"},children:["−",e.deletions]})]})]})}let f=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@(.*)$/,p={claude:"#c98f5b",codex:"#a8a293",gemini:"#9ab8d8",ollama:"#7dd97b"};function x({name:e,provider:n="claude",size:i=18}){let r=e.split(/[\s-]/).map(e=>e[0]).filter(Boolean).slice(0,2).join("").toUpperCase();return(0,t.jsxs)("span",{title:`${e} \xb7 ${n}`,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:i,height:i,borderRadius:3,background:"var(--bg-inset)",border:"1px solid var(--line-strong)",color:"var(--fg)",fontSize:Math.round(.52*i),fontWeight:600,position:"relative",fontFamily:"var(--font-mono)"},children:[r,(0,t.jsx)("span",{style:{position:"absolute",bottom:-2,right:-2,width:6,height:6,borderRadius:"50%",background:p[n]??"var(--fg-mute)",border:"1.5px solid var(--bg-card)"}})]})}let u={added:"A",modified:"M",removed:"D",renamed:"R"};function m({file:e,comments:r}){let l=(0,n.useMemo)(()=>(function(e){if(!e)return[];let t=e.split("\n"),n=[],i=null,r=0,l=0;for(let e of t){let t=f.exec(e);if(t){i&&n.push(i),r=Number(t[1]),l=Number(t[2]),i={head:e,section:t[3].trim(),lines:[]};continue}if(!i||e.startsWith("\\ "))continue;let a=e[0],o=e.slice(1);"+"===a?(i.lines.push({o:null,n:l,k:"add",t:o}),l++):"-"===a?(i.lines.push({o:r,n:null,k:"del",t:o}),r++):(i.lines.push({o:r,n:l,k:"ctx",t:o}),r++,l++)}return i&&n.push(i),n})(e.patch),[e.patch]),a=(0,n.useMemo)(()=>{let t=new Map;for(let n of r){if(n.path!==e.path||null==n.line)continue;let i=t.get(n.line)??[];i.push(n),t.set(n.line,i)}return t},[r,e.path]);return(0,t.jsxs)("main",{style:{flex:1,display:"flex",flexDirection:"column",minWidth:0,overflow:"hidden",background:"var(--bg)"},children:[(0,t.jsx)(v,{file:e}),(0,t.jsx)(h,{threadCount:r.filter(t=>t.path===e.path).length}),(0,t.jsx)("div",{className:i.default.slim,style:{flex:1,overflow:"auto",background:"var(--bg)"},children:0===l.length?(0,t.jsx)("div",{style:{padding:"32px 16px",color:"var(--fg-mute)",fontFamily:"var(--font-mono)",fontSize:12,textAlign:"center"},children:"No diff available for this file."}):l.map((e,n)=>(0,t.jsx)(g,{hunk:e,commentsByLine:a},n))})]})}function v({file:e}){let n=u[e.status]??"M";return(0,t.jsxs)("div",{style:{flex:"0 0 auto",display:"flex",alignItems:"center",gap:14,padding:"10px 16px",borderBottom:"1px solid var(--line)",background:"var(--bg-raised)",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,t.jsx)("span",{style:{padding:"2px 6px",borderRadius:3,border:"1px solid var(--accent)",color:"var(--accent)",fontSize:10,letterSpacing:"0.12em"},children:n}),(0,t.jsx)("span",{style:{color:"var(--fg)",fontSize:13,fontWeight:500},children:e.path}),(0,t.jsx)("span",{style:{color:"var(--fg-mute)"},children:"·"}),(0,t.jsxs)("span",{style:{color:"var(--add)"},children:["+",e.additions]}),(0,t.jsxs)("span",{style:{color:"var(--del)"},children:["−",e.deletions]})]})}function h({threadCount:e}){return(0,t.jsxs)("div",{style:{flex:"0 0 auto",display:"flex",alignItems:"center",gap:12,padding:"6px 16px",borderBottom:"1px solid var(--line)",background:"var(--bg-card)",fontFamily:"var(--font-mono)",fontSize:10,color:"var(--fg-mute)"},children:[(0,t.jsx)("span",{children:"view: unified"}),(0,t.jsx)("span",{style:{marginLeft:"auto",display:"flex",gap:14},children:e>0&&(0,t.jsxs)("span",{style:{color:"var(--warm)"},children:["◆ ",e," thread",1===e?"":"s"]})})]})}function g({hunk:e,commentsByLine:i}){return(0,t.jsxs)("div",{style:{borderTop:"1px solid var(--line)"},children:[(0,t.jsxs)("div",{style:{padding:"6px 16px",background:"var(--bg-inset)",fontFamily:"var(--font-mono)",fontSize:11,color:"var(--fg-mute)",display:"flex",alignItems:"center",gap:12},children:[(0,t.jsx)("span",{style:{color:"var(--cool)"},children:e.head}),e.section&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{style:{color:"var(--fg-ghost)"},children:"·"}),(0,t.jsx)("span",{style:{color:"var(--fg-dim)"},children:e.section})]})]}),e.lines.map((e,r)=>{let l=null!=e.n?i.get(e.n):void 0;return(0,t.jsxs)(n.default.Fragment,{children:[(0,t.jsx)(y,{line:e}),l?.map(e=>(0,t.jsx)(j,{comment:e},e.id))]},r)})]})}function y({line:e}){let n="add"===e.k,i="del"===e.k,r=n?"var(--add-gut)":i?"var(--del-gut)":"transparent";return(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"44px 44px 16px 1fr",minHeight:20,fontFamily:"var(--font-mono)",fontSize:12,lineHeight:"20px",background:n?"var(--add-bg)":i?"var(--del-bg)":"transparent"},children:[(0,t.jsx)("span",{style:{textAlign:"right",padding:"0 8px",color:"var(--fg-mute)",background:r,borderRight:"1px solid var(--line)",fontSize:10},children:e.o??""}),(0,t.jsx)("span",{style:{textAlign:"right",padding:"0 8px",color:"var(--fg-mute)",background:r,borderRight:"1px solid var(--line)",fontSize:10},children:e.n??""}),(0,t.jsx)("span",{style:{textAlign:"center",color:n?"var(--add)":i?"var(--del)":"var(--fg-ghost)",fontWeight:600,background:r},children:n?"+":i?"−":" "}),(0,t.jsx)("span",{style:{padding:"0 12px",whiteSpace:"pre",color:n?"var(--fg)":"var(--fg-dim)"},children:e.t})]})}function j({comment:e}){let n=new Date(e.createdAt).toLocaleString();return(0,t.jsxs)("div",{style:{margin:"4px 0 4px 88px",border:"1px solid var(--line-strong)",borderRadius:5,background:"var(--bg-card)"},children:[(0,t.jsxs)("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--line)",display:"flex",alignItems:"center",gap:8,fontFamily:"var(--font-mono)",fontSize:10,color:"var(--fg-mute)"},children:[(0,t.jsx)(x,{name:e.authorLogin,provider:"claude",size:16}),(0,t.jsx)("span",{style:{color:"var(--fg)",fontSize:11},children:e.authorLogin}),(0,t.jsx)("span",{style:{marginLeft:"auto"},children:n})]}),(0,t.jsx)("div",{style:{padding:"10px 12px",fontFamily:"var(--font-sans)",fontSize:13,lineHeight:1.55,color:"var(--fg-dim)",whiteSpace:"pre-wrap"},children:e.body})]})}function b({pr:e,fileCount:n,totalAdditions:r,totalDeletions:l}){let a="merged"===e.state?"merged":"closed"===e.state?"closed":e.draft?"draft":"open";return(0,t.jsxs)("aside",{className:i.default.commitSide,style:{flex:1,minWidth:0,background:"var(--bg-inset)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,t.jsxs)("div",{style:{padding:"14px 16px 12px",borderBottom:"1px solid var(--line)"},children:[(0,t.jsxs)("div",{style:{fontFamily:"var(--font-mono)",fontSize:10,letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--fg-mute)",marginBottom:10},children:["Review · #",e.number]}),(0,t.jsx)("div",{style:{fontFamily:"var(--font-sans)",fontSize:14,fontWeight:600,letterSpacing:"-0.01em",lineHeight:1.35,marginBottom:10},children:e.title}),(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,t.jsx)(w,{k:"branch",v:e.headRef,accent:!0}),(0,t.jsx)(w,{k:"base",v:e.baseRef}),(0,t.jsx)(w,{k:"state",v:a}),(0,t.jsx)(w,{k:"files",v:`${n} \xb7 +${r} −${l}`}),e.ciStatus&&(0,t.jsx)(w,{k:"ci",v:e.ciStatus})]})]}),(0,t.jsxs)("div",{className:i.default.slim,style:{padding:"14px 16px",flex:1,overflow:"auto"},children:[(0,t.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:10,letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--fg-mute)",marginBottom:10},children:"Description"}),(0,t.jsx)("div",{style:{fontFamily:"var(--font-sans)",fontSize:12,lineHeight:1.55,color:"var(--fg-dim)",whiteSpace:"pre-wrap"},children:e.body||"(no description)"})]})]})}function w({k:e,v:n,accent:i}){return(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"70px 1fr",alignItems:"center",gap:8,fontFamily:"var(--font-mono)",fontSize:11},children:[(0,t.jsx)("span",{style:{color:"var(--fg-mute)"},children:e}),(0,t.jsx)("span",{style:{color:i?"var(--accent)":"var(--fg)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n})]})}function S({pr:e,fileCount:n,totalAdditions:i,totalDeletions:r,threadCount:l}){return(0,t.jsxs)("footer",{style:{height:26,flex:"0 0 auto",display:"flex",alignItems:"center",padding:"0 14px",gap:14,borderTop:"1px solid var(--line)",background:"var(--bg-raised)",fontFamily:"var(--font-mono)",fontSize:10,color:"var(--fg-mute)"},children:[(0,t.jsxs)("span",{style:{color:"var(--accent)"},children:["● ",e.state]}),(0,t.jsxs)("span",{children:[e.headRef," → ",e.baseRef]}),(0,t.jsx)("span",{style:{color:"var(--fg-ghost)"},children:"·"}),(0,t.jsxs)("span",{children:[n," files · +",i," −",r]}),(0,t.jsx)("span",{style:{color:"var(--fg-ghost)"},children:"·"}),(0,t.jsxs)("span",{children:[l," thread",1===l?"":"s"]}),(0,t.jsx)("span",{style:{marginLeft:"auto"},children:e.repoId})]})}var z=e.i(276013),_=e.i(169433);function R({pr:e,files:l,comments:a,rightPane:o,header:d,statusBar:c}){let[f,p]=(0,n.useState)(l[0]?.path??null),[x,u]=(0,n.useState)(300),[v,h]=(0,n.useState)(380);(0,n.useEffect)(()=>{u((0,_.loadPrReviewFilesPaneWidth)()||300),h((0,_.loadPrReviewRightPaneWidth)()||380)},[]);let g=l.find(e=>e.path===f)??l[0]??null,y=(0,n.useMemo)(()=>l.reduce((e,t)=>({a:e.a+t.additions,d:e.d+t.deletions}),{a:0,d:0}),[l]),j=o??(0,t.jsx)(b,{pr:e,fileCount:l.length,totalAdditions:y.a,totalDeletions:y.d});return(0,t.jsx)("div",{className:i.default.root,children:(0,t.jsxs)("div",{className:i.default.reviewBody,children:[(0,t.jsxs)("div",{className:i.default.leftCol,children:[d??(0,t.jsx)(r,{pr:e}),(0,t.jsxs)("div",{className:i.default.midRow,children:[(0,t.jsx)("div",{style:{width:x,flex:"0 0 auto",minWidth:0,display:"flex"},children:(0,t.jsx)(s,{files:l,selected:f,onSelect:p})}),(0,t.jsx)(z.ResizeHandle,{ariaLabel:"Resize files pane",onResize:e=>u(t=>{let n=Math.max(200,Math.min(560,t+e));return(0,_.persistPrReviewFilesPaneWidth)(n),n})}),(0,t.jsx)("div",{style:{flex:1,minWidth:0,display:"flex"},children:g?(0,t.jsx)(m,{file:g,comments:a}):(0,t.jsx)("main",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--fg-mute)",fontFamily:"var(--font-mono)",fontSize:12},children:"No files in this PR."})})]}),c??(0,t.jsx)(S,{pr:e,fileCount:l.length,totalAdditions:y.a,totalDeletions:y.d,threadCount:a.length})]}),(0,t.jsx)(z.ResizeHandle,{ariaLabel:"Resize right pane",onResize:e=>h(t=>{let n=Math.max(260,Math.min(720,t-e));return(0,_.persistPrReviewRightPaneWidth)(n),n})}),(0,t.jsx)("div",{className:i.default.rightPane,style:{width:v,borderLeft:"1px solid var(--card-border)"},children:j})]})})}function k({prId:e,rightPane:i}){let[r,l]=(0,n.useState)(null),[a,o]=(0,n.useState)(null);return((0,n.useEffect)(()=>{let t=!1;return l(null),o(null),(async()=>{try{let n=await fetch(`/api/github/prs/${encodeURIComponent(e)}`);if(!n.ok)throw Error(`HTTP ${n.status}`);let i=await n.json();t||l(i)}catch(e){t||o(e instanceof Error?e.message:String(e))}})(),()=>{t=!0}},[e]),a)?(0,t.jsxs)("div",{className:"flex h-full items-center justify-center p-6 text-sm text-red-400",children:["Failed to load PR: ",a]}):r?(0,t.jsx)(R,{pr:r.pr,files:r.files,comments:r.comments,rightPane:i}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center p-6 text-sm text-neutral-500",children:"Loading…"})}e.s(["ReviewLayout",()=>R],860641),e.s(["PrReviewView",()=>k],666213)},332723,e=>{"use strict";var t=e.i(762281),n=e.i(935851),i=e.i(666213);function r({params:e}){let{prId:r}=(0,n.use)(e);return(0,t.jsx)(i.PrReviewView,{prId:r})}e.s(["default",()=>r])}]);
@@ -1,4 +1,4 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/dd43daafe104f561.js","static/chunks/aa3029ae0b62f930.js","static/chunks/df673c7fb40f4048.js","static/chunks/2dcb395af210b784.js","static/chunks/edb0e1ed5398cec6.js"],runtimeModuleIds:[655477]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=(self.TURBOPACK_CHUNK_SUFFIX??document?.currentScript?.getAttribute?.("src")?.replace(/^(.*(?=\?)|^.*$)/,""))||"",n=new WeakMap;function o(e,t){this.m=e,this.e=t}let l=o.prototype,i=Object.prototype.hasOwnProperty,s="u">typeof Symbol&&Symbol.toStringTag;function u(e,t,r){i.call(e,t)||Object.defineProperty(e,t,r)}function a(e,t){let r=e[t];return r||(r=c(t),e[t]=r),r}function c(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function f(e,t){u(e,"__esModule",{value:!0}),s&&u(e,s,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)u(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?u(e,n,{get:o,set:t[r++],enumerable:!0}):u(e,n,{get:o,enumerable:!0})}Object.seal(e)}l.s=function(e,t){let r,n;null!=t?n=(r=a(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,f(n,e)},l.j=function(e,t){var r,o;let l,s,u;null!=t?s=(l=a(this.c,t)).exports:(l=this.m,s=this.e);let c=(r=l,o=s,(u=n.get(r))||(n.set(r,u=[]),r.exports=r.namespaceObject=new Proxy(o,{get(e,t){if(i.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of u){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of u)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),u);"object"==typeof e&&null!==e&&c.push(e)},l.v=function(e,t){(null!=t?a(this.c,t):this.m).exports=e},l.n=function(e,t){let r;(r=null!=t?a(this.c,t):this.m).exports=r.namespaceObject=e};let p=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,h=[null,p({}),p([]),p(p)];function d(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!h.includes(t);t=p(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),f(t,n),t}function m(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=d(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function b(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function y(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}l.i=m,l.A=function(e){return this.r(e)(m.bind(this))},l.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},l.r=function(e){return B(e,this.m).exports},l.f=function(e){function t(t){if(t=b(t),i.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=b(t),i.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let O=Symbol("turbopack queues"),g=Symbol("turbopack exports"),w=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}l.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=y(),u=Object.assign(s,{[g]:r.exports,[O]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[g]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(O in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[g]:{},[O]:e=>e(t)};return e.then(e=>{r[g]=e,C(t)},e=>{r[w]=e,C(t)}),r}}return{[g]:e,[O]:()=>{}}}),r=()=>t.map(e=>{if(e[w])throw e[w];return e[g]}),{promise:l,resolve:i}=y(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[O](u)),s.queueCount?l:r()},function(e){e?i(u[w]=e):l(u[g]),C(n)}),n&&-1===n.status&&(n.status=0)};let U=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}U.prototype=URL.prototype,l.U=U,l.z=function(e){throw Error("dynamic usage of require is not supported")},l.g=globalThis;let R=o.prototype;var k,_=((k=_||{})[k.Runtime=0]="Runtime",k[k.Parent=1]="Parent",k[k.Update=2]="Update",k);let v=new Map;l.M=v;let $=new Map,P=new Map;async function S(e,t,r){let n;if("string"==typeof r)return E(e,t,K(r));let o=r.included||[],l=o.map(e=>!!v.has(e)||$.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>P.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)P.has(e)||r.add(e);for(let n of r){let r=E(e,t,K(n));P.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=E(e,t,K(r.path)),i))P.has(o)||P.set(o,n)}for(let e of o)$.has(e)||$.set(e,n);await n}R.l=function(e){return S(1,this.m.id,e)};let T=Promise.resolve(void 0),A=new WeakMap;function E(t,r,n){let o=e.loadChunkCached(t,n),l=A.get(o);if(void 0===l){let e=A.set.bind(A,o,T);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),A.set(o,l)}return l}function K(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}R.L=function(e){return E(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/dd43daafe104f561.js","static/chunks/a2eeffc281bd68bc.js","static/chunks/2dcb395af210b784.js","static/chunks/df673c7fb40f4048.js","static/chunks/edb0e1ed5398cec6.js"],runtimeModuleIds:[655477]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=(self.TURBOPACK_CHUNK_SUFFIX??document?.currentScript?.getAttribute?.("src")?.replace(/^(.*(?=\?)|^.*$)/,""))||"",n=new WeakMap;function o(e,t){this.m=e,this.e=t}let l=o.prototype,i=Object.prototype.hasOwnProperty,s="u">typeof Symbol&&Symbol.toStringTag;function u(e,t,r){i.call(e,t)||Object.defineProperty(e,t,r)}function c(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function f(e,t){u(e,"__esModule",{value:!0}),s&&u(e,s,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)u(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?u(e,n,{get:o,set:t[r++],enumerable:!0}):u(e,n,{get:o,enumerable:!0})}Object.seal(e)}l.s=function(e,t){let r,n;null!=t?n=(r=c(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,f(n,e)},l.j=function(e,t){var r,o;let l,s,u;null!=t?s=(l=c(this.c,t)).exports:(l=this.m,s=this.e);let a=(r=l,o=s,(u=n.get(r))||(n.set(r,u=[]),r.exports=r.namespaceObject=new Proxy(o,{get(e,t){if(i.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of u){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of u)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),u);"object"==typeof e&&null!==e&&a.push(e)},l.v=function(e,t){(null!=t?c(this.c,t):this.m).exports=e},l.n=function(e,t){let r;(r=null!=t?c(this.c,t):this.m).exports=r.namespaceObject=e};let p=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,h=[null,p({}),p([]),p(p)];function d(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!h.includes(t);t=p(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),f(t,n),t}function m(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=d(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function b(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function y(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}l.i=m,l.A=function(e){return this.r(e)(m.bind(this))},l.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},l.r=function(e){return B(e,this.m).exports},l.f=function(e){function t(t){if(t=b(t),i.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=b(t),i.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let O=Symbol("turbopack queues"),g=Symbol("turbopack exports"),w=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}l.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=y(),u=Object.assign(s,{[g]:r.exports,[O]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),c={get:()=>u,set(e){e!==u&&(u[g]=e)}};Object.defineProperty(r,"exports",c),Object.defineProperty(r,"namespaceObject",c),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(O in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[g]:{},[O]:e=>e(t)};return e.then(e=>{r[g]=e,C(t)},e=>{r[w]=e,C(t)}),r}}return{[g]:e,[O]:()=>{}}}),r=()=>t.map(e=>{if(e[w])throw e[w];return e[g]}),{promise:l,resolve:i}=y(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[O](u)),s.queueCount?l:r()},function(e){e?i(u[w]=e):l(u[g]),C(n)}),n&&-1===n.status&&(n.status=0)};let U=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}U.prototype=URL.prototype,l.U=U,l.z=function(e){throw Error("dynamic usage of require is not supported")},l.g=globalThis;let R=o.prototype;var k,_=((k=_||{})[k.Runtime=0]="Runtime",k[k.Parent=1]="Parent",k[k.Update=2]="Update",k);let v=new Map;l.M=v;let $=new Map,P=new Map;async function S(e,t,r){let n;if("string"==typeof r)return E(e,t,K(r));let o=r.included||[],l=o.map(e=>!!v.has(e)||$.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>P.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)P.has(e)||r.add(e);for(let n of r){let r=E(e,t,K(n));P.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=E(e,t,K(r.path)),i))P.has(o)||P.set(o,n)}for(let e of o)$.has(e)||$.set(e,n);await n}R.l=function(e){return S(1,this.m.id,e)};let T=Promise.resolve(void 0),A=new WeakMap;function E(t,r,n){let o=e.loadChunkCached(t,n),l=A.get(o);if(void 0===l){let e=A.set.bind(A,o,T);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),A.set(o,l)}return l}function K(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}R.L=function(e){return E(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
2
2
  self.TURBOPACK_CHUNK_SUFFIX = ${JSON.stringify(r)};
3
3
  self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(K),null,2)};
4
- importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let x=/\.js(?:\?[^#]*)?(?:#.*)?$/,N=/\.css(?:\?[^#]*)?(?:#.*)?$/;function M(e){return N.test(e)}l.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},l.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let L={};l.c=L;let B=(e,t)=>{let r=L[e];if(r){if(r.error)throw r.error;return r}return q(e,_.Parent,t.id)};function q(e,t,r){let n=v.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let l=c(e),i=l.exports;L[e]=l;let s=new o(l,i);try{n(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&d(l.exports,l.namespaceObject),l}function I(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("u">typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o<e.length;){let t=e[o],n=o+1;for(;n<e.length&&"function"!=typeof e[n];)n++;if(n===e.length)throw Error("malformed chunk format, expected a factory function");if(!r.has(t)){let l=e[n];for(Object.defineProperty(l,"name",{value:"module evaluation"});o<n;o++)t=e[o],r.set(t,l)}o=n+1}}(r,0,v)),e.registerChunk(o,n)}let W=new Map;function H(e){let t=W.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},W.set(e,t)}return t}e={async registerChunk(e,t){if(H(K(e)).resolve(),null!=t){for(let e of t.otherChunks)H(K("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>S(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=L[t];if(r){if(r.error)throw r.error;return}q(t,_.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=H(t);if(r.loadingStarted)return r.promise;if(e===_.Runtime)return r.loadingStarted=!0,M(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(M(t));else if(x.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(M(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(x.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(K(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(K(r));return await WebAssembly.compileStreaming(o)}};let F=globalThis.TURBOPACK;globalThis.TURBOPACK={push:I},F.forEach(I)})();
4
+ importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let x=/\.js(?:\?[^#]*)?(?:#.*)?$/,N=/\.css(?:\?[^#]*)?(?:#.*)?$/;function M(e){return N.test(e)}l.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},l.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let L={};l.c=L;let B=(e,t)=>{let r=L[e];if(r){if(r.error)throw r.error;return r}return q(e,_.Parent,t.id)};function q(e,t,r){let n=v.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let l=a(e),i=l.exports;L[e]=l;let s=new o(l,i);try{n(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&d(l.exports,l.namespaceObject),l}function I(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("u">typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o<e.length;){let t=e[o],n=o+1;for(;n<e.length&&"function"!=typeof e[n];)n++;if(n===e.length)throw Error("malformed chunk format, expected a factory function");if(!r.has(t)){let l=e[n];for(Object.defineProperty(l,"name",{value:"module evaluation"});o<n;o++)t=e[o],r.set(t,l)}o=n+1}}(r,0,v)),e.registerChunk(o,n)}let W=new Map;function H(e){let t=W.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},W.set(e,t)}return t}e={async registerChunk(e,t){if(H(K(e)).resolve(),null!=t){for(let e of t.otherChunks)H(K("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>S(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=L[t];if(r){if(r.error)throw r.error;return}q(t,_.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=H(t);if(r.loadingStarted)return r.promise;if(e===_.Runtime)return r.loadingStarted=!0,M(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(M(t));else if(x.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(M(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(x.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(K(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(K(r));return await WebAssembly.compileStreaming(o)}};let F=globalThis.TURBOPACK;globalThis.TURBOPACK={push:I},F.forEach(I)})();
@@ -0,0 +1,54 @@
1
+ // apps/local/app/api/git/diff/route.ts
2
+ import * as path from "node:path";
3
+ import { NextRequest, NextResponse } from "next/server";
4
+ import { diffBranch, diffWorkingTree } from "@/lib/git-diff-cli";
5
+ import { loadRepoIndex } from "@/lib/git-repo-index";
6
+ import { getDefaultBranch } from "@/lib/git-workspaces";
7
+
8
+ export const runtime = "nodejs";
9
+ export const dynamic = "force-dynamic";
10
+
11
+ export async function GET(req: NextRequest) {
12
+ const repoPath = req.nextUrl.searchParams.get("repoPath") ?? "";
13
+ const ref = req.nextUrl.searchParams.get("ref") ?? "";
14
+ const baseParam = req.nextUrl.searchParams.get("base");
15
+
16
+ if (!repoPath || !ref) {
17
+ return NextResponse.json(
18
+ { error: "repoPath and ref required" },
19
+ { status: 400 },
20
+ );
21
+ }
22
+
23
+ if (!path.isAbsolute(repoPath) || repoPath.split(path.sep).includes("..")) {
24
+ return NextResponse.json({ error: "invalid repoPath" }, { status: 403 });
25
+ }
26
+
27
+ const idx = await loadRepoIndex();
28
+ if (!idx || !idx.entries.some((e) => e.path === repoPath)) {
29
+ return NextResponse.json(
30
+ { error: "repoPath not in index" },
31
+ { status: 403 },
32
+ );
33
+ }
34
+
35
+ try {
36
+ let base = baseParam ?? "";
37
+ if (!base) {
38
+ base = (await getDefaultBranch(repoPath)) ?? "main";
39
+ }
40
+
41
+ const result =
42
+ ref === "WORKING_TREE"
43
+ ? await diffWorkingTree({ repoPath, base })
44
+ : await diffBranch({ repoPath, base, ref });
45
+
46
+ return NextResponse.json(result);
47
+ } catch (err) {
48
+ const message = err instanceof Error ? err.message : String(err);
49
+ return NextResponse.json(
50
+ { error: `git diff failed: ${message}` },
51
+ { status: 502 },
52
+ );
53
+ }
54
+ }
@@ -0,0 +1,47 @@
1
+ // apps/local/app/api/git/repos/route.ts
2
+ import { NextRequest, NextResponse } from "next/server";
3
+ import { ensureFreshRepoIndex } from "@/lib/git-repo-index";
4
+ import { suggestRepos } from "@/lib/repo-suggestions";
5
+
6
+ export const runtime = "nodejs";
7
+ export const dynamic = "force-dynamic";
8
+
9
+ const DEFAULT_LIMIT = 20;
10
+ const MAX_LIMIT = 200;
11
+
12
+ export async function GET(req: NextRequest) {
13
+ const projectSlug = req.nextUrl.searchParams.get("projectSlug")?.trim() || null;
14
+ const projectName = req.nextUrl.searchParams.get("projectName")?.trim() || null;
15
+
16
+ const rawLimit = req.nextUrl.searchParams.get("limit");
17
+ let limit = DEFAULT_LIMIT;
18
+ if (rawLimit !== null) {
19
+ const parsed = Number.parseInt(rawLimit, 10);
20
+ if (Number.isFinite(parsed) && parsed > 0) {
21
+ limit = Math.min(parsed, MAX_LIMIT);
22
+ }
23
+ }
24
+
25
+ try {
26
+ const { index, scanning } = await ensureFreshRepoIndex();
27
+ const paths = index?.entries.map((e) => e.path) ?? [];
28
+
29
+ const repos = suggestRepos(paths, {
30
+ projectSlug,
31
+ projectName,
32
+ limit,
33
+ });
34
+
35
+ return NextResponse.json({
36
+ repos,
37
+ scanning,
38
+ scannedAt: index?.scannedAt ?? null,
39
+ });
40
+ } catch (err) {
41
+ const message = err instanceof Error ? err.message : String(err);
42
+ return NextResponse.json(
43
+ { error: `repo suggestions failed: ${message}` },
44
+ { status: 502 },
45
+ );
46
+ }
47
+ }
@@ -0,0 +1,52 @@
1
+ // apps/local/app/api/git/workspaces/refresh/route.ts
2
+ import * as path from "node:path";
3
+ import { NextRequest, NextResponse } from "next/server";
4
+ import { loadRepoIndex } from "@/lib/git-repo-index";
5
+ import { listMatchingWorkspaces } from "@/lib/git-workspaces";
6
+
7
+ export const runtime = "nodejs";
8
+ export const dynamic = "force-dynamic";
9
+
10
+ export async function POST(req: NextRequest) {
11
+ let body: { repoPath?: unknown; ticketId?: unknown };
12
+ try {
13
+ body = (await req.json()) as { repoPath?: unknown; ticketId?: unknown };
14
+ } catch {
15
+ return NextResponse.json({ error: "invalid JSON body" }, { status: 400 });
16
+ }
17
+
18
+ const repoPath = typeof body.repoPath === "string" ? body.repoPath : "";
19
+ const ticketId = typeof body.ticketId === "string" ? body.ticketId.trim() : "";
20
+ if (!repoPath || !ticketId) {
21
+ return NextResponse.json(
22
+ { error: "repoPath and ticketId required" },
23
+ { status: 400 },
24
+ );
25
+ }
26
+
27
+ if (!path.isAbsolute(repoPath) || repoPath.split(path.sep).includes("..")) {
28
+ return NextResponse.json({ error: "invalid repoPath" }, { status: 403 });
29
+ }
30
+
31
+ try {
32
+ const idx = await loadRepoIndex();
33
+ if (!idx || !idx.entries.some((e) => e.path === repoPath)) {
34
+ return NextResponse.json(
35
+ { error: "repoPath not in index" },
36
+ { status: 403 },
37
+ );
38
+ }
39
+
40
+ const workspaces = await listMatchingWorkspaces({
41
+ repoPaths: [repoPath],
42
+ ticketId,
43
+ });
44
+ return NextResponse.json({ workspaces });
45
+ } catch (err) {
46
+ const message = err instanceof Error ? err.message : String(err);
47
+ return NextResponse.json(
48
+ { error: `refresh failed: ${message}` },
49
+ { status: 502 },
50
+ );
51
+ }
52
+ }
@@ -0,0 +1,23 @@
1
+ // apps/local/app/api/git/workspaces/rescan/route.ts
2
+ import { NextRequest, NextResponse } from "next/server";
3
+ import { saveRepoIndex, scanForRepos } from "@/lib/git-repo-index";
4
+
5
+ export const runtime = "nodejs";
6
+ export const dynamic = "force-dynamic";
7
+
8
+ export async function POST(_req: NextRequest) {
9
+ try {
10
+ const idx = await scanForRepos();
11
+ await saveRepoIndex(idx);
12
+ return NextResponse.json({
13
+ count: idx.entries.length,
14
+ scannedAt: idx.scannedAt,
15
+ });
16
+ } catch (err) {
17
+ const message = err instanceof Error ? err.message : String(err);
18
+ return NextResponse.json(
19
+ { error: `rescan failed: ${message}` },
20
+ { status: 502 },
21
+ );
22
+ }
23
+ }