agent-log-viewer 0.9.3 → 0.11.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 (167) hide show
  1. package/README.md +20 -6
  2. package/dist/standalone/.next/BUILD_ID +1 -1
  3. package/dist/standalone/.next/app-path-routes-manifest.json +11 -10
  4. package/dist/standalone/.next/build-manifest.json +2 -2
  5. package/dist/standalone/.next/prerender-manifest.json +3 -3
  6. package/dist/standalone/.next/routes-manifest.json +6 -0
  7. package/dist/standalone/.next/server/app/_global-error/page.js +2 -2
  8. package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/dist/standalone/.next/server/app/_global-error.html +1 -1
  10. package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
  11. package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  13. package/dist/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  14. package/dist/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/dist/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/dist/standalone/.next/server/app/_not-found/page.js +2 -2
  18. package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  20. package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
  21. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  22. package/dist/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  23. package/dist/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  24. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  25. package/dist/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  26. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  27. package/dist/standalone/.next/server/app/api/access/route.js +1 -1
  28. package/dist/standalone/.next/server/app/api/answer/route.js +1 -1
  29. package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
  30. package/dist/standalone/.next/server/app/api/files/route.js +1 -1
  31. package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  32. package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
  33. package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
  34. package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
  35. package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
  36. package/dist/standalone/.next/server/app/api/image/route.js +1 -1
  37. package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
  38. package/dist/standalone/.next/server/app/api/limits/route.js +2 -2
  39. package/dist/standalone/.next/server/app/api/log/route.js +1 -1
  40. package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
  41. package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
  42. package/dist/standalone/.next/server/app/api/logs/stream/route.js +2 -2
  43. package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
  44. package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
  45. package/dist/standalone/.next/server/app/api/push/route.js +1 -1
  46. package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
  47. package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
  48. package/dist/standalone/.next/server/app/api/session/route.js +1 -0
  49. package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -0
  50. package/dist/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -0
  51. package/dist/standalone/.next/server/app/api/spawn/route.js +1 -1
  52. package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
  53. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +2 -2
  54. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +2 -2
  55. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +1 -1
  56. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
  57. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +1 -1
  58. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
  59. package/dist/standalone/.next/server/app/api/tasks/route.js +2 -2
  60. package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
  61. package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
  62. package/dist/standalone/.next/server/app/api/tmux/route.js +1 -1
  63. package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
  64. package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
  65. package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
  66. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js +2 -2
  67. package/dist/standalone/.next/server/app/api/transcribe/route.js +2 -2
  68. package/dist/standalone/.next/server/app/api/transcribe/token/route.js +2 -2
  69. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
  70. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
  71. package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
  72. package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  73. package/dist/standalone/.next/server/app/favicon.ico/route.js +1 -1
  74. package/dist/standalone/.next/server/app/index.html +1 -1
  75. package/dist/standalone/.next/server/app/index.rsc +3 -3
  76. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  77. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  78. package/dist/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  79. package/dist/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  80. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  81. package/dist/standalone/.next/server/app/page.js +3 -3
  82. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  83. package/dist/standalone/.next/server/app-paths-manifest.json +11 -10
  84. package/dist/standalone/.next/server/chunks/747.js +4 -0
  85. package/dist/standalone/.next/server/functions-config-manifest.json +1 -0
  86. package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
  87. package/dist/standalone/.next/server/middleware.js +3 -3
  88. package/dist/standalone/.next/server/pages/404.html +1 -1
  89. package/dist/standalone/.next/server/pages/500.html +1 -1
  90. package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
  91. package/dist/standalone/.next/static/chunks/app/_global-error/page-8e401bb1ec1877d8.js +1 -0
  92. package/dist/standalone/.next/static/chunks/app/api/access/route-8e401bb1ec1877d8.js +1 -0
  93. package/dist/standalone/.next/static/chunks/app/api/answer/route-8e401bb1ec1877d8.js +1 -0
  94. package/dist/standalone/.next/static/chunks/app/api/files/route-8e401bb1ec1877d8.js +1 -0
  95. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-8e401bb1ec1877d8.js +1 -0
  96. package/dist/standalone/.next/static/chunks/app/api/flows/route-8e401bb1ec1877d8.js +1 -0
  97. package/dist/standalone/.next/static/chunks/app/api/image/route-8e401bb1ec1877d8.js +1 -0
  98. package/dist/standalone/.next/static/chunks/app/api/inbox/route-8e401bb1ec1877d8.js +1 -0
  99. package/dist/standalone/.next/static/chunks/app/api/limits/route-8e401bb1ec1877d8.js +1 -0
  100. package/dist/standalone/.next/static/chunks/app/api/log/route-8e401bb1ec1877d8.js +1 -0
  101. package/dist/standalone/.next/static/chunks/app/api/logs/route-8e401bb1ec1877d8.js +1 -0
  102. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-8e401bb1ec1877d8.js +1 -0
  103. package/dist/standalone/.next/static/chunks/app/api/proc/route-8e401bb1ec1877d8.js +1 -0
  104. package/dist/standalone/.next/static/chunks/app/api/push/route-8e401bb1ec1877d8.js +1 -0
  105. package/dist/standalone/.next/static/chunks/app/api/resources/route-8e401bb1ec1877d8.js +1 -0
  106. package/dist/standalone/.next/static/chunks/app/api/session/route-8e401bb1ec1877d8.js +1 -0
  107. package/dist/standalone/.next/static/chunks/app/api/spawn/route-8e401bb1ec1877d8.js +1 -0
  108. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-8e401bb1ec1877d8.js +1 -0
  109. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-8e401bb1ec1877d8.js +1 -0
  110. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-8e401bb1ec1877d8.js +1 -0
  111. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-8e401bb1ec1877d8.js +1 -0
  112. package/dist/standalone/.next/static/chunks/app/api/tasks/route-8e401bb1ec1877d8.js +1 -0
  113. package/dist/standalone/.next/static/chunks/app/api/timeline/route-8e401bb1ec1877d8.js +1 -0
  114. package/dist/standalone/.next/static/chunks/app/api/tmux/route-8e401bb1ec1877d8.js +1 -0
  115. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-8e401bb1ec1877d8.js +1 -0
  116. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-8e401bb1ec1877d8.js +1 -0
  117. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-8e401bb1ec1877d8.js +1 -0
  118. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-8e401bb1ec1877d8.js +1 -0
  119. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-8e401bb1ec1877d8.js +1 -0
  120. package/dist/standalone/.next/static/chunks/app/api/workflows/route-8e401bb1ec1877d8.js +1 -0
  121. package/dist/standalone/.next/static/chunks/app/page-b426c6e1a9f3e519.js +2 -0
  122. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-8e401bb1ec1877d8.js +1 -0
  123. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-8e401bb1ec1877d8.js +1 -0
  124. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-8e401bb1ec1877d8.js +1 -0
  125. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-8e401bb1ec1877d8.js +1 -0
  126. package/dist/standalone/.next/static/css/295fa360d6757865.css +1 -0
  127. package/dist/standalone/.next/static/wmbQhT2Jcsq6xxtW3NUD-/_buildManifest.js +1 -0
  128. package/dist/standalone/package.json +1 -1
  129. package/package.json +1 -1
  130. package/dist/standalone/.next/server/chunks/51.js +0 -4
  131. package/dist/standalone/.next/static/Qra81ER5ZH5dx8Kq_BOnd/_buildManifest.js +0 -1
  132. package/dist/standalone/.next/static/chunks/app/_global-error/page-f4ae20d8cfd9a1f1.js +0 -1
  133. package/dist/standalone/.next/static/chunks/app/api/access/route-f4ae20d8cfd9a1f1.js +0 -1
  134. package/dist/standalone/.next/static/chunks/app/api/answer/route-f4ae20d8cfd9a1f1.js +0 -1
  135. package/dist/standalone/.next/static/chunks/app/api/files/route-f4ae20d8cfd9a1f1.js +0 -1
  136. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-f4ae20d8cfd9a1f1.js +0 -1
  137. package/dist/standalone/.next/static/chunks/app/api/flows/route-f4ae20d8cfd9a1f1.js +0 -1
  138. package/dist/standalone/.next/static/chunks/app/api/image/route-f4ae20d8cfd9a1f1.js +0 -1
  139. package/dist/standalone/.next/static/chunks/app/api/inbox/route-f4ae20d8cfd9a1f1.js +0 -1
  140. package/dist/standalone/.next/static/chunks/app/api/limits/route-f4ae20d8cfd9a1f1.js +0 -1
  141. package/dist/standalone/.next/static/chunks/app/api/log/route-f4ae20d8cfd9a1f1.js +0 -1
  142. package/dist/standalone/.next/static/chunks/app/api/logs/route-f4ae20d8cfd9a1f1.js +0 -1
  143. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-f4ae20d8cfd9a1f1.js +0 -1
  144. package/dist/standalone/.next/static/chunks/app/api/proc/route-f4ae20d8cfd9a1f1.js +0 -1
  145. package/dist/standalone/.next/static/chunks/app/api/push/route-f4ae20d8cfd9a1f1.js +0 -1
  146. package/dist/standalone/.next/static/chunks/app/api/resources/route-f4ae20d8cfd9a1f1.js +0 -1
  147. package/dist/standalone/.next/static/chunks/app/api/spawn/route-f4ae20d8cfd9a1f1.js +0 -1
  148. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-f4ae20d8cfd9a1f1.js +0 -1
  149. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-f4ae20d8cfd9a1f1.js +0 -1
  150. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-f4ae20d8cfd9a1f1.js +0 -1
  151. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-f4ae20d8cfd9a1f1.js +0 -1
  152. package/dist/standalone/.next/static/chunks/app/api/tasks/route-f4ae20d8cfd9a1f1.js +0 -1
  153. package/dist/standalone/.next/static/chunks/app/api/timeline/route-f4ae20d8cfd9a1f1.js +0 -1
  154. package/dist/standalone/.next/static/chunks/app/api/tmux/route-f4ae20d8cfd9a1f1.js +0 -1
  155. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-f4ae20d8cfd9a1f1.js +0 -1
  156. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-f4ae20d8cfd9a1f1.js +0 -1
  157. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-f4ae20d8cfd9a1f1.js +0 -1
  158. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-f4ae20d8cfd9a1f1.js +0 -1
  159. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-f4ae20d8cfd9a1f1.js +0 -1
  160. package/dist/standalone/.next/static/chunks/app/api/workflows/route-f4ae20d8cfd9a1f1.js +0 -1
  161. package/dist/standalone/.next/static/chunks/app/page-3fd683c3ee44ed17.js +0 -2
  162. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-f4ae20d8cfd9a1f1.js +0 -1
  163. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-f4ae20d8cfd9a1f1.js +0 -1
  164. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-f4ae20d8cfd9a1f1.js +0 -1
  165. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-f4ae20d8cfd9a1f1.js +0 -1
  166. package/dist/standalone/.next/static/css/39478d41510ff6d5.css +0 -1
  167. /package/dist/standalone/.next/static/{Qra81ER5ZH5dx8Kq_BOnd → wmbQhT2Jcsq6xxtW3NUD-}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"3992":{"*":{"id":"78828","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/globals.css":{"id":1743,"name":"*","chunks":["177","static/chunks/app/layout-22e93960d4e3259a.js"],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/components/Viewer.tsx":{"id":3992,"name":"*","chunks":["647","static/chunks/647-0b14204033b8658c.js","974","static/chunks/app/page-3fd683c3ee44ed17.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/":[],"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/layout":[{"inlined":false,"path":"static/css/39478d41510ff6d5.css"}],"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/page":[]},"rscModuleMapping":{"484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"1743":{"*":{"id":"61135","name":"*","chunks":[],"async":false}},"3992":{"*":{"id":"27074","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"3992":{"*":{"id":"78828","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/globals.css":{"id":1743,"name":"*","chunks":["177","static/chunks/app/layout-22e93960d4e3259a.js"],"async":false},"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/components/Viewer.tsx":{"id":3992,"name":"*","chunks":["647","static/chunks/647-0b14204033b8658c.js","974","static/chunks/app/page-b426c6e1a9f3e519.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/":[],"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/layout":[{"inlined":false,"path":"static/css/295fa360d6757865.css"}],"/home/runner/work/live-log-viewer-next/live-log-viewer-next/src/app/page":[]},"rscModuleMapping":{"484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"1743":{"*":{"id":"61135","name":"*","chunks":[],"async":false}},"3992":{"*":{"id":"27074","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -4,31 +4,32 @@
4
4
  "/favicon.ico/route": "app/favicon.ico/route.js",
5
5
  "/api/access/route": "app/api/access/route.js",
6
6
  "/api/files/route": "app/api/files/route.js",
7
- "/api/answer/route": "app/api/answer/route.js",
8
7
  "/api/flows/[id]/route": "app/api/flows/[id]/route.js",
9
- "/api/inbox/route": "app/api/inbox/route.js",
10
- "/api/image/route": "app/api/image/route.js",
8
+ "/api/answer/route": "app/api/answer/route.js",
11
9
  "/api/flows/route": "app/api/flows/route.js",
12
- "/api/limits/route": "app/api/limits/route.js",
10
+ "/api/image/route": "app/api/image/route.js",
11
+ "/api/inbox/route": "app/api/inbox/route.js",
13
12
  "/api/log/route": "app/api/log/route.js",
14
- "/api/logs/stream/route": "app/api/logs/stream/route.js",
13
+ "/api/limits/route": "app/api/limits/route.js",
15
14
  "/api/logs/route": "app/api/logs/route.js",
15
+ "/api/logs/stream/route": "app/api/logs/stream/route.js",
16
16
  "/api/push/route": "app/api/push/route.js",
17
17
  "/api/resources/route": "app/api/resources/route.js",
18
+ "/api/session/route": "app/api/session/route.js",
18
19
  "/api/proc/route": "app/api/proc/route.js",
19
20
  "/api/tasks/[id]/assignment/route": "app/api/tasks/[id]/assignment/route.js",
20
- "/api/spawn/route": "app/api/spawn/route.js",
21
21
  "/api/tasks/[id]/route": "app/api/tasks/[id]/route.js",
22
22
  "/api/tasks/[id]/send/route": "app/api/tasks/[id]/send/route.js",
23
+ "/api/tasks/route": "app/api/tasks/route.js",
23
24
  "/api/tasks/[id]/spawn/route": "app/api/tasks/[id]/spawn/route.js",
24
25
  "/api/timeline/route": "app/api/timeline/route.js",
25
- "/api/tasks/route": "app/api/tasks/route.js",
26
- "/api/tmux/route": "app/api/tmux/route.js",
27
26
  "/api/tmux/targets/route": "app/api/tmux/targets/route.js",
27
+ "/api/tmux/route": "app/api/tmux/route.js",
28
28
  "/api/transcribe/backend/route": "app/api/transcribe/backend/route.js",
29
- "/api/transcribe/route": "app/api/transcribe/route.js",
30
29
  "/api/transcribe/token/route": "app/api/transcribe/token/route.js",
30
+ "/api/transcribe/route": "app/api/transcribe/route.js",
31
31
  "/api/workflows/[id]/route": "app/api/workflows/[id]/route.js",
32
32
  "/api/workflows/route": "app/api/workflows/route.js",
33
- "/page": "app/page.js"
33
+ "/page": "app/page.js",
34
+ "/api/spawn/route": "app/api/spawn/route.js"
34
35
  }
@@ -0,0 +1,4 @@
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(16462),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:()=>t,Hw:()=>w,iq:()=>z,w1:()=>H,xz:()=>x,zn:()=>F});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(14509),i=c(16089),j=c(64747),k=c(51906),l=c(25750),m=c(59680),n=c(98590);let o=new Set(["approved","done_comment","needs_decision","closed"]),p=/^REVIEW_READY:\s*(.*)$/m,q=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i,r=globalThis,s=new Set;function t(){return new Date().toISOString()}function u(a){if(!a)return 0;let b=Date.parse(a);return Number.isFinite(b)?b:0}function v(a){return a.map(a=>({...a,roles:{implementer:{...a.roles.implementer},reviewer:{...a.roles.reviewer}},rounds:a.rounds.map(a=>({...a}))}))}function w(a){return a.rounds.at(-1)??null}function x(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:t(),spawnStartedAt:null,relayStartedAt:null,reviewedAt:null,relayedAt:null,error:null}}function y(a,b){a.state="needs_decision",a.stateDetail=b}async function z(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,j.u1)(d.pid);if(a)return void await (0,j.oF)(a,c)}let e=(0,h.A9)(d.root,d.path);if(!e)throw Error("implementer session cannot be resumed");await (0,j.KY)(d.path,e,c)}function A(a,b,c){if(c.reviewerPath)return!1;let d=u(c.startedAt)/1e3-5,e=a.roles.reviewer.engine,f=b.filter(b=>b.engine===e&&b.path!==a.implementerPath&&b.mtime>=d&&(0,i.tX)(b.path)===a.cwd).sort((a,b)=>b.mtime-a.mtime)[0];return!!f&&(c.reviewerPath=f.path,!0)}function B(a,b,c){let d=b.findingsPath??(0,n.tR)(a.id,b.n);(0,n.Yj)(d,c.content),b.findingsPath=d,b.verdict=c.verdict,b.findingsCount=c.findingsCount,b.reviewedAt=t(),"manual"===a.mode?a.state="relay_pending":a.state="relaying",a.stateDetail=null}async function C(a,b){let c=(0,m.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,readOnly:!0}),e=await (0,j.Tk)(d,c);b.reviewerPane={paneId:e.paneId,windowName:d.windowName},d.transcript&&(b.reviewerPath=d.transcript),!b.reviewerPath&&e.panePid&&(b.error=null);return}let d=(0,k.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 D(a,b,c){if(!c.findingsPath)throw Error("round has no findings artifact");let d=e().readFileSync(c.findingsPath,"utf8");a.state="relaying",await z(a,b,(0,m.i0)(c,d)),c.relayedAt=t(),"APPROVE"===c.verdict?(a.state="approved",a.closedAt=t()):"COMMENT"===c.verdict?a.state="done_comment":a.roundLimit>0&&a.rounds.length>=a.roundLimit?y(a,"round limit reached"):(a.state="fixing",a.stateDetail=null)}async function E(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,l.if)(b);if(!c)return null;let d=Math.max(...a.rounds.map(a=>u(a.startedAt)),u(a.createdAt));return c.ts<=d?null:c.text.match(p)?.[1]?.trim()??null}(a,h);return null!==b&&(a.rounds.push(x(a,"marker",b)),a.state="manual"===a.mode?"spawn_pending":"spawning",a.stateDetail=null),JSON.stringify(a)!==f}let i=w(a);if(!i)return JSON.stringify(a)!==f;if("spawning"===a.state){let b=(0,k.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 y(a,"reviewer spawn was interrupted by a restart"),JSON.stringify(a)!==f;try{i.spawnStartedAt=t(),d(),await C(a,i)}catch(b){i.error=b instanceof Error?b.message:String(b),y(a,i.error)}return JSON.stringify(a)!==f}if("reviewing"===a.state){let d=(0,l.V_)(i);if(d)return B(a,i,d),JSON.stringify(a)!==f;if("headless"===a.reviewerMode){let d,h=(0,k.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])&&q.test(d)?d:e.split("\n").slice(0,40).join("\n").match(q)?.[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||A(a,b,i),h?.status==="running")return JSON.stringify(a)!==f;if(h){(0,k.T)(a.id,i.n,i.reviewerPid??null);let b=(0,l.Sn)(h.finalOutput);if(b)B(a,i,b);else{let b=i.findingsPath??(0,n.tR)(a.id,i.n);(0,n.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",y(a,i.error)}return JSON.stringify(a)!==f}let j=(0,l.J8)(i,c);return j?B(a,i,j):y(a,"reviewer process is missing after server restart"),JSON.stringify(a)!==f}if(A(a,b,i),i.reviewerPath){let b=c.get(i.reviewerPath),d=(0,l.J8)(i,c);d?B(a,i,d):b&&"live"!==b.activity&&"stalled"!==b.activity&&y(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&&!s.has(b))return y(a,"relay was interrupted; it may have been delivered twice"),JSON.stringify(a)!==f;try{i.relayStartedAt=t(),s.add(b),d(),await D(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 F(a){if(r.__llvFlowTick){let b=v((0,n.mL)());return G(a,b),{flows:b,changed:!1}}r.__llvFlowTick=!0;let b=v((0,n.mL)());try{let c=new Map(a.map(a=>[a.path,a])),d=!1;for(let e of b)!o.has(e.state)&&(await E(e,a,c,()=>(0,n.tu)(b))&&(d=!0),d&&(0,n.tu)(b));return G(a,b),d&&(0,n.tu)(b),{flows:b,changed:d}}finally{r.__llvFlowTick=!1}}function G(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 H(){return{flows:(0,n.mL)(),presets:(0,n.Vd)()}}},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}},16462:(a,b,c)=>{c.d(b,{C:()=>aq});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(70107),C=c(89333);function D(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}async function E(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")?[]:E(a,b,c,m().join(d,f.name),e);if(!f.isFile()||!C.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?D(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 F(a,b){try{return await b(()=>(0,A.access)(a)),!0}catch{return!1}}async function G(a=C.GH){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=(await Promise.all(Object.entries(a).map(async([b,c])=>await F(c,d)?E(b,a,c,c,d):[]))).flat();return e.sort((a,b)=>b.st.mtimeMs-a.st.mtimeMs),e.slice(0,C.aA).map(a=>{let b=(0,B.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}})}var H=c(23921);let I=(0,w.E)("effort"),J=new Set(["minimal","low","medium","high","xhigh","max"]);function K(a){let b=a?.trim().toLowerCase()??"";return J.has(b)?b:null}function L(a,b){if("codex-sessions"!==a.root||"turn_context"!==b.type)return null;let c=(0,x.xK)(b.payload),d=(0,x.r$)(c?.effort);if(d)return d;let e=(0,x.xK)((0,x.xK)(c?.collaboration_mode)?.settings);return(0,x.r$)(e?.reasoning_effort)}function M(a){if(null===a.pid)return null;let b=(0,H.$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}var N=c(26474);let O=(0,w.E)("needle");function P(a,b){let c,d=O.get(a);if(d&&d.hits||(d={hits:{},scanned:d?.scanned??{}},O.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 Q=(0,w.E)("sid-slug"),R=(0,w.E)("bgcmd"),S=(0,w.E)("chain-uuid");async function T(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()?T(e,b,c):d.isFile()&&b(e)?[e]:[]}))).flat()}async function U(a,b,c){let d=C.GH["claude-projects"],e=c??Q.get(a)??null;if(!e){let c=(await T(d,b=>m().basename(b)===a+".jsonl",b))[0];if(!c)return[null,[]];e=m().basename(m().dirname(c)),Q.set(a,e)}let f=m().join(d,e,a+".jsonl"),g=m().join(d,e,a,"subagents"),h=(await T(g,a=>m().basename(a).startsWith("agent-")&&a.endsWith(".jsonl"),b)).sort();return[k().existsSync(f)?f:null,h]}let V=(0,n.BQ)("codex-lineage.json"),W=(0,w.E)("codex-lineage"),X=!1,Y=!1;async function Z(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 U(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&&P(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=D(C.GH["claude-tasks"],b.path);if(!a)continue;let[c,e,f]=a,[g,h]=await U(e,d,c),i=function(a,b,c){if(R.has(a))return R.get(a)??null;let d="background with ID: "+a,e=null;for(let f of[...b,...c]){if(!f||!P(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 R.set(a,c),c}e??={command:"",description:"",source:f}}return e&&R.set(a,e),e}(f,(g?[g]:[]).concat(h),function(a,b){let c,d=m().join(C.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.title="Background task "+f,b.cmd="",b.cmdDesc=""}!function(a){!function(){if(X)return;X=!0;let a=(0,x.Vh)(V);if(a&&"object"==typeof a&&!Array.isArray(a)){for(let[b,c]of Object.entries(a))"string"==typeof c&&!W.has(b)&&k().existsSync(b)&&W.set(b,c);W.size!==Object.keys(a).length&&(Y=!0)}}();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&&null!==b.pid&&c.set(b.pid,b.path);for(let a of b){let b=null,f=new Set;for(let d=a.pid;null!==d&&!f.has(d)&&(f.add(d),!(f.size>15));d=(0,H.Ib)(d)){let a=c.get(d);if(a){b=a;break}}if(b){a.parent=b;var d=a.path,e=b;if(W.get(d)!==e){for(W.set(d,e);W.size>2e3;){let a=W.keys().next().value;if(void 0===a)break;W.delete(a)}Y=!0}}else{let b=W.get(a.path);b&&(a.parent=b)}}if(Y){Y=!1;try{k().mkdirSync(m().dirname(V),{recursive:!0}),k().writeFileSync(V,JSON.stringify(Object.fromEntries(W)))}catch{}}}(a);let f=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,N._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,N.N0)(d))));d=(0,H.Ib)(d));a&&a!==b.path&&(0,N.A6)(b.path,a)}a&&a!==b.path&&f.has(a)&&(b.parent=a,b.handoff=!0)}(0,N.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=S.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 S.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=>P(e,a.path))??(g?f.find(a=>"live"!==a.activity):void 0);h&&!c(d,h,a)&&(h.parent=d.path)}}}(a);let g=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=g(b):b.parent=null}let $=(0,w.E)("model");function _(a){return a?a.trim().replace(/^claude-/,"").replace(/-20\d{6}$/,""):null}function aa(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 ab=(0,w.E)("plan"),ac=(0,w.E)("goal");function ad(a){return"in_progress"===a||"completed"===a?a:"pending"}function ae(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 af(a){return"active"===a||"complete"===a||"blocked"===a?a:null}var ag=c(17341),ah=c(15159),ai=c(27359);let aj=new Map,ak={waiting:null,atComposer:!1};async function al(a){let b=Date.now();for(let[a,c]of aj)b-c.at>6e5&&aj.delete(a);if("running"!==a.proc||null===a.pid||a.pendingQuestion)return aj.delete(a.path),ak;if(Date.now()/1e3-a.mtime<15)return ak;let c=await (0,e.u1)(a.pid);if(null===c)return ak;let d=await (0,e.ZB)(c);if(!(0,ai.cZ)(d))return aj.delete(a.path),{waiting:null,atComposer:(0,ai.WM)(d)};let f=aj.get(a.path);return f&&f.screen===d?(aj.set(a.path,{...f,at:b}),b/1e3-f.since<15)?ak:{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,ai.fm)(d)},atComposer:!1}:(aj.set(a.path,{screen:d,at:b,since:b/1e3}),ak)}let am=new Map;function an(){return new Promise(a=>setImmediate(a))}async function ao(a,b){for(let c=0;c<a.length;c+=1)b(a[c]),(c+1)%75==0&&await an()}async function ap(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 an()}async function aq(){let a=await G(),b=a.some(a=>"claude-tasks"===a.root&&a.path.endsWith(".output"))?(0,H.$w)():am;return await ao(a,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 _(c)}if("claude-projects"!==a.root&&"codex-sessions"!==a.root||!a.path.endsWith(".jsonl"))return null;let b=$.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=aa(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=aa(a,d)))break}catch{}}catch{}let d=_(c);return $.set(a.path,[a.size,d]),d}(a)}),await ao(a,a=>{if("claude-tasks"===a.root&&a.path.endsWith(".output")){let c=b.get(a.path)??null;a.pid=c,a.proc=null===c?"done":"running",null!==c&&(a.activity="live",a.activityReason="output_held")}}),(0,ah.em)(a),await ao(a,a=>{a.effort=function(a){if("claude-projects"!==a.root&&"codex-sessions"!==a.root||!a.path.endsWith(".jsonl"))return null;if("codex-sessions"!==a.root)return K(M(a));let b=I.get(a.path);if(b?.[0]===a.size)return b[1]??K(M(a));let c=null;for(let b of(0,f.He)(a.path,a.size).reverse())if(c=K(L(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=K(L(a,d))))break}catch{}}catch{}return I.set(a.path,[a.size,c]),c??K(M(a))}(a)}),await ap(a,async a=>{let b=(0,ag.x)(a);a.pendingQuestion=b&&null!==a.pid?{...b,paneTarget:await (0,e.u1)(a.pid)}:b;let c=await al(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=ab.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 ae((0,x.Em)((0,x.xK)(b)?.plan).map(a=>{let b=(0,x.r$)(a.step)?.trim();return b?{text:b,status:ad(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 ae((0,x.Em)((0,x.xK)(b.input)?.todos).map(a=>{let b=ad(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 ab.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=ac.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:af(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:af(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 ac.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 ao(a,a=>{(a.pendingQuestion||a.waitingInput)&&(0,d.M$)(a)}),await Z(a),await (0,g.zn)(a),await (0,v.u1)(a),!function(a,b={}){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)}(a),a}},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};k=new Map,l=new Map;let a={};try{a=JSON.parse(e().readFileSync(j,"utf8"))}catch{}for(let[b,c]of Object.entries(a.panes??{})){let a=Number(b);Number.isInteger(a)&&a>0&&"string"==typeof c&&(0,i.pl)(a)&&k.set(a,c)}for(let[b,c]of Object.entries(a.children??{}))"string"==typeof c&&e().existsSync(b)&&l.set(b,c);let b=Object.keys(a.panes??{}).length+Object.keys(a.children??{}).length;return k.size+l.size!==b&&(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>2e3;){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}}},41017:(a,b,c)=>{c.d(b,{zN:()=>X,WD:()=>Y,w1:()=>W,u1:()=>U});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(16089),l=c(38905),m=c(25750),n=c(98590),o=c(26474),p=c(70107),q=c(27359),r=c(64747),s=c(31421),t=c(23921),u=c(46825);let v=(a,b,c)=>{let d=(0,s.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 w(a,b){let c=(b.stderr||b.stdout||"no output").trim();return{ok:!1,error:`${a}: ${c}`}}function x(a){let b=a.template.setup;if(!b)return{pid:null,error:"workflow has no setup command"};let c=(0,u.VO)(a.id);g().mkdirSync(i().dirname(c),{recursive:!0}),g().rmSync(c,{force:!0});let d=g().openSync((0,u._F)(a.id),"w"),e=g().openSync((0,u.RK)(a.id),"w");try{let f=(0,s.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 y(a){try{return g().readFileSync(a,"utf8")}catch{return""}}function z(a){let b=y((0,u.VO)(a.id)).trim();if(""!==b){if("0"===b)return{status:"done",detail:""};let c=y((0,u.RK)(a.id)).trim().split("\n").slice(-3).join("\n");return{status:"failed",detail:`setup exited with code ${b}${c?`: ${c}`:""}`}}return null!=a.setupPid&&(0,t.pl)(a.setupPid)?{status:"running",detail:""}:{status:"failed",detail:"setup was interrupted before it finished"}}function A(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 B(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 C(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 D=new Set(["approved","closed"]),E=new Set(["needs_decision","paused"]),F=/^STAGE_DONE:\s*(.*)$/m;function G(){return{exec:v,startSetup:x,setupStatus:z,spawnAgent:async(a,b,c)=>{let d=(0,j.lV)(a.engine,b,{model:a.model,effort:a.effort}),e=await (0,r.Tk)(d,c);return{paneId:e.paneId,transcript:d.transcript??null,panePid:e.panePid??null}},paneAgentAlive:async a=>{let b=await (0,r.RZ)(a);return null!==b&&!(0,q.g2)(b.command)},headCwd:a=>(0,k.tX)(a),lastMessage:m.if,createFlow:l._p,advanceFlow:(a,b)=>void(0,l.n1)(a,{action:"advance",note:b}),closeFlow:l.ni,getFlow:a=>(0,n.mL)().find(b=>b.id===a)??null,findFlowByImplementer:a=>(0,n.mL)().filter(b=>b.implementerPath===a).sort((a,b)=>a.createdAt<b.createdAt?1:-1)[0]??null,projectForCwd:p.hY,linkChild:(a,b)=>{(0,o.A6)(a,b),(0,o.OA)()},now:()=>new Date().toISOString()}}let H=new Set;function I(a,b){return`${a.id}:${b.index}`}function J(a,b){a.pausedState=a.state,a.state="needs_decision",a.stateDetail=b}function K(a){return a.stageRuns[a.stageIndex]??null}function L(a){if(!a)return 0;let b=Date.parse(a);return Number.isFinite(b)?b:0}function M(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 N(a){a.stageIndex+=1;let b=a.template.stages[a.stageIndex];a.state=b?.kind==="review-loop"?"reviewing":"implementing",a.stateDetail=null}async function O(a,b,c,d,e,f,g){if(!b.startedAt){b.startedAt=f.now(),H.add(I(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=M(a,b.index);c&&f.linkChild(e.transcript,c)}}catch(b){J(a,b instanceof Error?b.message:String(b))}return"spawning"}if(!b.paneId&&!H.has(I(a,b)))return J(a,"stage agent spawn was interrupted by a restart"),"spawning";if(!b.agentPath){let d,g,h,j=(d=L(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)&&f.headCwd(b.path)===a.worktreeDir).sort((a,b)=>b.mtime-a.mtime)[0],h?.path??null);if(j){b.agentPath=j;let c=M(a,b.index);return c&&f.linkChild(j,c),"ready"}return b.paneId&&!await f.paneAgentAlive(b.paneId)&&J(a,"stage agent died before its transcript appeared"),"waiting"}return"ready"}async function P(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 w("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 w("git worktree add",e)}let f=b("git",["rev-parse","HEAD"],a.worktreeDir);if(0!==f.code)return w("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 J(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 J(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 J(a,c.detail)}a.state="implementing",a.stateDetail=null}async function Q(a,b,c,d,e){var f,g;let h,i,j,k=K(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 J(a,"stage index points outside the template");if(k.doneAt){"auto"===a.mode&&N(a);return}if("ready"!==await O(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.","",...B(a,g),...C(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<=L(a.startedAt)?null:d.text.match(F)?.[1]?.trim()??null}(k,m,d);if(null!==n){k.doneAt=d.now(),k.doneNote=n||null,"auto"===a.mode&&N(a);return}k.paneId&&!await d.paneAgentAlive(k.paneId)&&J(a,"stage agent pane died before STAGE_DONE")}async function R(a,b,c,d){let e,f,g=K(a),h=(e=a.template.stages.at(-1),e?.kind==="review-loop"?e:null);if(!g||!h)return void J(a,"the template has no review-loop stage");if(g.doneAt){"auto"===a.mode&&(a.state="finishing",a.stateDetail=null);return}if("ready"!==await O(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(),"",...B(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.","",...C(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 J(a,`creating the review flow failed: ${f.error??"unknown error"}`)}let i=c.getFlow(a.flowId);if(!i)return void J(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?J(a,"review ended with a COMMENT verdict"):"needs_decision"===i.state?J(a,`review loop needs a decision: ${i.stateDetail??"unknown reason"}`):"closed"===i.state&&J(a,"the embedded review flow was closed")}async function S(a,b,c,d,e){let f=JSON.stringify(a);if("provisioning"===a.state)await P(a,d,e);else if("implementing"===a.state)await Q(a,b,c,d,e);else if("reviewing"===a.state)await R(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 w("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 w("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}: ${A(a)}`],a.repoDir);return 0!==e.code?(b("git",["merge","--abort"],a.repoDir),w("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 w("git push",d);let e=c("gh",["pr","create","--title",A(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 w("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()):J(a,f.error))}return JSON.stringify(a)!==f}let T=globalThis;async function U(a,b=G()){if(T.__llvWorkflowTick)return{workflows:(0,u.Ny)(),changed:!1};T.__llvWorkflowTick=!0;try{let c=(0,u.Ny)(),d=new Map(a.map(a=>[a.path,a])),e=!1;for(let f of c)!(D.has(f.state)||E.has(f.state))&&(await S(f,a,d,b,()=>(0,u.co)(c))&&(e=!0),e&&(0,u.co)(c));return e&&(0,u.co)(c),{workflows:c,changed:e}}finally{T.__llvWorkflowTick=!1}}function V(a){return"needs_decision"===a.state||"paused"===a.state?a.pausedState??"provisioning":a.state}async function W(a,b,c=G()){let d=(0,u.Ny)(),e=d.find(b=>b.id===a);if(!e)return{error:"workflow not found",status:404};if("pause"===b.action)"paused"===e.state||D.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&&!E.has(e.pausedState)?e.pausedState:"provisioning",e.pausedState=null,e.stateDetail=null);else if("advance"===b.action){let a=V(e);if(D.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=K(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 N(e)}e.pausedState=null,e.stateDetail=null}else if("retry-stage"===b.action){let a=V(e);if(D.has(e.state))return{error:"workflow is finished",status:409};if("provisioning"===a){e.setupPid=null;try{g().rmSync((0,u.VO)(e.id),{force:!0})}catch{}}else if("implementing"===a||"reviewing"===a){let b=K(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,u.co)(d),{workflow:e}}function X(a,b=G()){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,u.K8)().find(b=>b.name===a.template);if(!b)return{error:`unknown workflow template: ${a.template}`,status:400};c=b}else{let b=(0,u.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,u.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,u.Ny)();return h.push(g),(0,u.co)(h),{workflow:g}}function Y(){return{workflows:(0,u.Ny)(),templates:(0,u.K8)()}}},46825:(a,b,c)=>{c.d(b,{Fl:()=>r,K8:()=>w,Ny:()=>u,RK:()=>A,VO:()=>B,_F:()=>z,aL:()=>x,co:()=>v});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(91724),i=c(98590);let j=(0,h.BQ)("workflows.json"),k=(0,h.BQ)("workflow-templates.json"),l=(0,h.BQ)("workflows"),m={engine:"codex",model:null,effort:"low"},n=[{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:{...m},roundLimit:5,reviewerMode:"headless"}]}];function o(a,b){(0,i.Yj)(a,JSON.stringify(b,null,2)+"\n")}function p(a){try{return JSON.parse(e().readFileSync(a,"utf8"))}catch{return null}}function q(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 r(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=q(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=q(a.reviewer);return c?{kind:"review-loop",reviewer:c,fixer:(b=q(a.fixer))&&"codex"===b.engine?{engine:"codex",model:b.model,effort:"low"}:{...m},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 s(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.name||!a.name.trim())return null;let b=r(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 t(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!==s(a.template)}function u(){let a=p(j);return(Array.isArray(a?.workflows)?a.workflows.filter(t):[]).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 v(a){o(j,{workflows:a})}function w(){let a=p(k),b=Array.isArray(a?.templates)?a.templates.map(s).filter(a=>null!==a):[];return b.length>0?b:(o(k,{templates:n}),n)}function x(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 y(a){return g().join(l,a)}function z(a){return g().join(y(a),"setup-stdout.log")}function A(a){return g().join(y(a),"setup-stderr.log")}function B(a){return g().join(y(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,"--permission-mode","plan","--session-id",c,"--disallowedTools","Edit,Write,NotebookEdit"];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,"--sandbox","read-only"];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: inspect files and commands as needed, but 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(16462),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}}},70107:(a,b,c)=>{c.d(b,{hY:()=>C,q0:()=>G});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);let n=(0,l.E)("meta-v2"),o=(0,l.E)("title"),p=(0,l.E)("codex-project-v2"),q=(0,l.E)("claude-cwd");function r(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 s="-"+g().homedir().split(i().sep).filter(Boolean).join("-"),t=[s+"-Projects-",s+"-"],u=["<","#","Caveat:","{","[","This session is being continued"];function v(a){if(a===s)return i().basename(g().homedir());for(let b of t)if(a.startsWith(b))return a.slice(b.length)||a;return a}let w=(0,l.E)("worktree-git"),x=(0,l.E)("persisted-project");function y(a){try{return JSON.parse(e().readFileSync(i().join((0,j.Pn)(),a),"utf8"))}catch{return null}}function z(a,b,c=!1){if("string"!=typeof a||!a.trim()||"string"!=typeof b||!b.trim())return null;let d=v(b.replace(/[^a-zA-Z0-9]/g,"-")),e=c||d!==a?i().basename(b):void 0;return{project:a,worktree:e}}function A(){let a=(0,j.Pn)(),b=x.get("state");if(b&&b[0]>Date.now()&&b[1]===a)return b[2];let c=new Map,d=new Map,e=new Map,f=(a,b)=>{b&&"string"==typeof a&&a.trim()&&d.set(a,b),((a,b)=>{if(!b||"string"!=typeof a||!a.endsWith(".jsonl"))return;let c=i().basename(i().dirname(a));c.startsWith("-")&&e.set(c,b)})(a,b)},g=y("flows.json");for(let a of Array.isArray(g?.flows)?g.flows:[]){if(!a||"object"!=typeof a||Array.isArray(a))continue;let b=z(a.project,a.cwd);if(b&&"string"==typeof a.cwd)for(let d of(c.set(a.cwd,b),f(a.implementerPath,b),Array.isArray(a.rounds)?a.rounds:[]))!d||"object"!=typeof d||Array.isArray(d)||f(d.reviewerPath,b)}let h=y("workflows.json");for(let a of Array.isArray(h?.workflows)?h.workflows:[]){if(!a||"object"!=typeof a||Array.isArray(a))continue;let b=z(a.project,a.repoDir);b&&"string"==typeof a.repoDir&&c.set(a.repoDir,b);let d=z(a.project,a.worktreeDir,!0);for(let e of(d&&"string"==typeof a.worktreeDir&&c.set(a.worktreeDir,d),Array.isArray(a.stageRuns)?a.stageRuns:[]))!e||"object"!=typeof e||Array.isArray(e)||f(e.agentPath,d??b);f(a.fixerPath,d??b)}let k={byCwd:c,byPath:d,bySlug:e};return x.set("state",[Date.now()+1e4,a,k]),k}function B(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=w.get(a);if(b&&b[0]>Date.now())return b[1];let c=null;try{let b=i().join(a,".git");e().lstatSync(b).isFile()&&(c=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 w.set(a,[Date.now()+6e4,c]),c}(a);if(!b&&!function(a){try{return e().lstatSync(i().join(a,".git")),!0}catch{return!1}}(a)){let b=A().byCwd.get(a);if(b)return b}let c=v((b?b.repo:a).replace(/[^a-zA-Z0-9]/g,"-"));return c?{project:c,worktree:b?.worktree}:null}function C(a){return B(a)?.project??null}function D(a){let b="string"==typeof a?a.trim():"";return b&&!u.some(a=>b.startsWith(a))?b:null}function E(a){return A().byPath.get(a)??null}function F(a,b,c){let d=o.get(a);if(d&&(null!==d[1]||d[0]>=131072))return d[1];let e=r(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=D(a.summary);if(b)return b}if("ai-title"===a.type){let b=D(a.aiTitle);if(b)return b}if(b){let b=(0,m.xK)(a.payload)??{};if("user_message"===b.type){let a=D(b.message);if(a)return a}if("message"===b.type&&"user"===b.role){let a=D((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=D(b);if(a)return a}let c=D((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 o.set(a,[e.read,f]),f}function G(a,b,c,d){let e,f=n.get(c);if(f?.[0]===d.size)return f[1];let g=i().relative(b,c),h=i().basename(c),j="other",l=null,o="claude",s="",t="plain";if("codex-sessions"===a){let a=p.get(c);if(a)j=a.project,e=a.worktree;else{j="";let a=r(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=B(c);j=d?.project??"",e=d?.worktree}catch{j=""}if(!j){let a=E(c);j=a?.project??"",e=a?.worktree}j&&p.set(c,{project:j,worktree:e})}j||(j="codex"),o="codex",s="session",t="codex",l=F(c,d.size,!0)??"Codex session"}else if("claude-projects"===a){let a=g.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);j=b?.project??v(a),e=b?.worktree;let f=function(a,b){let c=q.get(a);if(c&&(null!==c[1]||c[0]>=131072))return c[1];let d=r(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 q.set(a,[d.read,e]),e}(c,d.size),k=f?B(f):E(c),n=E(c);if(k&&(b||k.worktree||n)&&(j=k.project,e=k.worktree??e),t="claude",h.startsWith("agent-")){s="subagent";let a=(0,m.Vh)(c.slice(0,-6)+".meta.json")??{};l=(0,m.r$)(a.description)??(0,m.r$)(a.name)??"Subagent "+h.slice(6).split(".")[0]}else s="session",l=F(c,d.size,!1)??"Claude session"}else if("claude-tasks"===a){let a=g.split(i().sep)[0]??"",b=A().bySlug.get(a)??null;j=b?.project??v(a),e=b?.worktree,o="shell",s="background",l="Background task "+h.split(".")[0]}let u={project:j,worktree:e,title:(0,k.cr)(l??h,120),engine:o,kind:s,fmt:t};return n.set(c,[d.size,u]),u}},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:()=>A,NO:()=>z,Sn:()=>B,Vd:()=>v,WJ:()=>y,Yj:()=>p,mL:()=>t,tR:()=>x,tu:()=>u});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=(0,j.BQ)("flows.json"),l=(0,j.BQ)("review-loop-presets.json"),m=(0,j.BQ)("flows"),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"}}];function o(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 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,b,"utf8"),g().renameSync(c,a)}function q(a){try{return JSON.parse(g().readFileSync(a,"utf8"))}catch{return null}}function r(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 s(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.name&&!!a.implementer&&!!a.reviewer}function t(){let a=q(k);return(Array.isArray(a?.flows)?a.flows.filter(r):[]).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 u(a){o(k,{flows:a})}function v(){let a=q(l),b=Array.isArray(a?.presets)?a.presets.filter(s):[];return b.length>0?b:(o(l,{presets:n}),n)}function w(a){return i().join(m,a)}function x(a,b){return i().join(w(a),`round-${b}-review.md`)}function y(a,b){return i().join(w(a),`round-${b}-last-message.md`)}function z(a,b){return i().join(w(a),`round-${b}-stderr.txt`)}function A(a,b){return i().join(w(a),`round-${b}-stdout.log`)}function B(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"}`}}};
@@ -24,6 +24,7 @@
24
24
  "/api/proc": {},
25
25
  "/api/push": {},
26
26
  "/api/resources": {},
27
+ "/api/session": {},
27
28
  "/api/spawn": {},
28
29
  "/api/tasks": {},
29
30
  "/api/tasks/[id]": {},
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/Qra81ER5ZH5dx8Kq_BOnd/_buildManifest.js","static/Qra81ER5ZH5dx8Kq_BOnd/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-7dc14fd5ff1227ce.js","static/chunks/4bd1b696-215e5051988c3dde.js","static/chunks/794-0fc36bf1952fbc29.js","static/chunks/main-app-e6ff5fbff7d5b38f.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/wmbQhT2Jcsq6xxtW3NUD-/_buildManifest.js","static/wmbQhT2Jcsq6xxtW3NUD-/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-7dc14fd5ff1227ce.js","static/chunks/4bd1b696-215e5051988c3dde.js","static/chunks/794-0fc36bf1952fbc29.js","static/chunks/main-app-e6ff5fbff7d5b38f.js"],rootMainFilesTree:{},pages:{"/_app":[]}};