agent-log-viewer 0.11.7 → 1.0.0

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 (517) hide show
  1. package/README.md +217 -29
  2. package/bin/cli.mjs +32 -12
  3. package/bin/mcp-server.mjs +129 -0
  4. package/bin/mcp-server.test.ts +264 -0
  5. package/bin/server-runtime.mjs +57 -0
  6. package/bin/server-runtime.test.ts +122 -0
  7. package/bin/tailscale-credential-isolation.test.ts +56 -0
  8. package/bin/tailscale.mjs +6 -4
  9. package/dist/mcp-server.mjs +42361 -0
  10. package/dist/standalone/.next/BUILD_ID +1 -1
  11. package/dist/standalone/.next/app-path-routes-manifest.json +67 -10
  12. package/dist/standalone/.next/build-manifest.json +6 -6
  13. package/dist/standalone/.next/prerender-manifest.json +3 -3
  14. package/dist/standalone/.next/react-loadable-manifest.json +70 -0
  15. package/dist/standalone/.next/required-server-files.json +9 -2
  16. package/dist/standalone/.next/routes-manifest.json +360 -0
  17. package/dist/standalone/.next/server/app/_global-error/page.js +3 -3
  18. package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  19. package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  20. package/dist/standalone/.next/server/app/_global-error.html +1 -1
  21. package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
  22. package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  23. package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  24. package/dist/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  25. package/dist/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  26. package/dist/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  27. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  28. package/dist/standalone/.next/server/app/_not-found/page.js +2 -2
  29. package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  30. package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  31. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  32. package/dist/standalone/.next/server/app/_not-found.rsc +3 -3
  33. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  34. package/dist/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  35. package/dist/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  36. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  37. package/dist/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  38. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  39. package/dist/standalone/.next/server/app/api/access/route.js +1 -1
  40. package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
  41. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -0
  42. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -0
  43. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route_client-reference-manifest.js +1 -0
  44. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +1 -0
  45. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -0
  46. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route_client-reference-manifest.js +1 -0
  47. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js +1 -0
  48. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -0
  49. package/dist/standalone/.next/server/app/api/accounts/claude/active/route_client-reference-manifest.js +1 -0
  50. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js +1 -0
  51. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -0
  52. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route_client-reference-manifest.js +1 -0
  53. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js +1 -0
  54. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -0
  55. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route_client-reference-manifest.js +1 -0
  56. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js +1 -0
  57. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -0
  58. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route_client-reference-manifest.js +1 -0
  59. package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -0
  60. package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -0
  61. package/dist/standalone/.next/server/app/api/accounts/claude/route_client-reference-manifest.js +1 -0
  62. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js +1 -0
  63. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -0
  64. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route_client-reference-manifest.js +1 -0
  65. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js +1 -0
  66. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -0
  67. package/dist/standalone/.next/server/app/api/accounts/codex/active/route_client-reference-manifest.js +1 -0
  68. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js +1 -0
  69. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -0
  70. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route_client-reference-manifest.js +1 -0
  71. package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -0
  72. package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -0
  73. package/dist/standalone/.next/server/app/api/accounts/codex/route_client-reference-manifest.js +1 -0
  74. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +1 -0
  75. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -0
  76. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route_client-reference-manifest.js +1 -0
  77. package/dist/standalone/.next/server/app/api/accounts/route.js +1 -0
  78. package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -0
  79. package/dist/standalone/.next/server/app/api/accounts/route_client-reference-manifest.js +1 -0
  80. package/dist/standalone/.next/server/app/api/agent/route.js +1 -0
  81. package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -0
  82. package/dist/standalone/.next/server/app/api/agent/route_client-reference-manifest.js +1 -0
  83. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -0
  84. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -0
  85. package/dist/standalone/.next/server/app/api/agent/snapshot/route_client-reference-manifest.js +1 -0
  86. package/dist/standalone/.next/server/app/api/answer/route.js +1 -1
  87. package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
  88. package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -0
  89. package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -0
  90. package/dist/standalone/.next/server/app/api/attach-command/route_client-reference-manifest.js +1 -0
  91. package/dist/standalone/.next/server/app/api/attention/[id]/route.js +1 -0
  92. package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -0
  93. package/dist/standalone/.next/server/app/api/attention/[id]/route_client-reference-manifest.js +1 -0
  94. package/dist/standalone/.next/server/app/api/attention/route.js +1 -0
  95. package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -0
  96. package/dist/standalone/.next/server/app/api/attention/route_client-reference-manifest.js +1 -0
  97. package/dist/standalone/.next/server/app/api/board/route.js +1 -0
  98. package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -0
  99. package/dist/standalone/.next/server/app/api/board/route_client-reference-manifest.js +1 -0
  100. package/dist/standalone/.next/server/app/api/bridge/route.js +2 -0
  101. package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -0
  102. package/dist/standalone/.next/server/app/api/bridge/route_client-reference-manifest.js +1 -0
  103. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -0
  104. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -0
  105. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route_client-reference-manifest.js +1 -0
  106. package/dist/standalone/.next/server/app/api/conversations/route.js +1 -0
  107. package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -0
  108. package/dist/standalone/.next/server/app/api/conversations/route_client-reference-manifest.js +1 -0
  109. package/dist/standalone/.next/server/app/api/files/route.js +2 -1
  110. package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  111. package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
  112. package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
  113. package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
  114. package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
  115. package/dist/standalone/.next/server/app/api/image/route.js +1 -1
  116. package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
  117. package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
  118. package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  119. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -0
  120. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -0
  121. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route_client-reference-manifest.js +1 -0
  122. package/dist/standalone/.next/server/app/api/limits/history/route.js +1 -0
  123. package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -0
  124. package/dist/standalone/.next/server/app/api/limits/history/route_client-reference-manifest.js +1 -0
  125. package/dist/standalone/.next/server/app/api/limits/route.js +1 -2
  126. package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
  127. package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -0
  128. package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -0
  129. package/dist/standalone/.next/server/app/api/log/preflight/route_client-reference-manifest.js +1 -0
  130. package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -0
  131. package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -0
  132. package/dist/standalone/.next/server/app/api/log/project-delete/route_client-reference-manifest.js +1 -0
  133. package/dist/standalone/.next/server/app/api/log/route.js +1 -1
  134. package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
  135. package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
  136. package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  137. package/dist/standalone/.next/server/app/api/logs/stream/route.js +4 -4
  138. package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  139. package/dist/standalone/.next/server/app/api/monitor/lock/route.js +3 -0
  140. package/dist/standalone/.next/server/app/api/monitor/lock/route.js.nft.json +1 -0
  141. package/dist/standalone/.next/server/app/api/monitor/lock/route_client-reference-manifest.js +1 -0
  142. package/dist/standalone/.next/server/app/api/monitor/runs/route.js +3 -0
  143. package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -0
  144. package/dist/standalone/.next/server/app/api/monitor/runs/route_client-reference-manifest.js +1 -0
  145. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -0
  146. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -0
  147. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route_client-reference-manifest.js +1 -0
  148. package/dist/standalone/.next/server/app/api/orchestrator/route.js +1 -0
  149. package/dist/standalone/.next/server/app/api/orchestrator/route.js.nft.json +1 -0
  150. package/dist/standalone/.next/server/app/api/orchestrator/route_client-reference-manifest.js +1 -0
  151. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -0
  152. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -0
  153. package/dist/standalone/.next/server/app/api/orchestrator/seat/route_client-reference-manifest.js +1 -0
  154. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -0
  155. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -0
  156. package/dist/standalone/.next/server/app/api/pipelines/[id]/route_client-reference-manifest.js +1 -0
  157. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js +1 -0
  158. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -0
  159. package/dist/standalone/.next/server/app/api/pipelines/preflight/route_client-reference-manifest.js +1 -0
  160. package/dist/standalone/.next/server/app/api/pipelines/route.js +2 -0
  161. package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -0
  162. package/dist/standalone/.next/server/app/api/pipelines/route_client-reference-manifest.js +1 -0
  163. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +2 -0
  164. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -0
  165. package/dist/standalone/.next/server/app/api/pipelines/tick/route_client-reference-manifest.js +1 -0
  166. package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
  167. package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
  168. package/dist/standalone/.next/server/app/api/push/route.js +2 -1
  169. package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
  170. package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
  171. package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
  172. package/dist/standalone/.next/server/app/api/roles/route.js +2 -0
  173. package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -0
  174. package/dist/standalone/.next/server/app/api/roles/route_client-reference-manifest.js +1 -0
  175. package/dist/standalone/.next/server/app/api/runtime/answer/route.js +1 -0
  176. package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -0
  177. package/dist/standalone/.next/server/app/api/runtime/answer/route_client-reference-manifest.js +1 -0
  178. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js +1 -0
  179. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -0
  180. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route_client-reference-manifest.js +1 -0
  181. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js +1 -0
  182. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -0
  183. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route_client-reference-manifest.js +1 -0
  184. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js +1 -0
  185. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -0
  186. package/dist/standalone/.next/server/app/api/runtime/deployments/route_client-reference-manifest.js +1 -0
  187. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +1 -0
  188. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -0
  189. package/dist/standalone/.next/server/app/api/runtime/interrupt/route_client-reference-manifest.js +1 -0
  190. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +1 -0
  191. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -0
  192. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route_client-reference-manifest.js +1 -0
  193. package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -0
  194. package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -0
  195. package/dist/standalone/.next/server/app/api/runtime/operations/route_client-reference-manifest.js +1 -0
  196. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +1 -0
  197. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -0
  198. package/dist/standalone/.next/server/app/api/runtime/realtime/route_client-reference-manifest.js +1 -0
  199. package/dist/standalone/.next/server/app/api/runtime/send/route.js +1 -0
  200. package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -0
  201. package/dist/standalone/.next/server/app/api/runtime/send/route_client-reference-manifest.js +1 -0
  202. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js +1 -0
  203. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -0
  204. package/dist/standalone/.next/server/app/api/runtime/snapshot/route_client-reference-manifest.js +1 -0
  205. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +1 -0
  206. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -0
  207. package/dist/standalone/.next/server/app/api/runtime/spawn/route_client-reference-manifest.js +1 -0
  208. package/dist/standalone/.next/server/app/api/runtime/steer/route.js +1 -0
  209. package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -0
  210. package/dist/standalone/.next/server/app/api/runtime/steer/route_client-reference-manifest.js +1 -0
  211. package/dist/standalone/.next/server/app/api/runtime/stream/route.js +8 -0
  212. package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -0
  213. package/dist/standalone/.next/server/app/api/runtime/stream/route_client-reference-manifest.js +1 -0
  214. package/dist/standalone/.next/server/app/api/session/route.js +1 -1
  215. package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  216. package/dist/standalone/.next/server/app/api/session/supersedence/route.js +1 -0
  217. package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -0
  218. package/dist/standalone/.next/server/app/api/session/supersedence/route_client-reference-manifest.js +1 -0
  219. package/dist/standalone/.next/server/app/api/session/title/route.js +1 -0
  220. package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -0
  221. package/dist/standalone/.next/server/app/api/session/title/route_client-reference-manifest.js +1 -0
  222. package/dist/standalone/.next/server/app/api/spawn/policy/route.js +3 -0
  223. package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -0
  224. package/dist/standalone/.next/server/app/api/spawn/policy/route_client-reference-manifest.js +1 -0
  225. package/dist/standalone/.next/server/app/api/spawn/route.js +2 -1
  226. package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
  227. package/dist/standalone/.next/server/app/api/staging/route.js +2 -0
  228. package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -0
  229. package/dist/standalone/.next/server/app/api/staging/route_client-reference-manifest.js +1 -0
  230. package/dist/standalone/.next/server/app/api/task-attachments/route.js +2 -0
  231. package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -0
  232. package/dist/standalone/.next/server/app/api/task-attachments/route_client-reference-manifest.js +1 -0
  233. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -2
  234. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
  235. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -2
  236. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  237. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +1 -1
  238. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
  239. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +1 -1
  240. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
  241. package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
  242. package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
  243. package/dist/standalone/.next/server/app/api/tasks/route.js +11 -2
  244. package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  245. package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
  246. package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
  247. package/dist/standalone/.next/server/app/api/tmux/route.js +1 -1
  248. package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
  249. package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
  250. package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
  251. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js +2 -2
  252. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
  253. package/dist/standalone/.next/server/app/api/transcribe/route.js +2 -2
  254. package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
  255. package/dist/standalone/.next/server/app/api/transcribe/token/route.js +2 -2
  256. package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
  257. package/dist/standalone/.next/server/app/api/tts/backend/route.js +1 -0
  258. package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -0
  259. package/dist/standalone/.next/server/app/api/tts/backend/route_client-reference-manifest.js +1 -0
  260. package/dist/standalone/.next/server/app/api/tts/route.js +3 -0
  261. package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -0
  262. package/dist/standalone/.next/server/app/api/tts/route_client-reference-manifest.js +1 -0
  263. package/dist/standalone/.next/server/app/api/view/presence/route.js +2 -0
  264. package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -0
  265. package/dist/standalone/.next/server/app/api/view/presence/route_client-reference-manifest.js +1 -0
  266. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
  267. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
  268. package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
  269. package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  270. package/dist/standalone/.next/server/app/favicon.ico/route.js +1 -1
  271. package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  272. package/dist/standalone/.next/server/app/index.html +1 -1
  273. package/dist/standalone/.next/server/app/index.rsc +4 -4
  274. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  275. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  276. package/dist/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  277. package/dist/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  278. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  279. package/dist/standalone/.next/server/app/page.js +57 -3
  280. package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
  281. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  282. package/dist/standalone/.next/server/app-paths-manifest.json +67 -10
  283. package/dist/standalone/.next/server/chunks/1068.js +1 -0
  284. package/dist/standalone/.next/server/chunks/1097.js +1 -0
  285. package/dist/standalone/.next/server/chunks/156.js +2 -0
  286. package/dist/standalone/.next/server/chunks/1699.js +1 -0
  287. package/dist/standalone/.next/server/chunks/1813.js +1 -0
  288. package/dist/standalone/.next/server/chunks/1911.js +1 -0
  289. package/dist/standalone/.next/server/chunks/1918.js +1 -0
  290. package/dist/standalone/.next/server/chunks/1920.js +27 -0
  291. package/dist/standalone/.next/server/chunks/2190.js +1 -0
  292. package/dist/standalone/.next/server/chunks/2596.js +1 -0
  293. package/dist/standalone/.next/server/chunks/2977.js +1 -0
  294. package/dist/standalone/.next/server/chunks/306.js +3 -0
  295. package/dist/standalone/.next/server/chunks/3313.js +1 -0
  296. package/dist/standalone/.next/server/chunks/3336.js +1 -0
  297. package/dist/standalone/.next/server/chunks/3438.js +2 -0
  298. package/dist/standalone/.next/server/chunks/3558.js +1 -0
  299. package/dist/standalone/.next/server/chunks/3587.js +1 -0
  300. package/dist/standalone/.next/server/chunks/3669.js +1 -0
  301. package/dist/standalone/.next/server/chunks/3817.js +1 -0
  302. package/dist/standalone/.next/server/chunks/3886.js +1 -0
  303. package/dist/standalone/.next/server/chunks/3944.js +1 -0
  304. package/dist/standalone/.next/server/chunks/4012.js +4 -0
  305. package/dist/standalone/.next/server/chunks/4127.js +1 -0
  306. package/dist/standalone/.next/server/chunks/4191.js +1 -0
  307. package/dist/standalone/.next/server/chunks/4260.js +2 -0
  308. package/dist/standalone/.next/server/chunks/4509.js +1 -0
  309. package/dist/standalone/.next/server/chunks/{741.js → 4741.js} +1 -1
  310. package/dist/standalone/.next/server/chunks/4792.js +101 -0
  311. package/dist/standalone/.next/server/chunks/4968.js +1 -0
  312. package/dist/standalone/.next/server/chunks/4972.js +2 -0
  313. package/dist/standalone/.next/server/chunks/5622.js +2 -0
  314. package/dist/standalone/.next/server/chunks/616.js +42 -0
  315. package/dist/standalone/.next/server/chunks/620.js +1 -0
  316. package/dist/standalone/.next/server/chunks/6299.js +4 -0
  317. package/dist/standalone/.next/server/chunks/6389.js +1 -0
  318. package/dist/standalone/.next/server/chunks/640.js +1 -0
  319. package/dist/standalone/.next/server/chunks/6826.js +2 -0
  320. package/dist/standalone/.next/server/chunks/6850.js +1 -0
  321. package/dist/standalone/.next/server/chunks/7471.js +85 -0
  322. package/dist/standalone/.next/server/chunks/7563.js +1 -0
  323. package/dist/standalone/.next/server/chunks/7722.js +1 -0
  324. package/dist/standalone/.next/server/chunks/8140.js +1 -0
  325. package/dist/standalone/.next/server/chunks/8176.js +1 -0
  326. package/dist/standalone/.next/server/chunks/8444.js +1 -0
  327. package/dist/standalone/.next/server/chunks/8576.js +1 -0
  328. package/dist/standalone/.next/server/chunks/8797.js +1 -0
  329. package/dist/standalone/.next/server/chunks/8966.js +2 -0
  330. package/dist/standalone/.next/server/chunks/9411.js +14 -0
  331. package/dist/standalone/.next/server/chunks/9598.js +1 -0
  332. package/dist/standalone/.next/server/chunks/9733.js +39 -0
  333. package/dist/standalone/.next/server/chunks/9936.js +6 -0
  334. package/dist/standalone/.next/server/chunks/9998.js +1 -0
  335. package/dist/standalone/.next/server/file-scanner-worker.js +4 -0
  336. package/dist/standalone/.next/server/files-response-worker.js +13 -0
  337. package/dist/standalone/.next/server/functions-config-manifest.json +57 -0
  338. package/dist/standalone/.next/server/instrumentation.js +1 -0
  339. package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
  340. package/dist/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  341. package/dist/standalone/.next/server/middleware.js +2 -2
  342. package/dist/standalone/.next/server/pages/404.html +1 -1
  343. package/dist/standalone/.next/server/pages/500.html +1 -1
  344. package/dist/standalone/.next/server/resource-collector-worker.js +1 -0
  345. package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
  346. package/dist/standalone/.next/server/webpack-runtime.js +1 -1
  347. package/dist/standalone/.next/static/5aZdjqUDNxpxX8nVsuO2S/_buildManifest.js +1 -0
  348. package/dist/standalone/.next/static/chunks/1783.662e4b7044e5db2f.js +1 -0
  349. package/dist/standalone/.next/static/chunks/2345.c09668c2640f24ad.js +1 -0
  350. package/dist/standalone/.next/static/chunks/2462.217e83e51ac07519.js +1 -0
  351. package/dist/standalone/.next/static/chunks/3015.f61f117dd9ccb747.js +1 -0
  352. package/dist/standalone/.next/static/chunks/{794-0fc36bf1952fbc29.js → 3794-a205959ce301b5c6.js} +1 -1
  353. package/dist/standalone/.next/static/chunks/4bd1b696-c2f6e0877b6c10aa.js +1 -0
  354. package/dist/standalone/.next/static/chunks/6370.4f217a9379f47764.js +1 -0
  355. package/dist/standalone/.next/static/chunks/7067.f02e8d0616800bac.js +1 -0
  356. package/dist/standalone/.next/static/chunks/7297.aaa457b2a2939f7b.js +1 -0
  357. package/dist/standalone/.next/static/chunks/7774.cca1e546ab5623e0.js +1 -0
  358. package/dist/standalone/.next/static/chunks/8327.33abd84515b38836.js +1 -0
  359. package/dist/standalone/.next/static/chunks/858.302d545082b159c6.js +1 -0
  360. package/dist/standalone/.next/static/chunks/9260-0e7e550c65609f11.js +1 -0
  361. package/dist/standalone/.next/static/chunks/9583.b999fb5de3a3494a.js +1 -0
  362. package/dist/standalone/.next/static/chunks/app/_global-error/page-483eb859fba02a43.js +1 -0
  363. package/dist/standalone/.next/static/chunks/app/_not-found/page-9e7648417ae57bf7.js +1 -0
  364. package/dist/standalone/.next/static/chunks/app/api/access/route-483eb859fba02a43.js +1 -0
  365. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-483eb859fba02a43.js +1 -0
  366. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-483eb859fba02a43.js +1 -0
  367. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-483eb859fba02a43.js +1 -0
  368. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-483eb859fba02a43.js +1 -0
  369. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-483eb859fba02a43.js +1 -0
  370. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-483eb859fba02a43.js +1 -0
  371. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-483eb859fba02a43.js +1 -0
  372. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-483eb859fba02a43.js +1 -0
  373. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-483eb859fba02a43.js +1 -0
  374. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-483eb859fba02a43.js +1 -0
  375. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-483eb859fba02a43.js +1 -0
  376. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-483eb859fba02a43.js +1 -0
  377. package/dist/standalone/.next/static/chunks/app/api/accounts/route-483eb859fba02a43.js +1 -0
  378. package/dist/standalone/.next/static/chunks/app/api/agent/route-483eb859fba02a43.js +1 -0
  379. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-483eb859fba02a43.js +1 -0
  380. package/dist/standalone/.next/static/chunks/app/api/answer/route-483eb859fba02a43.js +1 -0
  381. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-483eb859fba02a43.js +1 -0
  382. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-483eb859fba02a43.js +1 -0
  383. package/dist/standalone/.next/static/chunks/app/api/attention/route-483eb859fba02a43.js +1 -0
  384. package/dist/standalone/.next/static/chunks/app/api/board/route-483eb859fba02a43.js +1 -0
  385. package/dist/standalone/.next/static/chunks/app/api/bridge/route-483eb859fba02a43.js +1 -0
  386. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-483eb859fba02a43.js +1 -0
  387. package/dist/standalone/.next/static/chunks/app/api/conversations/route-483eb859fba02a43.js +1 -0
  388. package/dist/standalone/.next/static/chunks/app/api/files/route-483eb859fba02a43.js +1 -0
  389. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-483eb859fba02a43.js +1 -0
  390. package/dist/standalone/.next/static/chunks/app/api/flows/route-483eb859fba02a43.js +1 -0
  391. package/dist/standalone/.next/static/chunks/app/api/image/route-483eb859fba02a43.js +1 -0
  392. package/dist/standalone/.next/static/chunks/app/api/inbox/route-483eb859fba02a43.js +1 -0
  393. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-483eb859fba02a43.js +1 -0
  394. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-483eb859fba02a43.js +1 -0
  395. package/dist/standalone/.next/static/chunks/app/api/limits/route-483eb859fba02a43.js +1 -0
  396. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-483eb859fba02a43.js +1 -0
  397. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-483eb859fba02a43.js +1 -0
  398. package/dist/standalone/.next/static/chunks/app/api/log/route-483eb859fba02a43.js +1 -0
  399. package/dist/standalone/.next/static/chunks/app/api/logs/route-483eb859fba02a43.js +1 -0
  400. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-483eb859fba02a43.js +1 -0
  401. package/dist/standalone/.next/static/chunks/app/api/monitor/lock/route-483eb859fba02a43.js +1 -0
  402. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-483eb859fba02a43.js +1 -0
  403. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-483eb859fba02a43.js +1 -0
  404. package/dist/standalone/.next/static/chunks/app/api/orchestrator/route-483eb859fba02a43.js +1 -0
  405. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-483eb859fba02a43.js +1 -0
  406. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-483eb859fba02a43.js +1 -0
  407. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-483eb859fba02a43.js +1 -0
  408. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-483eb859fba02a43.js +1 -0
  409. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-483eb859fba02a43.js +1 -0
  410. package/dist/standalone/.next/static/chunks/app/api/proc/route-483eb859fba02a43.js +1 -0
  411. package/dist/standalone/.next/static/chunks/app/api/push/route-483eb859fba02a43.js +1 -0
  412. package/dist/standalone/.next/static/chunks/app/api/resources/route-483eb859fba02a43.js +1 -0
  413. package/dist/standalone/.next/static/chunks/app/api/roles/route-483eb859fba02a43.js +1 -0
  414. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-483eb859fba02a43.js +1 -0
  415. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-483eb859fba02a43.js +1 -0
  416. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-483eb859fba02a43.js +1 -0
  417. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-483eb859fba02a43.js +1 -0
  418. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-483eb859fba02a43.js +1 -0
  419. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-483eb859fba02a43.js +1 -0
  420. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-483eb859fba02a43.js +1 -0
  421. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-483eb859fba02a43.js +1 -0
  422. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-483eb859fba02a43.js +1 -0
  423. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-483eb859fba02a43.js +1 -0
  424. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-483eb859fba02a43.js +1 -0
  425. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-483eb859fba02a43.js +1 -0
  426. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-483eb859fba02a43.js +1 -0
  427. package/dist/standalone/.next/static/chunks/app/api/session/route-483eb859fba02a43.js +1 -0
  428. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-483eb859fba02a43.js +1 -0
  429. package/dist/standalone/.next/static/chunks/app/api/session/title/route-483eb859fba02a43.js +1 -0
  430. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-483eb859fba02a43.js +1 -0
  431. package/dist/standalone/.next/static/chunks/app/api/spawn/route-483eb859fba02a43.js +1 -0
  432. package/dist/standalone/.next/static/chunks/app/api/staging/route-483eb859fba02a43.js +1 -0
  433. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-483eb859fba02a43.js +1 -0
  434. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-483eb859fba02a43.js +1 -0
  435. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-483eb859fba02a43.js +1 -0
  436. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-483eb859fba02a43.js +1 -0
  437. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-483eb859fba02a43.js +1 -0
  438. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-483eb859fba02a43.js +1 -0
  439. package/dist/standalone/.next/static/chunks/app/api/tasks/route-483eb859fba02a43.js +1 -0
  440. package/dist/standalone/.next/static/chunks/app/api/timeline/route-483eb859fba02a43.js +1 -0
  441. package/dist/standalone/.next/static/chunks/app/api/tmux/route-483eb859fba02a43.js +1 -0
  442. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-483eb859fba02a43.js +1 -0
  443. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-483eb859fba02a43.js +1 -0
  444. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-483eb859fba02a43.js +1 -0
  445. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-483eb859fba02a43.js +1 -0
  446. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-483eb859fba02a43.js +1 -0
  447. package/dist/standalone/.next/static/chunks/app/api/tts/route-483eb859fba02a43.js +1 -0
  448. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-483eb859fba02a43.js +1 -0
  449. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-483eb859fba02a43.js +1 -0
  450. package/dist/standalone/.next/static/chunks/app/api/workflows/route-483eb859fba02a43.js +1 -0
  451. package/dist/standalone/.next/static/chunks/app/layout-c8390ace9b222dd6.js +1 -0
  452. package/dist/standalone/.next/static/chunks/app/page-45fd788b5dbb86eb.js +57 -0
  453. package/dist/standalone/.next/static/chunks/framework-d1de002210ddaaef.js +1 -0
  454. package/dist/standalone/.next/static/chunks/{main-3cec32f88450e0e3.js → main-343fc547124ab6ff.js} +2 -2
  455. package/dist/standalone/.next/static/chunks/main-app-63e09a6ca85925cd.js +1 -0
  456. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-483eb859fba02a43.js +1 -0
  457. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-483eb859fba02a43.js +1 -0
  458. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-a07ea5db82382b93.js +1 -0
  459. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-483eb859fba02a43.js +1 -0
  460. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-483eb859fba02a43.js +1 -0
  461. package/dist/standalone/.next/static/chunks/webpack-46c1a0323c2ca312.js +1 -0
  462. package/dist/standalone/.next/static/css/b5b2fbc52caf460a.css +1 -0
  463. package/dist/standalone/package.json +24 -5
  464. package/dist/standalone/server.js +1 -1
  465. package/package.json +24 -5
  466. package/dist/standalone/.next/server/chunks/628.js +0 -2
  467. package/dist/standalone/.next/server/chunks/747.js +0 -4
  468. package/dist/standalone/.next/server/chunks/813.js +0 -1
  469. package/dist/standalone/.next/server/chunks/918.js +0 -1
  470. package/dist/standalone/.next/server/chunks/998.js +0 -1
  471. package/dist/standalone/.next/static/U4SZ1qekrUMw43qsp4kED/_buildManifest.js +0 -1
  472. package/dist/standalone/.next/static/chunks/4bd1b696-215e5051988c3dde.js +0 -1
  473. package/dist/standalone/.next/static/chunks/647-0b14204033b8658c.js +0 -1
  474. package/dist/standalone/.next/static/chunks/app/_global-error/page-d0de276a8c0b264e.js +0 -1
  475. package/dist/standalone/.next/static/chunks/app/_not-found/page-811f7dc4ec7ef451.js +0 -1
  476. package/dist/standalone/.next/static/chunks/app/api/access/route-d0de276a8c0b264e.js +0 -1
  477. package/dist/standalone/.next/static/chunks/app/api/answer/route-d0de276a8c0b264e.js +0 -1
  478. package/dist/standalone/.next/static/chunks/app/api/files/route-d0de276a8c0b264e.js +0 -1
  479. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-d0de276a8c0b264e.js +0 -1
  480. package/dist/standalone/.next/static/chunks/app/api/flows/route-d0de276a8c0b264e.js +0 -1
  481. package/dist/standalone/.next/static/chunks/app/api/image/route-d0de276a8c0b264e.js +0 -1
  482. package/dist/standalone/.next/static/chunks/app/api/inbox/route-d0de276a8c0b264e.js +0 -1
  483. package/dist/standalone/.next/static/chunks/app/api/limits/route-d0de276a8c0b264e.js +0 -1
  484. package/dist/standalone/.next/static/chunks/app/api/log/route-d0de276a8c0b264e.js +0 -1
  485. package/dist/standalone/.next/static/chunks/app/api/logs/route-d0de276a8c0b264e.js +0 -1
  486. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-d0de276a8c0b264e.js +0 -1
  487. package/dist/standalone/.next/static/chunks/app/api/proc/route-d0de276a8c0b264e.js +0 -1
  488. package/dist/standalone/.next/static/chunks/app/api/push/route-d0de276a8c0b264e.js +0 -1
  489. package/dist/standalone/.next/static/chunks/app/api/resources/route-d0de276a8c0b264e.js +0 -1
  490. package/dist/standalone/.next/static/chunks/app/api/session/route-d0de276a8c0b264e.js +0 -1
  491. package/dist/standalone/.next/static/chunks/app/api/spawn/route-d0de276a8c0b264e.js +0 -1
  492. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-d0de276a8c0b264e.js +0 -1
  493. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-d0de276a8c0b264e.js +0 -1
  494. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-d0de276a8c0b264e.js +0 -1
  495. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-d0de276a8c0b264e.js +0 -1
  496. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-d0de276a8c0b264e.js +0 -1
  497. package/dist/standalone/.next/static/chunks/app/api/tasks/route-d0de276a8c0b264e.js +0 -1
  498. package/dist/standalone/.next/static/chunks/app/api/timeline/route-d0de276a8c0b264e.js +0 -1
  499. package/dist/standalone/.next/static/chunks/app/api/tmux/route-d0de276a8c0b264e.js +0 -1
  500. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-d0de276a8c0b264e.js +0 -1
  501. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-d0de276a8c0b264e.js +0 -1
  502. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-d0de276a8c0b264e.js +0 -1
  503. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-d0de276a8c0b264e.js +0 -1
  504. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-d0de276a8c0b264e.js +0 -1
  505. package/dist/standalone/.next/static/chunks/app/api/workflows/route-d0de276a8c0b264e.js +0 -1
  506. package/dist/standalone/.next/static/chunks/app/layout-22e93960d4e3259a.js +0 -1
  507. package/dist/standalone/.next/static/chunks/app/page-6c0325e2d49a521e.js +0 -2
  508. package/dist/standalone/.next/static/chunks/framework-93cda6578f6c76ec.js +0 -1
  509. package/dist/standalone/.next/static/chunks/main-app-e6ff5fbff7d5b38f.js +0 -1
  510. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-d0de276a8c0b264e.js +0 -1
  511. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-d0de276a8c0b264e.js +0 -1
  512. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-2b3b5eea82b805ca.js +0 -1
  513. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-d0de276a8c0b264e.js +0 -1
  514. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-d0de276a8c0b264e.js +0 -1
  515. package/dist/standalone/.next/static/chunks/webpack-7dc14fd5ff1227ce.js +0 -1
  516. package/dist/standalone/.next/static/css/b9bc533a63013ced.css +0 -1
  517. /package/dist/standalone/.next/static/{U4SZ1qekrUMw43qsp4kED → 5aZdjqUDNxpxX8nVsuO2S}/_ssgManifest.js +0 -0
@@ -1,4 +0,0 @@
1
- "use strict";exports.id=747,exports.ids=[747],exports.modules={1785:(a,b,c)=>{c.d(b,{AB:()=>k,F5:()=>l,Ku:()=>q,LJ:()=>m,X$:()=>o,m3:()=>n,yv:()=>p});var d=c(14509),e=c(7162),f=c(89333),g=c(27359),h=c(64747);function i(a,b=500){return{error:a instanceof Error?a.message:String(a),status:b}}async function j(a){return(await (0,h.aI)()).has(a)?(0,h.u1)(a):"unknown"}async function k(a){let b=(await (0,e.C)()).find(b=>b.path===a);if(b&&null!==b.pid){let a=await (0,h.u1)(b.pid);if(null!==a)return a}let c=await (0,h.mB)(a);return c?c.display:null}async function l(a){if(!a||!(0,f.EG)(a))return{error:"the conversation path is required to interrupt",status:400};let b=await k(a);if(null===b)return{error:"no active agent pane to interrupt",status:409};try{return await (0,h.EW)(b),{ok:!0,target:b}}catch(a){return i(a)}}async function m(a){if(!a||!(0,f.EG)(a))return{error:"the conversation path is required to compact",status:400};let b=await k(a);if(null===b)return{error:"no active agent pane to compact",status:409};try{return await (0,h.oF)(b,"/compact"),{ok:!0,target:b}}catch(a){return i(a)}}async function n(a,b,c,d){if(!a||!(0,f.EG)(a))return{error:"the conversation path is required to answer",status:400};if(!/^([1-9]|Tab|Enter|Escape)$/.test(b))return{error:"invalid key",status:400};let e=await k(a);if(null===e)return{error:"no active agent pane",status:409};try{let a=await (0,h.WS)(e,async()=>{let a=function(a,b,c,d){if(null!==(0,g._1)(a))return"blocked";if(!(0,g.cZ)(a))return"closed";let e=(0,g.fm)(a);if(/^[1-9]$/.test(b)){let a=e?.options.find(a=>String(a.value)===b);if(!a||"string"==typeof c&&c!==a.label||"string"==typeof d&&d!==e?.question)return"changed"}else if(e&&"string"==typeof d&&d!==e.question)return"changed";return null}(await (0,h.ZB)(e),b,c,d);return null===a&&await (0,h.V1)(e,[b]),a});if("blocked"===a)return{error:"pane is waiting for a confirmation that requires a manual decision",status:409};if("closed"===a)return{error:"pane is no longer waiting for a response",status:409};if("changed"===a)return{error:"the on-screen menu has changed",status:409};return{ok:!0,target:e}}catch(a){return i(a)}}async function o(a){if(!a||!(0,f.EG)(a))return{error:"the conversation path is required to open",status:400};let b=(await (0,e.C)()).find(b=>b.path===a);if(!b)return{error:"file is unknown to the viewer",status:403};let c=(0,d.A9)(b.root,b.path);if(!c)return{error:"this conversation cannot be resumed",status:409};try{let a=await (0,h.KY)(b.path,c,"");return{ok:!0,target:a.target,spawned:a.spawned}}catch(a){return i(a)}}async function p(a){if(!a||!(0,f.EG)(a))return{error:"the conversation path is required to close",status:400};let b=(await (0,e.C)()).find(b=>b.path===a);if(b&&b.parent)return{ok:!0,target:""};let c=await k(a);if(null===c)return{ok:!0,target:""};try{return await (0,h.VT)(c),(0,h.HZ)(a),{ok:!0,target:c}}catch(a){return i(a)}}async function q(a){let{pid:b,path:c,images:g}=a,k=a.text.trim(),l=null;if(null!==b){let a=await j(b);if("unknown"===a&&!c)return{error:"process is unknown to the viewer",status:403};l="unknown"===a?null:a}let m=[];try{if(null!==l){let a=(0,h.Am)(k,g);return m=a.imagePaths,await (0,h.oF)(l,a.payload),{ok:!0,target:l,...m.length?{imagePaths:m}:{}}}if(!c||!(0,f.EG)(c))return{error:"process is not in a tmux session",status:409};let a=await (0,e.C)(),b=a.find(a=>a.path===c);if(!b)return{error:"file is unknown to the viewer",status:403};let i=(0,d.A9)(b.root,b.path);if(i){let a=(0,h.Am)(k,g);m=a.imagePaths;let c=await (0,h.KY)(b.path,i,a.payload);return{ok:!0,target:c.target,spawned:c.spawned,...m.length?{imagePaths:m}:{}}}let j=new Map(a.map(a=>[a.path,a])),n=new Set,o=b;for(;o.parent&&j.has(o.parent)&&!n.has(o.path);)n.add(o.path),o=j.get(o.parent);if(o.path===b.path)return{error:"this conversation cannot be resumed",status:409};let p=null!==o.pid?await (0,h.u1)(o.pid):null,q=null===p?(0,d.A9)(o.root,o.path):null;if(null===p&&!q)return{error:"root session is unavailable for messaging",status:409};let r=(0,h.Am)(k,g);m=r.imagePaths;let s=`User message for your branch \xab${b.title.slice(0,100)}\xbb — forward it or handle it yourself:
2
- ${r.payload}`,t=m.length?{imagePaths:m}:{};if(null!==p)return await (0,h.oF)(p,s),{ok:!0,target:p,...t};let u=await (0,h.KY)(o.path,q,s);return{ok:!0,target:u.target,spawned:u.spawned,...t}}catch(a){return(0,h.IJ)(m),i(a)}}},3249:(a,b,c)=>{c.d(b,{Ec:()=>v,Hw:()=>y,iq:()=>B,w1:()=>J,xz:()=>z,zn:()=>H});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(14509),i=c(42087),j=c(16089),k=c(66024),l=c(64747),m=c(51906),n=c(25750),o=c(59680),p=c(98590);let q=new Set(["approved","done_comment","needs_decision","closed"]),r=/^REVIEW_READY:\s*(.*)$/m,s=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i,t=globalThis,u=new Set;function v(){return new Date().toISOString()}function w(a){if(!a)return 0;let b=Date.parse(a);return Number.isFinite(b)?b:0}function x(a){return a.map(a=>({...a,roles:{implementer:{...a.roles.implementer},reviewer:{...a.roles.reviewer}},rounds:a.rounds.map(a=>({...a}))}))}function y(a){return a.rounds.at(-1)??null}function z(a,b,c){return{n:a.rounds.length+1,reviewerPath:null,sessionId:null,reviewerPane:null,findingsPath:null,triggeredBy:b,readyNote:c,verdict:null,findingsCount:null,startedAt:v(),spawnStartedAt:null,relayStartedAt:null,reviewedAt:null,relayedAt:null,error:null}}function A(a,b){a.state="needs_decision",a.stateDetail=b}async function B(a,b,c){let d=b.get(a.implementerPath);if(!d)throw Error("implementer transcript is missing from scanner");if(null!==d.pid){let a=await (0,l.u1)(d.pid);if(a)return void await (0,l.oF)(a,c)}let e=(0,h.A9)(d.root,d.path);if(!e)throw Error("implementer session cannot be resumed");await (0,l.KY)(d.path,e,c)}function C(a,b,c){if(c.reviewerPath)return!1;let d=w(c.startedAt)/1e3-5,e=a.roles.reviewer.engine,f=b.filter(b=>b.engine===e&&b.path!==a.implementerPath&&b.mtime>=d&&!("codex-sessions"===b.root&&b.path.endsWith(".jsonl")&&(0,k.ET)(b.path,b.size))&&(0,j.tX)(b.path)===a.cwd).sort((a,b)=>b.mtime-a.mtime)[0];return!!f&&(c.reviewerPath=f.path,!0)}function D(a,b,c){let d=b.findingsPath??(0,p.tR)(a.id,b.n);(0,p.Yj)(d,c.content),b.findingsPath=d,b.verdict=c.verdict,b.findingsCount=c.findingsCount,b.reviewedAt=v(),"manual"===a.mode?a.state="relay_pending":a.state="relaying",a.stateDetail=null}async function E(a,b){let c=(0,o.qu)(a,b);if(a.state="reviewing",a.stateDetail=null,"pane"===a.reviewerMode){let d=(0,h.lV)(a.roles.reviewer.engine,a.cwd,{model:a.roles.reviewer.model,effort:a.roles.reviewer.effort}),e=Date.now(),f=await (0,l.Tk)(d,c);b.reviewerPane={paneId:f.paneId,windowName:d.windowName};let g=await (0,i.s)({engine:a.roles.reviewer.engine,knownTranscript:d.transcript??null,panePid:f.panePid??null,cwd:a.cwd,startedAtMs:e});g&&(b.reviewerPath=g),!b.reviewerPath&&f.panePid&&(b.error=null);return}let d=(0,m.gn)(a.id,b.n,a.roles.reviewer,a.cwd,c);d.pid&&(b.reviewerPid=d.pid),d.sessionId&&(b.sessionId=d.sessionId),d.reviewerPath&&(b.reviewerPath=d.reviewerPath)}async function F(a,b,c){if(!c.findingsPath)throw Error("round has no findings artifact");let d=e().readFileSync(c.findingsPath,"utf8");a.state="relaying",await B(a,b,(0,o.i0)(c,d)),c.relayedAt=v(),"APPROVE"===c.verdict?(a.state="approved",a.closedAt=v()):"COMMENT"===c.verdict?a.state="done_comment":a.roundLimit>0&&a.rounds.length>=a.roundLimit?A(a,"round limit reached"):(a.state="fixing",a.stateDetail=null)}async function G(a,b,c,d){var e;let f=JSON.stringify(a);if("closed"===a.state||"paused"===a.state)return!1;let h=c.get(a.implementerPath);if(!h){let b=a.state;return a.state="paused",a.pausedState=b,a.stateDetail="implementer transcript is missing",JSON.stringify(a)!==f}if("waiting_ready"===a.state||"fixing"===a.state){let b=function(a,b){if("live"===b.activity||"jsonl_turn_open"===b.activityReason||"jsonl_turn_stalled"===b.activityReason)return null;let c=(0,n.if)(b);if(!c)return null;let d=Math.max(...a.rounds.map(a=>w(a.startedAt)),w(a.createdAt));return c.ts<=d?null:c.text.match(r)?.[1]?.trim()??null}(a,h);return null!==b&&(a.rounds.push(z(a,"marker",b)),a.state="manual"===a.mode?"spawn_pending":"spawning",a.stateDetail=null),JSON.stringify(a)!==f}let i=y(a);if(!i)return JSON.stringify(a)!==f;if("spawning"===a.state){let b=(0,m.IL)(a.id,i.n,i,a.roles.reviewer.engine);if(i.spawnStartedAt&&"headless"===a.reviewerMode&&b)return a.state="reviewing",a.stateDetail=null,JSON.stringify(a)!==f;if(i.spawnStartedAt&&!b&&null===i.reviewerPath)return A(a,"reviewer spawn was interrupted by a restart"),JSON.stringify(a)!==f;try{i.spawnStartedAt=v(),d(),await E(a,i)}catch(b){i.error=b instanceof Error?b.message:String(b),A(a,i.error)}return JSON.stringify(a)!==f}if("reviewing"===a.state){let d=(0,n.V_)(i);if(d)return D(a,i,d),JSON.stringify(a)!==f;if("headless"===a.reviewerMode){let d,h=(0,m.IL)(a.id,i.n,i,a.roles.reviewer.engine);if(i.sessionId||(i.sessionId=h?.sessionId??(e=h?.stdout??"",(d=e.match(/session id:?\s*([0-9a-f-]{36})/i)?.[1])&&s.test(d)?d:e.split("\n").slice(0,40).join("\n").match(s)?.[0]??null)),!function(a,b,c){if(b.reviewerPath||!c)return;let d=a.find(a=>g().basename(a.path).includes(c));d&&(b.reviewerPath=d.path)}(b,i,i.sessionId??null),i.reviewerPath||i.sessionId||C(a,b,i),h?.status==="running")return JSON.stringify(a)!==f;if(h){(0,m.T)(a.id,i.n,i.reviewerPid??null);let b=(0,n.Sn)(h.finalOutput);if(b)D(a,i,b);else{let b=i.findingsPath??(0,p.tR)(a.id,i.n);(0,p.Yj)(b,h.finalOutput||h.stdout||h.stderr),i.findingsPath=b,i.error="timeout"===h.status?"reviewer timed out":h.stderr.trim()||"reviewer verdict was unparseable",A(a,i.error)}return JSON.stringify(a)!==f}let j=(0,n.J8)(i,c);return j?D(a,i,j):A(a,"reviewer process is missing after server restart"),JSON.stringify(a)!==f}if(C(a,b,i),i.reviewerPath){let b=c.get(i.reviewerPath),d=(0,n.J8)(i,c);d?D(a,i,d):b&&"live"!==b.activity&&"stalled"!==b.activity&&A(a,"reviewer verdict was unparseable")}return JSON.stringify(a)!==f}if("relaying"===a.state){let b=`${a.id}:${i.n}`;if(i.relayStartedAt&&null===i.relayedAt&&!u.has(b))return A(a,"relay was interrupted; it may have been delivered twice"),JSON.stringify(a)!==f;try{i.relayStartedAt=v(),u.add(b),d(),await F(a,c,i)}catch(b){i.error=b instanceof Error?b.message:String(b),a.state="paused",a.pausedState="relaying",a.stateDetail=i.error}}return JSON.stringify(a)!==f}async function H(a){if(t.__llvFlowTick){let b=x((0,p.mL)());return I(a,b),{flows:b,changed:!1}}t.__llvFlowTick=!0;let b=x((0,p.mL)());try{let c=new Map(a.map(a=>[a.path,a])),d=!1;for(let e of b)!q.has(e.state)&&(await G(e,a,c,()=>(0,p.tu)(b))&&(d=!0),d&&(0,p.tu)(b));return I(a,b),d&&(0,p.tu)(b),{flows:b,changed:d}}finally{t.__llvFlowTick=!1}}function I(a,b){for(let b of a)delete b.flow;let c=new Map(a.map(a=>[a.path,a]));for(let a of b){let b=c.get(a.implementerPath);for(let d of(b&&(b.flow={flowId:a.id,flowRole:"implementer",round:null}),a.rounds)){if(!d.reviewerPath)continue;let b=c.get(d.reviewerPath);b&&(b.flow={flowId:a.id,flowRole:"reviewer",round:d.n})}}}function J(){return{flows:(0,p.mL)(),presets:(0,p.Vd)()}}},4837:(a,b,c)=>{c.d(b,{fC:()=>e,je:()=>d,wi:()=>f});let d="gpt-5.6-sol",e="gpt-5.6-terra";function f(a){if(void 0===a.model||null===a.model||""===a.model)return{model:null};if("string"!=typeof a.model)return{model:null,error:"model must be a string"};let b=a.model.trim();return b?b.length>128||/[\u0000-\u001f\u007f]/.test(b)?{model:null,error:"model must be a printable id up to 128 characters"}:{model:b}:{model:null}}},7162:(a,b,c)=>{c.d(b,{C:()=>az,S:()=>aA});var d=c(20640),e=c(64747),f=c(23855),g=c(3249),h=c(77598),i=c.n(h),j=c(73024),k=c.n(j),l=c(76760),m=c.n(l),n=c(91724),o=c(74127),p=c(90748),q=c(21153);let r=(0,n.BQ)("task-inbox-scan.json"),s=0;function t(a){let b,c,d;return((c=(b=a).lastIndexOf("</environment_context>"))>=0&&(b=b.slice(c+22)),(d=b.lastIndexOf("</INSTRUCTIONS>"))>=0&&(b=b.slice(d+15)),b.trim()).replace(/(?:э[-\s]*э[-\s]*э|эээ|ээ|эм|ммм)/giu," ").replace(/[ \t]+/g," ").replace(/\n{3,}/g,"\n\n").trim()}let u=/(?:созда(?:й|ть|л)|сдела(?:й|ть)|добав(?:ь|ить)|исправ(?:ь|ить)|почин(?:и|ить)|проверь|разберись|найди|напиши|реализ(?:уй|овать)|запусти|подготовь|обнови|перенеси|удали|отрефактори|проанализируй|\b(?:create|add|fix|implement|build|write|review|check|investigate|run|update|refactor|deploy|make|set up|setup)\b)/i;var v=c(41017),w=c(52509),x=c(95544);let y=(0,w.E)("ctx");function z(a,b){return null===a||a<=0||null===b||b<=0?null:{usedTokens:a,windowTokens:b,pct:Math.min(100,Math.round(a/b*100))}}var A=c(51455),B=c(66024),C=c(70107),D=c(39876);function E(){return(0,n.BQ)("project-catalog.json")}var F=c(89333);function G(a,b){let c=m().relative(a,b).split(m().sep);return 4===c.length&&"tasks"===c[2]&&c[3]?.endsWith(".output")?[c[0]??"",c[1]??"",c[3].slice(0,-7)]:null}function H(a){let b=0,c=[];return async function(d){b>=a&&await new Promise(a=>c.push(a)),b+=1;try{return await d()}finally{b-=1,c.shift()?.()}}}async function I(a,b,c,d,e){let f;try{f=await e(()=>(0,A.readdir)(d,{withFileTypes:!0}))}catch{return[]}return(await Promise.all(f.map(async f=>{let g;if(f.isDirectory())return f.name.startsWith(".git")?[]:I(a,b,c,m().join(d,f.name),e);if(!f.isFile()||!F.Rg.some(a=>f.name.endsWith(a)))return[];let h=m().join(d,f.name);if("claude-projects"===a&&h.includes(m().sep+"tool-results"+m().sep))return[];try{g=await e(()=>(0,A.stat)(h))}catch{return[]}let i="claude-tasks"===a?G(b["claude-tasks"],h):null;if("claude-tasks"===a&&!i||0===g.size&&!i)return[];if(i){let[a,c,d]=i,f=m().join(b["claude-projects"],a,c,"subagents","agent-"+d+".jsonl");try{return await e(()=>(0,A.access)(f)),[]}catch{}}return[{rootName:a,root:c,path:h,st:g}]}))).flat()}async function J(a,b){try{return await b(()=>(0,A.access)(a)),!0}catch{return!1}}async function K(a,b){return(await Promise.all(Object.entries(a).map(async([c,d])=>await J(d,b)?I(c,a,d,d,b):[]))).flat()}function L(a,b,c){a.sort((a,b)=>b.st.mtimeMs-a.st.mtimeMs);let d=new Map;for(let b of a){if("codex-sessions"!==b.rootName||!b.path.endsWith(".jsonl"))continue;let a=(0,B.Gz)(b.path);a&&d.set(a,b)}let e=a.slice(0,F.aA),f=new Set(e.map(a=>a.path));if(b)for(let d of a)f.has(d.path)||(c?.get(d.path)??((0,C.q0)(d.rootName,d.root,d.path,d.st).project||"other"))===b&&(f.add(d.path),e.push(d));for(let a=0;a<e.length;a+=1){let b=e[a];if("codex-sessions"!==b.rootName||!b.path.endsWith(".jsonl"))continue;let c=(0,B.S)(b.path,b.st.size),g=c?d.get(c):void 0;g&&!f.has(g.path)&&(f.add(g.path),e.push(g))}return e.map(a=>{let b=(0,C.q0)(a.rootName,a.root,a.path,a.st);return{path:a.path,root:a.rootName,name:m().relative(a.root,a.path),project:b.project,worktree:b.worktree,title:b.title,engine:b.engine,kind:b.kind,fmt:b.fmt,parent:null,mtime:a.st.mtimeMs/1e3,size:a.st.size,activity:"idle",proc:null,pid:null,model:null,pendingQuestion:null,waitingInput:null}})}async function M(a=F.GH,b){let c=H(48),d=await K(a,c),{projectCatalog:e,projectByPath:f}=function(a){let b=function(){try{let a=JSON.parse(k().readFileSync(E(),"utf8"));if(1!==a.version||!a.files||"object"!=typeof a.files||Array.isArray(a.files))return{version:1,files:{}};let b={};for(let[c,d]of Object.entries(a.files))!d||"object"!=typeof d||Array.isArray(d)||("codex-sessions"===d.rootName||"claude-projects"===d.rootName||"claude-tasks"===d.rootName)&&"number"==typeof d.size&&"number"==typeof d.mtimeMs&&"string"==typeof d.stateKey&&"string"==typeof d.project&&"string"==typeof d.kind&&"boolean"==typeof d.session&&(b[c]={rootName:d.rootName,size:d.size,mtimeMs:d.mtimeMs,stateKey:d.stateKey,project:d.project,kind:d.kind,session:d.session});return{version:1,files:b}}catch{return{version:1,files:{}}}}(),c=(0,D.g)(),d={},e=new Map,f=new Map;for(let g of a){let a=function(a,b,c){var d,e;let f=b.files[a.path];if(f&&f.size===a.st.size&&f.mtimeMs===a.st.mtimeMs&&f.stateKey===c)return{path:a.path,...f};let g=(0,C.q0)(a.rootName,a.root,a.path,a.st),h={path:a.path,rootName:a.rootName,size:a.st.size,mtimeMs:a.st.mtimeMs,stateKey:c,project:g.project||"other",kind:g.kind,session:(d=a.rootName,e=g.kind,("codex-sessions"===d||"claude-projects"===d)&&"session"===e)};return b.files[a.path]={rootName:h.rootName,size:h.size,mtimeMs:h.mtimeMs,stateKey:h.stateKey,project:h.project,kind:h.kind,session:h.session},h}(g,b,c);d[a.path]={rootName:a.rootName,size:a.size,mtimeMs:a.mtimeMs,stateKey:a.stateKey,project:a.project,kind:a.kind,session:a.session};let h=a.project||"other";f.set(a.path,h);let i=e.get(h);i||(i={project:h,smt:0,conversations:0},e.set(h,i)),i.smt=Math.max(i.smt,a.mtimeMs/1e3),a.session&&(i.conversations+=1)}try{let a=E();k().mkdirSync(m().dirname(a),{recursive:!0});let b=m().join(m().dirname(a),`.${m().basename(a)}.${process.pid}.${i().randomUUID()}.tmp`);k().writeFileSync(b,JSON.stringify({version:1,files:d},null,2)+"\n","utf8"),k().renameSync(b,a)}catch{}return{projectCatalog:[...e.values()].sort((a,b)=>b.smt-a.smt||a.project.localeCompare(b.project)),projectByPath:f}}(d);return{files:L(d,b,f),projectCatalog:e}}async function N(a=F.GH){let b=H(48);return L(await K(a,b))}var O=c(23921);let P=(0,w.E)("effort"),Q=new Set(["minimal","low","medium","high","xhigh","max"]);function R(a){let b=a?.trim().toLowerCase()??"";return Q.has(b)?b:null}function S(a,b){if("codex-sessions"===a.root&&"turn_context"===b.type){let a=(0,x.xK)(b.payload),c=(0,x.r$)(a?.effort);if(c)return c;let d=(0,x.xK)((0,x.xK)(a?.collaboration_mode)?.settings);return(0,x.r$)(d?.reasoning_effort)}if("claude-projects"===a.root&&"assistant"===b.type){let a=(0,x.xK)(b.message);if((0,x.Em)(a?.content).some(a=>"thinking"===(0,x.r$)(a.type)))return"high"}return null}var T=c(26474);let U=(0,w.E)("needle");function V(a,b){let c,d=U.get(a);if(d&&d.hits||(d={hits:{},scanned:d?.scanned??{}},U.set(a,d)),d.hits[b])return!0;let e=Buffer.from(a),f=Math.max(0,e.length-1);try{c=k().statSync(b).size}catch{return!1}let g=d.scanned[b]??0;if(c<=g)return!1;try{let a=k().openSync(b,"r");try{let h=Math.max(0,g-f),i=Buffer.alloc(0),j=!1;for(;h<c;){let b=Math.min(1048576,c-h),d=Buffer.alloc(b),g=k().readSync(a,d,0,b,h);if(!g)break;if(Buffer.concat([i,d.subarray(0,g)]).includes(e)){j=!0;break}i=f?d.subarray(Math.max(0,g-f),g):Buffer.alloc(0),h+=g}return d.scanned[b]=c,j&&(d.hits[b]=!0),j}finally{k().closeSync(a)}}catch{return!1}}let W=(0,w.E)("sid-slug"),X=(0,w.E)("bgcmd"),Y=(0,w.E)("chain-uuid");async function Z(a,b,c){let d;try{d=await c(()=>(0,A.readdir)(a,{withFileTypes:!0}))}catch{return[]}return(await Promise.all(d.map(async d=>{let e=m().join(a,d.name);return d.isDirectory()?Z(e,b,c):d.isFile()&&b(e)?[e]:[]}))).flat()}async function $(a,b,c){let d=F.GH["claude-projects"],e=c??W.get(a)??null;if(!e){let c=(await Z(d,b=>m().basename(b)===a+".jsonl",b))[0];if(!c)return[null,[]];e=m().basename(m().dirname(c)),W.set(a,e)}let f=m().join(d,e,a+".jsonl"),g=m().join(d,e,a,"subagents"),h=(await Z(g,a=>m().basename(a).startsWith("agent-")&&a.endsWith(".jsonl"),b)).sort();return[k().existsSync(f)?f:null,h]}let _=(0,n.BQ)("codex-lineage.json"),aa=(0,w.E)("codex-lineage"),ab=!1,ac=!1;function ad(){if(ab)return;ab=!0;let a=(0,x.Vh)(_);if(a&&"object"==typeof a&&!Array.isArray(a)){for(let[b,c]of Object.entries(a))"string"!=typeof c||aa.has(b)||aa.set(b,c);aa.size!==Object.keys(a).length&&(ac=!0)}}function ae(a,b){if(aa.get(a)!==b){for(aa.set(a,b);aa.size>2e4;){let a=aa.keys().next().value;if(void 0===a)break;aa.delete(a)}ac=!0}}function af(){if(ac){ac=!1;try{k().mkdirSync(m().dirname(_),{recursive:!0}),k().writeFileSync(_,JSON.stringify(Object.fromEntries(aa)))}catch{}}}async function ag(a){let b,c,d=(b=0,c=[],async function(a){b>=48&&await new Promise(a=>c.push(a)),b+=1;try{return await a()}finally{b-=1,c.shift()?.()}}),e=new Map(a.map(a=>[a.path,a]));for(let b of a)if("claude-projects"===b.root){let a=b.name.split(m().sep);if(a.length>=3&&"subagents"===a.at(-2)){let c=a[0]??"",e=a.at(-3)??"",[f,g]=await $(e,d,c);b.parent=f;let h=(0,x.Vh)(b.path.slice(0,-6)+".meta.json")??{},i=(0,x.r$)(h.toolUseId),j=Number(h.spawnDepth??0);if(i&&j>=1){let a=function(a,b){for(let c of b)if(c&&V(a,c))return c;return null}(i,g.filter(a=>a!==b.path).concat(f?[f]:[]));a&&(b.parent=a)}}}else if("claude-tasks"===b.root){let a=G(F.GH["claude-tasks"],b.path);if(!a)continue;let[c,e,f]=a,[g,h]=await $(e,d,c),i=function(a,b,c){if(X.has(a))return X.get(a)??null;let d="background with ID: "+a,e=null;for(let f of[...b,...c]){if(!f||!V(d,f))continue;let b=function(a,b){let c=null;try{for(let d of k().readFileSync(b,"utf8").split("\n"))if(d.includes(a)){c=d.match(/"tool_use_id"\s*:\s*"([^"]+)"/)?.[1]??null;break}if(!c)return null;for(let a of k().readFileSync(b,"utf8").split("\n"))if(a.includes(c)&&a.includes('"tool_use"'))try{let b=JSON.parse(a);for(let a of(0,x.Em)((0,x.xK)(b.message)?.content))if("tool_use"===a.type&&a.id===c){let b=(0,x.xK)(a.input)??{};return{command:String(b.command??""),description:String(b.description??"")}}}catch{}}catch{}return null}(d,f);if(b&&(b.command||b.description)){let c={...b,source:f};return X.set(a,c),c}e??={command:"",description:"",source:f}}return e&&X.set(a,e),e}(f,(g?[g]:[]).concat(h),function(a,b){let c,d=m().join(F.GH["claude-projects"],a);try{c=k().readdirSync(d,{withFileTypes:!0})}catch{return[]}let e=[];for(let a of c){if(!a.isFile()||!a.name.endsWith(".jsonl")||a.name===b+".jsonl")continue;let c=m().join(d,a.name);try{let a=k().statSync(c);if(a.size>0x4000000)continue;e.push({pathname:c,mtime:a.mtimeMs})}catch{continue}}return e.sort((a,b)=>b.mtime-a.mtime).slice(0,8).map(a=>a.pathname)}(c,e));if(i){b.parent=i.source,b.cmd=i.command,b.cmdDesc=i.description;let a=i.description||i.command;a&&(b.title=a.split(/\s+/).join(" ").slice(0,120))}else b.parent=g,b.title="Background task "+f,b.cmd="",b.cmdDesc=""}ad();let f=new Map;for(let b of a){if("codex-sessions"!==b.root||!b.path.endsWith(".jsonl"))continue;let a=(0,B.Gz)(b.path);a&&f.set(a,b.path)}for(let b of a){if("codex-sessions"!==b.root||b.parent)continue;let a=(0,B.S)(b.path,b.size),c=a?f.get(a)??null:null;c&&c!==b.path&&(b.parent=c,ae(b.path,c))}af(),function(a){ad();let b=a.filter(a=>"codex-sessions"===a.root&&!a.parent);if(0===b.length)return;let c=new Map;for(let b of a)("claude-projects"===b.root||"codex-sessions"===b.root)&&null!==b.pid&&c.set(b.pid,b.path);for(let a of b){let b=null,d=new Set;for(let e=a.pid;null!==e&&!d.has(e)&&(d.add(e),!(d.size>15));e=(0,O.Ib)(e)){let d=c.get(e);if(d&&d!==a.path){b=d;break}}if(b)a.parent=b,ae(a.path,b);else{let b=aa.get(a.path);b&&(a.parent=b)}}af()}(a);let g=new Map(a.map(a=>[a.path,a]));for(let b of a){if(b.parent||"claude-projects"!==b.root&&"codex-sessions"!==b.root||!b.path.endsWith(".jsonl")||b.path.includes(m().sep+"subagents"+m().sep))continue;let a=(0,T._b)(b.path);if(!a&&null!==b.pid){let c=new Set;for(let d=b.pid;null!==d&&!c.has(d)&&(c.add(d),!(c.size>15||(a=(0,T.N0)(d))));d=(0,O.Ib)(d));a&&a!==b.path&&(0,T.A6)(b.path,a)}a&&a!==b.path&&g.has(a)&&(b.parent=a,b.handoff=!0)}(0,T.OA)(),function(a){let b=new Map;for(let c of a){if("claude-projects"!==c.root)continue;let a=c.name.split(m().sep);if(2!==a.length)continue;let d=a[0]??"";b.set(d,(b.get(d)??[]).concat(c))}let c=(a,b,c)=>{let d=new Map(c.map(a=>[a.path,a])),e=new Set;for(let c=a;c?.parent&&!e.has(c.path);c=d.get(c.parent))if(e.add(c.path),c.parent===b.path)return!0;return!1};for(let a of b.values()){let b=[...a].sort((a,b)=>a.mtime-b.mtime);for(let d of b){let e=function(a,b){let c=Y.get(a);if(c&&(null!==c[1]||c[0]>=524288||c[0]>=b))return c[1];let d=null,e=0;try{let c=k().openSync(a,"r");try{let a=Buffer.alloc(Math.min(b,524288));for(let b of(e=k().readSync(c,a,0,a.length,0),a.toString("utf8",0,e).split("\n")))if(b.includes('"compact_boundary"')){d=b.match(/"logicalParentUuid"\s*:\s*"([0-9a-f-]{36})"/)?.[1]??null;break}}finally{k().closeSync(c)}}catch{return null}return Y.set(a,[e,d]),d}(d.path,d.size);if(!e)continue;let f=b.filter(a=>a!==d&&!a.parent).sort((a,b)=>b.mtime-a.mtime),g="live"===d.activity||"recent"===d.activity,h=f.find(a=>V(e,a.path))??(g?f.find(a=>"live"!==a.activity):void 0);h&&!c(d,h,a)&&(h.parent=d.path)}}}(a);let h=a=>{let b=new Set,c=a;for(;!b.has(c.path);){b.add(c.path);let a=e.get(c.parent??"");if(!a)return c.project;c=a}return a.project};for(let b of a)b.parent&&e.has(b.parent)?b.project=h(b):b.parent=null;(0,C.Oc)()}let ah=(0,w.E)("model");function ai(a){return a?a.trim().replace(/^claude-/,"").replace(/-20\d{6}$/,""):null}function aj(a,b){if("codex-sessions"===a.root){if("turn_context"===b.type||"session_meta"===b.type)return(0,x.r$)((0,x.xK)(b.payload)?.model)}else if("assistant"===b.type){let a=(0,x.r$)((0,x.xK)(b.message)?.model);if(a&&"<synthetic>"!==a)return a}return null}let ak=(0,w.E)("plan"),al=(0,w.E)("goal");function am(a){return"in_progress"===a||"completed"===a?a:"pending"}function an(a,b){if(!a.length)return null;let c=a.filter(a=>"completed"===a.status).length,d=a.find(a=>"in_progress"===a.status)?.text??a.find(a=>"pending"===a.status)?.text??null;return{steps:a,done:c,total:a.length,current:d,updatedAt:b}}function ao(a){return"active"===a||"complete"===a||"blocked"===a?a:null}var ap=c(17341),aq=c(15159),ar=c(27359);let as=new Map,at={waiting:null,atComposer:!1};async function au(a){let b=Date.now();for(let[a,c]of as)b-c.at>6e5&&as.delete(a);if("running"!==a.proc||null===a.pid||a.pendingQuestion)return as.delete(a.path),at;if(Date.now()/1e3-a.mtime<15)return at;let c=await (0,e.u1)(a.pid);if(null===c)return at;let d=await (0,e.ZB)(c);if(!(0,ar.cZ)(d))return as.delete(a.path),{waiting:null,atComposer:(0,ar.WM)(d)};let f=as.get(a.path);return f&&f.screen===d?(as.set(a.path,{...f,at:b}),b/1e3-f.since<15)?at:{waiting:{since:f.since,screenTail:d.split("\n").map(a=>a.replace(/\s+$/,"")).filter(a=>a.trim()).slice(-10).join("\n").slice(-1200),target:c,menu:(0,ar.fm)(d)},atComposer:!1}:(as.set(a.path,{screen:d,at:b,since:b/1e3}),at)}let av=new Map;function aw(){return new Promise(a=>setImmediate(a))}async function ax(a,b){for(let c=0;c<a.length;c+=1)b(a[c]),(c+1)%75==0&&await aw()}async function ay(a,b){for(let c=0;c<a.length;c+=75)await Promise.all(a.slice(c,c+75).map(b)),c+75<a.length&&await aw()}async function az(){return(await aB(!1)).files}async function aA(a){return aB(!0,a)}async function aB(a,b){let c=a?await M(void 0,b):{files:await N(),projectCatalog:[]},h=c.files,j=h.some(a=>"claude-tasks"===a.root&&a.path.endsWith(".output"))?(0,O.$w)():av;return await ax(h,a=>{let b=(0,f.Hz)(a.root,a.path,a.mtime,a.size);a.activity=b.state,a.activityReason=b.reason,a.model=function(a){if("claude-projects"===a.root&&a.path.includes(m().sep+"subagents"+m().sep)){let b=(0,x.Vh)(a.path.slice(0,-6)+".meta.json")??{},c=(0,x.r$)(b.model);if(c)return ai(c)}if("claude-projects"!==a.root&&"codex-sessions"!==a.root||!a.path.endsWith(".jsonl"))return null;let b=ah.get(a.path);if(b?.[0]===a.size)return b[1];let c=null;for(let b of(0,f.He)(a.path,a.size).reverse())if(c=aj(a,b))break;if(!c)try{for(let b of k().readFileSync(a.path,"utf8").split("\n").slice(0,41))try{let d=JSON.parse(b);if(d&&"object"==typeof d&&!Array.isArray(d)&&(c=aj(a,d)))break}catch{}}catch{}let d=ai(c);return ah.set(a.path,[a.size,d]),d}(a)}),await ax(h,a=>{if("claude-tasks"===a.root&&a.path.endsWith(".output")){let b=j.get(a.path)??null;a.pid=b,a.proc=null===b?"done":"running",null!==b&&(a.activity="live",a.activityReason="output_held")}}),(0,aq.em)(h),await ax(h,a=>{a.effort=function(a){if("claude-projects"!==a.root&&"codex-sessions"!==a.root||!a.path.endsWith(".jsonl"))return null;let b=R(function(a){if(null===a.pid)return null;let b=(0,O.$U)(a.pid);for(let c=0;c<b.length-1;c++){if("codex"===a.engine&&("-c"===b[c]||"--config"===b[c])){let a=b[c+1].match(/^model_reasoning_effort\s*=\s*"?([a-z]+)"?$/i);if(a)return a[1]}if("claude"===a.engine&&"--effort"===b[c])return b[c+1]}return null}(a));if("claude-projects"===a.root&&b)return b;let c=P.get(a.path);if(c?.[0]===a.size)return c[1]??b;let d=null;for(let b of(0,f.He)(a.path,a.size).reverse())if(d=R(S(a,b)))break;if(!d)try{for(let b of k().readFileSync(a.path,"utf8").split("\n").slice(0,41))try{let c=JSON.parse(b);if(c&&"object"==typeof c&&!Array.isArray(c)&&(d=R(S(a,c))))break}catch{}}catch{}return P.set(a.path,[a.size,d]),d??b}(a)}),await ay(h,async a=>{let b=(0,ap.x)(a);a.pendingQuestion=b&&null!==a.pid?{...b,paneTarget:await (0,e.u1)(a.pid)}:b;let c=await au(a);a.waitingInput=c.waiting,c.atComposer&&"stalled"===a.activity&&(a.activity=Date.now()/1e3-a.mtime<900?"recent":"idle",a.activityReason="pane_at_composer"),a.plan=function(a){if("claude-projects"!==a.root&&"codex-sessions"!==a.root||!a.path.endsWith(".jsonl"))return null;let b=ak.get(a.path);if(b?.[0]===a.size)return b[1];let c=null;for(let b of(0,f.He)(a.path,a.size).reverse())if(c="codex-sessions"===a.root?function(a){let b,c=(0,x.xK)(a.payload);if(!c||"function_call"!==c.type||"update_plan"!==(0,x.r$)(c.name))return null;let d=(0,x.r$)(c.arguments);if(!d)return null;try{b=JSON.parse(d)}catch{return null}return an((0,x.Em)((0,x.xK)(b)?.plan).map(a=>{let b=(0,x.r$)(a.step)?.trim();return b?{text:b,status:am(a.status)}:null}).filter(a=>null!==a),(0,x.r$)(a.timestamp))}(b):function(a){if("assistant"!==a.type)return null;for(let b of(0,x.Em)((0,x.xK)(a.message)?.content))if("tool_use"===b.type&&"TodoWrite"===(0,x.r$)(b.name))return an((0,x.Em)((0,x.xK)(b.input)?.todos).map(a=>{let b=am(a.status),c=("in_progress"===b?(0,x.r$)(a.activeForm)?.trim():null)||(0,x.r$)(a.content)?.trim()||null;return c?{text:c,status:b}:null}).filter(a=>null!==a),(0,x.r$)(a.timestamp));return null}(b))break;return ak.set(a.path,[a.size,c]),c}(a),a.goal=function(a){if("codex-sessions"!==a.root||!a.path.endsWith(".jsonl"))return null;let b=al.get(a.path);if(b?.[0]===a.size)return b[1];let c=null,d=null,e=null,g=null;for(let b of(0,f.He)(a.path,a.size).reverse()){let a=function(a){let b=(0,x.xK)(a.payload);if(!b)return null;if("thread_goal_updated"===b.type){let a=(0,x.xK)(b.goal);return a?{objective:(0,x.r$)(a.objective),status:ao(a.status)??void 0,tokensUsed:(0,x.Vg)(a.tokensUsed),timeUsedSeconds:(0,x.Vg)(a.timeUsedSeconds)}:null}if("function_call"===b.type&&"update_goal"===(0,x.r$)(b.name)){let a=(0,x.r$)(b.arguments);if(!a)return null;try{let b=(0,x.xK)(JSON.parse(a));if(!b)return null;return{objective:(0,x.r$)(b.objective),status:ao(b.status)??((0,x.r$)(b.objective)?"active":void 0)}}catch{}}return null}(b);if(a&&(null===d&&a.status&&(d=a.status),null===c&&a.objective&&(c=a.objective),null===e&&"number"==typeof a.tokensUsed&&(e=a.tokensUsed),null===g&&"number"==typeof a.timeUsedSeconds&&(g=a.timeUsedSeconds),null!==d&&null!==c&&null!==e))break}let h=null===d&&null===c?null:{objective:c,status:d??"active",tokensUsed:e,timeUsedSeconds:g};return al.set(a.path,[a.size,h]),h}(a),a.ctx=function(a){if("claude-projects"!==a.root&&"codex-sessions"!==a.root||!a.path.endsWith(".jsonl"))return null;let b=y.get(a.path);if(b?.[0]===a.size)return b[1];let c=null;for(let b of(0,f.He)(a.path,a.size).reverse())if(c="codex-sessions"===a.root?function(a){let b=(0,x.xK)(a.payload);if(!b||"token_count"!==(0,x.r$)(b.type))return null;let c=(0,x.xK)(b.info);if(!c)return null;let d=(0,x.xK)(c.last_token_usage)??(0,x.xK)(c.total_token_usage);return d?z((0,x.Vg)(d.total_tokens),(0,x.Vg)(c.model_context_window)):null}(b):function(a){if("assistant"!==a.type)return null;let b=(0,x.xK)(a.message),c=(0,x.r$)(b?.model);if(!b||"<synthetic>"===c)return null;let d=(0,x.xK)(b.usage);if(!d)return null;let e=((0,x.Vg)(d.input_tokens)??0)+((0,x.Vg)(d.cache_read_input_tokens)??0)+((0,x.Vg)(d.cache_creation_input_tokens)??0),f=c?.includes("[1m]")||c?.includes("fable")?1e6:2e5;return e>f&&(f=1e6),z(e,f)}(b))break;return y.set(a.path,[a.size,c]),c}(a)}),await ax(h,a=>{(a.pendingQuestion||a.waitingInput)&&(0,d.M$)(a)}),await ag(h),await (0,g.zn)(h),await (0,v.u1)(h),!function(a,b={}){if("1"!==process.env.LLV_ENABLE_AUTO_TASK_INBOX)return;let c=b.now?.()??new Date;if(c.getTime()-s<36e5)return;s=c.getTime();let d=b.stateFile??r,e=function(a=r){try{let b=JSON.parse(k().readFileSync(a,"utf8"));return{lastRunAt:"string"==typeof b.lastRunAt?b.lastRunAt:null,seen:Array.isArray(b.seen)?b.seen.filter(a=>"string"==typeof a):[]}}catch{return{lastRunAt:null,seen:[]}}}(d),f=new Set(e.seen),g=Math.max(c.getTime()-36e5,e.lastRunAt?new Date(e.lastRunAt).getTime():0),h=new Set,j=[];(0,q.z4)(b=>{for(let a of b)a.source?.fingerprint&&h.add(a.source.fingerprint);let c=function(a,b,c){let d=[];for(let e of a.filter(a=>a.path.endsWith(".jsonl")&&("claude"===a.engine||"codex"===a.engine)&&1e3*a.mtime>=b).sort((a,b)=>a.mtime-b.mtime))(0,o.l)(e.path,e.engine).messages.forEach((a,b)=>{if("user"!==a.role)return;let f=function(a,b,c){var d;let e=t(b.text);return{path:a.path,ts:b.ts,text:e,fingerprint:(d=[a.path,b.ts??String(c),e],i().createHash("sha1").update(d.join("\0")).digest("hex")),engine:"codex"===a.engine?"codex":"claude"}}(e,a,b);if(c.has(f.fingerprint))return;let g=function(a){var b;let c,d,e,f=t(a);return!(c=f.trim())||/^(?:<|Caveat:|\[Request interrupted|This came from another Claude session|# AGENTS\.md instructions)/.test(c)||c.length<18||!u.test(f)?null:((e=(b=function(a){for(let[b,c]of[[/^создал[а]?\s+/iu,"создать "],[/^сделал[а]?\s+/iu,"сделать "],[/^написал[а]?\s+/iu,"написать "],[/^добавил[а]?\s+/iu,"добавить "],[/^исправил[а]?\s+/iu,"исправить "],[/^проверил[а]?\s+/iu,"проверить "],[/^запустил[а]?\s+/iu,"запустить "],[/^подготовил[а]?\s+/iu,"подготовить "],[/^обновил[а]?\s+/iu,"обновить "],[/^реализовал[а]?\s+/iu,"реализовать "]])if(b.test(a))return a.replace(b,c);return a}((d=f.split(/\n\s*\n/,1)[0]??f,(d.match(/^(.{18,}?[.!?。!?])(?:\s|$)/u)?.[1]??d).replace(/\s+/g," ").replace(/[.!?。!?]+$/u,"").trim()).replace(/^(?:я\s+бы\s+хотел(?:а)?|хочу|нужно|надо)(?:,?\s+чтобы\s+ты)?\s+/iu,"").replace(/^(?:пожалуйста|pls|please),?\s+/iu,"").replace(/^(?:i(?:'d| would)\s+like\s+(?:you\s+)?to|can you|could you)\s+/iu,"").trim())).charAt(0))?e.toLocaleUpperCase()+b.slice(1):b).slice(0,96).trim()||null}(f.text);g&&d.push({project:e.project,text:g,source:f,mtime:e.mtime})});return d.slice(-25)}(a,g,new Set([...f,...h])),d=b;for(let a of c){let b=d.filter(b=>b.project===a.project),c=(0,p.UT)(d,{project:a.project,text:a.text,pos:function(a){let b=a.length;return{x:740+b%2*300,y:120+120*Math.floor(b/2)}}(b),source:a.source});c.ok&&(d=c.tasks,j.push(a.source.fingerprint),f.add(a.source.fingerprint))}return{tasks:d===b?void 0:d,result:void 0}}),function(a,b=r){k().mkdirSync(m().dirname(b),{recursive:!0});let c=m().join(m().dirname(b),`.${m().basename(b)}.${process.pid}.${i().randomUUID()}.tmp`);k().writeFileSync(c,JSON.stringify({lastRunAt:a.lastRunAt,seen:a.seen.slice(-5e3)},null,2)+"\n","utf8"),k().renameSync(c,b)}({lastRunAt:c.toISOString(),seen:[...f,...j]},d)}(h),{files:h,projectCatalog:c.projectCatalog}}},14289:(a,b,c)=>{c.d(b,{Z:()=>i,j:()=>f});var d=c(76760),e=c.n(d);let f=(0,c(91724).oy)(),g={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp"},h=/^[A-Za-z0-9._-]+\.(png|jpe?g|gif|webp)$/i;function i(a){let b=a.match(h);if(!b||e().basename(a)!==a)return null;let c=g[(b[1]??"").toLowerCase()];return c?{path:e().join(f,a),mime:c}:null}},14509:(a,b,c)=>{c.d(b,{A9:()=>p,lV:()=>o,uX:()=>m});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(48161),i=c.n(h),j=c(76760),k=c.n(j),l=c(16089);function m(a){let b=i().homedir();if("1"===process.env.LLV_DOCKER_NSENTER_SHIMS&&("claude"===a||"codex"===a)){let b="/usr/local/bin/"+a;try{return g().accessSync(b,g().constants.X_OK),b}catch{}}for(let c of[k().join(b,".bun","bin",a),k().join(b,".npm-global","bin",a),k().join(b,".local","bin",a),k().join(b,"go","bin",a),"/usr/local/bin/"+a,"/usr/bin/"+a])try{return g().accessSync(c,g().constants.X_OK),c}catch{}return a}function n(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function o(a,b,c={}){if("claude"===a){let a=e().randomUUID(),d=[m("claude")];return c.readOnly?d.push("--permission-mode","plan","--disallowedTools","Edit,Write,NotebookEdit"):d.push("--dangerously-skip-permissions"),d.push("--session-id",a),c.model&&d.push("--model",c.model),c.effort&&d.push("--effort",c.effort),{command:d.map(n).join(" "),cwd:b,windowName:"claude-new",transcript:(0,l.eV)(b,a)}}let d=[m("codex")];return c.model&&d.push("-m",c.model),c.effort&&d.push("-c",`model_reasoning_effort=${c.effort}`),null!=c.fast&&d.push("-c",`service_tier=${c.fast?"priority":"standard"}`),c.readOnly&&d.push("--sandbox","read-only"),{command:d.map(n).join(" "),cwd:b,windowName:"codex-new"}}function p(a,b){let c=k().basename(b);if("claude-projects"===a&&c.endsWith(".jsonl")&&!b.includes(k().sep+"subagents"+k().sep)){let a=c.slice(0,-6);return/^[0-9a-f-]{36}$/.test(a)?{command:`${m("claude")} --dangerously-skip-permissions --resume ${a}`,cwd:q(b),windowName:"claude-resume"}:null}if("codex-sessions"===a&&c.endsWith(".jsonl")){let a=c.match(/([0-9a-f-]{36})\.jsonl$/)?.[1];return a?{command:`${m("codex")} resume ${a}`,cwd:q(b),windowName:"codex-resume"}:null}return null}function q(a){return(0,l.tX)(a,{maxLines:30,requireDir:!0})??i().homedir()}c(58152)},15159:(a,b,c)=>{c.d(b,{em:()=>u,tJ:()=>v,vF:()=>l});var d=c(76760),e=c.n(d),f=c(16089),g=c(52509),h=c(23921),i=c(89333);let j=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi,k=(0,g.E)("codex-cwd");function l(a){return a.endsWith(".jsonl")?a.startsWith(i.GH["claude-projects"]+e().sep)?"claude":a.startsWith(i.GH["codex-sessions"]+e().sep)?"codex":null:null}function m(a){return"codex-sessions"===a.root?a.path.endsWith(".jsonl"):"claude-projects"===a.root&&!!a.path.endsWith(".jsonl")&&!e().basename(a.path).startsWith("agent-")&&!a.path.includes(e().sep+"subagents"+e().sep)}function n(a){return"idle"!==a.activity&&null===a.pid&&m(a)}function o(a){let b=e().basename(a).match(j);return b?.at(-1)?.toLowerCase()??null}function p(a){if(!a)return null;let b=a.match(j);return b?.at(-1)?.toLowerCase()??null}function q(a){let b=a.indexOf("--session-id"),c=p(b>=0?a[b+1]:void 0);if(c)return c;let d=a.indexOf("--resume"),e=p(d>=0?a[d+1]:void 0);if(e)return e;let f=a.indexOf("resume");return p(f>=0?a[f+1]:void 0)}function r(a){return e().relative(i.GH["claude-projects"],a).split(e().sep)[0]??""}function s(a){let b=k.get(a);if(void 0!==b&&""!==b)return b;let c=(0,f.tX)(a,{bytes:8192})??"";return k.set(a,c),c}function t(a,b){a.pid=b,a.proc="running"}function u(a){let b=a.filter(a=>null===a.pid&&m(a)),c=b.filter(n).slice(0,12);if(0===b.length&&0===c.length)return;let d=(0,h.SP)(b.map(a=>a.path)),e=new Set,g=[];for(let a of b){let b=d.get(a.path)??null;null!==b&&!e.has(b)&&(0,h.pl)(b)?(t(a,b),e.add(b)):g.push(a)}if(0===g.length)return;let i=(0,h.Bj)().filter(a=>!e.has(a.pid)),j=new Map;for(let a of i){let b=q(a.argv);if(!b)continue;let c=a.engine+":"+b,d=j.get(c);d?d.push(a):j.set(c,[a])}let k=[];for(let a of g){let b=o(a.path),d="codex-sessions"===a.root?"codex":"claude",f=(b?j.get(d+":"+b)??[]:[]).filter(a=>!e.has(a.pid));1===f.length?(t(a,f[0].pid),e.add(f[0].pid)):c.includes(a)&&k.push(a)}if(0===k.length)return;let l=new Map;for(let a of i){if(0===a.tty||e.has(a.pid)||null!==q(a.argv))continue;let b="claude"===a.engine?"claude:"+(0,f.Me)(a.cwd):"codex:"+a.cwd,c=l.get(b);c?c.push(a):l.set(b,[a])}let p=new Set;for(let a of k){let b=function(a){if("claude-projects"===a.root){let b=r(a.path);return b?"claude:"+b:null}let b=s(a.path);return b?"codex:"+b:null}(a);if(null===b||p.has(b))continue;p.add(b);let c=(l.get(b)??[]).filter(a=>!e.has(a.pid));1===c.length&&(t(a,c[0].pid),e.add(c[0].pid))}}function v(a,b){let c=l(a);if(null===c||!(0,h.pl)(b))return!1;let d=(0,h.$U)(b);if((0,h.Fe)(d)!==c||(0,h.Vt)(d))return!1;if((0,h.FQ)(b,a))return!0;let e=o(a);if(null!==e&&q(d)===e)return!0;let g=(0,h.$L)(b);if(null===g)return!1;if("claude"===c)return(0,f.Me)(g)===r(a);let i=s(a);return""!==i&&i===g}},16089:(a,b,c)=>{c.d(b,{Me:()=>j,eV:()=>k,tX:()=>l});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h);function j(a){return a.replace(/[^A-Za-z0-9]/g,"-")}function k(a,b){return i().join(g().homedir(),".claude","projects",j(a),b+".jsonl")}function l(a,b={}){let c=function(a,b=65536){try{let c=e().openSync(a,"r");try{let a=Buffer.alloc(b),d=e().readSync(c,a,0,a.length,0);return a.toString("utf8",0,d)}finally{e().closeSync(c)}}catch{return""}}(a,b.bytes??65536);if(!c)return null;let d=c.split("\n");for(let a of(void 0!==b.maxLines&&(d=d.slice(0,b.maxLines)),d))if(a.trim())try{let c=JSON.parse(a),d="string"==typeof c.cwd?c.cwd:"string"==typeof c.payload?.cwd?c.payload.cwd:null;if(!d||b.requireDir&&!e().existsSync(d))continue;return d}catch{}return null}},17341:(a,b,c)=>{c.d(b,{M:()=>k,x:()=>l});var d=c(23855),e=c(52509),f=c(95544);let g=(0,e.E)("questions");function h(a){return(0,f.r$)(a.timestamp)??(0,f.r$)(a.created_at)??new Date().toISOString()}function i(a){let b=(0,f.r$)(a.label)?.trim();return b?{label:b.replace(/\s*\(Recommended\)\s*$/i,"").trim()||b,description:(0,f.r$)(a.description)?.trim()??"",recommended:/\(Recommended\)\s*$/i.test(b)}:null}function j(a){let b=(0,f.r$)(a.question)?.trim();if(!b)return null;let c=(0,f.Em)(a.options).map(i).filter(a=>null!==a);return c.sort((a,b)=>Number(b.recommended)-Number(a.recommended)),{question:b,header:(0,f.r$)(a.header)?.trim()??"Question",multiSelect:!0===a.multiSelect,options:c}}function k(a,b,c){for(let e of(0,d.He)(a,b).reverse()){let a=function(a,b){if((0,f.r$)(a.tool_use_id)===b){let b=a.content;return"string"==typeof b?b:Array.isArray(b)?b.map(a=>"string"==typeof a?a:(0,f.r$)((0,f.xK)(a)?.text)??"").filter(Boolean).join("\n"):JSON.stringify(a)}for(let c of(0,f.Em)((0,f.xK)(a.message)?.content)){if("tool_result"!==c.type||(0,f.r$)(c.tool_use_id)!==b)continue;let a=c.content;if("string"==typeof a)return a;if(Array.isArray(a))return a.map(a=>"string"==typeof a?a:(0,f.r$)((0,f.xK)(a)?.text)??"").filter(Boolean).join("\n");return JSON.stringify(c)}return null}(e,c);if(null!==a)return a.trim()||"answer is recorded in the transcript"}return null}function l(a){if("claude-projects"!==a.root||!a.path.endsWith(".jsonl")||"running"!==a.proc||null===a.pid)return null;let b=g.get(a.path);if(b?.[0]===a.size)return b[1];let c=null,e=new Set;for(let b of(0,d.He)(a.path,a.size).reverse()){let d=function(a){let b=(0,f.r$)(a.tool_use_id);if(b)return b;for(let b of(0,f.Em)((0,f.xK)(a.message)?.content)){let a=(0,f.r$)(b.tool_use_id);if("tool_result"===b.type&&a)return a}return null}(b);if(d){e.add(d);continue}let g=function(a){if("assistant"!==a.type)return null;for(let b of(0,f.Em)((0,f.xK)(a.message)?.content)){if("tool_use"!==b.type)continue;let a=(0,f.r$)(b.id),c=(0,f.r$)(b.name),d=(0,f.xK)(b.input)??{};if(a&&("AskUserQuestion"===c||"ExitPlanMode"===c))return{id:a,name:c,input:d}}return null}(b);if(!g||e.has(g.id))break;if("AskUserQuestion"===g.name){let d=(0,f.Em)(g.input.questions).map(j).filter(a=>null!==a);if(!d.length)break;c={kind:"question",toolUseId:g.id,transcriptPath:a.path,pid:a.pid,paneTarget:null,askedAt:h(b),questions:d};break}let i=(0,f.r$)(g.input.plan)?.trim();if(!i)break;c={kind:"plan",toolUseId:g.id,transcriptPath:a.path,pid:a.pid,paneTarget:null,askedAt:h(b),plan:i};break}return g.set(a.path,[a.size,c]),c}},21153:(a,b,c)=>{c.d(b,{h6:()=>m,z4:()=>n});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h);let j=(0,c(91724).BQ)("tasks.json");function k(a){var b;return!(!a||"object"!=typeof a||Array.isArray(a))&&("string"==typeof a.path||null===a.path)&&("number"==typeof a.panePid||null===a.panePid)&&(null===a.panePid||Number.isInteger(a.panePid)&&a.panePid>0)&&("delivered"===(b=a.state)||"failed"===b||"spawning"===b||"handoff"===b)&&("string"==typeof a.error||null===a.error)&&"string"==typeof a.at}function l(a){var b,c,d;return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.id&&"string"==typeof a.project&&("inbox"===(b=a.status)||"assigned"===b||"blocked"===b||"done"===b)&&"string"==typeof a.text&&!(!(c=a.pos)||"object"!=typeof c||Array.isArray(c))&&"number"==typeof c.x&&Number.isFinite(c.x)&&"number"==typeof c.y&&Number.isFinite(c.y)&&Array.isArray(a.assignments)&&a.assignments.every(k)&&(void 0===a.source||!(!(d=a.source)||"object"!=typeof d||Array.isArray(d))&&"string"==typeof d.path&&("string"==typeof d.ts||null===d.ts)&&"string"==typeof d.text&&"string"==typeof d.fingerprint&&("claude"===d.engine||"codex"===d.engine))&&"string"==typeof a.createdAt&&"string"==typeof a.updatedAt}function m(a=j){let b=function(a){try{return JSON.parse(g().readFileSync(a,"utf8"))}catch{return null}}(a);return Array.isArray(b?.tasks)?b.tasks.filter(l):[]}function n(a,b=j){let c=a(m(b));return c.tasks&&function(a,b=j){let c;g().mkdirSync(i().dirname(b),{recursive:!0}),c=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`),g().writeFileSync(c,JSON.stringify({tasks:a},null,2)+"\n","utf8"),g().renameSync(c,b)}(c.tasks,b),c.result}},23855:(a,b,c)=>{c.d(b,{He:()=>k,Hz:()=>l});var d=c(73024),e=c.n(d),f=c(52509),g=c(95544),h=c(23921);let i=(0,f.E)("turn"),j=(0,f.E)("tail");function k(a,b,c=131072){let d=j.get(a);if(d&&d[0]===b&&d[1]===c)return d[2].slice();let f=function(a,b,c){let d,f=0;try{let g=e().openSync(a,"r");try{f=Math.max(0,b-c);let a=Buffer.alloc(Math.max(0,b-f));e().readSync(g,a,0,a.length,f),d=a.toString("utf8")}finally{e().closeSync(g)}}catch{return[]}let g=d.split("\n");f>0&&g.length&&(g=g.slice(1));let h=[];for(let a of g){let b=a.trim();if(b)try{let a=JSON.parse(b);a&&"object"==typeof a&&!Array.isArray(a)&&h.push(a)}catch{}}return h}(a,b,c);if(j.size>=64&&!j.has(a)){let a=j.keys().next().value;void 0!==a&&j.delete(a)}return j.set(a,[b,c,f]),f.slice()}function l(a,b,c,d){let e=Date.now()/1e3-c;if("claude-tasks"===a&&b.endsWith(".output"))return(0,h.$w)().has(b)?{state:"live",reason:"output_held"}:{state:e<900?"recent":"idle",reason:"output_released"};if(b.endsWith(".jsonl")){let c,h=i.get(b);if(h?.[0]===d)c=h[1];else{var f;f=a.startsWith("codex"),c=function(a,b){let c=null;for(let d of[...a].reverse()){if(b){let a=(0,g.xK)(d.payload)??{},b=(0,g.r$)(a.type);if("session_meta"===d.type||"token_count"===b||"reasoning"===b||null===b)continue;if("task_complete"===b||"turn_complete"===b||"turn_aborted"===b)return"done";if("task_started"===b||"turn_started"===b||"user_message"===b)return"busy";if("agent_message"===b||"message"===b&&"assistant"===a.role){c??="done";continue}if("message"===b)return"busy";c??="busy";continue}let a=d.type;if("assistant"===a){let a=(0,g.r$)(((0,g.xK)(d.message)??{}).stop_reason);return"end_turn"===a||"stop_sequence"===a?"done":"busy"}if("user"===a)return"busy"}return c}(k(b,d),f),i.set(b,[d,c])}if("busy"===c)return e<180?{state:"live",reason:"jsonl_turn_open"}:{state:"stalled",reason:"jsonl_turn_stalled"};if("done"===c)return{state:e<900?"recent":"idle",reason:"jsonl_turn_completed"}}return e<20?{state:"live",reason:"mtime_fresh"}:e<900?{state:"recent",reason:"mtime_recent"}:{state:"idle",reason:"mtime_old"}}},23921:(a,b,c)=>{c.d(b,{$L:()=>s,$U:()=>r,$w:()=>n,BB:()=>q,Bj:()=>x,FQ:()=>p,Fe:()=>t,Ib:()=>w,SP:()=>o,Vt:()=>v,pl:()=>m});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(59683),i=c(89333);let j=null,k=null,l=null;function m(a){return Number.isInteger(a)&&a>0&&h.B.pidAlive(a)}function n(a=!1){let b=Date.now();if(!a&&j&&b-j.at<12e3)return j.map;let c=new Map;return h.B.scanFdTargetsUnder(i.GH["claude-tasks"],(a,b)=>{a.endsWith(".output")&&!c.has(a)&&c.set(a,b)}),j={at:b,map:c},c}function o(a,b=!1){let c=new Map;for(let b of a){if(c.size>=512)break;if(!b)continue;c.set(b,b);let a=function(a){try{return e().realpathSync(a)}catch{return null}}(b);a&&c.set(a,b)}let d=[...c.keys()].sort().join("\0"),f=Date.now();if(!b&&k&&k.key===d&&f-k.at<12e3)return k.map;let g=new Map;return c.size>0&&h.B.scanFdTargetsFor([...c.keys()],(a,b,d)=>{let e=c.get(a);e&&!g.has(e)&&d()&&g.set(e,b)}),k={at:f,key:d,map:g},g}function p(a,b){return h.B.pidWritesPath(a,b)}function q(a,b){return h.B.pidHoldsPath(a,b)}function r(a){return h.B.readArgv(a)}function s(a){return h.B.readCwd(a)}function t(a){for(let b of a.slice(0,2)){let a=g().basename(b);if("claude"===a||"claude.exe"===a)return"claude";if("codex"===a||"codex.exe"===a)return"codex"}return null}let u=new Set(["daemon","--bg-pty-host","--bg-spare"]);function v(a){return a.some(a=>u.has(a))}function w(a){return h.B.readPpid(a)}function x(a=!1){let b=Date.now();if(!a&&l&&b-l.at<12e3)return l.list;let c=[];for(let a of h.B.listProcesses()){let b=t(a.argv);null===b||v(a.argv)||null!==a.cwd&&c.push({pid:a.pid,engine:b,argv:a.argv,cwd:a.cwd,tty:a.tty})}return l={at:b,list:c},c}},25750:(a,b,c)=>{c.d(b,{J8:()=>s,if:()=>p,Sn:()=>q,V_:()=>r});var d=c(73024),e=c.n(d);let f=/^\s*(?:VERDICT:\s*)?(REQUEST_CHANGES|APPROVE|COMMENT)\b/m,g=/^\s*(\d+)[.)]\s+(.*)$/,h=/(?:\[(P[0-3])\]|\b(Critical|High|Medium|Low|Info|P[0-3])\b)/i,i=/((?:\.{1,2}\/|\/|~\/)?[\w@.+-][\w@.+\-/]*\.(?:tsx?|jsx?|mjs|cjs|mts|cts|py|go|rs|md|json|ya?ml|toml|css|scss|html|sql|sh|env|ftl|txt))(?::(\d+))?/i,j=/\[([^\]]+)\]\(([^)\s]+)\)/,k=/([\w.-]*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|authorization|bearer|secret|password|passwd|pwd|token))\b(\s*[:=]\s*)(["']?)[^\s"',}]+/gi;function l(a){let b=a.replace(k,(a,b,c,d)=>`${b}${c}${d}[redacted]`);return{raw:b.slice(0,24e3),truncated:b.length>24e3}}var m=c(23855),n=c(95544),o=c(98590);function p(a){for(let b of(0,m.He)(a.path,a.size).reverse()){let c=Date.parse(String(b.timestamp??""))||1e3*a.mtime;if("codex-sessions"===a.root){let a=(0,n.xK)(b.payload)??{},d=(0,n.r$)(a.type);if("agent_message"===d)return{text:(0,n.r$)(a.message)??"",ts:c};if("message"===d&&"assistant"===a.role){let b=(0,n.Em)(a.content).map(a=>(0,n.r$)(a.text)??(0,n.r$)(a.input_text)??"").join("\n").trim();if(b)return{text:b,ts:c}}}if("claude-projects"===a.root&&"assistant"===b.type){let a=(0,n.Em)((0,n.xK)(b.message)?.content).filter(a=>"text"===a.type).map(a=>(0,n.r$)(a.text)??"").join("\n").trim();if(a)return{text:a,ts:c}}}return null}function q(a){let b=a.match(f)?.[1];if(!b)return null;let c=function(a){let b=a.match(f)?.[1];if(!b)return null;let c=[],d=[],e=null,k=()=>{let a,b,d,f=e?.trim();f&&c.push((a=function(a){let b=a.toUpperCase();if("P0"===b||"P1"===b||"P2"===b||"P3"===b)return b;let c=a.toLowerCase();return"critical"===c?"Critical":"high"===c?"High":"medium"===c?"Medium":"low"===c?"Low":"Info"}(f.match(h)?.[1]??f.match(h)?.[2]??"Info"),b=function(a){let b=a.match(j);if(b){var c;let a,d=(a=(c=(b[2]??"").replace(/^file:\/\//,"")).match(/^(.*?):(\d+(?:-\d+)?)$/))?{target:a[1]??c,line:a[2]}:{target:c},e=d.line?Number(d.line.split("-",1)[0]):void 0;return{file:d.target||b[1],line:Number.isFinite(e)?e:void 0}}let d=a.match(i);if(!d)return{};let e=d[2]?Number(d[2]):void 0;return{file:d[1],line:Number.isFinite(e)?e:void 0}}(f),d=function(a){let b=a,c=b.match(h);if(c&&void 0!==c.index){let a=b.slice(c.index+c[0].length).replace(/^[\s.:–—-]+/,"");a&&(b=a)}return b.replace(j,"$1").replace(/`([^`]*)`/g,"$1").replace(/\s+/g," ").trim().slice(0,200)}(f)||f.slice(0,200)||"Finding",{severity:a,file:b.file,line:b.line,title:d,body:l(f).raw})),e=null};for(let b of a.split("\n")){let a=b.trimEnd(),h=a.match(g);if(h){k(),e=h[2]??"";continue}let i=a.trim();if(null!==e){i?e=`${e}
3
- ${i}`:k();continue}!(!i||f.test(a)||/^(findings?|summary|open questions?|tests?|residual risk)\s*:?\s*$/i.test(i))&&0===c.length&&d.length<3&&i.length<=240&&d.push(i)}k();let m=c.filter(a=>h.test(a.body)).length;return b||/^findings?\s*:?$/im.test(a)||m>=2||m>=1&&/\b(review|request_changes|approve|comment)\b/i.test(a)?{kind:"review",ts:null,verdict:b,findings:c,summary:d,raw:l(a).raw}:null}(a);return{verdict:b,findingsCount:c?.findings.length??0,content:(0,o.Sn)(b,a)}}function r(a){if(!a.findingsPath)return null;try{return q(e().readFileSync(a.findingsPath,"utf8"))}catch{return null}}function s(a,b){if(!a.reviewerPath)return null;let c=b.get(a.reviewerPath);if(!c)return null;let d=p(c);return d?q(d.text):null}},26474:(a,b,c)=>{c.d(b,{A6:()=>q,N0:()=>p,OA:()=>s,_b:()=>r,a9:()=>o});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(91724),i=c(23921);let j=(0,h.BQ)("handoff-lineage.json"),k=null,l=null,m=!1;function n(){if(k&&l)return{panes:k,children:l};let a={};try{a=JSON.parse(e().readFileSync(j,"utf8"))}catch{}let b=function(a,b=i.pl){let c=new Map,d=new Map;for(let[d,e]of Object.entries(a.panes??{})){let a=Number(d);Number.isInteger(a)&&a>0&&"string"==typeof e&&b(a)&&c.set(a,e)}for(let[b,c]of Object.entries(a.children??{}))"string"==typeof c&&d.set(b,c);let e=Object.keys(a.panes??{}).length+Object.keys(a.children??{}).length;return{panes:c,children:d,dirty:c.size+d.size!==e}}(a);return k=b.panes,l=b.children,b.dirty&&(m=!0),{panes:k,children:l}}function o(a,b){if(!Number.isInteger(a)||a<=0)return;let c=n();c.panes.get(a)!==b&&(c.panes.set(a,b),m=!0,s())}function p(a){return n().panes.get(a)??null}function q(a,b){let c=n();if(c.children.get(a)!==b){for(c.children.set(a,b);c.children.size>2e4;){let a=c.children.keys().next().value;if(void 0===a)break;c.children.delete(a)}m=!0}}function r(a){return n().children.get(a)??null}function s(){if(!m)return;m=!1;let a=n();try{e().mkdirSync(g().dirname(j),{recursive:!0}),e().writeFileSync(j,JSON.stringify({panes:Object.fromEntries([...a.panes].map(([a,b])=>[String(a),b])),children:Object.fromEntries(a.children)}))}catch{}}},27359:(a,b,c)=>{c.d(b,{EB:()=>e,WM:()=>y,_1:()=>o,cZ:()=>w,d3:()=>z,dC:()=>m,fm:()=>v,g2:()=>l,ye:()=>n});let d=/^\s*[❯›]/,e=/\? for shortcuts|bypass permissions on|Press up to edit|⏎ send|Context \d+% used/,f=/Resume from summary/,g=/Do you trust|trust this folder|trust the contents of this directory/i,h=/Enter to confirm|Press enter to continue/i,i=/Allow command\?|Do you want to proceed\?|Press enter to approve|approve this (command|action)|\(y\/n\)|Yes, (allow|proceed|run)/i,j=/You(?:'ve| have) (?:hit|reached) (?:your|the) .{0,24}limit|(?:usage|rate).?limit (?:reached|hit|exceeded)|out of (?:quota|credits)|\d+.hour limit reached|limit resets/i,k=new Set(["zsh","bash","fish","sh","dash"]);function l(a){return null!==a&&k.has(a)}function m(a){let b=a.split("\n");for(let a=b.length-1;a>=0;a-=1){let c=b[a]??"";if(d.test(c))return c}return""}function n(a){return f.test(a)?"resume_picker":g.test(a)?"trust_prompt":h.test(a)?"startup_gate":null}function o(a){let b=a.split("\n"),c=-1;for(let a=b.length-1;a>=0;a-=1)if(d.test(b[a]??"")){c=a;break}if(-1!==c){let a=b.slice(c+1).join("\n");if(e.test(a)&&!i.test(a)&&!j.test(a))return null}let f=b.slice(-14).join("\n");return i.test(f)?"approval_prompt":j.test(f)?"rate_limit":null}let p=/^\s*❯?\s*\d+\.\s+\S/m,q=/Enter to (select|confirm|submit)/,r=/^\s*[─━—]{6,}\s*$/,s=/[☐☑✔☒]/,t=/^\s*(❯\s*)?(\d{1,2})\.\s+(\S.*)$/,u=/\s*\(Recommended\)\s*$/i;function v(a){let b=a.split("\n").map(a=>a.replace(/\s+$/,"")),c=-1;for(let a=b.length-1;a>=0;a-=1)if(q.test(b[a]??"")){c=a;break}if(-1===c)return null;let d=-1;for(let a=c-1;a>=Math.max(0,c-40);a-=1){let c=t.exec(b[a]??"");if(c&&1===Number(c[2])){d=a;break}}if(-1===d)return null;let e=[];for(let a=d;a<c;a+=1){let c=b[a]??"";if(!c.trim()||r.test(c))continue;let d=t.exec(c);if(d){let a=d[3].trim(),b=a.replace(u,"").trim();e.push({value:Number(d[2]),label:b||a,description:"",recommended:u.test(a)});continue}let f=e[e.length-1];f&&/^\s{2,}\S/.test(c)&&(f.description=f.description?`${f.description} ${c.trim()}`:c.trim())}if(e.length<2||e.some((a,b)=>a.value!==b+1))return null;let f=[],g=d-1;for(;g>=0&&!(b[g]??"").trim();)g-=1;for(let a=g;a>=0&&f.length<8;a-=1){let c=b[a]??"";if(!c.trim()||r.test(c)||s.test(c)||t.test(c))break;f.unshift(c.trim())}let h=f.join(" ").trim();if(!h)return null;let i=[],j=g-f.length;for(;j>=0&&!(b[j]??"").trim();)j-=1;let k=j>=0?b[j]??"":"";if(s.test(k))for(let a of k.replace(/[←→]/g," ").split(/\s{2,}/)){let b=a.replace(/[☐☑✔☒]/g,"").trim();b&&i.push({label:b,done:/[☑✔]/.test(a)})}return{question:h,tabs:i,options:e}}function w(a){if(null!==o(a)||g.test(a))return!0;let b=a.split("\n").slice(-14).join("\n");return p.test(b)&&!e.test(b)}let x=/esc to interrupt|ctrl\+c to (?:stop|cancel)|Interrupting/i;function y(a){if(w(a))return!1;let b=a.split("\n").slice(-14).join("\n");return""!==m(a)&&e.test(b)&&!x.test(b)}function z(a){return a.split("\n").filter(a=>a.trim()).slice(-3).join(" | ").slice(0,300)}},30795:(a,b,c)=>{c.d(b,{cr:()=>d});function d(a,b=160){let c=a.replace(/\[([^\]]+)\]\(([^)]+)\)/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/[*_~#>]+/g,"").replace(/\s+/g," ").trim().replace(/(?:\/[^\s)]+){3,}/g,a=>{if(a.length<=40)return a;let b=a.split("/").filter(Boolean);return b.length>=2?".../"+b.slice(-2).join("/"):a}).replace(/\s+/g," ").trim();return c.length>b?c.slice(0,b-1).trimEnd()+"…":c}},38905:(a,b,c)=>{c.d(b,{vT:()=>s,ni:()=>t,_p:()=>p,n1:()=>u});var d=c(77598),e=c.n(d),f=c(16089),g=c(1785),h=c(27359),i=c(64747),j=c(3249),k=c(51906),l=c(31421),m=c(59680),n=c(98590);function o(a){return!a||"object"!=typeof a||Array.isArray(a)||"claude"!==a.engine&&"codex"!==a.engine?null:{engine:a.engine,model:"string"==typeof a.model&&a.model.trim()?a.model.trim():null,effort:"string"==typeof a.effort&&a.effort.trim()?a.effort.trim():null}}async function p(a,b){let c=b.find(b=>b.path===a.implementerPath);if(!c)return{error:"implementer transcript is unknown",status:404};if("claude-projects"!==c.root&&"codex-sessions"!==c.root)return{error:"implementer must be a Claude or Codex session",status:400};let d=function(a){let b=(0,n.Vd)();if(a.preset){let c=b.find(b=>b.name===a.preset);return c?{implementer:{...c.implementer},reviewer:{...c.reviewer}}:null}let c=o(a.roles?.implementer),d=o(a.roles?.reviewer);return c&&d?{implementer:c,reviewer:d}:null}(a);if(!d)return{error:"invalid flow roles or preset",status:400};let g="merge-base"===a.baseMode?"merge-base":"head",h=(0,f.tX)(c.path);if(!h)return{error:"could not determine the session working directory",status:409};let i="string"==typeof a.baseRef&&a.baseRef.trim()?{ok:!0,sha:a.baseRef.trim()}:function(a,b){let c="head"===b?["rev-parse","HEAD"]:["merge-base","HEAD",function(a){let b=(0,l.spawnSync)("git",["symbolic-ref","--quiet","--short","refs/remotes/origin/HEAD"],{cwd:a,encoding:"utf8"});if(0===b.status&&b.stdout.trim())return b.stdout.trim().replace(/^origin\//,"origin/");for(let b of["origin/main","origin/master","main","master"])if(0===(0,l.spawnSync)("git",["rev-parse","--verify",b],{cwd:a,encoding:"utf8"}).status)return b;return null}(a)??"origin/main"],d=(0,l.spawnSync)("git",c,{cwd:a,encoding:"utf8"});if(0!==d.status)return{ok:!1,error:(d.stderr||d.stdout||"failed to resolve git base ref").trim()};let e=d.stdout.trim();return e?{ok:!0,sha:e}:{ok:!1,error:"git returned an empty base ref"}}(h,g);if(!i.ok)return{error:i.error,status:409};let k=(0,n.mL)();if(k.find(a=>a.implementerPath===c.path&&null===a.closedAt&&"closed"!==a.state))return{error:"implementer already has an active flow",status:409};let p={id:e().randomUUID().slice(0,8),template:"implement-review-loop",project:c.project,cwd:h,implementerPath:c.path,roles:d,baseRef:i.sha,baseMode:g,mode:"manual"===a.mode?"manual":"auto",reviewerMode:"pane"===a.reviewerMode?"pane":"headless",roundLimit:Number.isInteger(a.roundLimit)&&a.roundLimit>0?Math.min(a.roundLimit,50):5,state:"waiting_ready",pausedState:null,stateDetail:null,rounds:[],createdAt:(0,j.Ec)(),closedAt:null};k.push(p),(0,n.tu)(k);try{await (0,j.iq)(p,new Map(b.map(a=>[a.path,a])),(0,m.SB)())}catch(a){p.state="paused",p.pausedState="waiting_ready",p.stateDetail=a instanceof Error?a.message:String(a),(0,n.tu)(k)}return{flow:p}}function q(a){return"string"==typeof a.note&&a.note.trim()?a.note.trim().slice(0,2e3):null}async function r(a,b){if((0,k.T)(a.id,b.n,b.reviewerPid??null),"pane"===a.reviewerMode)try{let a=b.reviewerPane;if(a){let b=await (0,i.RZ)(a.paneId);b&&b.windowName===a.windowName&&!(0,h.g2)(b.command)&&await (0,i.VT)(a.paneId)}else if(b.reviewerPath){let a=await (0,g.AB)(b.reviewerPath);null!==a&&await (0,i.VT)(a)}}catch{}}async function s(a){let b=(0,n.mL)(),c=b.find(b=>b.id===a);if(!c)return{error:"flow not found",status:404};let d=(0,j.Hw)(c);return"reviewing"===c.state&&d?(await r(c,d),d.error="cancelled by user",c.state="needs_decision",c.stateDetail="round cancelled by user",(0,n.tu)(b),{flow:c}):{error:"no reviewer is running for this flow",status:409}}async function t(a){let b=(0,n.mL)(),c=b.find(b=>b.id===a);if(!c)return{error:"flow not found",status:404};let d=(0,j.Hw)(c);return d&&null===d.verdict&&!d.error&&await r(c,d),c.state="closed",c.closedAt=(0,j.Ec)(),c.stateDetail=null,(0,n.tu)(b),{flow:c}}function u(a,b){let c=(0,n.mL)(),d=c.find(b=>b.id===a);if(!d)return{error:"flow not found",status:404};let e=(0,j.Hw)(d);if("pause"===b.action)"paused"!==d.state&&"closed"!==d.state&&(d.pausedState=d.state,d.state="paused",d.stateDetail="paused by user");else if("resume"===b.action)"paused"===d.state&&(d.state=d.pausedState&&"paused"!==d.pausedState?d.pausedState:"waiting_ready",d.pausedState=null,d.stateDetail=null);else if("set-mode"===b.action){if("auto"!==b.mode&&"manual"!==b.mode)return{error:"mode must be auto or manual",status:400};d.mode=b.mode}else if("advance"===b.action){if("waiting_ready"===d.state)d.rounds.push((0,j.xz)(d,"button",q(b))),d.state="manual"===d.mode?"spawn_pending":"spawning";else if("spawn_pending"===d.state)d.state="spawning";else{if("relay_pending"!==d.state)return{error:"flow cannot advance from its current state",status:409};d.state="relaying"}d.stateDetail=null}else if("retry-round"===b.action){if("needs_decision"!==d.state||!e)return{error:"flow cannot retry from its current state",status:409};(0,k.T)(d.id,e.n,e.reviewerPid??null),Object.assign(e,{reviewerPath:null,sessionId:null,reviewerPid:null,reviewerPane:null,findingsPath:null,verdict:null,findingsCount:null,readyNote:q(b)??e.readyNote,startedAt:(0,j.Ec)(),spawnStartedAt:null,relayStartedAt:null,reviewedAt:null,relayedAt:null,error:null}),d.state="manual"===d.mode?"spawn_pending":"spawning",d.stateDetail=null}else if("extend"===b.action){let a=Number.isInteger(b.rounds)&&b.rounds&&b.rounds>0?Math.min(b.rounds,20):1;d.roundLimit>0&&(d.roundLimit+=a),"needs_decision"===d.state&&(d.state="waiting_ready",d.stateDetail=null)}else if("set-round-limit"===b.action){let a=b.rounds;if(!Number.isInteger(a)||void 0===a||a<0||a>50)return{error:"rounds must be an integer 0–50 (0 = unlimited)",status:400};d.roundLimit=0===a?0:Math.max(a,d.rounds.length),"needs_decision"===d.state&&"round limit reached"===d.stateDetail&&(0===d.roundLimit||d.roundLimit>d.rounds.length)&&(d.state="waiting_ready",d.stateDetail=null)}else if("another-round"===b.action){if("done_comment"!==d.state)return{error:"flow is not waiting for another round",status:409};d.closedAt=null,d.state="waiting_ready",d.stateDetail=null}return e&&"spawning"===d.state&&(e.error=null),(0,n.tu)(c),{flow:d}}},39876:(a,b,c)=>{c.d(b,{g:()=>l});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724);let k=["flows.json","workflows.json","worktree-map.json"];function l(){let a=(0,j.Pn)(),b=e().createHash("sha1");for(let c of(b.update(a),k)){b.update("\0"),b.update(c),b.update("\0");try{b.update(g().readFileSync(i().join(a,c)))}catch{b.update("<missing>")}}return b.digest("hex")}},41017:(a,b,c)=>{c.d(b,{zN:()=>Z,WD:()=>$,w1:()=>Y,u1:()=>W});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(14509),k=c(42087),l=c(16089),m=c(38905),n=c(25750),o=c(98590),p=c(26474),q=c(66024),r=c(70107),s=c(27359),t=c(64747),u=c(31421),v=c(23921),w=c(46825);let x=(a,b,c)=>{let d=(0,u.spawnSync)(a,b,{cwd:c,encoding:"utf8"});return d.error?{code:null,stdout:"",stderr:d.error.message}:{code:d.status,stdout:d.stdout??"",stderr:d.stderr??""}};function y(a,b){let c=(b.stderr||b.stdout||"no output").trim();return{ok:!1,error:`${a}: ${c}`}}function z(a){let b=a.template.setup;if(!b)return{pid:null,error:"workflow has no setup command"};let c=(0,w.VO)(a.id);g().mkdirSync(i().dirname(c),{recursive:!0}),g().rmSync(c,{force:!0});let d=g().openSync((0,w._F)(a.id),"w"),e=g().openSync((0,w.RK)(a.id),"w");try{let f=(0,u.spawn)("sh",["-c",'sh -c "$LLV_SETUP_CMD"; printf \'%s\' "$?" > "$LLV_SETUP_EXIT"'],{cwd:a.worktreeDir,env:{...process.env,LLV_SETUP_CMD:b,LLV_SETUP_EXIT:c},detached:!0,stdio:["ignore",d,e]});return f.unref(),{pid:f.pid??null}}catch(a){return{pid:null,error:a instanceof Error?a.message:String(a)}}finally{g().closeSync(d),g().closeSync(e)}}function A(a){try{return g().readFileSync(a,"utf8")}catch{return""}}function B(a,b=Date.now()){let c=A((0,w.VO)(a.id)).trim();if(""!==c){if("0"===c)return{status:"done",detail:""};let b=A((0,w.RK)(a.id)).trim().split("\n").slice(-3).join("\n");return{status:"failed",detail:`setup exited with code ${c}${b?`: ${b}`:""}`}}if(null!=a.setupPid&&(0,v.pl)(a.setupPid))return{status:"running",detail:""};let d=function(a,b){try{return b-g().statSync(a).mtimeMs}catch{return null}}((0,w._F)(a.id),b);return null!==d&&d<3e3?{status:"running",detail:""}:{status:"failed",detail:"setup was interrupted before it finished"}}function C(a){let b=a.task.split("\n").map(a=>a.trim()).find(Boolean)??a.name;return b.length>72?b.slice(0,69)+"…":b}function D(a,b){let c=[];for(let d of a.stageRuns){if(d.index>=b||!d.doneAt)continue;let e=a.template.stages[d.index],f=e?.kind==="implement"?e.scope:`stage ${d.index+1}`;c.push(`- Stage ${d.index+1} (${f}): ${d.doneNote||"done, no note left"}`)}return c.length?["Notes from the stages already finished in this worktree:",...c,""]:[]}function E(a){return a.template.verify?[`Before declaring the stage done, verify your work: run \`${a.template.verify}\` and get it green.`]:["Before declaring the stage done, verify your work with the project's own build/test commands."]}let F=new Set(["approved","closed"]),G=new Set(["needs_decision","paused"]),H=/^STAGE_DONE:\s*(.*)$/m;function I(){return{exec:x,startSetup:z,setupStatus:B,spawnAgent:async(a,b,c)=>{let d=(0,j.lV)(a.engine,b,{model:a.model,effort:a.effort}),e=Date.now(),f=await (0,t.Tk)(d,c),g=await (0,k.s)({engine:a.engine,knownTranscript:d.transcript??null,panePid:f.panePid??null,cwd:b,startedAtMs:e});return{paneId:f.paneId,transcript:g,panePid:f.panePid??null}},paneAgentAlive:async a=>{let b=await (0,t.RZ)(a);return null!==b&&!(0,s.g2)(b.command)},headCwd:a=>(0,l.tX)(a),lastMessage:n.if,createFlow:m._p,advanceFlow:(a,b)=>void(0,m.n1)(a,{action:"advance",note:b}),closeFlow:m.ni,getFlow:a=>(0,o.mL)().find(b=>b.id===a)??null,findFlowByImplementer:a=>(0,o.mL)().filter(b=>b.implementerPath===a).sort((a,b)=>a.createdAt<b.createdAt?1:-1)[0]??null,projectForCwd:r.hY,linkChild:(a,b)=>{(0,p.A6)(a,b),(0,p.OA)()},now:()=>new Date().toISOString()}}let J=new Set;function K(a,b){return`${a.id}:${b.index}`}function L(a,b){a.pausedState=a.state,a.state="needs_decision",a.stateDetail=b}function M(a){return a.stageRuns[a.stageIndex]??null}function N(a){if(!a)return 0;let b=Date.parse(a);return Number.isFinite(b)?b:0}function O(a,b){for(let c=b-1;c>=0;c-=1){let b=a.stageRuns[c];if(b?.agentPath)return b.agentPath}return a.srcPath??null}function P(a){a.stageIndex+=1;let b=a.template.stages[a.stageIndex];a.state=b?.kind==="review-loop"?"reviewing":"implementing",a.stateDetail=null}async function Q(a,b,c,d,e,f,g){if(!b.startedAt){b.startedAt=f.now(),J.add(K(a,b)),g();try{let e=await f.spawnAgent(c,a.worktreeDir,d);if(b.paneId=e.paneId,e.transcript){b.agentPath=e.transcript;let c=O(a,b.index);c&&f.linkChild(e.transcript,c)}}catch(b){L(a,b instanceof Error?b.message:String(b))}return"spawning"}if(!b.paneId&&!J.has(K(a,b)))return L(a,"stage agent spawn was interrupted by a restart"),"spawning";if(!b.agentPath){let d,g,h,j=(d=N(b.startedAt)/1e3-5,g=function(a){let b=new Set;for(let c of a.stageRuns)c.agentPath&&b.add(c.agentPath);return a.fixerPath&&b.add(a.fixerPath),b}(a),h=e.filter(b=>b.engine===c.engine&&("claude-projects"===b.root||"codex-sessions"===b.root)&&!b.path.includes(i().sep+"subagents"+i().sep)&&b.mtime>=d&&!g.has(b.path)&&!("codex-sessions"===b.root&&b.path.endsWith(".jsonl")&&(0,q.ET)(b.path,b.size))&&f.headCwd(b.path)===a.worktreeDir).sort((a,b)=>b.mtime-a.mtime)[0],h?.path??null);if(j){b.agentPath=j;let c=O(a,b.index);return c&&f.linkChild(j,c),"ready"}return b.paneId&&!await f.paneAgentAlive(b.paneId)&&L(a,"stage agent died before its transcript appeared"),"waiting"}return"ready"}async function R(a,b,c){if(!a.baseRef){let d=function(a,b){let c=b("git",["rev-parse","--abbrev-ref","HEAD"],a.repoDir);if(0!==c.code)return y("resolving the repo branch",c);let d=c.stdout.trim();if(!d||"HEAD"===d)return{ok:!1,error:"the repo checkout is detached; a workflow needs a branch to target"};let e=b("git",["worktree","add","-b",a.branch,a.worktreeDir,"HEAD"],a.repoDir);if(0!==e.code){let c=b("git",["rev-parse","--abbrev-ref","HEAD"],a.worktreeDir);if(0!==c.code||c.stdout.trim()!==a.branch)return y("git worktree add",e)}let f=b("git",["rev-parse","HEAD"],a.worktreeDir);if(0!==f.code)return y("resolving the workflow base ref",f);let g=f.stdout.trim();return g?{ok:!0,baseBranch:d,baseRef:g}:{ok:!1,error:"git returned an empty base ref"}}(a,b.exec);if(!d.ok)return void L(a,d.error);a.baseBranch=d.baseBranch,a.baseRef=d.baseRef,c()}if(a.template.setup){if(null==a.setupPid&&"done"!==b.setupStatus(a).status){let c=b.startSetup(a);return null==c.pid?void L(a,c.error??"setup failed to start"):void(a.setupPid=c.pid)}let c=b.setupStatus(a);if("running"===c.status)return;if("failed"===c.status)return void L(a,c.detail)}a.state="implementing",a.stateDetail=null}async function S(a,b,c,d,e){var f,g;let h,i,j,k=M(a),l=(f=a.stageIndex,h=a.template.stages[f],h?.kind==="implement"?h.agent:h?.kind==="review-loop"?h.fixer:null);if(!k||!l)return void L(a,"stage index points outside the template");if(k.doneAt){"auto"===a.mode&&P(a);return}if("ready"!==await Q(a,k,l,(g=a.stageIndex,i=a.template.stages[g],j=i?.kind==="implement"?i.scope:"",[`You are stage ${g+1} of workflow "${a.name}", running in the dedicated worktree ${a.worktreeDir} on branch ${a.branch}.`,"","Task brief:",a.task.trim(),"",`Your scope for this stage: ${j}`,"Stay inside that scope — other stages own the rest of the work.","",...D(a,g),...E(a),"Commit your work in this worktree; later stages and the final PR build on your commits.","","When the stage is complete, end your final assistant message with a line that starts exactly with:","STAGE_DONE: <one-line note for the next stage>","Do not print the STAGE_DONE marker now and never quote it at the start of a line when acknowledging these instructions — print it only when the stage is actually complete. The note travels to the next stage's kickoff, so state where the contract lives and what the next stage should build on."].join("\n")),b,d,e))return;let m=c.get(k.agentPath);if(!m)return;let n=function(a,b,c){if("live"===b.activity||"jsonl_turn_open"===b.activityReason||"jsonl_turn_stalled"===b.activityReason)return null;let d=c.lastMessage(b);return!d||d.ts<=N(a.startedAt)?null:d.text.match(H)?.[1]?.trim()??null}(k,m,d);if(null!==n){k.doneAt=d.now(),k.doneNote=n||null,"auto"===a.mode&&P(a);return}k.paneId&&!await d.paneAgentAlive(k.paneId)&&L(a,"stage agent pane died before STAGE_DONE")}async function T(a,b,c,d){let e,f,g=M(a),h=(e=a.template.stages.at(-1),e?.kind==="review-loop"?e:null);if(!g||!h)return void L(a,"the template has no review-loop stage");if(g.doneAt){"auto"===a.mode&&(a.state="finishing",a.stateDetail=null);return}if("ready"!==await Q(a,g,h.fixer,(f=a.template.stages.length-1,[`You are the fixer of workflow "${a.name}", running in the dedicated worktree ${a.worktreeDir} on branch ${a.branch}.`,"","Task brief:",a.task.trim(),"",...D(a,f),"The implementation stages above are finished. A review loop starts now: a fresh reviewer examines the full workflow diff each round and its findings arrive here as messages.","","For each finding, apply the fix or argue against it. Respond to every finding with:","FIXED","or","REJECTED — <reason>","Give concrete arguments for rejections because the next reviewer is fresh and blind to previous discussion.","",...E(a),"Commit the fixes you apply. When every finding is addressed and the work is reviewable again, end your final assistant message with a line that starts exactly with:","REVIEW_READY: <one-line note>","Do not print the REVIEW_READY marker now and never quote it at the start of a line when acknowledging these instructions — print it only after addressing a round's findings."].join("\n")),b,c,d))return;if(a.fixerPath||(a.fixerPath=g.agentPath),!a.flowId){let e=c.findFlowByImplementer(a.fixerPath);if(e){a.flowId=e.id;return}let f=await c.createFlow({implementerPath:a.fixerPath,roles:{implementer:h.fixer,reviewer:h.reviewer},baseMode:"head",baseRef:a.baseRef,mode:a.mode,reviewerMode:h.reviewerMode,roundLimit:h.roundLimit},b);return f.flow?(a.flowId=f.flow.id,d(),void c.advanceFlow(a.flowId,`Workflow "${a.name}": review the full diff from the captured base ref.`)):void L(a,`creating the review flow failed: ${f.error??"unknown error"}`)}let i=c.getFlow(a.flowId);if(!i)return void L(a,"the embedded review flow record disappeared");if("approved"===i.state){g.doneAt=c.now(),g.doneNote=`review approved after ${i.rounds.length} round(s)`,"auto"===a.mode&&(a.state="finishing",a.stateDetail=null);return}"done_comment"===i.state?L(a,"review ended with a COMMENT verdict"):"needs_decision"===i.state?L(a,`review loop needs a decision: ${i.stateDetail??"unknown reason"}`):"closed"===i.state&&L(a,"the embedded review flow was closed")}async function U(a,b,c,d,e){let f=JSON.stringify(a);if("provisioning"===a.state)await R(a,d,e);else if("implementing"===a.state)await S(a,b,c,d,e);else if("reviewing"===a.state)await T(a,b,d,e);else{var g;let b,c,e,f;"finishing"===a.state&&(b=a.flowId?d.getFlow(a.flowId):null,(f=function(a,b,c){let d=c("git",["status","--porcelain"],a.worktreeDir);if(0!==d.code)return y("checking the worktree state",d);let e=d.stdout.split("\n").filter(a=>a.trim());if(e.length){let a=e.slice(0,3).map(a=>a.slice(3).trim()||a.trim()),b=e.length>a.length?`, +${e.length-a.length} more`:"";return{ok:!1,error:`the worktree has uncommitted changes (${a.join(", ")}${b}) — commit them, then retry the finish`}}return"merge"===a.template.finish?function(a,b){let c=b("git",["rev-parse","--abbrev-ref","HEAD"],a.repoDir);if(0!==c.code)return y("resolving the repo branch",c);let d=c.stdout.trim();if(d!==a.baseBranch)return{ok:!1,error:`the repo checkout is on ${d}; check out ${a.baseBranch} before merging`};let e=b("git",["merge","--no-ff",a.branch,"-m",`Merge ${a.branch}: ${C(a)}`],a.repoDir);return 0!==e.code?(b("git",["merge","--abort"],a.repoDir),y("git merge",e)):{ok:!0,prUrl:null}}(a,c):function(a,b,c){let d=c("git",["push","-u","origin",a.branch],a.worktreeDir);if(0!==d.code)return y("git push",d);let e=c("gh",["pr","create","--title",C(a),"--body",b,"--base",a.baseBranch,"--head",a.branch],a.worktreeDir);if(0===e.code){var f;return{ok:!0,prUrl:(f=e.stdout,f.match(/https:\/\/\S+\/pull\/\d+/)?.[0]??null)}}if(/already exists/i.test(e.stderr)){let b=c("gh",["pr","view",a.branch,"--json","url","--jq",".url"],a.worktreeDir);if(0===b.code&&b.stdout.trim())return{ok:!0,prUrl:b.stdout.trim()}}return y("gh pr create",e)}(a,b,c)}(a,(g=b?.rounds??[],c=a.stageRuns.filter(a=>a.doneAt).map(b=>{let c=a.template.stages[b.index],d=c?.kind==="implement"?c.scope.split(/[.:\n]/)[0]:"review loop";return`- Stage ${b.index+1} (${d}): ${b.doneNote||"done"}`}),e=g.map(a=>`- Round ${a.n}: ${a.verdict??"no verdict"}${null!=a.findingsCount?` (${a.findingsCount} findings)`:""}`),["## Task","",a.task.trim(),"","## Stages","",...c.length?c:["- (no stage notes recorded)"],"","## Review rounds","",...e.length?e:["- (no review rounds recorded)"],"","\uD83E\uDD16 Generated with [Claude Code](https://claude.com/claude-code)"].join("\n")),d.exec)).ok?(a.prUrl=f.prUrl,a.state="approved",a.stateDetail=null,a.closedAt=d.now()):L(a,f.error))}return JSON.stringify(a)!==f}let V=globalThis;async function W(a,b=I()){if(V.__llvWorkflowTick)return{workflows:(0,w.Ny)(),changed:!1};V.__llvWorkflowTick=!0;try{let c=(0,w.Ny)(),d=new Map(a.map(a=>[a.path,a])),e=!1;for(let f of c)!(F.has(f.state)||G.has(f.state))&&(await U(f,a,d,b,()=>(0,w.co)(c))&&(e=!0),e&&(0,w.co)(c));return e&&(0,w.co)(c),{workflows:c,changed:e}}finally{V.__llvWorkflowTick=!1}}function X(a){return"needs_decision"===a.state||"paused"===a.state?a.pausedState??"provisioning":a.state}async function Y(a,b,c=I()){let d=(0,w.Ny)(),e=d.find(b=>b.id===a);if(!e)return{error:"workflow not found",status:404};if("pause"===b.action)"paused"===e.state||F.has(e.state)||("needs_decision"!==e.state&&(e.pausedState=e.state),e.state="paused",e.stateDetail="paused by user");else if("resume"===b.action)("paused"===e.state||"needs_decision"===e.state)&&(e.state=e.pausedState&&!G.has(e.pausedState)?e.pausedState:"provisioning",e.pausedState=null,e.stateDetail=null);else if("advance"===b.action){let a=X(e);if(F.has(e.state)||"finishing"===a)return{error:"workflow cannot advance from its current state",status:409};if("provisioning"===a){if(!e.baseRef)return{error:"workflow has no worktree yet — retry provisioning instead",status:409};e.state="implementing"}else{let d=M(e);if(!d)return{error:"workflow has no current stage",status:409};!d.doneAt&&(d.doneAt=c.now(),d.doneNote=("string"==typeof b.note&&b.note.trim()?b.note.trim().slice(0,2e3):null)??d.doneNote??"advanced manually");if("reviewing"===a){let a=e.flowId?c.getFlow(e.flowId):null;a&&null===a.closedAt&&"closed"!==a.state&&await c.closeFlow(a.id),e.state="finishing"}else P(e)}e.pausedState=null,e.stateDetail=null}else if("retry-stage"===b.action){let a=X(e);if(F.has(e.state))return{error:"workflow is finished",status:409};if("provisioning"===a){e.setupPid=null;try{g().rmSync((0,w.VO)(e.id),{force:!0})}catch{}}else if("implementing"===a||"reviewing"===a){let b=M(e);if(b&&Object.assign(b,{agentPath:null,paneId:null,startedAt:null,doneAt:null,doneNote:null}),"reviewing"===a){let a=e.flowId?c.getFlow(e.flowId):null;a&&null===a.closedAt&&"closed"!==a.state&&await c.closeFlow(a.id),e.flowId=null,e.fixerPath=null}}e.state=a,e.pausedState=null,e.stateDetail=null}else if("close"===b.action){let a=e.flowId?c.getFlow(e.flowId):null;a&&null===a.closedAt&&"closed"!==a.state&&await c.closeFlow(a.id),e.state="closed",e.pausedState=null,e.stateDetail=null,e.closedAt=c.now()}return(0,w.co)(d),{workflow:e}}function Z(a,b=I()){let c,d="string"==typeof a.task?a.task.trim():"";if(!d)return{error:"task brief is required",status:400};let f="string"==typeof a.repoDir?a.repoDir.trim():"";if(!f)return{error:"repoDir is required",status:400};if(0!==b.exec("git",["rev-parse","--git-dir"],f).code)return{error:`not a git repository: ${f}`,status:400};if(a.template){let b=(0,w.K8)().find(b=>b.name===a.template);if(!b)return{error:`unknown workflow template: ${a.template}`,status:400};c=b}else{let b=(0,w.Fl)(a.stages);if("error"in b)return{error:b.error,status:400};c={name:"ad-hoc",stages:b.stages,finish:"merge"===a.finish?"merge":"pr",..."string"==typeof a.setup&&a.setup.trim()?{setup:a.setup.trim()}:{},..."string"==typeof a.verify&&a.verify.trim()?{verify:a.verify.trim()}:{}}}let g=(0,w.aL)({id:e().randomUUID().slice(0,8),name:c.name,task:d,project:b.projectForCwd(f)??i().basename(f),repoDir:f,template:c,mode:"manual"===a.mode?"manual":"auto",now:b.now()});"string"==typeof a.src&&a.src.trim()&&(g.srcPath=a.src.trim());let h=(0,w.Ny)();return h.push(g),(0,w.co)(h),{workflow:g}}function $(){return{workflows:(0,w.Ny)(),templates:(0,w.K8)()}}},42087:(a,b,c)=>{c.d(b,{s:()=>n});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(16089),i=c(66024),j=c(23921),k=c(89333);function l(a){return new Promise(b=>setTimeout(b,a))}function m(a){let b=a-5e3,c=[],d=(a,f)=>{let h;if(!(f>6)){try{h=e().readdirSync(a,{withFileTypes:!0})}catch{return}for(let i of h){let h=g().join(a,i.name);if(i.isDirectory()){d(h,f+1);continue}if(i.isFile()&&i.name.endsWith(".jsonl"))try{let a=e().statSync(h);a.mtimeMs>=b&&c.push({path:h,mtimeMs:a.mtimeMs})}catch{continue}}}};return d(k.GH["codex-sessions"],0),c.sort((a,b)=>b.mtimeMs-a.mtimeMs).slice(0,32).map(a=>a.path)}async function n(a){if(a.knownTranscript)return a.knownTranscript;if("codex"!==a.engine)return null;let b=a.panePid;if("number"!=typeof b||!Number.isInteger(b)||b<=0)return null;let c=a.env??{},d=c.now??Date.now,f=c.sleep??l,g=c.candidatePaths??m,k=c.holderPidByPath??(a=>(0,j.SP)(a,!0)),n=c.parentPidOf??j.Ib,o=c.timeoutMs??2500,p=c.pollMs??150,q=d()+o;for(;;){let c=function(a,b,c,d){let f=d.holderPidByPath(a);for(let g of a){let a=f.get(g);if(void 0!==a&&function(a,b){let c=(0,h.tX)(a,{bytes:8192,maxLines:10});return null===c||c===b}(g,c)&&!function(a){try{let b=e().statSync(a);return(0,i.ET)(a,b.size)}catch{return!1}}(g)&&function(a,b,c){let d=new Set;for(let e=a;null!==e&&!d.has(e);e=c(e)){if(e===b)return!0;if(d.add(e),d.size>64)break}return!1}(a,b,d.parentPidOf))return g}return null}(g(a.startedAtMs),b,a.cwd,{holderPidByPath:k,parentPidOf:n});if(c)return c;if(d()>=q)return null;await f(p)}}},46825:(a,b,c)=>{c.d(b,{Fl:()=>t,K8:()=>y,Ny:()=>w,RK:()=>C,VO:()=>D,_F:()=>B,aL:()=>z,co:()=>x});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(91724),i=c(4837),j=c(98590);let k=(0,h.BQ)("workflows.json"),l=(0,h.BQ)("workflow-templates.json"),m=(0,h.BQ)("workflows"),n={engine:"codex",model:i.fC,effort:"low"},o=[{name:"fullstack",setup:"bun install",verify:"bun test && bun run build",finish:"pr",stages:[{kind:"implement",agent:{engine:"codex",model:null,effort:"high"},scope:"Backend/API: server logic, data layer, API routes. Leave UI components alone."},{kind:"implement",agent:{engine:"claude",model:"fable",effort:null},scope:"UI/frontend: components, hooks, styling, i18n labels. Build on the backend contract from the previous stage."},{kind:"review-loop",reviewer:{engine:"codex",model:null,effort:"xhigh"},fixer:{engine:"codex",model:null,effort:"low"},roundLimit:5,reviewerMode:"headless"}]}],p=[{name:"fullstack",setup:"bun install",verify:"bun test && bun run build",finish:"pr",stages:[{kind:"implement",agent:{engine:"codex",model:i.fC,effort:"high"},scope:"Backend/API: server logic, data layer, API routes. Leave UI components alone."},{kind:"implement",agent:{engine:"claude",model:"fable",effort:null},scope:"UI/frontend: components, hooks, styling, i18n labels. Build on the backend contract from the previous stage."},{kind:"review-loop",reviewer:{engine:"codex",model:i.je,effort:"xhigh"},fixer:{...n},roundLimit:5,reviewerMode:"headless"}]},{name:"Terra → Sol review",verify:"bun test && bun run build",finish:"pr",stages:[{kind:"implement",agent:{engine:"codex",model:i.fC,effort:"high"},scope:"Implement the requested change end to end, including focused tests and documentation updates."},{kind:"review-loop",reviewer:{engine:"codex",model:i.je,effort:"xhigh"},fixer:{...n},roundLimit:5,reviewerMode:"headless"}]}];function q(a,b){(0,j.Yj)(a,JSON.stringify(b,null,2)+"\n")}function r(a){try{return JSON.parse(e().readFileSync(a,"utf8"))}catch{return null}}function s(a){return!a||"object"!=typeof a||Array.isArray(a)||"claude"!==a.engine&&"codex"!==a.engine?null:{engine:a.engine,model:"string"==typeof a.model&&a.model.trim()?a.model.trim():null,effort:"string"==typeof a.effort&&a.effort.trim()?a.effort.trim():null}}function t(a){if(!Array.isArray(a)||a.length<2)return{error:"a workflow needs at least one implement stage and a closing review-loop"};let b=[];for(let c of a){let a=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=a.kind;if("implement"===b){let b;return(b=s(a.agent))&&"string"==typeof a.scope&&a.scope.trim()?{kind:"implement",agent:b,scope:a.scope.trim()}:null}if("review-loop"===b){let b,c=s(a.reviewer);return c?{kind:"review-loop",reviewer:c,fixer:(b=s(a.fixer))&&"codex"===b.engine?{engine:"codex",model:b.model,effort:"low"}:{...n},roundLimit:Number.isInteger(a.roundLimit)&&a.roundLimit>=0?Math.min(a.roundLimit,50):5,reviewerMode:"pane"===a.reviewerMode?"pane":"headless"}:null}return null}(c);if(!a)return{error:"invalid stage definition"};b.push(a)}return 1!==b.filter(a=>"review-loop"===a.kind).length||b.at(-1)?.kind!=="review-loop"?{error:"stages must be implement+ followed by exactly one review-loop last"}:{stages:b}}function u(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.name||!a.name.trim())return null;let b=t(a.stages);if("error"in b)return null;let c="merge"===a.finish?"merge":"pr";return{name:a.name.trim(),stages:b.stages,finish:c,..."string"==typeof a.setup&&a.setup.trim()?{setup:a.setup.trim()}:{},..."string"==typeof a.verify&&a.verify.trim()?{verify:a.verify.trim()}:{}}}function v(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.id&&"string"==typeof a.task&&"string"==typeof a.repoDir&&"string"==typeof a.worktreeDir&&"string"==typeof a.branch&&Array.isArray(a.stageRuns)&&"number"==typeof a.stageIndex&&null!==u(a.template)}function w(){let a=r(k);return(Array.isArray(a?.workflows)?a.workflows.filter(v):[]).map(a=>({...a,project:a.project??"",pausedState:a.pausedState??null,setupPid:a.setupPid??null,srcPath:a.srcPath??null,flowId:a.flowId??null,fixerPath:a.fixerPath??null,prUrl:a.prUrl??null}))}function x(a){q(k,{workflows:a})}function y(){var a;let b,c,d,e=r(l),f=Array.isArray(e?.templates)?e.templates.map(u).filter(a=>null!==a):[],g=(a=f,b=new Set(o.map(a=>JSON.stringify(u(a)))),d=new Set((c=a.filter(a=>!b.has(JSON.stringify(a)))).map(a=>a.name)),[...p.filter(a=>!d.has(a.name)),...c]);return JSON.stringify(g)!==JSON.stringify(f)&&q(l,{templates:g}),g}function z(a){let b=g().basename(a.repoDir);return{id:a.id,name:a.name,task:a.task,project:a.project,repoDir:a.repoDir,worktreeDir:g().join(g().dirname(a.repoDir),`${b}-wf-${a.id}`),branch:`wf/${a.task.toLowerCase().replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"").slice(0,40).replace(/-+$/,"")||"task"}-${a.id}`,baseBranch:"",baseRef:"",template:JSON.parse(JSON.stringify(a.template)),stageRuns:a.template.stages.map((a,b)=>({index:b,agentPath:null,paneId:null,startedAt:null,doneAt:null,doneNote:null})),stageIndex:0,flowId:null,fixerPath:null,state:"provisioning",pausedState:null,stateDetail:null,mode:a.mode,setupPid:null,srcPath:null,prUrl:null,createdAt:a.now,closedAt:null}}function A(a){return g().join(m,a)}function B(a){return g().join(A(a),"setup-stdout.log")}function C(a){return g().join(A(a),"setup-stderr.log")}function D(a){return g().join(A(a),"setup-exit")}},51906:(a,b,c)=>{c.d(b,{IL:()=>v,T:()=>w,gn:()=>t});var d=c(31421),e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(14509),l=c(16089),m=c(98590);let n=new Map;function o(a,b){return`${a}:${b}`}function p(a){if(!a||!Number.isInteger(a)||a<=0)return!1;try{return process.kill(a,0),!0}catch{return!1}}function q(a,b=3e3){let c=b=>{try{process.kill(-a,b)}catch{try{process.kill(a,b)}catch{}}};c("SIGTERM"),setTimeout(()=>{p(a)&&c("SIGKILL")},b).unref()}let r=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,s=new Set(["session_id","sessionId","thread_id","threadId","rollout_id"]);function t(a,b,c,e,g,i=18e5){let p,r=o(a,b);if(n.has(r))return{pid:null,sessionId:null,reviewerPath:null};let s=(0,m.WJ)(a,b);h().mkdirSync(j().dirname(s),{recursive:!0});let u=function(a,b,c,d){if("claude"===a.engine){let c=f().randomUUID(),e=["-p",b,"--dangerously-skip-permissions","--session-id",c];return a.model&&e.push("--model",a.model),a.effort&&e.push("--effort",a.effort),{command:(0,k.uX)("claude"),args:e,outputPath:null,sessionId:c,reviewerPath:(0,l.eV)(d,c)}}let e=["exec",b,"--json","--output-last-message",c,"--dangerously-bypass-approvals-and-sandbox"];return a.model&&e.push("-m",a.model),a.effort&&e.push("-c",`model_reasoning_effort=${a.effort}`),{command:(0,k.uX)("codex"),args:e,outputPath:c,sessionId:null,reviewerPath:null}}(c,g,s,e),v=h().openSync((0,m.Ml)(a,b),"w"),w=h().openSync((0,m.NO)(a,b),"w");try{p=(0,d.spawn)(u.command,u.args,{cwd:e,env:process.env,detached:!0,stdio:["ignore",v,w]})}finally{h().closeSync(v),h().closeSync(w)}p.unref();let x={child:p,startedAt:Date.now(),exit:null,timer:setTimeout(()=>{!x.exit&&p.pid&&q(p.pid)},i)};return x.timer.unref(),n.set(r,x),p.on("error",()=>{clearTimeout(x.timer),x.exit={code:null,signal:null}}),p.on("close",(a,b)=>{clearTimeout(x.timer),x.exit={code:a,signal:b}}),{pid:p.pid??null,sessionId:u.sessionId,reviewerPath:u.reviewerPath}}function u(a){if(!a)return"";try{return h().readFileSync(a,"utf8")}catch{return""}}function v(a,b,c,d,e=18e5){let f=n.get(o(a,b)),g=u((0,m.Ml)(a,b)),h=f?.child.pid??c.reviewerPid??null;if(!f&&null===h&&!g)return null;let i=u((0,m.NO)(a,b)),j=function(a){let b=null,c="";for(let d of a.split("\n")){let a=d.trim();if(a.startsWith("{"))try{let d=JSON.parse(a);b||(b=function a(b,c=0){if(!b||"object"!=typeof b||c>4)return null;for(let[d,e]of Object.entries(b)){if(s.has(d)&&"string"==typeof e&&r.test(e))return e;let b=a(e,c+1);if(b)return b}return null}(d));let e=function(a){let b=a.item;if(b&&("agent_message"===b.type||"agent_message"===b.item_type)&&"string"==typeof b.text)return b.text;let c=a.msg;return c?.type==="agent_message"&&"string"==typeof c.message?c.message:null}(d);e&&(c=e)}catch{}}return{sessionId:b,lastAgentMessage:c}}(g),k=f?.startedAt??Date.parse(c.spawnStartedAt??""),l=Number.isFinite(k)?Date.now()-k:0;if(f?null===f.exit&&p(h):p(h))return!f&&l>=e&&h&&q(h),{status:"running",stdout:g,stderr:i,finalOutput:"",sessionId:j.sessionId,code:null,signal:null};let t=u("codex"===d?(0,m.WJ)(a,b):null).trim()||j.lastAgentMessage||("claude"===d?g.trim():""),w=f?.exit??null;return{status:w?.code===0||t?"done":!t&&l>=e?"timeout":"failed",stdout:g,stderr:i,finalOutput:t,sessionId:j.sessionId,code:w?.code??null,signal:w?.signal??null}}function w(a,b,c){let e=o(a,b),f=n.get(e);n.delete(e);let g=f?.child.pid??c??null;if(f&&clearTimeout(f.timer),g){p(g)&&q(g);return}!function(a){let b=(0,d.spawnSync)("ps",["-eo","pid=,args="],{encoding:"utf8"});if(!b.error&&0===b.status)for(let c of b.stdout.split("\n")){if(!c.includes(a)||!/\bcodex\b/.test(c))continue;let b=/^\s*(\d+)\s+/.exec(c),d=b?Number(b[1]):0;Number.isInteger(d)&&!(d<=0)&&d!==process.pid&&q(d)}}((0,m.WJ)(a,b))}},52509:(a,b,c)=>{c.d(b,{E:()=>e});let d=globalThis;function e(a){return d.__llvCaches??={},d.__llvCaches[a]??=new Map,d.__llvCaches[a]}},58152:(a,b,c)=>{c.d(b,{BL:()=>e});let d={claude:["low","medium","high","xhigh","max"],codex:["low","medium","high","xhigh"]};function e(a,b){let c="string"==typeof b.effort?b.effort.trim():"";return c&&!d[a].includes(c)?{effort:null,fast:null,error:`effort for ${a} must be one of: ${d[a].join(", ")}`}:{effort:c||null,fast:"codex"===a&&"boolean"==typeof b.fast?b.fast:null}}},59680:(a,b,c)=>{function d(){return"You are now in an implement-review loop controlled by the local log viewer.\n\nWork normally in this long-lived implementer session. When the work is ready for a fresh independent review, end your final assistant message with a line that starts exactly with:\nREVIEW_READY: <one-line note>\nDo not print the REVIEW_READY marker now and never quote it at the start of a line when acknowledging these instructions — print it only when the work is actually ready for review.\n\nEvery review round will use a fresh reviewer who sees the full diff from the captured base ref, with no history from earlier rounds. If the reviewer sends findings back, respond to each finding before the next marker using:\nFIXED\nor\nREJECTED — <reason>\n\nGive concrete arguments for rejections because the next reviewer will be fresh and blind to previous discussion."}function e(a,b){return["You are the reviewer in an implement-review loop.\n",`Working directory: ${a.cwd}`,`Review scope: git diff ${a.baseRef}...HEAD plus uncommitted changes in the same working tree.`,b.readyNote?`Ready note: ${b.readyNote}`:"Ready note: none provided.","\nRead-only requirement: run tests, builds, linters, searches, and other investigation commands as needed. Do not edit files, write notebooks, commit, stage, or mutate the working tree.\n\nOutput exactly this format:\nVERDICT: APPROVE | REQUEST_CHANGES | COMMENT\n\nThen write findings in Markdown. For each finding include severity, file, line, title, and explanation. Use REQUEST_CHANGES for required fixes, COMMENT for non-blocking notes, and APPROVE only when no blocking issues remain."].join("\n")}function f(a,b){return["Review round findings are below. Address every finding before the next review marker.\n",b.trim(),"\nFor each finding, respond with FIXED or REJECTED — <reason>. When the work is reviewable again, end your final assistant message with:\nREVIEW_READY: <one-line note>"].join("\n")}c.d(b,{SB:()=>d,i0:()=>f,qu:()=>e})},59683:(a,b,c)=>{let d;c.d(b,{B:()=>B});var e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(70547);let j="/proc";function k(a){try{return f().readFileSync(h().join(j,String(a),"cmdline"),"utf8").split("\0").filter(Boolean)}catch{return[]}}function l(a){try{return f().readlinkSync(h().join(j,String(a),"cwd"))}catch{return null}}function m(a){let b;try{b=f().readFileSync(h().join(j,String(a),"stat"),"utf8")}catch{return null}return b.slice(b.lastIndexOf(")")+2).trim().split(/\s+/)}function n(a){try{return(128&f().lstatSync(a).mode)!=0}catch{return!1}}function o(a){let b;try{b=f().readdirSync(j,{withFileTypes:!0})}catch{return}for(let c of b){let b;if(!c.isDirectory()||!/^\d+$/.test(c.name))continue;let d=Number(c.name),e=h().join(j,c.name,"fd");try{b=f().readdirSync(e,{withFileTypes:!0})}catch{continue}for(let c of b){let b,g=h().join(e,c.name);try{b=f().readlinkSync(g)}catch{continue}a(b,d,()=>n(g))}}}let p={name:"linux",pidAlive:function(a){return Number.isInteger(a)&&a>0&&f().existsSync(h().join(j,String(a)))},readArgv:k,readCwd:l,readPpid:function(a){let b=m(a),c=b?Number(b[1]):NaN;return Number.isInteger(c)&&c>1?c:null},readEnvVar:function(a,b){let c;try{c=f().readFileSync(h().join(j,String(a),"environ"),"utf8")}catch{return null}let d=b+"=",e=null;for(let a of c.split("\0"))a.startsWith(d)&&(e=a.slice(d.length));return e},listProcesses:function(){let a,b=[];try{a=f().readdirSync(j,{withFileTypes:!0})}catch{return b}for(let c of a){if(!c.isDirectory()||!/^\d+$/.test(c.name))continue;let a=Number(c.name);b.push({pid:a,argv:k(a),cwd:l(a),tty:function(a){let b=m(a),c=b?Number(b[4]):NaN;return Number.isInteger(c)&&c>0?c:0}(a)})}return b},systemMemory:function(){try{return(0,i.NW)(f().readFileSync(h().join(j,"meminfo"),"utf8"))}catch{return null}},processMemory:function(a){let b=new Map;for(let c of a)if(Number.isInteger(c)&&!(c<=0))try{b.set(c,(0,i.sW)(f().readFileSync(h().join(j,String(c),"status"),"utf8")))}catch{}return b},ppidMap:function(){let a,b=new Map;try{a=f().readdirSync(j,{withFileTypes:!0})}catch{return b}for(let c of a){if(!c.isDirectory()||!/^\d+$/.test(c.name))continue;let a=Number(c.name),d=m(a),e=d?Number(d[1]):NaN;Number.isInteger(e)&&e>0&&b.set(a,e)}return b},scanFdTargetsUnder:function(a,b){o(b)},scanFdTargetsFor:function(a,b){o(b)},pidWritesPath:function(a,b){let c,d;try{c=f().realpathSync(b)}catch{c=null}let e=h().join(j,String(a),"fd");try{d=f().readdirSync(e,{withFileTypes:!0})}catch{return!1}for(let a of d){let d,g=h().join(e,a.name);try{d=f().readlinkSync(g)}catch{continue}if((d===b||d===c)&&n(g))return!0}return!1},pidHoldsPath:function(a,b){let c;try{c=f().readdirSync(h().join(j,String(a),"fd"),{withFileTypes:!0})}catch{return!1}for(let d of c)try{if(f().readlinkSync(h().join(j,String(a),"fd",d.name))===b)return!0}catch{continue}return!1}};var q=c(31421),r=c(48161),s=c.n(r);function t(a,b){let c=(0,q.spawnSync)(a,b,{encoding:"utf8",maxBuffer:0x1000000,timeout:1e4});return c.error||"string"!=typeof c.stdout?"":c.stdout}let u=new Map,v=1,w=/^\s*(\d+)\s+(\d+)\s+(\S+)\s+(.*)$/;function x(a,b){let c=0,d="";for(let e of a.split("\n")){if(!e)continue;let a=e[0],f=e.slice(1);if("p"===a)c=Number(f),d="";else if("f"===a)d="";else if("a"===a)d=f;else if("n"===a&&c>0&&f){let a="w"===d||"u"===d;b(f,c,()=>a)}}}let y=null;function z(){let a=Date.now();if(y&&a-y.at<5e3)return y.byPid;let b=function(a){let b=new Map;for(let c of a.split("\n")){let a=w.exec(c);if(!a)continue;let d=Number(a[1]),e=Number(a[2]),f=(a[4]??"").trim().split(/\s+/).filter(Boolean);b.set(d,{ppid:Number.isInteger(e)&&e>1?e:null,tty:function(a){if(!a||"?"===a||"??"===a||"-"===a)return 0;let b=u.get(a);return void 0===b&&(b=v,v+=1,u.set(a,b)),b}(a[3]??""),argv:f})}return b}(t("ps",["-axo","pid=,ppid=,tty=,args="])),c=function(a){let b=new Map,c=0;for(let d of a.split("\n")){if(!d)continue;let a=d[0],e=d.slice(1);"p"===a?c=Number(e):"n"===a&&c>0&&b.set(c,e)}return b}(t("lsof",["-w","-d","cwd","-Fpn"])),d=new Map;for(let[a,e]of b)d.set(a,{argv:e.argv,ppid:e.ppid,tty:e.tty,cwd:c.get(a)??null});return y={at:a,byPid:d},d}let A={name:"portable",pidAlive:function(a){if(!Number.isInteger(a)||a<=0)return!1;try{return process.kill(a,0),!0}catch(a){return"EPERM"===a.code}},readArgv:function(a){return z().get(a)?.argv??[]},readCwd:function(a){return z().get(a)?.cwd??null},readPpid:function(a){return z().get(a)?.ppid??null},readEnvVar:function(){return null},listProcesses:function(){let a=[];for(let[b,c]of z())a.push({pid:b,argv:c.argv,cwd:c.cwd,tty:c.tty});return a},systemMemory:function(){let a=s().totalmem(),b=(0,i.Lc)(t("vm_stat",[]));if(!a||null===b)return null;let c=(0,i.yh)(t("sysctl",["-n","vm.swapusage"]));return{ramTotal:a,ramAvailable:Math.min(b,a),swapTotal:c?.swapTotal??0,swapUsed:c?.swapUsed??0}},processMemory:function(a){let b=new Set;for(let c of a)Number.isInteger(c)&&c>0&&b.add(c);let c=new Map;if(0===b.size)return c;for(let[a,d]of(0,i.CT)(t("ps",["-axo","pid=,rss="])))b.has(a)&&c.set(a,{rssBytes:d,swapBytes:0});return c},ppidMap:function(){let a=new Map;for(let[b,c]of z())null!==c.ppid&&a.set(b,c.ppid);return a},scanFdTargetsUnder:function(a,b){a&&f().existsSync(a)&&x(t("lsof",["-w","+D",a,"-Fpfan"]),b)},scanFdTargetsFor:function(a,b){let c=[...new Set(a.filter(Boolean))];0!==c.length&&x(t("lsof",["-w","-Fpfan","--",...c]),b)},pidWritesPath:function(a,b){let c=!1;return x(t("lsof",["-w","-a","-p",String(a),"-Fpfan","--",b]),(a,b,d)=>{d()&&(c=!0)}),c},pidHoldsPath:function(a,b){let c=!1;return x(t("lsof",["-w","-a","-p",String(a),"-Fpfan","--",b]),()=>{c=!0}),c}},B="portable"===(d=process.env.VIEWER_PROC_BACKEND)?A:"linux"===d||"linux"===process.platform?p:A},60641:(a,b,c)=>{function d(){return new Date().toISOString()}function e(a,b){return`Task #${a.slice(0,8)}: ${b}`}c.d(b,{Ec:()=>d,F7:()=>e})},64747:(a,b,c)=>{c.d(b,{Am:()=>aa,Fu:()=>t,IJ:()=>_,HZ:()=>T,VT:()=>I,aI:()=>y,mB:()=>S,RZ:()=>R,m7:()=>w,zX:()=>H,ZB:()=>Y,I6:()=>A,u1:()=>x,EW:()=>G,V1:()=>Z,oF:()=>E,KY:()=>V,Tk:()=>$,WS:()=>C});var d=c(31421),e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(91724);let l=(0,k.BQ)("events.ndjson");function m(a,b){try{h().mkdirSync(j().dirname(l),{recursive:!0});try{h().statSync(l).size>4194304&&h().renameSync(l,l+".1")}catch{}let c={ts:new Date().toISOString(),action:a,...b};h().appendFileSync(l,JSON.stringify(c)+"\n","utf8")}catch{}}let n={"image/png":"png","image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/webp":"webp"};var o=c(14289),p=c(7162),q=c(23921),r=c(89333),s=c(27359);function t(a){let b=Array.isArray(a.images)?a.images:a.image&&"object"==typeof a.image?[a.image]:[],c=[];for(let a of b){let b=a&&"object"==typeof a?a.base64:void 0,d=a&&"object"==typeof a?a.mime:void 0;if("string"!=typeof b||!b)return{images:[],error:{error:"invalid image",status:400}};if(null===(n["string"==typeof d?d:""]??null))return{images:[],error:{error:"unsupported image type",status:415}};if(function(a){if(!a.length)return 0;let b=a.endsWith("==")?2:+!!a.endsWith("=");return Math.floor(3*a.length/4)-b}(b)>0xa00000)return{images:[],error:{error:"image is too large (10 MB limit)",status:413}};c.push({base64:b,mime:d})}return{images:c,error:null}}let u=null;function v(a,b){return new Promise((c,e)=>{let f=(0,d.spawn)("tmux",a,{stdio:["pipe","pipe","pipe"]}),g="",h="";f.stdout.on("data",a=>g+=a.toString("utf8")),f.stderr.on("data",a=>h+=a.toString("utf8")),f.on("error",e),f.on("close",a=>c({code:a,stdout:g,stderr:h})),void 0!==b?f.stdin.end(b):f.stdin.end()})}async function w(a=!1){let b,c=Date.now();if(!a&&u&&c-u.at<12e3)return u.map;let d=new Map;try{b=await v(["list-panes","-a","-F","#{session_name}:#{window_index}.#{pane_index} #{pane_id} #{pane_pid}"])}catch{return u={at:c,map:d},d}if(0===b.code)for(let a of b.stdout.split("\n")){let[b="",c="",e=""]=a.split(" "),f=Number(e.trim());b.trim()&&c.startsWith("%")&&Number.isInteger(f)&&f>0&&d.set(f,{target:b.trim(),paneId:c.trim()})}return u={at:c,map:d},d}async function x(a){if(!Number.isInteger(a)||a<=0)return null;let b=await w();if(0===b.size)return null;let c=new Set,d=a;for(let a=0;a<64&&null!==d&&d>1;a+=1){let a=b.get(d);if(a)return a.target;if(c.has(d)||(0,q.Vt)((0,q.$U)(d)))break;c.add(d),d=(0,q.Ib)(d)}return null}async function y(){let a=new Set;for(let b of(await (0,p.C)()))null!==b.pid&&"running"===b.proc&&(0,q.pl)(b.pid)&&a.add(b.pid);return a}async function z(a){return(await y()).has(a)?x(a):"unknown"}async function A(a,b){if(null!==a){let b=await z(a);if("unknown"!==b&&null!==b)return b}if(b&&(0,r.EG)(b)){let a=await S(b);if(a)return a.display}return null}let B=new Map;async function C(a,b){let c=(B.get(a)??Promise.resolve()).then(b,b);B.set(a,c.catch(()=>void 0));try{return await c}finally{B.get(a)!==c&&B.size>256&&B.clear()}}async function D(a){let b=await X(a);if(null===b)throw Error("tmux pane is unavailable");if((0,s.g2)(b))throw m("gate",{target:a,result:"error",reason:"shell_prompt"}),Error("pane has no agent (plain shell) — message was not sent");for(let b=0;b<3;b+=1){let b=await Y(a);if(null!==(0,s.fm)(b))throw m("gate",{target:a,result:"error",reason:"select_dialog"}),Error("agent is waiting for a choice in the pane — answer before sending a new message");let c=(0,s._1)(b);if(null!==c)throw m("gate",{target:a,result:"error",reason:c}),Error("rate_limit"===c?"agent hit a rate limit — message was not sent":"agent is waiting for confirmation in the pane — answer before sending a new message");let d=(0,s.ye)(b);if(null!==d){m("gate",{target:a,result:"ok",reason:d}),await v(["send-keys","-t",a,"Enter"]),await W(700);continue}return}}async function E(a,b){await C(a,async()=>{try{await D(a),await F(a,b),m("send",{target:a,result:"ok",meta:{bytes:b.length}})}catch(b){throw m("send",{target:a,result:"error",reason:b instanceof Error?b.message:String(b)}),b}})}async function F(a,b){let c=`viewer-${Date.now()}-${Math.floor(1e6*Math.random())}`,d=await v(["load-buffer","-b",c,"-"],Buffer.from(b,"utf8"));if(0!==d.code)throw Error(d.stderr.trim()||"could not load tmux buffer");let e=await v(["paste-buffer","-d","-p","-b",c,"-t",a]);if(0!==e.code)throw Error(e.stderr.trim()||"could not paste text into pane");await W(250);let f=await v(["send-keys","-t",a,"Enter"]);if(0!==f.code)throw Error(f.stderr.trim()||"could not press Enter");let g=b.split("\n").map(a=>a.trim()).find(Boolean)?.slice(0,32)??"";for(let b=0;b<4;b+=1){await W(400);let b=(0,s.dC)(await Y(a));if(!(""!==g&&b.includes(g)||b.includes("[Pasted text")))return;await v(["send-keys","-t",a,"Enter"])}}async function G(a){let b=await v(["send-keys","-t",a,"Escape"]);if(m("interrupt",{target:a,result:0===b.code?"ok":"error",reason:b.stderr.trim()||void 0}),0!==b.code)throw Error(b.stderr.trim()||"could not send Escape")}async function H(a){let b=await v(["display-message","-p","-t",a,"#{pane_pid}"]).catch(()=>null),c=b&&0===b.code?Number(b.stdout.trim()):NaN;return Number.isInteger(c)&&c>0?c:null}async function I(a){let b=await v(["kill-pane","-t",a]);if(m("kill",{target:a,result:0===b.code?"ok":"error",reason:b.stderr.trim()||void 0}),0!==b.code)throw Error(b.stderr.trim()||"could not close tmux pane")}async function J(){let a=await v(["list-clients","-F","#{client_activity} #{client_session}"]).catch(()=>null),b=a=>{let b=null;for(let c of a.split("\n")){let a=c.indexOf(" ");if(a<0)continue;let d=Number(c.slice(0,a)),e=c.slice(a+1).trim();e&&Number.isFinite(d)&&(!b||d>b.at)&&(b={at:d,name:e})}return b?.name??null};if(a&&0===a.code){let c=b(a.stdout);if(c)return c}let c=await v(["list-sessions","-F","#{session_activity} #{session_name}"]).catch(()=>null);if(c&&0===c.code){let a=b(c.stdout);if(a)return a}let d=await v(["new-session","-d","-x","220","-y","50","-s","agents"]);if(0!==d.code&&!/duplicate session/.test(d.stderr))throw Error(d.stderr.trim()||"could not create tmux session");return"agents"}let K=(0,k.BQ)("resume-panes.json"),L=null,M=null;function N(){if(L)return L;L=new Map,M=null;try{var a;let b=(a=JSON.parse(h().readFileSync(K,"utf8")))&&"object"==typeof a&&"panes"in a?{serverPid:"number"==typeof a.serverPid&&Number.isInteger(a.serverPid)?a.serverPid:null,panes:a.panes&&"object"==typeof a.panes?a.panes:{}}:{serverPid:null,panes:a&&"object"==typeof a?a:{}};for(let[a,c]of(M=b.serverPid,Object.entries(b.panes)))c&&"string"==typeof c.paneId&&"string"==typeof c.windowName&&L.set(a,c)}catch{}return L}function O(){if(L)try{h().mkdirSync(j().dirname(K),{recursive:!0});let a={serverPid:M,panes:Object.fromEntries(L)};h().writeFileSync(K,JSON.stringify(a))}catch{}}async function P(){let a=await v(["display-message","-p","#{pid}"]).catch(()=>null),b=a&&0===a.code?Number(a.stdout.trim()):NaN;return Number.isInteger(b)&&b>0?b:null}function Q(a){let b=N();return M!==a&&(b.clear(),M=a,O()),b}async function R(a){let b=await v(["display-message","-p","-t",a,"#{window_name} #{pane_current_command} #{session_name}:#{window_index}.#{pane_index}"]).catch(()=>null),c=b&&0===b.code?b.stdout.trim().split(" "):null;return c&&3===c.length?{windowName:c[0]??"",command:c[1]??"",display:c[2]??a}:null}async function S(a){let b=await P();if(null===b)return null;let c=Q(b),d=c.get(a);if(!d)return null;let e=await R(d.paneId);return!e||e.windowName!==d.windowName||(0,s.g2)(e.command)?(c.delete(a),O(),null):{paneId:d.paneId,display:e.display}}function T(a){N().delete(a)&&O()}let U=new Map;async function V(a,b,c){let d=await S(a);if(d)return await E(d.paneId,c),{target:d.display,spawned:!1};let e=U.get(a);if(e){let a=await e;return await E(a.paneId,c),{target:a.display,spawned:!1}}let f=$(b,c);U.set(a,f);try{let c=await f,d=await P();return null!==d&&(Q(d).set(a,{paneId:c.paneId,windowName:b.windowName}),O()),m("resume",{target:c.display,path:a,cwd:b.cwd,result:"ok"}),{target:c.display,spawned:!0}}catch(c){throw m("resume",{path:a,cwd:b.cwd,result:"error",reason:c instanceof Error?c.message:String(c)}),c}finally{U.delete(a)}}function W(a){return new Promise(b=>setTimeout(b,a))}async function X(a){let b=await v(["display-message","-p","-t",a,"#{pane_current_command}"]).catch(()=>null);return b&&0===b.code?b.stdout.trim():null}async function Y(a){let b=await v(["capture-pane","-p","-t",a]).catch(()=>null);return b&&0===b.code?b.stdout:""}async function Z(a,b){if(!b.length)return;let c=await v(["send-keys","-t",a,...b]);if(0!==c.code)throw Error(c.stderr.trim()||"could not send keys")}async function $(a,b){var c;let d=await J(),e=await v(["new-window","-d","-P","-F","#{pane_id} #{session_name}:#{window_index}.#{pane_index} #{pane_pid}","-t",d+":","-n",a.windowName,"-c",a.cwd]);if(0!==e.code)throw Error(e.stderr.trim()||"could not open tmux window");let[f="",g="",h=""]=e.stdout.trim().split(" ");if(!f)throw Error("tmux did not return a window address");let i=Number(h),j=await v(["send-keys","-t",f,"-l",(c=a.cwd,`cd -- '${c.replaceAll("'","'\\''")}'`)]);if(0!==j.code)throw Error(j.stderr.trim()||"could not type cwd into pane");let k=await v(["send-keys","-t",f,"Enter"]);if(0!==k.code)throw Error(k.stderr.trim()||"could not enter cwd");let l=await v(["send-keys","-t",f,"-l",a.command]);if(0!==l.code)throw Error(l.stderr.trim()||"could not type command into pane");let n=await v(["send-keys","-t",f,"Enter"]);if(0!==n.code)throw Error(n.stderr.trim()||"could not start agent");let o=Date.now()+6e4,p=!1,q="",r="",t=0;for(;Date.now()<o;){await W(1e3);let b=await X(f);if(null===b)throw Error("agent window closed immediately after launch");if((0,s.g2)(b)){if(p)throw Error(`agent exited immediately after launch: ${(0,s.d3)(await Y(f))}`);continue}p=!0;let c=await Y(f),d=c!==q?(0,s.ye)(c):null;if(null!==d){m("gate",{target:f,cwd:a.cwd,result:"ok",reason:d}),await v(["send-keys","-t",f,"Enter"]),q=c,r="",t=0;continue}if(s.EB.test(c))break;if(c===r){if((t+=1)>=3)break}else t=0,r=c}let u=await X(f);if(null===u||(0,s.g2)(u))throw m("spawn",{target:f,cwd:a.cwd,result:"error",reason:"agent_exited_on_boot"}),Error(`agent did not start in the window: ${(0,s.d3)(await Y(f))}`);return m("spawn",{target:f,cwd:a.cwd,...a.transcript?{path:a.transcript}:{},result:"ok",meta:{window:a.windowName}}),b&&await E(f,b),{paneId:f,display:g||f,...Number.isInteger(i)&&i>0?{panePid:i}:{}}}function _(a){for(let b of a)try{h().unlinkSync(b)}catch{}}function aa(a,b){let c=[];try{for(let a of b)c.push(function(a,b){let c=n[b]??null;if(null===c)throw Error("unsupported image type");let d=Buffer.from(a,"base64");if(0===d.length)throw Error("invalid image data");if(d.length>0xa00000)throw Error("image is too large");h().mkdirSync(o.j,{recursive:!0});let e=j().join(o.j,`img-${Date.now()}-${f().randomUUID().slice(0,8)}.${c}`);return h().writeFileSync(e,d),{path:e}}(a.base64,a.mime).path)}catch(a){throw _(c),a}return{payload:[a,...c].filter(Boolean).join("\n"),imagePaths:c}}},66024:(a,b,c)=>{c.d(b,{ET:()=>n,Gz:()=>l,S:()=>m});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(52509),i=c(95544);let j=(0,h.E)("codex-native-parent-thread"),k=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;function l(a){return g().basename(a).match(k)?.[0]??null}function m(a,b){let c=j.get(a);if(c&&(null!==c[1]||c[0]>=65536||c[0]>=b))return c[1];let d=0,f=null;try{let c=e().openSync(a,"r");try{let a=Buffer.alloc(Math.min(b,65536));for(let b of(d=e().readSync(c,a,0,a.length,0),a.toString("utf8",0,d).split("\n"))){if(!b.includes('"session_meta"'))continue;let a=JSON.parse(b),c=(0,i.xK)(a.payload);if(!c)continue;let d=(0,i.xK)(c.source),e=(0,i.xK)(d?.subagent),g=(0,i.xK)(e?.thread_spawn),h=(0,i.r$)(c.parent_thread_id),j=(0,i.r$)(g?.parent_thread_id);f=h??j;break}}finally{e().closeSync(c)}}catch{f=null}return j.set(a,[d,f]),f}function n(a,b){return null!==m(a,b)}},70107:(a,b,c)=>{c.d(b,{Oc:()=>D,hY:()=>I,q0:()=>M});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(30795),l=c(52509),m=c(95544),n=c(39876);let o=(0,l.E)("meta-v3"),p=(0,l.E)("title"),q=(0,l.E)("codex-project-v3"),r=(0,l.E)("claude-cwd");function s(a,b){try{let c=e().openSync(a,"r");try{let a=Buffer.alloc(Math.min(b,131072)),d=e().readSync(c,a,0,a.length,0);return{text:a.toString("utf8",0,d),read:d}}finally{e().closeSync(c)}}catch{return null}}let t="-"+g().homedir().split(i().sep).filter(Boolean).join("-"),u=[t+"-Projects-",t+"-"],v=["<","#","Caveat:","{","[","This session is being continued"];function w(a){if(a===t)return i().basename(g().homedir());for(let b of u)if(a.startsWith(b))return a.slice(b.length)||a;return a}let x=(0,l.E)("worktree-git"),y=(0,l.E)("persisted-project-v2"),z="worktree-map.json",A=null,B=!1;function C(){let a=(0,j.Pn)();if(A&&A.dir===a)return A.map;let b=new Map;try{let c=JSON.parse(e().readFileSync(i().join(a,z),"utf8"));for(let[a,d]of Object.entries(c))"string"==typeof d?.repo&&"string"==typeof d?.worktree&&b.set(a,{repo:d.repo,worktree:d.worktree})}catch{}return A={dir:a,map:b},B=!1,b}function D(){if(B&&A){B=!1;try{e().mkdirSync(A.dir,{recursive:!0}),e().writeFileSync(i().join(A.dir,z),JSON.stringify(Object.fromEntries(A.map)))}catch{}}}function E(a){try{return JSON.parse(e().readFileSync(i().join((0,j.Pn)(),a),"utf8"))}catch{return null}}function F(a,b,c=!1){if("string"!=typeof a||!a.trim()||"string"!=typeof b||!b.trim())return null;let d=w(b.replace(/[^a-zA-Z0-9]/g,"-")),e=c||d!==a?i().basename(b):void 0;return{project:a,worktree:e}}function G(){let a=(0,j.Pn)(),b=(0,n.g)(),c=y.get("state");if(c&&c[0]>Date.now()&&c[1]===a&&c[2]===b)return c[3];let d=new Map,e=new Map,f=new Map,g=(a,b)=>{b&&"string"==typeof a&&a.trim()&&e.set(a,b),((a,b)=>{if(!b||"string"!=typeof a||!a.endsWith(".jsonl"))return;let c=i().basename(i().dirname(a));c.startsWith("-")&&f.set(c,b)})(a,b)},h=E("flows.json");for(let a of Array.isArray(h?.flows)?h.flows:[]){if(!a||"object"!=typeof a||Array.isArray(a))continue;let b=F(a.project,a.cwd);if(b&&"string"==typeof a.cwd)for(let c of(d.set(a.cwd,b),g(a.implementerPath,b),Array.isArray(a.rounds)?a.rounds:[]))!c||"object"!=typeof c||Array.isArray(c)||g(c.reviewerPath,b)}let k=E("workflows.json");for(let a of Array.isArray(k?.workflows)?k.workflows:[]){if(!a||"object"!=typeof a||Array.isArray(a))continue;let b=F(a.project,a.repoDir);b&&"string"==typeof a.repoDir&&d.set(a.repoDir,b);let c=F(a.project,a.worktreeDir,!0);for(let e of(c&&"string"==typeof a.worktreeDir&&d.set(a.worktreeDir,c),Array.isArray(a.stageRuns)?a.stageRuns:[]))!e||"object"!=typeof e||Array.isArray(e)||g(e.agentPath,c??b);g(a.fixerPath,c??b)}let l={byCwd:d,byPath:e,bySlug:f};return y.set("state",[Date.now()+1e4,a,b,l]),l}function H(a){let b=function(a){let b=i().sep+".claude"+i().sep+"worktrees"+i().sep,c=a.indexOf(b);if(c<0)return null;let d=a.slice(c+b.length).split(i().sep).filter(Boolean)[0];return d?{repo:a.slice(0,c),worktree:d}:null}(a)??function(a){let b=a.split(i().sep);for(let a=1;a<b.length-1;a++){if("worktrees"!==b[a]&&".worktrees"!==b[a]||".claude"===b[a-1]||".codex"===b[a-1])continue;let c=b[a+1];if(!c)break;return{repo:b.slice(0,a).join(i().sep)||i().sep,worktree:c}}return null}(a)??function(a){let b=i().sep+".codex"+i().sep+"worktrees"+i().sep,c=a.indexOf(b);if(c<0)return null;let[d,f]=a.slice(c+b.length).split(i().sep).filter(Boolean);return d&&f?{repo:function(a){for(let b of[i().join(g().homedir(),"Projects"),i().join(g().homedir(),".agents","tools")]){let c=i().join(b,a);try{if(e().statSync(c).isDirectory())return c}catch{continue}}return i().join(g().homedir(),"Projects",a)}(f),worktree:d}:null}(a)??function(a){var b;let c,d,f=x.get(a);if(f&&f[0]>Date.now())return f[1];let g=null;try{let b=i().join(a,".git");e().lstatSync(b).isFile()&&(g=function(a,b){let c=/^gitdir:\s*(.+?)\s*$/m.exec(b)?.[1];if(!c)return null;let d=i().resolve(a,c).split(i().sep),e=d.lastIndexOf("worktrees"),f=e>=0?d[e+1]:void 0;return f&&".git"===d[e-1]?{repo:d.slice(0,e-1).join(i().sep)||i().sep,worktree:f}:null}(a,e().readFileSync(b,"utf8")))}catch{}return x.set(a,[Date.now()+6e4,g]),g&&(b=g,(d=(c=C()).get(a))&&d.repo===b.repo&&d.worktree===b.worktree||(c.set(a,b),B=!0)),g}(a);if(!b&&!function(a){try{return e().lstatSync(i().join(a,".git")),!0}catch{return!1}}(a)){let c=G().byCwd.get(a);if(c)return c;b=C().get(a)??null}let c=w((b?b.repo:a).replace(/[^a-zA-Z0-9]/g,"-"));return c?{project:c,worktree:b?.worktree}:null}function I(a){return H(a)?.project??null}function J(a){let b="string"==typeof a?a.trim():"";return b&&!v.some(a=>b.startsWith(a))?b:null}function K(a){return G().byPath.get(a)??null}function L(a,b,c){let d=p.get(a);if(d&&(null!==d[1]||d[0]>=131072))return d[1];let e=s(a,b);if(!e)return d?.[1]??null;let f=function(a,b){for(let c of a){let a;try{let b=JSON.parse(c);if(!b||"object"!=typeof b||Array.isArray(b))continue;a=b}catch{continue}if("summary"===a.type){let b=J(a.summary);if(b)return b}if("ai-title"===a.type){let b=J(a.aiTitle);if(b)return b}if(b){let b=(0,m.xK)(a.payload)??{};if("user_message"===b.type){let a=J(b.message);if(a)return a}if("message"===b.type&&"user"===b.role){let a=J((0,m.Em)(b.content).map(a=>(0,m.r$)(a.text)??(0,m.r$)(a.input_text)??"").join(" ").trim());if(a)return a}}else if("user"===a.type){let b=(0,m.xK)(a.message)?.content;if("string"==typeof b){let a=J(b);if(a)return a}let c=J((0,m.Em)(b).filter(a=>"text"===a.type).map(a=>(0,m.r$)(a.text)??"").join(" ").trim());if(c)return c}}return null}(e.text.split("\n").slice(0,151),c);return p.set(a,[e.read,f]),f}function M(a,b,c,d){let e,f=(0,n.g)(),g=o.get(c);if(g?.[0]===d.size&&g[1]===f)return g[2];let h=i().relative(b,c),j=i().basename(c),l="other",p=null,t="claude",u="",v="plain";if("codex-sessions"===a){let a=q.get(c);if(a?.stateKey===f)l=a.project,e=a.worktree;else{l="";let a=s(c,d.size);if(a)try{let b=JSON.parse(a.text.split("\n")[0]??"{}"),c=(0,m.r$)((0,m.xK)(b.payload)?.cwd)??"",d=H(c);l=d?.project??"",e=d?.worktree}catch{l=""}if(!l){let a=K(c);l=a?.project??"",e=a?.worktree}l&&q.set(c,{stateKey:f,project:l,worktree:e})}l||(l="codex"),t="codex",u="session",v="codex",p=L(c,d.size,!0)??"Codex session"}else if("claude-projects"===a){let a=h.split(i().sep)[0]??"",b=function(a){let b="--claude-worktrees-",c=a.indexOf(b);if(c<0)return null;let d=a.slice(c+b.length);if(!d)return null;let e=a.slice(0,c),f=e.split("--").at(-1)?.split("-").filter(Boolean).at(-1);return f?{project:e.slice(e.lastIndexOf("-"+f)+1)||f,worktree:d}:null}(a);l=b?.project??w(a),e=b?.worktree;let f=function(a,b){let c=r.get(a);if(c&&(null!==c[1]||c[0]>=131072))return c[1];let d=s(a,b);if(!d)return c?.[1]??null;let e=function(a){for(let b of a)try{let a=JSON.parse(b),c=(0,m.r$)((0,m.xK)(a)?.cwd);if(c)return c}catch{continue}return null}(d.text.split("\n").slice(0,25));return r.set(a,[d.read,e]),e}(c,d.size),g=f?H(f):K(c),k=K(c);if(g&&(b||g.worktree||k)&&(l=g.project,e=g.worktree??e),v="claude",j.startsWith("agent-")){u="subagent";let a=(0,m.Vh)(c.slice(0,-6)+".meta.json")??{};p=(0,m.r$)(a.description)??(0,m.r$)(a.name)??"Subagent "+j.slice(6).split(".")[0]}else u="session",p=L(c,d.size,!1)??"Claude session"}else if("claude-tasks"===a){let a=h.split(i().sep)[0]??"",b=G().bySlug.get(a)??null;l=b?.project??w(a),e=b?.worktree,t="shell",u="background",p="Background task "+j.split(".")[0]}let x={project:l,worktree:e,title:(0,k.cr)(p??j,120),engine:t,kind:u,fmt:v};return o.set(c,[d.size,f,x]),x}},70547:(a,b,c)=>{function d(a,b){let c=RegExp(`^${b}:\\s+(\\d+)\\s*kB`,"m").exec(a);if(!c)return null;let d=Number(c[1]);return Number.isFinite(d)?1024*d:null}function e(a){let b=d(a,"MemTotal"),c=d(a,"MemAvailable");if(null===b||null===c||b<=0)return null;let e=d(a,"SwapTotal")??0,f=d(a,"SwapFree")??e;return{ramTotal:b,ramAvailable:c,swapTotal:e,swapUsed:Math.max(0,e-f)}}function f(a){return{rssBytes:d(a,"VmRSS")??0,swapBytes:d(a,"VmSwap")??0}}function g(a){let b=Number(/page size of (\d+) bytes/.exec(a)?.[1]);if(!Number.isFinite(b)||b<=0)return null;let c=b=>{let c=RegExp(`^${b}:\\s+(\\d+)\\.?`,"m").exec(a);return c?Number(c[1]):null},d=c("Pages free"),e=c("Pages inactive");return null===d||null===e?null:(d+e+(c("Pages purgeable")??0))*b}c.d(b,{CT:()=>k,Lc:()=>g,NW:()=>e,mO:()=>l,sW:()=>f,yh:()=>j});let h=/([\d.]+)\s*([KMGT])/;function i(a){let b=h.exec(a);if(!b)return null;let c=Number(b[1]);return Number.isFinite(c)?Math.round(c*({K:1024,M:1048576,G:0x40000000,T:0x10000000000})[b[2]]):null}function j(a){let b=/total\s*=\s*(\S+)/.exec(a)?.[1],c=/used\s*=\s*(\S+)/.exec(a)?.[1];if(!b||!c)return null;let d=i(b),e=i(c);return null===d||null===e?null:{swapTotal:d,swapUsed:e}}function k(a){let b=new Map;for(let c of a.split("\n")){let a=/^\s*(\d+)\s+(\d+)\s*$/.exec(c);a&&b.set(Number(a[1]),1024*Number(a[2]))}return b}function l(a,b){let c=new Map;for(let[a,d]of b){if(a===d)continue;let b=c.get(d);b?b.push(a):c.set(d,[a])}let d=new Set([a]),e=[],f=[a];for(;f.length;){let a=f.pop();for(let b of(e.push(a),c.get(a)??[]))d.has(b)||(d.add(b),f.push(b))}return e}},74127:(a,b,c)=>{c.d(b,{l:()=>m});var d=c(73024),e=c.n(d);function f(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function g(a){return Array.isArray(a)?a.filter(a=>!!a&&"object"==typeof a&&!Array.isArray(a)):[]}function h(a){return"string"==typeof a?a:""}function i(a){return h(a.timestamp)||h(a.ts)||null}function j(a,b=8388608){let c;try{let d=e().statSync(a),f=Math.max(0,d.size-b),g=e().openSync(a,"r");try{let a=Buffer.alloc(d.size-f);e().readSync(g,a,0,a.length,f),c=a.toString("utf8")}finally{e().closeSync(g)}f>0&&(c=c.slice(c.indexOf("\n")+1))}catch{return[]}let d=[];for(let a of c.split("\n")){let b=a.trim();if(b)try{let a=JSON.parse(b);a&&"object"==typeof a&&!Array.isArray(a)&&d.push(a)}catch{}}return d}function k(a){return"string"==typeof a?a:g(a).map(a=>"text"===a.type?h(a.text):"thinking"===a.type?h(a.thinking):"tool_use"===a.type?`${h(a.name)} ${JSON.stringify(f(a.input))}`.trim():"tool_result"===a.type?k(a.content)||h(a.tool_use_id):"").filter(Boolean).join("\n").trim()}function l(a,b){b.text.trim()&&("message"===b.kind?a.messages.push(b):"reasoning"===b.kind?a.reasoning.push(b):"tool_call"===b.kind||"tool_result"===b.kind?a.tools.push(b):a.traces.push(b))}function m(a,b){return"claude"===b?function(a){let b={path:a,engine:"claude",messages:[],reasoning:[],tools:[],traces:[]};for(let c of j(a)){let a=i(c);if("user"===c.type){let d=f(c.message).content;if(g(d).some(a=>"tool_result"===a.type)){for(let c of g(d))"tool_result"===c.type&&l(b,{kind:"tool_result",role:"tool",ts:a,text:k(c.content)||h(c.tool_use_id)});continue}l(b,{kind:"message",role:"user",ts:a,text:k(d)});continue}if("assistant"===c.type){for(let d of g(f(c.message).content))"text"===d.type?l(b,{kind:"message",role:"assistant",ts:a,text:h(d.text)}):"thinking"===d.type?l(b,{kind:"reasoning",role:"assistant",ts:a,text:h(d.thinking)}):"tool_use"===d.type?l(b,{kind:"tool_call",role:"assistant",ts:a,name:h(d.name),text:JSON.stringify(f(d.input))}):"tool_result"===d.type&&l(b,{kind:"tool_result",role:"tool",ts:a,text:k(d.content)||h(d.tool_use_id)});continue}("summary"===c.type||"compact"===c.type)&&l(b,{kind:"trace",role:"system",ts:a,name:h(c.type),text:k(c.summary)||JSON.stringify(c)})}return b}(a):function(a){let b={path:a,engine:"codex",messages:[],reasoning:[],tools:[],traces:[]};for(let c of j(a)){let a=i(c),d=f(c.payload),e=h(d.type),g=function(a){let b=h(a.type);return"user_message"===b?{role:"user",text:h(a.message)}:"agent_message"===b?{role:"assistant",text:h(a.message)}:"message"===b?{role:"assistant"===a.role?"assistant":"user"===a.role?"user":"system",text:k(a.content)||h(a.message)}:null}(d);if(g){l(b,{kind:"message",role:g.role,ts:a,phase:h(d.phase)||void 0,text:g.text});continue}if("reasoning"===e||"reasoning_delta"===e){l(b,{kind:"reasoning",role:"assistant",ts:a,text:h(d.text)||h(d.message)});continue}if("response_item"===c.type){let c=f(d.item)||d,e=h(c.type);"function_call"===e||"custom_tool_call"===e?l(b,{kind:"tool_call",role:"assistant",ts:a,name:h(c.name),text:h(c.arguments)||JSON.stringify(c)}):"function_call_output"===e||"custom_tool_call_output"===e?l(b,{kind:"tool_result",role:"tool",ts:a,name:h(c.name),text:h(c.output)||JSON.stringify(c)}):e&&l(b,{kind:"trace",role:"system",ts:a,name:e,text:JSON.stringify(c)});continue}e&&l(b,{kind:"trace",role:"system",ts:a,name:e,text:JSON.stringify(d)})}return b}(a)}},89333:(a,b,c)=>{let d,e,f;c.d(b,{EG:()=>s,GH:()=>n,Rg:()=>o,aA:()=>q,jQ:()=>p});var g=c(73024),h=c.n(g),i=c(48161),j=c.n(i),k=c(76760),l=c.n(k);let m=j().homedir(),n={"codex-sessions":l().join(m,".codex/sessions"),"claude-projects":l().join(m,".claude/projects"),"claude-tasks":(d=process.getuid?.()??1e3,e=l().join(j().tmpdir(),"claude-"+d),e===(f="/tmp/claude-"+d)||h().existsSync(e)?e:h().existsSync(f)?f:e)},o=[".log",".jsonl",".output",".txt"],p=786432,q=400;function r(a){try{return h().realpathSync(a)}catch{return null}}function s(a){let b=r(a);return!!b&&Object.values(n).some(a=>{let c=r(a);return null!==c&&b.startsWith(c+l().sep)})}},90748:(a,b,c)=>{c.d(b,{O6:()=>n,UT:()=>j,mQ:()=>k,vq:()=>l,yy:()=>m});var d=c(77598),e=c.n(d),f=c(60641);function g(a){return"string"!=typeof a?null:a.trim()||null}function h(a){return!a||"object"!=typeof a||Array.isArray(a)?null:"number"==typeof a.x&&Number.isFinite(a.x)&&"number"==typeof a.y&&Number.isFinite(a.y)?{x:a.x,y:a.y}:null}function i(){return{ok:!1,error:"Task text must be no longer than 6000 characters",status:400}}function j(a,b,c={}){var d,k;let l="string"!=typeof(k=b.project)?null:k.trim()||null;if(!l)return{ok:!1,error:"project is required",status:400};let m=g(b.text);if(!m)return{ok:!1,error:"task text is required",status:400};if(m.length>6e3)return i();let n=h(b.pos);if(!n)return{ok:!1,error:"task position is required",status:400};let o=void 0===(d=b.source)?void 0:!d||"object"!=typeof d||Array.isArray(d)?null:"string"==typeof d.path&&d.path.trim()&&(null===d.ts||"string"==typeof d.ts)&&"string"==typeof d.text&&d.text.trim()&&"string"==typeof d.fingerprint&&d.fingerprint.trim()&&("claude"===d.engine||"codex"===d.engine)?{path:d.path,ts:d.ts,text:d.text,fingerprint:d.fingerprint,engine:d.engine}:null;if(null===o)return{ok:!1,error:"invalid task source",status:400};if(a.filter(a=>a.project===l).length>=300)return{ok:!1,error:"The project already has 300 tasks. Close or delete extra tasks.",status:409};let p=c.now?.()??(0,f.Ec)(),q={id:c.id?.()??e().randomUUID(),project:l,status:"inbox",text:m,pos:n,assignments:[],...o?{source:o}:{},createdAt:p,updatedAt:p};return{ok:!0,tasks:[...a,q],task:q}}function k(a,b,c,d=(0,f.Ec)()){let e=a.findIndex(a=>a.id===b);if(e<0)return{ok:!1,error:"task not found",status:404};let j=a[e],l={};if(Object.hasOwn(c,"text")){let a=g(c.text);if(!a)return{ok:!1,error:"task text is required",status:400};if(a.length>6e3)return i();l.text=a}if(Object.hasOwn(c,"status")){var m;let a="inbox"===(m=c.status)||"assigned"===m||"blocked"===m||"done"===m?m:null;if(!a)return{ok:!1,error:"invalid task status",status:400};l.status=a}if(Object.hasOwn(c,"pos")){let a=h(c.pos);if(!a)return{ok:!1,error:"invalid task position",status:400};l.pos=a}let n={...j,...l,updatedAt:d},o=a.slice();return o[e]=n,{ok:!0,tasks:o,task:n}}function l(a,b){let c=a.filter(a=>a.id!==b);return c.length===a.length?{ok:!1,error:"task not found",status:404}:{ok:!0,tasks:c}}function m(a,b,c,d=(0,f.Ec)()){let e=a.findIndex(a=>a.id===b);if(e<0)return{ok:!1,error:"task not found",status:404};let g=a[e],h=g.assignments.filter(a=>a.path!==c);if(h.length===g.assignments.length)return{ok:!0,tasks:a,task:g};let i={...g,assignments:h,updatedAt:d},j=a.slice();return j[e]=i,{ok:!0,tasks:j,task:i}}function n(a,b,c,d=(0,f.Ec)()){let e=a.findIndex(a=>a.id===b);if(e<0)return{ok:!1,error:"task not found",status:404};let g=a[e],h=c.some(a=>"delivered"===a.state||"spawning"===a.state||"handoff"===a.state),i={...g,status:"inbox"===g.status&&h?"assigned":g.status,assignments:function(a,b){let c=a.slice();for(let a of b){let b=c.findIndex(b=>null!==a.path&&b.path===a.path||null===a.path&&null!==a.panePid&&null===b.path&&b.panePid===a.panePid),d={path:a.path,panePid:a.panePid,state:a.state,error:a.error,at:a.at};c=b>=0?[...c.slice(0,b),d,...c.slice(b+1)]:[...c,d]}return c}(g.assignments,c),updatedAt:d},j=a.slice();return j[e]=i,{ok:!0,tasks:j,task:i}}},95544:(a,b,c)=>{c.d(b,{Em:()=>k,Vg:()=>i,Vh:()=>g,r$:()=>h,xK:()=>j});var d=c(73024),e=c.n(d);let f=(0,c(52509).E)("json");function g(a){let b;try{b=e().statSync(a).mtimeMs}catch{return null}let c=f.get(a);if(c?.[0]===b)return c[1];let d=null;try{d=JSON.parse(e().readFileSync(a,"utf8"))}catch{d=null}let g=d&&"object"==typeof d&&!Array.isArray(d)?d:null;return f.set(a,[b,g]),g}function h(a){return"string"==typeof a?a:null}function i(a){return"number"==typeof a&&Number.isFinite(a)?a:null}function j(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function k(a){return Array.isArray(a)?a.filter(a=>null!==a&&"object"==typeof a&&!Array.isArray(a)):[]}},98590:(a,b,c)=>{c.d(b,{Ml:()=>D,NO:()=>C,Sn:()=>E,Vd:()=>y,WJ:()=>B,Yj:()=>q,mL:()=>w,tR:()=>A,tu:()=>x});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(4837);let l=()=>(0,j.BQ)("flows.json"),m=()=>(0,j.BQ)("review-loop-presets.json"),n=[{name:"Codex high → Fable",implementer:{engine:"codex",model:null,effort:"high"},reviewer:{engine:"claude",model:"fable",effort:null}},{name:"Fable → Codex xhigh",implementer:{engine:"claude",model:"fable",effort:null},reviewer:{engine:"codex",model:null,effort:"xhigh"}},{name:"Sonnet → Codex xhigh",implementer:{engine:"claude",model:"sonnet",effort:null},reviewer:{engine:"codex",model:null,effort:"xhigh"}},{name:"Codex high → Codex xhigh",implementer:{engine:"codex",model:null,effort:"high"},reviewer:{engine:"codex",model:null,effort:"xhigh"}}],o=[{name:"Terra high → Sol xhigh",implementer:{engine:"codex",model:k.fC,effort:"high"},reviewer:{engine:"codex",model:k.je,effort:"xhigh"}},{name:"Terra low → Sol xhigh",implementer:{engine:"codex",model:k.fC,effort:"low"},reviewer:{engine:"codex",model:k.je,effort:"xhigh"}},{name:"Terra high → Fable",implementer:{engine:"codex",model:k.fC,effort:"high"},reviewer:{engine:"claude",model:"fable",effort:null}},{name:"Fable → Sol xhigh",implementer:{engine:"claude",model:"fable",effort:null},reviewer:{engine:"codex",model:k.je,effort:"xhigh"}},{name:"Sonnet → Sol xhigh",implementer:{engine:"claude",model:"sonnet",effort:null},reviewer:{engine:"codex",model:k.je,effort:"xhigh"}}];function p(a,b){g().mkdirSync(i().dirname(a),{recursive:!0});let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`);g().writeFileSync(c,JSON.stringify(b,null,2)+"\n","utf8"),g().renameSync(c,a)}function q(a,b){g().mkdirSync(i().dirname(a),{recursive:!0});let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`);g().writeFileSync(c,b,"utf8"),g().renameSync(c,a)}function r(a){try{return JSON.parse(g().readFileSync(a,"utf8"))}catch{return null}}function s(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.id&&"implement-review-loop"===a.template&&"string"==typeof a.cwd&&"string"==typeof a.implementerPath&&"string"==typeof a.baseRef&&Array.isArray(a.rounds)}function t(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.name&&u(a.implementer)&&u(a.reviewer)}function u(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&("claude"===a.engine||"codex"===a.engine)&&(null===a.model||"string"==typeof a.model)&&(null===a.effort||"string"==typeof a.effort)}function v(a,b){return a.engine===b.engine&&a.model===b.model&&a.effort===b.effort}function w(){let a=r(l());return(Array.isArray(a?.flows)?a.flows.filter(s):[]).map(a=>({...a,pausedState:a.pausedState??null,rounds:a.rounds.map(a=>({...a,sessionId:a.sessionId??null,reviewerPid:a.reviewerPid??null,spawnStartedAt:a.spawnStartedAt??null,relayStartedAt:a.relayStartedAt??null,error:a.error??null}))}))}function x(a){p(l(),{flows:a})}function y(){var a;let b,c,d=r(m()),e=Array.isArray(d?.presets)?d.presets.filter(t):[],f=(c=new Set((b=e.filter(a=>!n.some(b=>a.name===b.name&&v(a.implementer,b.implementer)&&v(a.reviewer,b.reviewer)))).map(a=>a.name)),[...o.filter(a=>!c.has(a.name)),...b]);return JSON.stringify(f)!==JSON.stringify(e)&&(a=f,p(m(),{presets:a})),f}function z(a){return i().join((0,j.BQ)("flows"),a)}function A(a,b){return i().join(z(a),`round-${b}-review.md`)}function B(a,b){return i().join(z(a),`round-${b}-last-message.md`)}function C(a,b){return i().join(z(a),`round-${b}-stderr.txt`)}function D(a,b){return i().join(z(a),`round-${b}-stdout.log`)}function E(a,b){let c=b.replace(/^\s*VERDICT:\s*(APPROVE|REQUEST_CHANGES|COMMENT)\s*$/im,"").trim();return`VERDICT: ${a}
4
- ${c?"\n"+c+"\n":"\n"}`}}};
@@ -1 +0,0 @@
1
- exports.id=813,exports.ids=[813],exports.modules={4782:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"connection",{enumerable:!0,get:function(){return k}});let d=c(29294),e=c(63033),f=c(23445),g=c(15693),h=c(48894),i=c(92305);c(65934);let j=c(72339);function k(){let a=d.workAsyncStorage.getStore(),b=e.workUnitAsyncStorage.getStore();if(a){if(b&&"after"===b.phase&&!(0,i.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside \`after()\`. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but \`after()\` executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E827",enumerable:!1,configurable:!0});if(a.forceStatic)return Promise.resolve(void 0);if(a.dynamicShouldError)throw Object.defineProperty(new g.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`connection()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E847",enumerable:!1,configurable:!0});if(b)switch(b.type){case"cache":{let b=Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside "use cache". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual request, but caches must be able to be produced before a request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E841",enumerable:!1,configurable:!0});throw Error.captureStackTrace(b,k),a.invalidDynamicUsageError??=b,b}case"private-cache":{let b=Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside "use cache: private". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual navigation request, but caches must be able to be produced before a navigation request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E837",enumerable:!1,configurable:!0});throw Error.captureStackTrace(b,k),a.invalidDynamicUsageError??=b,b}case"unstable-cache":throw Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside a function cached with \`unstable_cache()\`. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E840",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1125",enumerable:!1,configurable:!0});case"prerender":case"prerender-client":case"prerender-runtime":return(0,h.makeHangingPromise)(b.renderSignal,a.route,"`connection()`");case"validation-client":{let a="`connection`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1063",enumerable:!1,configurable:!0})}case"prerender-ppr":return(0,f.postponeWithTracking)(a.route,"connection",b.dynamicTracking);case"prerender-legacy":return(0,f.throwToInterruptStaticGeneration)("connection",a,b);case"request":if((0,f.trackDynamicDataInDynamicRender)(b),b.asyncApiPromises)return b.asyncApiPromises.connection;return Promise.resolve(void 0)}}(0,e.throwForMissingRequestStore)("connection")}},7909:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"after",{enumerable:!0,get:function(){return e}});let d=c(29294);function e(a){let b=d.workAsyncStorage.getStore();if(!b)throw Object.defineProperty(Error("`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context"),"__NEXT_ERROR_CODE",{value:"E468",enumerable:!1,configurable:!0});let{afterContext:c}=b;return c.after(a)}},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},22688:(a,b)=>{"use strict";function c(){throw Object.defineProperty(Error('ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead'),"__NEXT_ERROR_CODE",{value:"E183",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ImageResponse",{enumerable:!0,get:function(){return c}})},23211:(a,b,c)=>{"use strict";var d=c(51703);c.o(d,"NextResponse")&&c.d(b,{NextResponse:function(){return d.NextResponse}})},30240:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={isBot:function(){return h},userAgent:function(){return j},userAgentFromString:function(){return i}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=(d=c(42399))&&d.__esModule?d:{default:d};function h(a){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver|GPTBot/i.test(a)}function i(a){return{...(0,g.default)(a),isBot:void 0!==a&&h(a)}}function j({headers:a}){return i(a.get("user-agent")||void 0)}},34327:(a,b,c)=>{"use strict";var d,e;Object.defineProperty(b,"__esModule",{value:!0}),d=c(7909),e=b,Object.keys(d).forEach(function(a){"default"===a||Object.prototype.hasOwnProperty.call(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:function(){return d[a]}})})},38293:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"URLPattern",{enumerable:!0,get:function(){return c}});let c="u"<typeof URLPattern?void 0:URLPattern},42399:(a,b,c)=>{var d,e={226:function(e,f){!function(g){"use strict";var h="function",i="undefined",j="object",k="string",l="major",m="model",n="name",o="type",p="vendor",q="version",r="architecture",s="console",t="mobile",u="tablet",v="smarttv",w="wearable",x="embedded",y="Amazon",z="Apple",A="ASUS",B="BlackBerry",C="Browser",D="Chrome",E="Firefox",F="Google",G="Huawei",H="Microsoft",I="Motorola",J="Opera",K="Samsung",L="Sharp",M="Sony",N="Xiaomi",O="Zebra",P="Facebook",Q="Chromium OS",R="Mac OS",S=function(a,b){var c={};for(var d in a)b[d]&&b[d].length%2==0?c[d]=b[d].concat(a[d]):c[d]=a[d];return c},T=function(a){for(var b={},c=0;c<a.length;c++)b[a[c].toUpperCase()]=a[c];return b},U=function(a,b){return typeof a===k&&-1!==V(b).indexOf(V(a))},V=function(a){return a.toLowerCase()},W=function(a,b){if(typeof a===k)return a=a.replace(/^\s\s*/,""),typeof b===i?a:a.substring(0,350)},X=function(a,b){for(var c,d,e,f,g,i,k=0;k<b.length&&!g;){var l=b[k],m=b[k+1];for(c=d=0;c<l.length&&!g&&l[c];)if(g=l[c++].exec(a))for(e=0;e<m.length;e++)i=g[++d],typeof(f=m[e])===j&&f.length>0?2===f.length?typeof f[1]==h?this[f[0]]=f[1].call(this,i):this[f[0]]=f[1]:3===f.length?typeof f[1]!==h||f[1].exec&&f[1].test?this[f[0]]=i?i.replace(f[1],f[2]):void 0:this[f[0]]=i?f[1].call(this,i,f[2]):void 0:4===f.length&&(this[f[0]]=i?f[3].call(this,i.replace(f[1],f[2])):void 0):this[f]=i||void 0;k+=2}},Y=function(a,b){for(var c in b)if(typeof b[c]===j&&b[c].length>0){for(var d=0;d<b[c].length;d++)if(U(b[c][d],a))return"?"===c?void 0:c}else if(U(b[c],a))return"?"===c?void 0:c;return a},Z={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},$={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[q,[n,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[q,[n,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[n,q],[/opios[\/ ]+([\w\.]+)/i],[q,[n,J+" Mini"]],[/\bopr\/([\w\.]+)/i],[q,[n,J]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,/(heytap|ovi)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[n,q],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[q,[n,"UC"+C]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i],[q,[n,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[q,[n,"WeChat"]],[/konqueror\/([\w\.]+)/i],[q,[n,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[q,[n,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[q,[n,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[n,/(.+)/,"$1 Secure "+C],q],[/\bfocus\/([\w\.]+)/i],[q,[n,E+" Focus"]],[/\bopt\/([\w\.]+)/i],[q,[n,J+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[q,[n,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[q,[n,"Dolphin"]],[/coast\/([\w\.]+)/i],[q,[n,J+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[q,[n,"MIUI "+C]],[/fxios\/([-\w\.]+)/i],[q,[n,E]],[/\bqihu|(qi?ho?o?|360)browser/i],[[n,"360 "+C]],[/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i],[[n,/(.+)/,"$1 "+C],q],[/(comodo_dragon)\/([\w\.]+)/i],[[n,/_/g," "],q],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[n,q],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i,/\[(linkedin)app\]/i],[n],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[n,P],q],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[n,q],[/\bgsa\/([\w\.]+) .*safari\//i],[q,[n,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[q,[n,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[q,[n,D+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[n,D+" WebView"],q],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[q,[n,"Android "+C]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[n,q],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[q,[n,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[q,n],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[n,[q,Y,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\/([\w\.]+)/i],[n,q],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[n,"Netscape"],q],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[q,[n,E+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i,/panasonic;(viera)/i],[n,q],[/(cobalt)\/([\w\.]+)/i],[n,[q,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[r,"amd64"]],[/(ia32(?=;))/i],[[r,V]],[/((?:i[346]|x)86)[;\)]/i],[[r,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[r,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[r,"armhf"]],[/windows (ce|mobile); ppc;/i],[[r,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[r,/ower/,"",V]],[/(sun4\w)[;\)]/i],[[r,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[r,V]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[m,[p,K],[o,u]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[m,[p,K],[o,t]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[m,[p,z],[o,t]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[m,[p,z],[o,u]],[/(macintosh);/i],[m,[p,z]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[m,[p,L],[o,t]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[m,[p,G],[o,u]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[m,[p,G],[o,t]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[m,/_/g," "],[p,N],[o,t]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[m,/_/g," "],[p,N],[o,u]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[m,[p,"OPPO"],[o,t]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[m,[p,"Vivo"],[o,t]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[m,[p,"Realme"],[o,t]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[m,[p,I],[o,t]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[m,[p,I],[o,u]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[m,[p,"LG"],[o,u]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[m,[p,"LG"],[o,t]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[m,[p,"Lenovo"],[o,u]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[m,/_/g," "],[p,"Nokia"],[o,t]],[/(pixel c)\b/i],[m,[p,F],[o,u]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[m,[p,F],[o,t]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[m,[p,M],[o,t]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[m,"Xperia Tablet"],[p,M],[o,u]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[m,[p,"OnePlus"],[o,t]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[m,[p,y],[o,u]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[m,/(.+)/g,"Fire Phone $1"],[p,y],[o,t]],[/(playbook);[-\w\),; ]+(rim)/i],[m,p,[o,u]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[m,[p,B],[o,t]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[m,[p,A],[o,u]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[m,[p,A],[o,t]],[/(nexus 9)/i],[m,[p,"HTC"],[o,u]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[p,[m,/_/g," "],[o,t]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[m,[p,"Acer"],[o,u]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[m,[p,"Meizu"],[o,t]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[p,m,[o,t]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[p,m,[o,u]],[/(surface duo)/i],[m,[p,H],[o,u]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[m,[p,"Fairphone"],[o,t]],[/(u304aa)/i],[m,[p,"AT&T"],[o,t]],[/\bsie-(\w*)/i],[m,[p,"Siemens"],[o,t]],[/\b(rct\w+) b/i],[m,[p,"RCA"],[o,u]],[/\b(venue[\d ]{2,7}) b/i],[m,[p,"Dell"],[o,u]],[/\b(q(?:mv|ta)\w+) b/i],[m,[p,"Verizon"],[o,u]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[m,[p,"Barnes & Noble"],[o,u]],[/\b(tm\d{3}\w+) b/i],[m,[p,"NuVision"],[o,u]],[/\b(k88) b/i],[m,[p,"ZTE"],[o,u]],[/\b(nx\d{3}j) b/i],[m,[p,"ZTE"],[o,t]],[/\b(gen\d{3}) b.+49h/i],[m,[p,"Swiss"],[o,t]],[/\b(zur\d{3}) b/i],[m,[p,"Swiss"],[o,u]],[/\b((zeki)?tb.*\b) b/i],[m,[p,"Zeki"],[o,u]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[p,"Dragon Touch"],m,[o,u]],[/\b(ns-?\w{0,9}) b/i],[m,[p,"Insignia"],[o,u]],[/\b((nxa|next)-?\w{0,9}) b/i],[m,[p,"NextBook"],[o,u]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[p,"Voice"],m,[o,t]],[/\b(lvtel\-)?(v1[12]) b/i],[[p,"LvTel"],m,[o,t]],[/\b(ph-1) /i],[m,[p,"Essential"],[o,t]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[m,[p,"Envizen"],[o,u]],[/\b(trio[-\w\. ]+) b/i],[m,[p,"MachSpeed"],[o,u]],[/\btu_(1491) b/i],[m,[p,"Rotor"],[o,u]],[/(shield[\w ]+) b/i],[m,[p,"Nvidia"],[o,u]],[/(sprint) (\w+)/i],[p,m,[o,t]],[/(kin\.[onetw]{3})/i],[[m,/\./g," "],[p,H],[o,t]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[m,[p,O],[o,u]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[m,[p,O],[o,t]],[/smart-tv.+(samsung)/i],[p,[o,v]],[/hbbtv.+maple;(\d+)/i],[[m,/^/,"SmartTV"],[p,K],[o,v]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[p,"LG"],[o,v]],[/(apple) ?tv/i],[p,[m,z+" TV"],[o,v]],[/crkey/i],[[m,D+"cast"],[p,F],[o,v]],[/droid.+aft(\w)( bui|\))/i],[m,[p,y],[o,v]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[m,[p,L],[o,v]],[/(bravia[\w ]+)( bui|\))/i],[m,[p,M],[o,v]],[/(mitv-\w{5}) bui/i],[m,[p,N],[o,v]],[/Hbbtv.*(technisat) (.*);/i],[p,m,[o,v]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[p,W],[m,W],[o,v]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[o,v]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[p,m,[o,s]],[/droid.+; (shield) bui/i],[m,[p,"Nvidia"],[o,s]],[/(playstation [345portablevi]+)/i],[m,[p,M],[o,s]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[m,[p,H],[o,s]],[/((pebble))app/i],[p,m,[o,w]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[m,[p,z],[o,w]],[/droid.+; (glass) \d/i],[m,[p,F],[o,w]],[/droid.+; (wt63?0{2,3})\)/i],[m,[p,O],[o,w]],[/(quest( 2| pro)?)/i],[m,[p,P],[o,w]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[p,[o,x]],[/(aeobc)\b/i],[m,[p,y],[o,x]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[m,[o,t]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[m,[o,u]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[o,u]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[o,t]],[/(android[-\w\. ]{0,9});.+buil/i],[m,[p,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[q,[n,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[q,[n,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[n,q],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[q,n]],os:[[/microsoft (windows) (vista|xp)/i],[n,q],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[n,[q,Y,Z]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[n,"Windows"],[q,Y,Z]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/ios;fbsv\/([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[q,/_/g,"."],[n,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[n,R],[q,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[q,n],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[n,q],[/\(bb(10);/i],[q,[n,B]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[q,[n,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[q,[n,E+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[q,[n,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[q,[n,"watchOS"]],[/crkey\/([\d\.]+)/i],[q,[n,D+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[n,Q],q],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[n,q],[/(sunos) ?([\w\.\d]*)/i],[[n,"Solaris"],q],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[n,q]]},_=function(a,b){if(typeof a===j&&(b=a,a=void 0),!(this instanceof _))return new _(a,b).getResult();var c=typeof g!==i&&g.navigator?g.navigator:void 0,d=a||(c&&c.userAgent?c.userAgent:""),e=c&&c.userAgentData?c.userAgentData:void 0,f=b?S($,b):$,s=c&&c.userAgent==d;return this.getBrowser=function(){var a,b={};return b[n]=void 0,b[q]=void 0,X.call(b,d,f.browser),b[l]=typeof(a=b[q])===k?a.replace(/[^\d\.]/g,"").split(".")[0]:void 0,s&&c&&c.brave&&typeof c.brave.isBrave==h&&(b[n]="Brave"),b},this.getCPU=function(){var a={};return a[r]=void 0,X.call(a,d,f.cpu),a},this.getDevice=function(){var a={};return a[p]=void 0,a[m]=void 0,a[o]=void 0,X.call(a,d,f.device),s&&!a[o]&&e&&e.mobile&&(a[o]=t),s&&"Macintosh"==a[m]&&c&&typeof c.standalone!==i&&c.maxTouchPoints&&c.maxTouchPoints>2&&(a[m]="iPad",a[o]=u),a},this.getEngine=function(){var a={};return a[n]=void 0,a[q]=void 0,X.call(a,d,f.engine),a},this.getOS=function(){var a={};return a[n]=void 0,a[q]=void 0,X.call(a,d,f.os),s&&!a[n]&&e&&"Unknown"!=e.platform&&(a[n]=e.platform.replace(/chrome os/i,Q).replace(/macos/i,R)),a},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return d},this.setUA=function(a){return d=typeof a===k&&a.length>350?W(a,350):a,this},this.setUA(d),this};_.VERSION="1.0.35",_.BROWSER=T([n,q,l]),_.CPU=T([r]),_.DEVICE=T([m,p,o,s,t,v,u,w,x]),_.ENGINE=_.OS=T([n,q]),typeof f!==i?(e.exports&&(f=e.exports=_),f.UAParser=_):c.amdO?void 0===(d=(function(){return _}).call(b,c,b,a))||(a.exports=d):typeof g!==i&&(g.UAParser=_);var aa=typeof g!==i&&(g.jQuery||g.Zepto);if(aa&&!aa.ua){var ab=new _;aa.ua=ab.getResult(),aa.ua.get=function(){return ab.getUA()},aa.ua.set=function(a){ab.setUA(a);var b=ab.getResult();for(var c in b)aa.ua[c]=b[c]}}}("object"==typeof window?window:this)}},f={};function g(a){var b=f[a];if(void 0!==b)return b.exports;var c=f[a]={exports:{}},d=!0;try{e[a].call(c.exports,c,c.exports,g),d=!1}finally{d&&delete f[a]}return c.exports}g.ab=__dirname+"/",a.exports=g(226)},51703:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ImageResponse:function(){return f.ImageResponse},NextRequest:function(){return g.NextRequest},NextResponse:function(){return h.NextResponse},URLPattern:function(){return j.URLPattern},after:function(){return k.after},connection:function(){return l.connection},userAgent:function(){return i.userAgent},userAgentFromString:function(){return i.userAgentFromString}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(22688),g=c(43690),h=c(70176),i=c(30240),j=c(38293),k=c(34327),l=c(4782)},70176:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextResponse",{enumerable:!0,get:function(){return l}});let d=c(91488),e=c(72642),f=c(62018),g=c(20445),h=c(91488),i=Symbol("internal response"),j=new Set([301,302,303,307,308]);function k(a,b){var c;if(null==a||null==(c=a.request)?void 0:c.headers){if(!(a.request.headers instanceof Headers))throw Object.defineProperty(Error("request.headers must be an instance of Headers"),"__NEXT_ERROR_CODE",{value:"E119",enumerable:!1,configurable:!0});let c=[];for(let[d,e]of a.request.headers)b.set("x-middleware-request-"+d,e),c.push(d);b.set("x-middleware-override-headers",c.join(","))}}class l extends Response{constructor(a,b={}){super(a,b);const c=this.headers,j=new Proxy(new h.ResponseCookies(c),{get(a,e,f){switch(e){case"delete":case"set":return(...f)=>{let g=Reflect.apply(a[e],a,f),i=new Headers(c);return g instanceof h.ResponseCookies&&c.set("x-middleware-set-cookie",g.getAll().map(a=>(0,d.stringifyCookie)(a)).join(",")),k(b,i),g};default:return g.ReflectAdapter.get(a,e,f)}}});this[i]={cookies:j,url:b.url?new e.NextURL(b.url,{headers:(0,f.toNodeOutgoingHttpHeaders)(c),nextConfig:b.nextConfig}):void 0}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,url:this.url,body:this.body,bodyUsed:this.bodyUsed,headers:Object.fromEntries(this.headers),ok:this.ok,redirected:this.redirected,status:this.status,statusText:this.statusText,type:this.type}}get cookies(){return this[i].cookies}static json(a,b){let c=Response.json(a,b);return new l(c.body,c)}static redirect(a,b){let c="number"==typeof b?b:(null==b?void 0:b.status)??307;if(!j.has(c))throw Object.defineProperty(RangeError('Failed to execute "redirect" on "response": Invalid status code'),"__NEXT_ERROR_CODE",{value:"E529",enumerable:!1,configurable:!0});let d="object"==typeof b?b:{},e=new Headers(null==d?void 0:d.headers);return e.set("Location",(0,f.validateURL)(a)),new l(null,{...d,headers:e,status:c})}static rewrite(a,b){let c=new Headers(null==b?void 0:b.headers);return c.set("x-middleware-rewrite",(0,f.validateURL)(a)),k(b,c),new l(null,{...b,headers:c})}static next(a){let b=new Headers(null==a?void 0:a.headers);return b.set("x-middleware-next","1"),k(a,b),new l(null,{...a,headers:b})}}},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},92305:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15693),g=c(3295);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}}};
@@ -1 +0,0 @@
1
- exports.id=918,exports.ids=[918],exports.modules={5439:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getPreviouslyRevalidatedTags:function(){return w},getServerUtils:function(){return v},interpolateDynamicPath:function(){return t},normalizeCdnUrl:function(){return s},normalizeDynamicRouteParams:function(){return u}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(13973),g=c(41659),h=c(31797),i=c(71544),j=c(89964),k=c(77165),l=c(66796),m=c(47929),n=c(62018),o=c(23101),p=c(37525),q=c(95491);function r(a,b){for(let c in delete a.nextInternalLocale,a){let d=c!==m.NEXT_QUERY_PARAM_PREFIX&&c.startsWith(m.NEXT_QUERY_PARAM_PREFIX),e=c!==m.NEXT_INTERCEPTION_MARKER_PREFIX&&c.startsWith(m.NEXT_INTERCEPTION_MARKER_PREFIX);(d||e||b.includes(c))&&delete a[c]}}function s(a,b){let c=(0,p.parseReqUrl)(a.url);if(!c)return a.url;delete c.search,r(c.query,b),a.url=(0,q.formatUrl)(c)}function t(a,b,c){if(!c)return a;for(let d of Object.keys(c.groups)){let e,{optional:f,repeat:g}=c.groups[d],h=`[${g?"...":""}${d}]`;f&&(h=`[${h}]`);let i=b[d];((e=Array.isArray(i)?i.map(a=>a&&encodeURIComponent(a)).join("/"):i?encodeURIComponent(i):"")||f)&&(a=a.replaceAll(h,e))}return a}function u(a,b,c,d){let e=(a,b)=>{if(!a)return!1;let c=(0,l.normalizeRscURL)(a);for(let a=0;a<3;a++){if(c===b)return!0;let a=(0,o.decodeQueryPathParameter)(c);if(a===c)break;c=a}return!1},f={};for(let g of Object.keys(b.groups)){let h=a[g];"string"==typeof h?h=(0,l.normalizeRscURL)(h):Array.isArray(h)&&(h=h.map(l.normalizeRscURL));let i=c[g],j=b.groups[g].optional;if((Array.isArray(i)?i.some(a=>Array.isArray(h)?h.some(b=>e(b,a)):e(h,a)):Array.isArray(h)?h.some(a=>e(a,i)):e(h,i))||void 0===h&&!(j&&d))return{params:{},hasValidParams:!1};j&&(!h||Array.isArray(h)&&1===h.length&&("index"===h[0]||h[0]===`[[...${g}]]`)||"index"===h||h===`[[...${g}]]`)&&(h=void 0,delete a[g]),h&&"string"==typeof h&&b.groups[g].repeat&&(h=h.split("/")),h&&(f[g]=h)}return{params:f,hasValidParams:!0}}function v({page:a,i18n:b,basePath:c,rewrites:d,pageIsDynamic:e,trailingSlash:l,caseSensitive:m}){let p,q,w;return e&&(p=(0,h.getNamedRouteRegex)(a,{prefixRouteKeys:!1}),w=(q=(0,i.getRouteMatcher)(p))(a)),{handleRewrites:function(h,i){let n=structuredClone(i),o={},p=n.pathname,r=d=>{let i=(0,g.getPathMatch)(d.source+(l?"(/)?":""),{removeUnnamedParams:!0,strict:!0,sensitive:!!m});if(!n.pathname)return!1;let k=i(n.pathname);if((d.has||d.missing)&&k){let a=(0,j.matchHas)(h,n.query,d.has,d.missing);a?Object.assign(k,a):k=!1}if(k){let{parsedDestination:g,destQuery:h}=(0,j.prepareDestination)({appendParamsToQuery:!0,destination:d.destination,params:k,query:n.query});if(g.protocol)return!0;if(Object.assign(o,h,k),Object.assign(n.query,g.query),delete g.query,Object.assign(n,g),!(p=n.pathname))return!1;if(c&&(p=p.replace(RegExp(`^${c}`),"")||"/"),b){let a=(0,f.normalizeLocalePath)(p,b.locales);p=a.pathname,n.query.nextInternalLocale=a.detectedLocale||k.nextInternalLocale}if(p===a)return!0;if(e&&q){let a=q(p);if(a)return n.query={...n.query,...a},!0}}return!1};for(let a of d.beforeFiles||[])r(a);if(p!==a){let b,c=!1;for(let a of d.afterFiles||[])if(c=r(a))break;if(!c&&!((b=(0,k.removeTrailingSlash)(p||""))===(0,k.removeTrailingSlash)(a)||(null==q?void 0:q(b)))){for(let a of d.fallback||[])if(c=r(a))break}}return{rewriteParams:o,rewrittenParsedUrl:n}},defaultRouteRegex:p,dynamicRouteMatcher:q,defaultRouteMatches:w,normalizeQueryParams:function(a,b){for(let[c,d]of(delete a.nextInternalLocale,Object.entries(a))){let e=(0,n.normalizeNextQueryParam)(c);e&&(delete a[c],b.add(e),void 0!==d&&(a[e]=Array.isArray(d)?d.map(a=>(0,o.decodeQueryPathParameter)(a)):(0,o.decodeQueryPathParameter)(d)))}},getParamsFromRouteMatches:function(a){if(!p)return null;let{groups:b,routeKeys:c}=p,d=(0,i.getRouteMatcher)({re:{exec:a=>{let d=Object.fromEntries(new URLSearchParams(a));for(let[a,b]of Object.entries(d)){let c=(0,n.normalizeNextQueryParam)(a);c&&(d[c]=b,delete d[a])}let e={};for(let a of Object.keys(c)){let f=c[a];if(!f)continue;let g=b[f],h=d[a];if(!g.optional&&!h)return null;e[g.pos]=h}return e}},groups:b})(a);return d||null},normalizeDynamicRouteParams:(a,b)=>p&&w?u(a,p,w,b):{params:{},hasValidParams:!1},normalizeCdnUrl:(a,b)=>s(a,b),interpolateDynamicPath:(a,b)=>t(a,b,p),filterInternalQuery:(a,b)=>r(a,b)}}function w(a,b){return"string"==typeof a[m.NEXT_CACHE_REVALIDATED_TAGS_HEADER]&&a[m.NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER]===b?a[m.NEXT_CACHE_REVALIDATED_TAGS_HEADER].split(","):[]}},7904:(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}function e(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}c.r(b),c.d(b,{_:()=>e})},10684:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={PARAM_SEPARATOR:function(){return e},hasAdjacentParameterIssues:function(){return f},normalizeAdjacentParameters:function(){return g},normalizeTokensForRegexp:function(){return h},stripNormalizedSeparators:function(){return i},stripParameterSeparators:function(){return j}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="_NEXTSEP_";function f(a){return"string"==typeof a&&!!(/\/\(\.{1,3}\):[^/\s]+/.test(a)||/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(a))}function g(a){let b=a;return(b=b.replace(/(\([^)]*\)):([^/\s]+)/g,`$1${e}:$2`)).replace(/:([^:/\s)]+)(?=:)/g,`:$1${e}`)}function h(a){return a.map(a=>"object"==typeof a&&null!==a&&"modifier"in a&&("*"===a.modifier||"+"===a.modifier)&&"prefix"in a&&"suffix"in a&&""===a.prefix&&""===a.suffix?{...a,prefix:"/"}:a)}function i(a){return a.replace(RegExp(`\\)${e}`,"g"),")")}function j(a){let b={};for(let[c,d]of Object.entries(a))"string"==typeof d?b[c]=d.replace(RegExp(`^${e}`),""):Array.isArray(d)?b[c]=d.map(a=>"string"==typeof a?a.replace(RegExp(`^${e}`),""):a):b[c]=d;return b}},23101:(a,b)=>{"use strict";function c(a){try{return decodeURIComponent(a)}catch{return a}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"decodeQueryPathParameter",{enumerable:!0,get:function(){return c}})},23315:(a,b)=>{"use strict";function c(a){return a.replace(/\\/g,"/")}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"normalizePathSep",{enumerable:!0,get:function(){return c}})},27196:a=>{(()=>{"use strict";"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var b={};(()=>{function a(a,b){void 0===b&&(b={});for(var c=function(a){for(var b=[],c=0;c<a.length;){var d=a[c];if("*"===d||"+"===d||"?"===d){b.push({type:"MODIFIER",index:c,value:a[c++]});continue}if("\\"===d){b.push({type:"ESCAPED_CHAR",index:c++,value:a[c++]});continue}if("{"===d){b.push({type:"OPEN",index:c,value:a[c++]});continue}if("}"===d){b.push({type:"CLOSE",index:c,value:a[c++]});continue}if(":"===d){for(var e="",f=c+1;f<a.length;){var g=a.charCodeAt(f);if(g>=48&&g<=57||g>=65&&g<=90||g>=97&&g<=122||95===g){e+=a[f++];continue}break}if(!e)throw TypeError("Missing parameter name at ".concat(c));b.push({type:"NAME",index:c,value:e}),c=f;continue}if("("===d){var h=1,i="",f=c+1;if("?"===a[f])throw TypeError('Pattern cannot start with "?" at '.concat(f));for(;f<a.length;){if("\\"===a[f]){i+=a[f++]+a[f++];continue}if(")"===a[f]){if(0==--h){f++;break}}else if("("===a[f]&&(h++,"?"!==a[f+1]))throw TypeError("Capturing groups are not allowed at ".concat(f));i+=a[f++]}if(h)throw TypeError("Unbalanced pattern at ".concat(c));if(!i)throw TypeError("Missing pattern at ".concat(c));b.push({type:"PATTERN",index:c,value:i}),c=f;continue}b.push({type:"CHAR",index:c,value:a[c++]})}return b.push({type:"END",index:c,value:""}),b}(a),d=b.prefixes,f=void 0===d?"./":d,g=b.delimiter,h=void 0===g?"/#?":g,i=[],j=0,k=0,l="",m=function(a){if(k<c.length&&c[k].type===a)return c[k++].value},n=function(a){var b=m(a);if(void 0!==b)return b;var d=c[k],e=d.type,f=d.index;throw TypeError("Unexpected ".concat(e," at ").concat(f,", expected ").concat(a))},o=function(){for(var a,b="";a=m("CHAR")||m("ESCAPED_CHAR");)b+=a;return b},p=function(a){for(var b=0;b<h.length;b++){var c=h[b];if(a.indexOf(c)>-1)return!0}return!1},q=function(a){var b=i[i.length-1],c=a||(b&&"string"==typeof b?b:"");if(b&&!c)throw TypeError('Must have text between two parameters, missing text after "'.concat(b.name,'"'));return!c||p(c)?"[^".concat(e(h),"]+?"):"(?:(?!".concat(e(c),")[^").concat(e(h),"])+?")};k<c.length;){var r=m("CHAR"),s=m("NAME"),t=m("PATTERN");if(s||t){var u=r||"";-1===f.indexOf(u)&&(l+=u,u=""),l&&(i.push(l),l=""),i.push({name:s||j++,prefix:u,suffix:"",pattern:t||q(u),modifier:m("MODIFIER")||""});continue}var v=r||m("ESCAPED_CHAR");if(v){l+=v;continue}if(l&&(i.push(l),l=""),m("OPEN")){var u=o(),w=m("NAME")||"",x=m("PATTERN")||"",y=o();n("CLOSE"),i.push({name:w||(x?j++:""),pattern:w&&!x?q(u):x,prefix:u,suffix:y,modifier:m("MODIFIER")||""});continue}n("END")}return i}function c(a,b){void 0===b&&(b={});var c=f(b),d=b.encode,e=void 0===d?function(a){return a}:d,g=b.validate,h=void 0===g||g,i=a.map(function(a){if("object"==typeof a)return new RegExp("^(?:".concat(a.pattern,")$"),c)});return function(b){for(var c="",d=0;d<a.length;d++){var f=a[d];if("string"==typeof f){c+=f;continue}var g=b?b[f.name]:void 0,j="?"===f.modifier||"*"===f.modifier,k="*"===f.modifier||"+"===f.modifier;if(Array.isArray(g)){if(!k)throw TypeError('Expected "'.concat(f.name,'" to not repeat, but got an array'));if(0===g.length){if(j)continue;throw TypeError('Expected "'.concat(f.name,'" to not be empty'))}for(var l=0;l<g.length;l++){var m=e(g[l],f);if(h&&!i[d].test(m))throw TypeError('Expected all "'.concat(f.name,'" to match "').concat(f.pattern,'", but got "').concat(m,'"'));c+=f.prefix+m+f.suffix}continue}if("string"==typeof g||"number"==typeof g){var m=e(String(g),f);if(h&&!i[d].test(m))throw TypeError('Expected "'.concat(f.name,'" to match "').concat(f.pattern,'", but got "').concat(m,'"'));c+=f.prefix+m+f.suffix;continue}if(!j){var n=k?"an array":"a string";throw TypeError('Expected "'.concat(f.name,'" to be ').concat(n))}}return c}}function d(a,b,c){void 0===c&&(c={});var d=c.decode,e=void 0===d?function(a){return a}:d;return function(c){var d=a.exec(c);if(!d)return!1;for(var f=d[0],g=d.index,h=Object.create(null),i=1;i<d.length;i++)!function(a){if(void 0!==d[a]){var c=b[a-1];"*"===c.modifier||"+"===c.modifier?h[c.name]=d[a].split(c.prefix+c.suffix).map(function(a){return e(a,c)}):h[c.name]=e(d[a],c)}}(i);return{path:f,index:g,params:h}}}function e(a){return a.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function f(a){return a&&a.sensitive?"":"i"}function g(a,b,c){void 0===c&&(c={});for(var d=c.strict,g=void 0!==d&&d,h=c.start,i=c.end,j=c.encode,k=void 0===j?function(a){return a}:j,l=c.delimiter,m=c.endsWith,n="[".concat(e(void 0===m?"":m),"]|$"),o="[".concat(e(void 0===l?"/#?":l),"]"),p=void 0===h||h?"^":"",q=0;q<a.length;q++){var r=a[q];if("string"==typeof r)p+=e(k(r));else{var s=e(k(r.prefix)),t=e(k(r.suffix));if(r.pattern)if(b&&b.push(r),s||t)if("+"===r.modifier||"*"===r.modifier){var u="*"===r.modifier?"?":"";p+="(?:".concat(s,"((?:").concat(r.pattern,")(?:").concat(t).concat(s,"(?:").concat(r.pattern,"))*)").concat(t,")").concat(u)}else p+="(?:".concat(s,"(").concat(r.pattern,")").concat(t,")").concat(r.modifier);else{if("+"===r.modifier||"*"===r.modifier)throw TypeError('Can not repeat "'.concat(r.name,'" without a prefix and suffix'));p+="(".concat(r.pattern,")").concat(r.modifier)}else p+="(?:".concat(s).concat(t,")").concat(r.modifier)}}if(void 0===i||i)g||(p+="".concat(o,"?")),p+=c.endsWith?"(?=".concat(n,")"):"$";else{var v=a[a.length-1],w="string"==typeof v?o.indexOf(v[v.length-1])>-1:void 0===v;g||(p+="(?:".concat(o,"(?=").concat(n,"))?")),w||(p+="(?=".concat(o,"|").concat(n,")"))}return new RegExp(p,f(c))}function h(b,c,d){if(b instanceof RegExp){var e;if(!c)return b;for(var i=/\((?:\?<(.*?)>)?(?!\?)/g,j=0,k=i.exec(b.source);k;)c.push({name:k[1]||j++,prefix:"",suffix:"",modifier:"",pattern:""}),k=i.exec(b.source);return b}return Array.isArray(b)?(e=b.map(function(a){return h(a,c,d).source}),new RegExp("(?:".concat(e.join("|"),")"),f(d))):g(a(b,d),c,d)}Object.defineProperty(b,"__esModule",{value:!0}),b.pathToRegexp=b.tokensToRegexp=b.regexpToFunction=b.match=b.tokensToFunction=b.compile=b.parse=void 0,b.parse=a,b.compile=function(b,d){return c(a(b,d),d)},b.tokensToFunction=c,b.match=function(a,b){var c=[];return d(h(a,c,b),c,b)},b.regexpToFunction=d,b.tokensToRegexp=g,b.pathToRegexp=h})(),a.exports=b})()},31383:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"escapeStringRegexp",{enumerable:!0,get:function(){return e}});let c=/[|\\{}()[\]^$+*?.-]/,d=/[|\\{}()[\]^$+*?.-]/g;function e(a){return c.test(a)?a.replace(d,"\\$&"):a}},31797:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getNamedMiddlewareRegex:function(){return p},getNamedRouteRegex:function(){return o},getRouteRegex:function(){return l}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(47929),g=c(32107),h=c(31383),i=c(77165),j=c(93646);function k(a,b,c){let d={},e=1,f=[];for(let k of(0,i.removeTrailingSlash)(a).slice(1).split("/")){let a=g.INTERCEPTION_ROUTE_MARKERS.find(a=>k.startsWith(a)),i=k.match(j.PARAMETER_PATTERN);if(a&&i&&i[2]){let{key:b,optional:c,repeat:g}=(0,j.parseMatchedParameter)(i[2]);d[b]={pos:e++,repeat:g,optional:c},f.push(`/${(0,h.escapeStringRegexp)(a)}([^/]+?)`)}else if(i&&i[2]){let{key:a,repeat:b,optional:g}=(0,j.parseMatchedParameter)(i[2]);d[a]={pos:e++,repeat:b,optional:g},c&&i[1]&&f.push(`/${(0,h.escapeStringRegexp)(i[1])}`);let k=b?g?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";c&&i[1]&&(k=k.substring(1)),f.push(k)}else f.push(`/${(0,h.escapeStringRegexp)(k)}`);b&&i&&i[3]&&f.push((0,h.escapeStringRegexp)(i[3]))}return{parameterizedRoute:f.join(""),groups:d}}function l(a,{includeSuffix:b=!1,includePrefix:c=!1,excludeOptionalTrailingSlash:d=!1}={}){let{parameterizedRoute:e,groups:f}=k(a,b,c),g=e;return d||(g+="(?:/)?"),{re:RegExp(`^${g}$`),groups:f}}function m({interceptionMarker:a,getSafeRouteKey:b,segment:c,routeKeys:d,keyPrefix:e,backreferenceDuplicateKeys:f}){let g,{key:i,optional:k,repeat:l}=(0,j.parseMatchedParameter)(c),n=i.replace(/\W/g,"");e&&(n=`${e}${n}`);let o=!1;(0===n.length||n.length>30)&&(o=!0),isNaN(parseInt(n.slice(0,1)))||(o=!0),o&&(n=b());let p=n in d;e?d[n]=`${e}${i}`:d[n]=i;let q=a?(0,h.escapeStringRegexp)(a):"";return g=p&&f?`\\k<${n}>`:l?`(?<${n}>.+?)`:`(?<${n}>[^/]+?)`,{key:i,pattern:k?`(?:/${q}${g})?`:`/${q}${g}`,cleanedKey:n,optional:k,repeat:l}}function n(a,b,c,d,e,k={names:{},intercepted:{}}){let l,o=(l=0,()=>{let a="",b=++l;for(;b>0;)a+=String.fromCharCode(97+(b-1)%26),b=Math.floor((b-1)/26);return a}),p={},q=[],r=[];for(let l of(k=structuredClone(k),(0,i.removeTrailingSlash)(a).slice(1).split("/"))){let a,i=g.INTERCEPTION_ROUTE_MARKERS.some(a=>l.startsWith(a)),n=l.match(j.PARAMETER_PATTERN),s=i?n?.[1]:void 0;if(s&&n?.[2]?(a=b?f.NEXT_INTERCEPTION_MARKER_PREFIX:void 0,k.intercepted[n[2]]=s):a=n?.[2]&&k.intercepted[n[2]]?b?f.NEXT_INTERCEPTION_MARKER_PREFIX:void 0:b?f.NEXT_QUERY_PARAM_PREFIX:void 0,s&&n&&n[2]){let{key:b,pattern:c,cleanedKey:d,repeat:f,optional:g}=m({getSafeRouteKey:o,interceptionMarker:s,segment:n[2],routeKeys:p,keyPrefix:a,backreferenceDuplicateKeys:e});q.push(c),r.push(`/${n[1]}:${k.names[b]??d}${f?g?"*":"+":""}`),k.names[b]??=d}else if(n&&n[2]){d&&n[1]&&(q.push(`/${(0,h.escapeStringRegexp)(n[1])}`),r.push(`/${n[1]}`));let{key:b,pattern:c,cleanedKey:f,repeat:g,optional:i}=m({getSafeRouteKey:o,segment:n[2],routeKeys:p,keyPrefix:a,backreferenceDuplicateKeys:e}),j=c;d&&n[1]&&(j=j.substring(1)),q.push(j),r.push(`/:${k.names[b]??f}${g?i?"*":"+":""}`),k.names[b]??=f}else q.push(`/${(0,h.escapeStringRegexp)(l)}`),r.push(`/${l}`);c&&n&&n[3]&&(q.push((0,h.escapeStringRegexp)(n[3])),r.push(n[3]))}return{namedParameterizedRoute:q.join(""),routeKeys:p,pathToRegexpPattern:r.join(""),reference:k}}function o(a,b){let c=n(a,b.prefixRouteKeys,b.includeSuffix??!1,b.includePrefix??!1,b.backreferenceDuplicateKeys??!1,b.reference),d=c.namedParameterizedRoute;return b.excludeOptionalTrailingSlash||(d+="(?:/)?"),{...l(a,b),namedRegex:`^${d}$`,routeKeys:c.routeKeys,pathToRegexpPattern:c.pathToRegexpPattern,reference:c.reference}}function p(a,b){let{parameterizedRoute:c}=k(a,!1,!1),{catchAll:d=!0}=b;if("/"===c)return{namedRegex:`^/${d?".*":""}$`};let{namedParameterizedRoute:e}=n(a,!1,!1,!1,!1,void 0);return{namedRegex:`^${e}${d?"(?:(/.*)?)":""}$`}}},41659:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getPathMatch",{enumerable:!0,get:function(){return e}});let d=c(27196);function e(a,b){let c=[],e=(0,d.pathToRegexp)(a,c,{delimiter:"/",sensitive:"boolean"==typeof b?.sensitive&&b.sensitive,strict:b?.strict}),f=(0,d.regexpToFunction)(b?.regexModifier?new RegExp(b.regexModifier(e.source),e.flags):e,c);return(a,d)=>{if("string"!=typeof a)return!1;let e=f(a);if(!e)return!1;if(b?.removeUnnamedParams)for(let a of c)"number"==typeof a.name&&delete e.params[a.name];return{...d,...e.params}}}},55091:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return f}});let d=c(5735),e=c(22675);function f(){return(0,d.jsx)(e.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},68097:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parseUrl",{enumerable:!0,get:function(){return f}});let d=c(9787),e=c(49286);function f(a){if(a.startsWith("/"))return(0,e.parseRelativeUrl)(a);let b=new URL(a),c=b.username,f=b.password,g=c?f?`${c}:${f}`:c:null,h=b.pathname,i=b.search;return{auth:g,hash:b.hash,hostname:b.hostname,href:b.href,pathname:h,port:b.port,protocol:b.protocol,query:(0,d.searchParamsToUrlQuery)(b.searchParams),search:i,origin:b.origin,slashes:"//"===b.href.slice(b.protocol.length,b.protocol.length+2)}}},71544:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getRouteMatcher",{enumerable:!0,get:function(){return f}});let d=c(16433),e=c(89151);function f({re:a,groups:b}){return(0,e.safeRouteMatcher)(c=>{let e=a.exec(c);if(!e)return!1;let f=a=>{try{return decodeURIComponent(a)}catch{throw Object.defineProperty(new d.DecodeError("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},g={};for(let[a,c]of Object.entries(b)){let b=e[c.pos];void 0!==b&&(c.repeat?g[a]=b.split("/").map(a=>f(a)):g[a]=f(b))}return g})}},85420:(a,b)=>{"use strict";function c(a){return a.endsWith("/route")}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isAppRouteRoute",{enumerable:!0,get:function(){return c}})},88868:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={fillMetadataSegment:function(){return p},normalizeMetadataPageToRoute:function(){return r},normalizeMetadataRoute:function(){return q}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=c(93302),h=(d=c(16225))&&d.__esModule?d:{default:d},i=c(5439),j=c(31797),k=c(38462),l=c(66796),m=c(23315),n=c(64929);function o(a){let b=h.default.dirname(a);if(a.endsWith("/sitemap")||a.endsWith("/sitemap.xml"))return"";let c="";return b.split("/").some(a=>(0,n.isGroupSegment)(a)||(0,n.isParallelRouteSegment)(a))&&(c=(0,k.djb2Hash)(b).toString(36).slice(0,6)),c}function p(a,b,c,d){let e=(0,l.normalizeAppPath)(a),f=(0,j.getNamedRouteRegex)(e,{prefixRouteKeys:!1}),g=d?Object.keys(f.groups).reduce((a,b)=>{let{repeat:c}=f.groups[b];return a[b]=c?["-"]:"-",a},{}):b,k=(0,i.interpolateDynamicPath)(e,g,f),{name:n,ext:p}=h.default.parse(c),q=o(h.default.posix.join(a,n)),r=q?`-${q}`:"";return(0,m.normalizePathSep)(h.default.join(k,`${n}${r}${p}`))}function q(a){if(!(0,g.isMetadataPage)(a))return a;let b=a,c="";if("/robots"===a?b+=".txt":"/manifest"===a?b+=".webmanifest":c=o(a),!b.endsWith("/route")){let{dir:a,name:d,ext:e}=h.default.parse(b);b=h.default.posix.join(a,`${d}${c?`-${c}`:""}${e}`,"route")}return b}function r(a,b){let c=a.endsWith("/route"),d=c?a.slice(0,-6):a,e=d.endsWith("/sitemap")?".xml":"";return(b?`${d}/[__metadata_id__]`:`${d}${e}`)+(c?"/route":"")}},89151:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={safeCompile:function(){return i},safePathToRegexp:function(){return h},safeRegexpToFunction:function(){return j},safeRouteMatcher:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(27196),g=c(10684);function h(a,b,c){if("string"!=typeof a)return(0,f.pathToRegexp)(a,b,c);let d=(0,g.hasAdjacentParameterIssues)(a),e=d?(0,g.normalizeAdjacentParameters)(a):a;try{return(0,f.pathToRegexp)(e,b,c)}catch(e){if(!d)try{let d=(0,g.normalizeAdjacentParameters)(a);return(0,f.pathToRegexp)(d,b,c)}catch(a){}throw e}}function i(a,b){let c=(0,g.hasAdjacentParameterIssues)(a),d=c?(0,g.normalizeAdjacentParameters)(a):a;try{let a=(0,f.compile)(d,b);if(c)return b=>(0,g.stripNormalizedSeparators)(a(b));return a}catch(d){if(!c)try{let c=(0,g.normalizeAdjacentParameters)(a),d=(0,f.compile)(c,b);return a=>(0,g.stripNormalizedSeparators)(d(a))}catch(a){}throw d}}function j(a,b){let c=(0,f.regexpToFunction)(a,b||[]);return a=>{let b=c(a);return!!b&&{...b,params:(0,g.stripParameterSeparators)(b.params)}}}function k(a){return b=>{let c=a(b);return!!c&&(0,g.stripParameterSeparators)(c)}}},89964:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={compileNonPath:function(){return m},matchHas:function(){return l},parseDestination:function(){return n},prepareDestination:function(){return o}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(31383),g=c(68097),h=c(32107),i=c(85782),j=c(89151);function k(a){return a.replace(/__ESC_COLON_/gi,":")}function l(a,b,c=[],d=[]){let e={},f=c=>{let d,f=c.key;switch(c.type){case"header":f=f.toLowerCase(),d=a.headers[f];break;case"cookie":d="cookies"in a?a.cookies[c.key]:(0,i.getCookieParser)(a.headers)()[c.key];break;case"query":d=b[f];break;case"host":{let{host:b}=a?.headers||{};d=b?.split(":",1)[0].toLowerCase()}}if(!c.value&&d)return e[function(a){let b="";for(let c=0;c<a.length;c++){let d=a.charCodeAt(c);(d>64&&d<91||d>96&&d<123)&&(b+=a[c])}return b}(f)]=d,!0;if(d){let a=RegExp(`^${c.value}$`),b=Array.isArray(d)?d.slice(-1)[0].match(a):d.match(a);if(b)return Array.isArray(b)&&(b.groups?Object.keys(b.groups).forEach(a=>{e[a]=b.groups[a]}):"host"===c.type&&b[0]&&(e.host=b[0])),!0}return!1};return!(!c.every(a=>f(a))||d.some(a=>f(a)))&&e}function m(a,b){if(!a.includes(":"))return a;for(let c of Object.keys(b))a.includes(`:${c}`)&&(a=a.replace(RegExp(`:${c}\\*`,"g"),`:${c}--ESCAPED_PARAM_ASTERISKS`).replace(RegExp(`:${c}\\?`,"g"),`:${c}--ESCAPED_PARAM_QUESTION`).replace(RegExp(`:${c}\\+`,"g"),`:${c}--ESCAPED_PARAM_PLUS`).replace(RegExp(`:${c}(?!\\w)`,"g"),`--ESCAPED_PARAM_COLON${c}`));return a=a.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g,"\\$1").replace(/--ESCAPED_PARAM_PLUS/g,"+").replace(/--ESCAPED_PARAM_COLON/g,":").replace(/--ESCAPED_PARAM_QUESTION/g,"?").replace(/--ESCAPED_PARAM_ASTERISKS/g,"*"),(0,j.safeCompile)(`/${a}`,{validate:!1})(b).slice(1)}function n(a){let b=a.destination;for(let c of Object.keys({...a.params,...a.query}))c&&(b=b.replace(RegExp(`:${(0,f.escapeStringRegexp)(c)}`,"g"),`__ESC_COLON_${c}`));let c=(0,g.parseUrl)(b),d=c.pathname;d&&(d=k(d));let e=c.href;e&&(e=k(e));let h=c.hostname;h&&(h=k(h));let i=c.hash;i&&(i=k(i));let j=c.search;j&&(j=k(j));let l=c.origin;return l&&(l=k(l)),{...c,pathname:d,hostname:h,href:e,hash:i,search:j,origin:l}}function o(a){let b,c,d=n(a),{hostname:e,query:f,search:g}=d,i=d.pathname;d.hash&&(i=`${i}${d.hash}`);let l=[],o=[];for(let a of((0,j.safePathToRegexp)(i,o),o))l.push(a.name);if(e){let a=[];for(let b of((0,j.safePathToRegexp)(e,a),a))l.push(b.name)}let p=(0,j.safeCompile)(i,{validate:!1});for(let[c,d]of(e&&(b=(0,j.safeCompile)(e,{validate:!1})),Object.entries(f)))Array.isArray(d)?f[c]=d.map(b=>m(k(b),a.params)):"string"==typeof d&&(f[c]=m(k(d),a.params));let q=Object.keys(a.params).filter(a=>"nextInternalLocale"!==a);if(a.appendParamsToQuery&&!q.some(a=>l.includes(a)))for(let b of q)b in f||(f[b]=a.params[b]);if((0,h.isInterceptionRouteAppPath)(i))for(let b of i.split("/")){let c=h.INTERCEPTION_ROUTE_MARKERS.find(a=>b.startsWith(a));if(c){"(..)(..)"===c?(a.params["0"]="(..)",a.params["1"]="(..)"):a.params["0"]=c;break}}try{let[e,f]=(c=p(a.params)).split("#",2);b&&(d.hostname=b(a.params)),d.pathname=e,d.hash=`${f?"#":""}${f||""}`,d.search=g?m(g,a.params):""}catch(a){if(a.message.match(/Expected .*? to not repeat, but got an array/))throw Object.defineProperty(Error("To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match"),"__NEXT_ERROR_CODE",{value:"E329",enumerable:!1,configurable:!0});throw a}return d.query={...a.query,...d.query},{newUrl:c,destQuery:f,parsedDestination:d}}},93302:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={DEFAULT_METADATA_ROUTE_EXTENSIONS:function(){return j},STATIC_METADATA_IMAGES:function(){return i},getExtensionRegexString:function(){return k},isMetadataPage:function(){return u},isMetadataRoute:function(){return v},isMetadataRouteFile:function(){return s},isStaticMetadataFile:function(){return l},isStaticMetadataRoute:function(){return t}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(23315),g=c(66796),h=c(85420),i={icon:{filename:"icon",extensions:["ico","jpg","jpeg","png","svg"]},apple:{filename:"apple-icon",extensions:["jpg","jpeg","png"]},favicon:{filename:"favicon",extensions:["ico"]},openGraph:{filename:"opengraph-image",extensions:["jpg","jpeg","png","gif"]},twitter:{filename:"twitter-image",extensions:["jpg","jpeg","png","gif"]}},j=["js","jsx","ts","tsx"],k=(a,b)=>b&&0!==b.length?`(?:\\.(${a.join("|")})|(\\.(${b.join("|")})))`:`(\\.(?:${a.join("|")}))`;function l(a){return s(a,[],!0)}let m=/^[\\/]favicon\.ico$/,n=/^[\\/]robots\.txt$/,o=/^[\\/]manifest\.json$/,p=/^[\\/]manifest\.webmanifest$/,q=/[\\/]sitemap\.xml$/,r=new Map;function s(a,b,c){if(!a||a.length<2)return!1;let d=(0,f.normalizePathSep)(a),e=!!(m.test(d)||n.test(d)||o.test(d)||p.test(d)||q.test(d))||(!!d.includes("robots")||!!d.includes("manifest")||!!d.includes("sitemap")||!!d.includes("icon")||!!d.includes("apple-icon")||!!d.includes("opengraph-image")||!!d.includes("twitter-image")||!!d.includes("favicon"))&&null;if(null!==e)return e;let g=function(a,b){let c=`${a.join(",")}|${b}`,d=r.get(c);if(d)return d;let e=b?"$":"?$",f="\\d?"+(b?"":"(-\\w{6})?"),g=a.length>0?[...a,"txt"]:["txt"],h=a.length>0?[...a,"webmanifest","json"]:["webmanifest","json"],j=[RegExp(`^[\\\\/]robots${k(g,null)}${e}`),RegExp(`^[\\\\/]manifest${k(h,null)}${e}`),RegExp(`[\\\\/]sitemap${k(["xml"],a)}${e}`),RegExp(`[\\\\/]icon${f}${k(i.icon.extensions,a)}${e}`),RegExp(`[\\\\/]apple-icon${f}${k(i.apple.extensions,a)}${e}`),RegExp(`[\\\\/]opengraph-image${f}${k(i.openGraph.extensions,a)}${e}`),RegExp(`[\\\\/]twitter-image${f}${k(i.twitter.extensions,a)}${e}`)];return r.set(c,j),j}(b,c);for(let a=0;a<g.length;a++)if(g[a].test(d))return!0;return!1}function t(a){let b=a.replace(/\/route$/,"");return(0,h.isAppRouteRoute)(a)&&s(b,[],!0)&&"/robots.txt"!==b&&"/manifest.webmanifest"!==b&&!b.endsWith("/sitemap.xml")}function u(a){return!(0,h.isAppRouteRoute)(a)&&s(a,[],!1)}function v(a){let b=(0,g.normalizeAppPath)(a).replace(/^\/?app\//,"").replace("/[__metadata_id__]","").replace(/\/route$/,"");return"/"!==b[0]&&(b="/"+b),(0,h.isAppRouteRoute)(a)&&s(b,[],!1)}},93646:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={PARAMETER_PATTERN:function(){return l},getDynamicParam:function(){return k},interpolateParallelRouteParams:function(){return j},parseMatchedParameter:function(){return n},parseParameter:function(){return m}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(72339),g=c(92122),h=c(4772),i=c(86070);function j(a,b,c,d){let e=structuredClone(b),j=[{tree:a,depth:0}],k=(0,h.parseAppRoute)(c,!0);for(;j.length>0;){let{tree:a,depth:b}=j.pop(),{segment:c,parallelRoutes:l}=(0,g.parseLoaderTree)(a),m=(0,h.parseAppRouteSegment)(c);if(m?.type==="dynamic"&&!e.hasOwnProperty(m.param.paramName)&&!d?.has(m.param.paramName)){let{paramName:a,paramType:c}=m.param,d=(0,i.resolveParamValue)(a,c,b,k,e);if(void 0!==d)e[a]=d;else if("optional-catchall"!==c)throw Object.defineProperty(new f.InvariantError(`Could not resolve param value for segment: ${a}`),"__NEXT_ERROR_CODE",{value:"E932",enumerable:!1,configurable:!0})}let n=b;for(let a of(m&&"route-group"!==m.type&&"parallel-route"!==m.type&&n++,Object.values(l)))j.push({tree:a,depth:n})}return e}function k(a,b,c,d,e){let g=function(a,b,c){let d=a[b];if(c?.has(b)){let[a]=c.get(b);d=a}else Array.isArray(d)?d=d.map(a=>encodeURIComponent(a)):"string"==typeof d&&(d=encodeURIComponent(d));return d}(a,b,d);if(!g||0===g.length){if("oc"===c)return{param:b,value:null,type:c,treeSegment:[b,"",c,e]};throw Object.defineProperty(new f.InvariantError(`Missing value for segment key: "${b}" with dynamic param type: ${c}`),"__NEXT_ERROR_CODE",{value:"E864",enumerable:!1,configurable:!0})}let h=Array.isArray(g)?g.join("/"):g;return{param:b,value:g,treeSegment:[b,h,c,e],type:c}}let l=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function m(a){let b=a.match(l);return b?n(b[2]):n(a)}function n(a){let b=a.startsWith("[")&&a.endsWith("]");b&&(a=a.slice(1,-1));let c=a.startsWith("...");return c&&(a=a.slice(3)),{key:a,repeat:c,optional:b}}},95491:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={formatUrl:function(){return h},formatWithValidation:function(){return j},urlObjectKeys:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(7904)._(c(9787)),g=/https?|ftp|gopher|file/;function h(a){let{auth:b,hostname:c}=a,d=a.protocol||"",e=a.pathname||"",h=a.hash||"",i=a.query||"",j=!1;b=b?encodeURIComponent(b).replace(/%3A/i,":")+"@":"",a.host?j=b+a.host:c&&(j=b+(~c.indexOf(":")?`[${c}]`:c),a.port&&(j+=":"+a.port)),i&&"object"==typeof i&&(i=String(f.urlQueryToSearchParams(i)));let k=a.search||i&&`?${i}`||"";return d&&!d.endsWith(":")&&(d+=":"),a.slashes||(!d||g.test(d))&&!1!==j?(j="//"+(j||""),e&&"/"!==e[0]&&(e="/"+e)):j||(j=""),h&&"#"!==h[0]&&(h="#"+h),k&&"?"!==k[0]&&(k="?"+k),e=e.replace(/[?#]/g,encodeURIComponent),k=k.replace("#","%23"),`${d}${j}${e}${k}${h}`}let i=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function j(a){return h(a)}}};