agent-log-viewer 1.2.1 → 1.2.2

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 (582) hide show
  1. package/dist/mcp-server.mjs +2225 -1385
  2. package/dist/runtime-host.mjs +1690 -972
  3. package/dist/standalone/.next/BUILD_ID +1 -1
  4. package/dist/standalone/.next/app-path-routes-manifest.json +26 -24
  5. package/dist/standalone/.next/build-manifest.json +2 -2
  6. package/dist/standalone/.next/prerender-manifest.json +4 -4
  7. package/dist/standalone/.next/required-server-files.json +1 -0
  8. package/dist/standalone/.next/routes-manifest.json +12 -0
  9. package/dist/standalone/.next/server/account-migration-controller-worker.js +1 -1
  10. package/dist/standalone/.next/server/app/_global-error/page.js +2 -2
  11. package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  12. package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  13. package/dist/standalone/.next/server/app/_global-error.html +1 -1
  14. package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
  15. package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  16. package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  17. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/dist/standalone/.next/server/app/_not-found/page.js +1 -1
  19. package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  22. package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
  23. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  24. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  25. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/dist/standalone/.next/server/app/api/access/route.js +1 -1
  27. package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
  28. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
  29. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
  30. package/dist/standalone/.next/server/app/api/account-project-bindings/route.js +1 -1
  31. package/dist/standalone/.next/server/app/api/account-project-bindings/route.js.nft.json +1 -1
  32. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +1 -1
  33. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -1
  34. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js +1 -1
  35. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -1
  36. package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js +1 -1
  37. package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js.nft.json +1 -1
  38. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js +1 -1
  39. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -1
  40. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js +1 -1
  41. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -1
  42. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js +1 -1
  43. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -1
  44. package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -1
  45. package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -1
  46. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js +1 -1
  47. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -1
  48. package/dist/standalone/.next/server/app/api/accounts/cli/route.js +1 -0
  49. package/dist/standalone/.next/server/app/api/accounts/cli/route.js.nft.json +1 -0
  50. package/dist/standalone/.next/server/app/api/accounts/cli/route_client-reference-manifest.js +1 -0
  51. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js +1 -1
  52. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -1
  53. package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js +1 -1
  54. package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js.nft.json +1 -1
  55. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js +1 -1
  56. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
  57. package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js +2 -2
  58. package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js.nft.json +1 -1
  59. package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
  60. package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
  61. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +1 -1
  62. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -1
  63. package/dist/standalone/.next/server/app/api/accounts/route.js +1 -1
  64. package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -1
  65. package/dist/standalone/.next/server/app/api/agent/route.js +1 -1
  66. package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
  67. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -1
  68. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -1
  69. package/dist/standalone/.next/server/app/api/answer/route.js +1 -1
  70. package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
  71. package/dist/standalone/.next/server/app/api/artifact/route.js +1 -1
  72. package/dist/standalone/.next/server/app/api/artifact/route.js.nft.json +1 -1
  73. package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -1
  74. package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -1
  75. package/dist/standalone/.next/server/app/api/attention/[id]/route.js +1 -1
  76. package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -1
  77. package/dist/standalone/.next/server/app/api/attention/route.js +1 -1
  78. package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -1
  79. package/dist/standalone/.next/server/app/api/board/route.js +1 -1
  80. package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -1
  81. package/dist/standalone/.next/server/app/api/bridge/route.js +1 -1
  82. package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
  83. package/dist/standalone/.next/server/app/api/conversation-host/route.js +1 -1
  84. package/dist/standalone/.next/server/app/api/conversation-host/route.js.nft.json +1 -1
  85. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js +1 -1
  86. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js.nft.json +1 -1
  87. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
  88. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
  89. package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
  90. package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
  91. package/dist/standalone/.next/server/app/api/files/route.js +6 -3
  92. package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  93. package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
  94. package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
  95. package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
  96. package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
  97. package/dist/standalone/.next/server/app/api/image/route.js +1 -1
  98. package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
  99. package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
  100. package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  101. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
  102. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
  103. package/dist/standalone/.next/server/app/api/limits/history/route.js +1 -1
  104. package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -1
  105. package/dist/standalone/.next/server/app/api/limits/route.js +1 -1
  106. package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
  107. package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -1
  108. package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -1
  109. package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -1
  110. package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -1
  111. package/dist/standalone/.next/server/app/api/log/provenance/route.js +14 -12
  112. package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -1
  113. package/dist/standalone/.next/server/app/api/log/route.js +1 -1
  114. package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
  115. package/dist/standalone/.next/server/app/api/log/suggestions/route.js +2 -2
  116. package/dist/standalone/.next/server/app/api/log/suggestions/route.js.nft.json +1 -1
  117. package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
  118. package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  119. package/dist/standalone/.next/server/app/api/logs/stream/route.js +2 -2
  120. package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  121. package/dist/standalone/.next/server/app/api/monitor/runs/route.js +1 -1
  122. package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
  123. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js +6 -5
  124. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js.nft.json +1 -1
  125. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js +2 -2
  126. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js.nft.json +1 -1
  127. package/dist/standalone/.next/server/app/api/onboarding/route.js +1 -0
  128. package/dist/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -0
  129. package/dist/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -0
  130. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
  131. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
  132. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
  133. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
  134. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +1 -1
  135. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -1
  136. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -1
  137. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -1
  138. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js +1 -1
  139. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -1
  140. package/dist/standalone/.next/server/app/api/pipelines/route.js +1 -1
  141. package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
  142. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +1 -2
  143. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
  144. package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
  145. package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
  146. package/dist/standalone/.next/server/app/api/projects/create/route.js +2 -2
  147. package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -1
  148. package/dist/standalone/.next/server/app/api/projects/crown/route.js +1 -1
  149. package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -1
  150. package/dist/standalone/.next/server/app/api/projects/directories/route.js +1 -1
  151. package/dist/standalone/.next/server/app/api/projects/directories/route.js.nft.json +1 -1
  152. package/dist/standalone/.next/server/app/api/push/route.js +2 -2
  153. package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
  154. package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
  155. package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
  156. package/dist/standalone/.next/server/app/api/roles/route.js +3 -3
  157. package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
  158. package/dist/standalone/.next/server/app/api/runtime/answer/route.js +1 -1
  159. package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -1
  160. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js +1 -1
  161. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -1
  162. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js +1 -1
  163. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -1
  164. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js +1 -1
  165. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -1
  166. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js +1 -1
  167. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js.nft.json +1 -1
  168. package/dist/standalone/.next/server/app/api/runtime/inject/route.js +1 -1
  169. package/dist/standalone/.next/server/app/api/runtime/inject/route.js.nft.json +1 -1
  170. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +1 -1
  171. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -1
  172. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +1 -1
  173. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
  174. package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -1
  175. package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
  176. package/dist/standalone/.next/server/app/api/runtime/queue/route.js +1 -1
  177. package/dist/standalone/.next/server/app/api/runtime/queue/route.js.nft.json +1 -1
  178. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +1 -1
  179. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
  180. package/dist/standalone/.next/server/app/api/runtime/send/route.js +1 -1
  181. package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -1
  182. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js +1 -1
  183. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -1
  184. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +1 -1
  185. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -1
  186. package/dist/standalone/.next/server/app/api/runtime/steer/route.js +1 -1
  187. package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -1
  188. package/dist/standalone/.next/server/app/api/runtime/stream/route.js +2 -2
  189. package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -1
  190. package/dist/standalone/.next/server/app/api/search/transcripts/route.js +1 -1
  191. package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -1
  192. package/dist/standalone/.next/server/app/api/session/route.js +1 -1
  193. package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  194. package/dist/standalone/.next/server/app/api/session/supersedence/route.js +1 -1
  195. package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -1
  196. package/dist/standalone/.next/server/app/api/session/title/route.js +1 -1
  197. package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -1
  198. package/dist/standalone/.next/server/app/api/spawn/policy/route.js +2 -2
  199. package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -1
  200. package/dist/standalone/.next/server/app/api/spawn/route.js +1 -1
  201. package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
  202. package/dist/standalone/.next/server/app/api/spawn/validate/route.js +1 -1
  203. package/dist/standalone/.next/server/app/api/spawn/validate/route.js.nft.json +1 -1
  204. package/dist/standalone/.next/server/app/api/staging/route.js +2 -2
  205. package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
  206. package/dist/standalone/.next/server/app/api/task-attachments/route.js +2 -2
  207. package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
  208. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
  209. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
  210. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  211. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  212. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +1 -1
  213. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
  214. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +1 -1
  215. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
  216. package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
  217. package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
  218. package/dist/standalone/.next/server/app/api/tasks/route.js +1 -1
  219. package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  220. package/dist/standalone/.next/server/app/api/telegram/reports/route.js +1 -1
  221. package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -1
  222. package/dist/standalone/.next/server/app/api/telegram/route.js +1 -1
  223. package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -1
  224. package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
  225. package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
  226. package/dist/standalone/.next/server/app/api/tmux/route.js +1 -1
  227. package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
  228. package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
  229. package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
  230. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js +2 -2
  231. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
  232. package/dist/standalone/.next/server/app/api/transcribe/route.js +2 -2
  233. package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
  234. package/dist/standalone/.next/server/app/api/transcribe/token/route.js +2 -2
  235. package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
  236. package/dist/standalone/.next/server/app/api/tts/backend/route.js +1 -1
  237. package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -1
  238. package/dist/standalone/.next/server/app/api/tts/route.js +2 -2
  239. package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -1
  240. package/dist/standalone/.next/server/app/api/view/presence/route.js +2 -1
  241. package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -1
  242. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
  243. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
  244. package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
  245. package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  246. package/dist/standalone/.next/server/app/favicon.ico/route.js +1 -1
  247. package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  248. package/dist/standalone/.next/server/app/index.html +1 -1
  249. package/dist/standalone/.next/server/app/index.rsc +3 -3
  250. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  251. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  252. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  253. package/dist/standalone/.next/server/app/page.js +20 -20
  254. package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
  255. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  256. package/dist/standalone/.next/server/app-paths-manifest.json +26 -24
  257. package/dist/standalone/.next/server/chunks/107.js +1 -1
  258. package/dist/standalone/.next/server/chunks/1106.js +5 -0
  259. package/dist/standalone/.next/server/chunks/112.js +1 -0
  260. package/dist/standalone/.next/server/chunks/1406.js +35 -168
  261. package/dist/standalone/.next/server/chunks/1585.js +3 -3
  262. package/dist/standalone/.next/server/chunks/160.js +18 -18
  263. package/dist/standalone/.next/server/chunks/1617.js +1 -1
  264. package/dist/standalone/.next/server/chunks/1849.js +1 -1
  265. package/dist/standalone/.next/server/chunks/1952.js +1 -1
  266. package/dist/standalone/.next/server/chunks/2499.js +1 -0
  267. package/dist/standalone/.next/server/chunks/2555.js +1 -1
  268. package/dist/standalone/.next/server/chunks/2589.js +127 -0
  269. package/dist/standalone/.next/server/chunks/261.js +1 -0
  270. package/dist/standalone/.next/server/chunks/2744.js +1 -1
  271. package/dist/standalone/.next/server/chunks/286.js +2 -2
  272. package/dist/standalone/.next/server/chunks/2914.js +20 -21
  273. package/dist/standalone/.next/server/chunks/2916.js +1 -0
  274. package/dist/standalone/.next/server/chunks/3086.js +1 -1
  275. package/dist/standalone/.next/server/chunks/3407.js +1 -1
  276. package/dist/standalone/.next/server/chunks/3509.js +1 -0
  277. package/dist/standalone/.next/server/chunks/3570.js +1 -1
  278. package/dist/standalone/.next/server/chunks/3696.js +5 -0
  279. package/dist/standalone/.next/server/chunks/3743.js +9 -9
  280. package/dist/standalone/.next/server/chunks/3784.js +5 -0
  281. package/dist/standalone/.next/server/chunks/3830.js +1 -1
  282. package/dist/standalone/.next/server/chunks/3957.js +1 -0
  283. package/dist/standalone/.next/server/chunks/4037.js +1 -1
  284. package/dist/standalone/.next/server/chunks/4651.js +1 -1
  285. package/dist/standalone/.next/server/chunks/4972.js +38 -16
  286. package/dist/standalone/.next/server/chunks/53.js +1 -0
  287. package/dist/standalone/.next/server/chunks/5408.js +1 -1
  288. package/dist/standalone/.next/server/chunks/5465.js +156 -0
  289. package/dist/standalone/.next/server/chunks/5545.js +1 -1
  290. package/dist/standalone/.next/server/chunks/568.js +1 -1
  291. package/dist/standalone/.next/server/chunks/6023.js +1 -1
  292. package/dist/standalone/.next/server/chunks/6211.js +1 -0
  293. package/dist/standalone/.next/server/chunks/6289.js +1 -2
  294. package/dist/standalone/.next/server/chunks/6418.js +1 -0
  295. package/dist/standalone/.next/server/chunks/6453.js +1 -1
  296. package/dist/standalone/.next/server/chunks/6522.js +1 -1
  297. package/dist/standalone/.next/server/chunks/6796.js +1 -1
  298. package/dist/standalone/.next/server/chunks/6826.js +3 -3
  299. package/dist/standalone/.next/server/chunks/6942.js +3 -3
  300. package/dist/standalone/.next/server/chunks/6978.js +1 -1
  301. package/dist/standalone/.next/server/chunks/7008.js +21 -19
  302. package/dist/standalone/.next/server/chunks/7192.js +1 -1
  303. package/dist/standalone/.next/server/chunks/7238.js +2 -2
  304. package/dist/standalone/.next/server/chunks/7294.js +1 -0
  305. package/dist/standalone/.next/server/chunks/7722.js +1 -1
  306. package/dist/standalone/.next/server/chunks/781.js +17 -17
  307. package/dist/standalone/.next/server/chunks/8027.js +1 -1
  308. package/dist/standalone/.next/server/chunks/8330.js +1 -0
  309. package/dist/standalone/.next/server/chunks/8444.js +1 -1
  310. package/dist/standalone/.next/server/chunks/8512.js +1 -1
  311. package/dist/standalone/.next/server/chunks/8513.js +2 -2
  312. package/dist/standalone/.next/server/chunks/8617.js +1 -1
  313. package/dist/standalone/.next/server/chunks/8817.js +2 -2
  314. package/dist/standalone/.next/server/chunks/8966.js +1 -1
  315. package/dist/standalone/.next/server/chunks/8985.js +1 -1
  316. package/dist/standalone/.next/server/chunks/8996.js +1 -1
  317. package/dist/standalone/.next/server/chunks/9006.js +1 -0
  318. package/dist/standalone/.next/server/chunks/9060.js +4 -0
  319. package/dist/standalone/.next/server/chunks/9296.js +20 -21
  320. package/dist/standalone/.next/server/chunks/9298.js +1 -2
  321. package/dist/standalone/.next/server/chunks/9307.js +1 -1
  322. package/dist/standalone/.next/server/chunks/9360.js +12 -12
  323. package/dist/standalone/.next/server/chunks/9517.js +1 -1
  324. package/dist/standalone/.next/server/chunks/9611.js +1 -0
  325. package/dist/standalone/.next/server/chunks/9822.js +1 -1
  326. package/dist/standalone/.next/server/chunks/9839.js +5 -0
  327. package/dist/standalone/.next/server/chunks/9867.js +1 -0
  328. package/dist/standalone/.next/server/chunks/9940.js +37 -15
  329. package/dist/standalone/.next/server/chunks/9998.js +1 -1
  330. package/dist/standalone/.next/server/file-scanner-worker.js +1 -1
  331. package/dist/standalone/.next/server/files-response-worker.js +2 -2
  332. package/dist/standalone/.next/server/functions-config-manifest.json +2 -0
  333. package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
  334. package/dist/standalone/.next/server/middleware.js +3 -3
  335. package/dist/standalone/.next/server/pages/404.html +1 -1
  336. package/dist/standalone/.next/server/pages/500.html +1 -1
  337. package/dist/standalone/.next/server/resource-collector-worker.js +1 -1
  338. package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
  339. package/dist/standalone/.next/server/state-backup-worker.js +3 -0
  340. package/dist/standalone/.next/server/wakatime-sync-worker.js +1 -1
  341. package/dist/standalone/.next/static/chunks/9591-0fd6a5a4172de16d.js +1 -0
  342. package/dist/standalone/.next/static/chunks/app/_global-error/page-151390fbd8c93c25.js +1 -0
  343. package/dist/standalone/.next/static/chunks/app/api/access/route-151390fbd8c93c25.js +1 -0
  344. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-151390fbd8c93c25.js +1 -0
  345. package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-151390fbd8c93c25.js +1 -0
  346. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-151390fbd8c93c25.js +1 -0
  347. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-151390fbd8c93c25.js +1 -0
  348. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-151390fbd8c93c25.js +1 -0
  349. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-151390fbd8c93c25.js +1 -0
  350. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-151390fbd8c93c25.js +1 -0
  351. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-151390fbd8c93c25.js +1 -0
  352. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-151390fbd8c93c25.js +1 -0
  353. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-151390fbd8c93c25.js +1 -0
  354. package/dist/standalone/.next/static/chunks/app/api/accounts/cli/route-151390fbd8c93c25.js +1 -0
  355. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-151390fbd8c93c25.js +1 -0
  356. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-151390fbd8c93c25.js +1 -0
  357. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-151390fbd8c93c25.js +1 -0
  358. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-151390fbd8c93c25.js +1 -0
  359. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-151390fbd8c93c25.js +1 -0
  360. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-151390fbd8c93c25.js +1 -0
  361. package/dist/standalone/.next/static/chunks/app/api/accounts/route-151390fbd8c93c25.js +1 -0
  362. package/dist/standalone/.next/static/chunks/app/api/agent/route-151390fbd8c93c25.js +1 -0
  363. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-151390fbd8c93c25.js +1 -0
  364. package/dist/standalone/.next/static/chunks/app/api/answer/route-151390fbd8c93c25.js +1 -0
  365. package/dist/standalone/.next/static/chunks/app/api/artifact/route-151390fbd8c93c25.js +1 -0
  366. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-151390fbd8c93c25.js +1 -0
  367. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-151390fbd8c93c25.js +1 -0
  368. package/dist/standalone/.next/static/chunks/app/api/attention/route-151390fbd8c93c25.js +1 -0
  369. package/dist/standalone/.next/static/chunks/app/api/board/route-151390fbd8c93c25.js +1 -0
  370. package/dist/standalone/.next/static/chunks/app/api/bridge/route-151390fbd8c93c25.js +1 -0
  371. package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-151390fbd8c93c25.js +1 -0
  372. package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-151390fbd8c93c25.js +1 -0
  373. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-151390fbd8c93c25.js +1 -0
  374. package/dist/standalone/.next/static/chunks/app/api/conversations/route-151390fbd8c93c25.js +1 -0
  375. package/dist/standalone/.next/static/chunks/app/api/files/route-151390fbd8c93c25.js +1 -0
  376. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-151390fbd8c93c25.js +1 -0
  377. package/dist/standalone/.next/static/chunks/app/api/flows/route-151390fbd8c93c25.js +1 -0
  378. package/dist/standalone/.next/static/chunks/app/api/image/route-151390fbd8c93c25.js +1 -0
  379. package/dist/standalone/.next/static/chunks/app/api/inbox/route-151390fbd8c93c25.js +1 -0
  380. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-151390fbd8c93c25.js +1 -0
  381. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-151390fbd8c93c25.js +1 -0
  382. package/dist/standalone/.next/static/chunks/app/api/limits/route-151390fbd8c93c25.js +1 -0
  383. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-151390fbd8c93c25.js +1 -0
  384. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-151390fbd8c93c25.js +1 -0
  385. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-151390fbd8c93c25.js +1 -0
  386. package/dist/standalone/.next/static/chunks/app/api/log/route-151390fbd8c93c25.js +1 -0
  387. package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-151390fbd8c93c25.js +1 -0
  388. package/dist/standalone/.next/static/chunks/app/api/logs/route-151390fbd8c93c25.js +1 -0
  389. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-151390fbd8c93c25.js +1 -0
  390. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-151390fbd8c93c25.js +1 -0
  391. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/route-151390fbd8c93c25.js +1 -0
  392. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/settings/route-151390fbd8c93c25.js +1 -0
  393. package/dist/standalone/.next/static/chunks/app/api/onboarding/route-151390fbd8c93c25.js +1 -0
  394. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-151390fbd8c93c25.js +1 -0
  395. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-151390fbd8c93c25.js +1 -0
  396. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-151390fbd8c93c25.js +1 -0
  397. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-151390fbd8c93c25.js +1 -0
  398. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-151390fbd8c93c25.js +1 -0
  399. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-151390fbd8c93c25.js +1 -0
  400. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-151390fbd8c93c25.js +1 -0
  401. package/dist/standalone/.next/static/chunks/app/api/proc/route-151390fbd8c93c25.js +1 -0
  402. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-151390fbd8c93c25.js +1 -0
  403. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-151390fbd8c93c25.js +1 -0
  404. package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-151390fbd8c93c25.js +1 -0
  405. package/dist/standalone/.next/static/chunks/app/api/push/route-151390fbd8c93c25.js +1 -0
  406. package/dist/standalone/.next/static/chunks/app/api/resources/route-151390fbd8c93c25.js +1 -0
  407. package/dist/standalone/.next/static/chunks/app/api/roles/route-151390fbd8c93c25.js +1 -0
  408. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-151390fbd8c93c25.js +1 -0
  409. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-151390fbd8c93c25.js +1 -0
  410. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-151390fbd8c93c25.js +1 -0
  411. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-151390fbd8c93c25.js +1 -0
  412. package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-151390fbd8c93c25.js +1 -0
  413. package/dist/standalone/.next/static/chunks/app/api/runtime/inject/route-151390fbd8c93c25.js +1 -0
  414. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-151390fbd8c93c25.js +1 -0
  415. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-151390fbd8c93c25.js +1 -0
  416. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-151390fbd8c93c25.js +1 -0
  417. package/dist/standalone/.next/static/chunks/app/api/runtime/queue/route-151390fbd8c93c25.js +1 -0
  418. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-151390fbd8c93c25.js +1 -0
  419. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-151390fbd8c93c25.js +1 -0
  420. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-151390fbd8c93c25.js +1 -0
  421. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-151390fbd8c93c25.js +1 -0
  422. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-151390fbd8c93c25.js +1 -0
  423. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-151390fbd8c93c25.js +1 -0
  424. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-151390fbd8c93c25.js +1 -0
  425. package/dist/standalone/.next/static/chunks/app/api/session/route-151390fbd8c93c25.js +1 -0
  426. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-151390fbd8c93c25.js +1 -0
  427. package/dist/standalone/.next/static/chunks/app/api/session/title/route-151390fbd8c93c25.js +1 -0
  428. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-151390fbd8c93c25.js +1 -0
  429. package/dist/standalone/.next/static/chunks/app/api/spawn/route-151390fbd8c93c25.js +1 -0
  430. package/dist/standalone/.next/static/chunks/app/api/spawn/validate/route-151390fbd8c93c25.js +1 -0
  431. package/dist/standalone/.next/static/chunks/app/api/staging/route-151390fbd8c93c25.js +1 -0
  432. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-151390fbd8c93c25.js +1 -0
  433. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-151390fbd8c93c25.js +1 -0
  434. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-151390fbd8c93c25.js +1 -0
  435. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-151390fbd8c93c25.js +1 -0
  436. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-151390fbd8c93c25.js +1 -0
  437. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-151390fbd8c93c25.js +1 -0
  438. package/dist/standalone/.next/static/chunks/app/api/tasks/route-151390fbd8c93c25.js +1 -0
  439. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-151390fbd8c93c25.js +1 -0
  440. package/dist/standalone/.next/static/chunks/app/api/telegram/route-151390fbd8c93c25.js +1 -0
  441. package/dist/standalone/.next/static/chunks/app/api/timeline/route-151390fbd8c93c25.js +1 -0
  442. package/dist/standalone/.next/static/chunks/app/api/tmux/route-151390fbd8c93c25.js +1 -0
  443. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-151390fbd8c93c25.js +1 -0
  444. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-151390fbd8c93c25.js +1 -0
  445. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-151390fbd8c93c25.js +1 -0
  446. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-151390fbd8c93c25.js +1 -0
  447. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-151390fbd8c93c25.js +1 -0
  448. package/dist/standalone/.next/static/chunks/app/api/tts/route-151390fbd8c93c25.js +1 -0
  449. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-151390fbd8c93c25.js +1 -0
  450. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-151390fbd8c93c25.js +1 -0
  451. package/dist/standalone/.next/static/chunks/app/api/workflows/route-151390fbd8c93c25.js +1 -0
  452. package/dist/standalone/.next/static/chunks/app/page-a2e19d755e17b569.js +125 -0
  453. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-151390fbd8c93c25.js +1 -0
  454. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-151390fbd8c93c25.js +1 -0
  455. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-151390fbd8c93c25.js +1 -0
  456. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-151390fbd8c93c25.js +1 -0
  457. package/dist/standalone/.next/static/css/9b32c3f7f468cbcc.css +1 -0
  458. package/dist/standalone/.next/static/fQ2a5S10vvpyAqE0L_wUj/_buildManifest.js +1 -0
  459. package/dist/standalone/package.json +1 -1
  460. package/dist/standalone/server.bun.js +1 -1
  461. package/dist/standalone/src/lib/viewerInstrumentation.ts +44 -1
  462. package/package.json +1 -1
  463. package/dist/standalone/.next/server/chunks/1888.js +0 -1
  464. package/dist/standalone/.next/server/chunks/4127.js +0 -1
  465. package/dist/standalone/.next/server/chunks/606.js +0 -126
  466. package/dist/standalone/.next/static/836HTp-5V8cZC5YWFVOCk/_buildManifest.js +0 -1
  467. package/dist/standalone/.next/static/chunks/7333-cf17cea2a91e7b4b.js +0 -1
  468. package/dist/standalone/.next/static/chunks/app/_global-error/page-60a25d1c4cbf0128.js +0 -1
  469. package/dist/standalone/.next/static/chunks/app/api/access/route-60a25d1c4cbf0128.js +0 -1
  470. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-60a25d1c4cbf0128.js +0 -1
  471. package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-60a25d1c4cbf0128.js +0 -1
  472. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-60a25d1c4cbf0128.js +0 -1
  473. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-60a25d1c4cbf0128.js +0 -1
  474. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-60a25d1c4cbf0128.js +0 -1
  475. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-60a25d1c4cbf0128.js +0 -1
  476. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-60a25d1c4cbf0128.js +0 -1
  477. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-60a25d1c4cbf0128.js +0 -1
  478. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-60a25d1c4cbf0128.js +0 -1
  479. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-60a25d1c4cbf0128.js +0 -1
  480. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-60a25d1c4cbf0128.js +0 -1
  481. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-60a25d1c4cbf0128.js +0 -1
  482. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-60a25d1c4cbf0128.js +0 -1
  483. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-60a25d1c4cbf0128.js +0 -1
  484. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-60a25d1c4cbf0128.js +0 -1
  485. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-60a25d1c4cbf0128.js +0 -1
  486. package/dist/standalone/.next/static/chunks/app/api/accounts/route-60a25d1c4cbf0128.js +0 -1
  487. package/dist/standalone/.next/static/chunks/app/api/agent/route-60a25d1c4cbf0128.js +0 -1
  488. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-60a25d1c4cbf0128.js +0 -1
  489. package/dist/standalone/.next/static/chunks/app/api/answer/route-60a25d1c4cbf0128.js +0 -1
  490. package/dist/standalone/.next/static/chunks/app/api/artifact/route-60a25d1c4cbf0128.js +0 -1
  491. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-60a25d1c4cbf0128.js +0 -1
  492. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-60a25d1c4cbf0128.js +0 -1
  493. package/dist/standalone/.next/static/chunks/app/api/attention/route-60a25d1c4cbf0128.js +0 -1
  494. package/dist/standalone/.next/static/chunks/app/api/board/route-60a25d1c4cbf0128.js +0 -1
  495. package/dist/standalone/.next/static/chunks/app/api/bridge/route-60a25d1c4cbf0128.js +0 -1
  496. package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-60a25d1c4cbf0128.js +0 -1
  497. package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-60a25d1c4cbf0128.js +0 -1
  498. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-60a25d1c4cbf0128.js +0 -1
  499. package/dist/standalone/.next/static/chunks/app/api/conversations/route-60a25d1c4cbf0128.js +0 -1
  500. package/dist/standalone/.next/static/chunks/app/api/files/route-60a25d1c4cbf0128.js +0 -1
  501. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-60a25d1c4cbf0128.js +0 -1
  502. package/dist/standalone/.next/static/chunks/app/api/flows/route-60a25d1c4cbf0128.js +0 -1
  503. package/dist/standalone/.next/static/chunks/app/api/image/route-60a25d1c4cbf0128.js +0 -1
  504. package/dist/standalone/.next/static/chunks/app/api/inbox/route-60a25d1c4cbf0128.js +0 -1
  505. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-60a25d1c4cbf0128.js +0 -1
  506. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-60a25d1c4cbf0128.js +0 -1
  507. package/dist/standalone/.next/static/chunks/app/api/limits/route-60a25d1c4cbf0128.js +0 -1
  508. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-60a25d1c4cbf0128.js +0 -1
  509. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-60a25d1c4cbf0128.js +0 -1
  510. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-60a25d1c4cbf0128.js +0 -1
  511. package/dist/standalone/.next/static/chunks/app/api/log/route-60a25d1c4cbf0128.js +0 -1
  512. package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-60a25d1c4cbf0128.js +0 -1
  513. package/dist/standalone/.next/static/chunks/app/api/logs/route-60a25d1c4cbf0128.js +0 -1
  514. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-60a25d1c4cbf0128.js +0 -1
  515. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-60a25d1c4cbf0128.js +0 -1
  516. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/route-60a25d1c4cbf0128.js +0 -1
  517. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/settings/route-60a25d1c4cbf0128.js +0 -1
  518. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-60a25d1c4cbf0128.js +0 -1
  519. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-60a25d1c4cbf0128.js +0 -1
  520. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-60a25d1c4cbf0128.js +0 -1
  521. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-60a25d1c4cbf0128.js +0 -1
  522. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-60a25d1c4cbf0128.js +0 -1
  523. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-60a25d1c4cbf0128.js +0 -1
  524. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-60a25d1c4cbf0128.js +0 -1
  525. package/dist/standalone/.next/static/chunks/app/api/proc/route-60a25d1c4cbf0128.js +0 -1
  526. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-60a25d1c4cbf0128.js +0 -1
  527. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-60a25d1c4cbf0128.js +0 -1
  528. package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-60a25d1c4cbf0128.js +0 -1
  529. package/dist/standalone/.next/static/chunks/app/api/push/route-60a25d1c4cbf0128.js +0 -1
  530. package/dist/standalone/.next/static/chunks/app/api/resources/route-60a25d1c4cbf0128.js +0 -1
  531. package/dist/standalone/.next/static/chunks/app/api/roles/route-60a25d1c4cbf0128.js +0 -1
  532. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-60a25d1c4cbf0128.js +0 -1
  533. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-60a25d1c4cbf0128.js +0 -1
  534. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-60a25d1c4cbf0128.js +0 -1
  535. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-60a25d1c4cbf0128.js +0 -1
  536. package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-60a25d1c4cbf0128.js +0 -1
  537. package/dist/standalone/.next/static/chunks/app/api/runtime/inject/route-60a25d1c4cbf0128.js +0 -1
  538. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-60a25d1c4cbf0128.js +0 -1
  539. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-60a25d1c4cbf0128.js +0 -1
  540. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-60a25d1c4cbf0128.js +0 -1
  541. package/dist/standalone/.next/static/chunks/app/api/runtime/queue/route-60a25d1c4cbf0128.js +0 -1
  542. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-60a25d1c4cbf0128.js +0 -1
  543. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-60a25d1c4cbf0128.js +0 -1
  544. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-60a25d1c4cbf0128.js +0 -1
  545. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-60a25d1c4cbf0128.js +0 -1
  546. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-60a25d1c4cbf0128.js +0 -1
  547. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-60a25d1c4cbf0128.js +0 -1
  548. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-60a25d1c4cbf0128.js +0 -1
  549. package/dist/standalone/.next/static/chunks/app/api/session/route-60a25d1c4cbf0128.js +0 -1
  550. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-60a25d1c4cbf0128.js +0 -1
  551. package/dist/standalone/.next/static/chunks/app/api/session/title/route-60a25d1c4cbf0128.js +0 -1
  552. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-60a25d1c4cbf0128.js +0 -1
  553. package/dist/standalone/.next/static/chunks/app/api/spawn/route-60a25d1c4cbf0128.js +0 -1
  554. package/dist/standalone/.next/static/chunks/app/api/spawn/validate/route-60a25d1c4cbf0128.js +0 -1
  555. package/dist/standalone/.next/static/chunks/app/api/staging/route-60a25d1c4cbf0128.js +0 -1
  556. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-60a25d1c4cbf0128.js +0 -1
  557. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-60a25d1c4cbf0128.js +0 -1
  558. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-60a25d1c4cbf0128.js +0 -1
  559. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-60a25d1c4cbf0128.js +0 -1
  560. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-60a25d1c4cbf0128.js +0 -1
  561. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-60a25d1c4cbf0128.js +0 -1
  562. package/dist/standalone/.next/static/chunks/app/api/tasks/route-60a25d1c4cbf0128.js +0 -1
  563. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-60a25d1c4cbf0128.js +0 -1
  564. package/dist/standalone/.next/static/chunks/app/api/telegram/route-60a25d1c4cbf0128.js +0 -1
  565. package/dist/standalone/.next/static/chunks/app/api/timeline/route-60a25d1c4cbf0128.js +0 -1
  566. package/dist/standalone/.next/static/chunks/app/api/tmux/route-60a25d1c4cbf0128.js +0 -1
  567. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-60a25d1c4cbf0128.js +0 -1
  568. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-60a25d1c4cbf0128.js +0 -1
  569. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-60a25d1c4cbf0128.js +0 -1
  570. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-60a25d1c4cbf0128.js +0 -1
  571. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-60a25d1c4cbf0128.js +0 -1
  572. package/dist/standalone/.next/static/chunks/app/api/tts/route-60a25d1c4cbf0128.js +0 -1
  573. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-60a25d1c4cbf0128.js +0 -1
  574. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-60a25d1c4cbf0128.js +0 -1
  575. package/dist/standalone/.next/static/chunks/app/api/workflows/route-60a25d1c4cbf0128.js +0 -1
  576. package/dist/standalone/.next/static/chunks/app/page-1cde2db61f461960.js +0 -125
  577. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-60a25d1c4cbf0128.js +0 -1
  578. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-60a25d1c4cbf0128.js +0 -1
  579. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-60a25d1c4cbf0128.js +0 -1
  580. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-60a25d1c4cbf0128.js +0 -1
  581. package/dist/standalone/.next/static/css/b25c03e915fd256b.css +0 -1
  582. /package/dist/standalone/.next/static/{836HTp-5V8cZC5YWFVOCk → fQ2a5S10vvpyAqE0L_wUj}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";exports.id=8513,exports.ids=[8513],exports.modules={48513:(a,b,c)=>{c.r(b),c.d(b,{executeSpawnRequest:()=>aF,fenceSpawnAdmissionRejection:()=>aC,productionSpawnCommandDependencies:()=>aB,spawnSuggestions:()=>aE});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(34995),k=c(82940),l=c(68465),m=c(63685),n=c(65236),o=c(58577),p=c(22993),q=c(70160),r=c(22619),s=c(23953),t=c(72294),u=c(51888),v=c(50193),w=c(97386),x=c(21420),y=c(77598),z=c.n(y);function A(a){return z().createHash("sha256").update(JSON.stringify(a)).digest("hex")}function B(a){return"string"==typeof a.parentConversationId?{conversationId:a.parentConversationId}:"string"==typeof a.parent?{path:a.parent}:"string"==typeof a.src?{path:a.src}:null}var C=c(88623),D=c(3187),E=c(8292),F=c(60546);function G(a,b=a.artifactPath,c={}){let d="structured"===a.transport||null===a.transport&&!0===c.structured,e=(null!==a.verifiedHost||!0===c.structured&&"completed"===a.state)&&"failed"!==a.state&&"conflicted"!==a.state,f=(0,q.Vt)().allowsReceipt(a,{structured:d})?b:null;return{ok:!0,target:a.pane?.paneId??a.target??null,path:f,...d&&"claude"===a.engine?{effectivePermissionMode:a.launchProfile.permissionMode??"default"}:{},launchId:a.launchId,conversationId:a.conversationId,parent:a.parentConversationId?{conversationId:a.parentConversationId,source:a.parentSource}:null,launched:e,retrySafe:"failed"===a.state,initialMessage:c.initialMessage??("failed"===a.state||"conflicted"===a.state?"failed":"completed"===a.state||"prompt-delivered"===a.state?"delivered":d&&"path-pending"===a.state?"queued":"pending"),...a.error?{error:a.error}:{},state:"conflicted"===a.state?"conflict":"failed"===a.state?"failed":"starting"===a.state||"pane-bound"===a.state?"starting":"host-verified"===a.state||"prompt-delivered"===a.state||"path-pending"===a.state?"path-pending":"settled",transport:d?"structured":"tmux"}}var H=c(7733),I=c(72674),J=c(66852),K=c(59397);let L=["localhost","127.0.0.1","::1"];function M(a){if(a.startsWith("[")){let b=a.indexOf("]");return -1===b?a:a.slice(1,b)}let b=a.lastIndexOf(":");return -1===b?a:a.slice(0,b)}function N(){return j.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}var O=c(93994),P=c(75040),Q=c(45867),R=c(16196),S=c(74607),T=c(47473),U=c(75211),V=c(51571),W=c(88370),X=c(66324),Y=c(14310),Z=c(53424),$=c(27146),_=c(14928),aa=c(28976);let ab=["project-catalog.json","worktree-map.json"],ac=(0,aa.E)("project-directories-v2");function ad(a){try{let b=JSON.parse(e().readFileSync(a,"utf8"));return b&&"object"==typeof b&&!Array.isArray(b)?b:null}catch{return null}}function ae(a,b,c){if(!(!a||"object"!=typeof a||Array.isArray(a)))for(let d of b){let b=a[d];"string"==typeof b&&b.trim()&&c.add(b)}}var af=c(57718),ag=c(53740),ah=c(31014),ai=c(48375),aj=c(46211),ak=c(89204),al=c(80588),am=c(76190);function an(a,b,c="activity"){return function(...a){return z().createHash("sha256").update(a.join("\0")).digest("hex")}("activity"===c?"llv-wakatime-heartbeat-v1":"llv-wakatime-boundary-v1",a,b)}function ao(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function ap(a){return"number"==typeof a&&Number.isFinite(a)}function aq(a){return Number.isSafeInteger(a)&&a>=0}function ar(a,b=(0,$.BQ)("wakatime-state.json"),c=am.N){if(c()){if(!/^[a-f0-9]{64}$/.test(a.key)||"claude"!==a.engine&&"codex"!==a.engine||!a.project.trim()||a.project.trim()===aj.Mv||!Number.isSafeInteger(a.atMs)||a.atMs<=0)throw Error("direct operator heartbeat is invalid");(0,ak.Ol)(b,"WakaTime state is busy",()=>{let c=function(a){if(!ao(a)||1!==a.version||!ap(a.enabledAtMs)||!ao(a.streams)||!Array.isArray(a.pending)||!ao(a.retry)||!ao(a.counters))return null;let b=a.credentialGeneration??null;if(!(null===b||"string"==typeof b&&/^[a-f0-9]{64}$/.test(b)))return null;let c={};for(let[b,d]of Object.entries(a.streams)){if(!/^[a-f0-9]{64}$/.test(b)||!ao(d)||"string"!=typeof d.entity||"claude"!==d.engine&&"codex"!==d.engine||"string"!=typeof d.project||0===d.project.length||!ap(d.startedAtMs)||!(null===d.endedAtMs||ap(d.endedAtMs))||!ap(d.lastMaterializedAtMs)||!ap(d.lastObservedAtMs)||!(void 0===d.boundaryFinalizedAtMs||null===d.boundaryFinalizedAtMs||ap(d.boundaryFinalizedAtMs))||null!==d.endedAtMs&&d.endedAtMs<=d.startedAtMs||d.lastMaterializedAtMs<d.startedAtMs-1)return null;c[b]={entity:d.entity,engine:d.engine,project:d.project,startedAtMs:d.startedAtMs,endedAtMs:d.endedAtMs,lastMaterializedAtMs:d.lastMaterializedAtMs,lastObservedAtMs:d.lastObservedAtMs,boundaryFinalizedAtMs:d.boundaryFinalizedAtMs??null}}let d={},e=a.retiredStreams??{};if(!ao(e))return null;for(let[a,b]of Object.entries(e)){if(!/^[a-f0-9]{64}$/.test(a)||!ao(b)||!ap(b.lastMaterializedAtMs)||!ap(b.lastObservedAtMs)||!(null===b.boundaryFinalizedAtMs||ap(b.boundaryFinalizedAtMs))||!ap(b.expiresAtMs))return null;d[a]={lastMaterializedAtMs:b.lastMaterializedAtMs,lastObservedAtMs:b.lastObservedAtMs,boundaryFinalizedAtMs:b.boundaryFinalizedAtMs,expiresAtMs:b.expiresAtMs}}let f=[],g=new Set;for(let b of a.pending){var h;if(!ao(b)||"string"!=typeof b.key||!/^[a-f0-9]{64}$/.test(b.key)||"string"!=typeof b.stream||!ap(b.createdAtMs))return null;let a=ao(h=b.heartbeat)&&"string"==typeof h.entity&&0!==h.entity.length&&"app"===h.type&&"string"==typeof h.project&&0!==h.project.length&&"ai coding"===h.category&&ap(h.time)&&"string"==typeof h.ai_session&&64===h.ai_session.length?{entity:h.entity,type:"app",project:h.project,category:"ai coding",time:h.time,ai_session:h.ai_session}:null;if(!a)return null;let d=void 0===b.kind?"activity":b.kind;if("activity"!==d&&"boundary"!==d)return null;let e=c[b.stream],i=1e3*a.time;if(!e||!Number.isSafeInteger(i)||a.ai_session!==b.stream||a.entity!==("boundary"===d?`agent-log-viewer/boundary/${b.stream.slice(0,16)}`:e.entity)||a.project!==("boundary"===d?"agent-log-viewer-boundary":e.project)||b.key!==an(b.stream,i,d))return null;g.has(b.key)||(f.push({key:b.key,stream:b.stream,kind:d,createdAtMs:b.createdAtMs,heartbeat:a}),g.add(b.key))}let i=a.retry,j=i.reason;if(!aq(i.failures)||!ap(i.retryAtMs)||null!==j&&"network"!==j&&"timeout"!==j&&"rate_limit"!==j&&"server"!==j&&"auth"!==j)return null;let k=a.counters;return aq(k.accepted)&&aq(k.permanentlyRejected)&&aq(k.compacted)&&aq(k.dropped)&&aq(k.historyGaps)?{version:1,enabledAtMs:a.enabledAtMs,credentialGeneration:b,streams:c,pending:f,retry:{failures:i.failures,retryAtMs:i.retryAtMs,reason:j},counters:{accepted:k.accepted,permanentlyRejected:k.permanentlyRejected,compacted:k.compacted,dropped:k.dropped,historyGaps:k.historyGaps},retiredStreams:d}:null}(function(a=(0,$.BQ)("wakatime-state.json")){try{return JSON.parse(e().readFileSync(a,"utf8"))}catch(a){if("ENOENT"===a.code)return null;throw a}}(b))??{version:1,enabledAtMs:a.atMs,credentialGeneration:null,streams:{},retiredStreams:{},pending:[],retry:{failures:0,retryAtMs:0,reason:null},counters:{accepted:0,permanentlyRejected:0,compacted:0,dropped:0,historyGaps:0}};!function(a,b,c,d){if(a.streams[b.key]||a.retiredStreams?.[b.key])return;let e=`agent-log-viewer/operator/${b.engine}/${b.key.slice(0,16)}`;a.streams[b.key]={entity:e,engine:b.engine,project:b.project,startedAtMs:b.atMs,endedAtMs:b.atMs+1,lastMaterializedAtMs:b.atMs+1,lastObservedAtMs:b.atMs,boundaryFinalizedAtMs:b.atMs+1};let f=an(b.key,b.atMs);d.has(f)||(a.pending.push({key:f,stream:b.key,kind:"activity",createdAtMs:c,heartbeat:{entity:e,type:"app",project:b.project,category:"ai coding",time:b.atMs/1e3,ai_session:b.key}}),d.add(f))}(c,{...a,project:a.project.trim()},a.atMs,new Set(c.pending.map(a=>a.key)));e().mkdirSync(i().dirname(b),{recursive:!0,mode:448});let d=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${z().randomUUID()}.tmp`);try{e().writeFileSync(d,`${JSON.stringify(c,null,2)}
2
- `,{encoding:"utf8",mode:384}),e().renameSync(d,b)}finally{try{e().unlinkSync(d)}catch{}}})}}c(58444),c(97347),c(55686);let as={transcriptAllowed:D.FK,readCwd:a=>(0,J.tX)(a),isDirectory:a=>{try{return e().statSync(a).isDirectory()}catch{return!1}}};var at=c(6082),au=c(82059),av=c(15723);let aw=ah.en["spawnCard.pinUnavailableFallback"],ax=ai.uk["spawnCard.pinUnavailableFallback"],ay="string"==typeof ax?ax:aw;function az(a){let b=a.headers.get("accept-language")?.trim().toLowerCase()??"";return"uk"===b||b.startsWith("uk-")}class aA extends Error{}let aB={registry:q.agentRegistry,resolveHealthySpawnAccount:n.ax,resolveSpawnAccount:(a,b)=>n.accountManager.resolveSpawn(a,b),resolvePinnedSpawnAdmission:U.jJ,runtimeHostClient:O.sS,publishFilesRevision:Q.G,spawnStructuredConversation:U.sh,assertStructuredRuntime:x.x_,defer:a=>(0,j.after)(a),storeImages:a=>(0,S.PF)().putMany(a),adoptPipelineAttemptFromSource:W.F_,pipelineAttemptTargetForSource:W.RO,recordOperatorActivity:function(a,b={}){let c={enabled:b.enabled??am.N,now:b.now??Date.now,registrySnapshot:b.registrySnapshot??(()=>(0,q.agentRegistry)().readOnlySnapshot()),enqueue:b.enqueue??ar,reportStorageFailure:b.reportStorageFailure??((a,b)=>console.error(`[wakatime] ${a}`,b))};if(!c.enabled())return null;let d=a.idempotencyKey?.trim()??"",e=a.resolvedAttribution;if(e&&("claude"!==e.engine&&"codex"!==e.engine||!e.project.trim()||e.project===aj.Mv))throw Error("direct operator activity attribution is invalid");let f=e?null:(0,q.MA)(c.registrySnapshot()),g=a.conversationId?.trim()??"",h=a.path?.trim()??"",i=g.startsWith("conversation_")?f?.conversation(g)??null:null,j=h?f?.conversationForPath(h)??null:null,k=i?new Set([...i.generations.map(a=>a.path),...i.continuityPaths,...i.abandonedContinuityPaths]):null;if(i&&j&&i.id!==j.id||i&&h&&!k?.has(h))throw Error("direct operator activity has conflicting target evidence");let l=i??j,m=a.fallbackEntry,n=e?.engine??l?.engine??(m?.engine==="claude"||m?.engine==="codex"?m.engine:null);if(!n)throw Error("direct operator activity target is unavailable");let o=l?.generations.at(-1),p=e?.project.trim()??(0,al.x)({projectOwnership:l?.projectOwnership,cwd:o?.launchProfile.cwd||m?.cwd,launchProfileProject:o?.launchProfile.project,fallbackProject:m?.project}).project;if(!p||p===aj.Mv)throw Error("direct operator activity project is unavailable");let r=c.now();if(!Number.isSafeInteger(r)||r<=0)throw Error("direct operator activity time is invalid");let s={key:d?function(...a){return z().createHash("sha256").update(a.join("\0")).digest("hex")}("llv-wakatime-direct-operator-v1",d):z().randomBytes(32).toString("hex"),engine:n,project:p,atMs:r};try{c.enqueue(s)}catch(a){c.reportStorageFailure("operator_activity_not_stored",{outcome:function(a){if(a instanceof ak.Qm)return"busy";if(a instanceof SyntaxError)return"state_unreadable";let b=a?.code;return"string"==typeof b&&/^E[A-Z]{1,15}$/.test(b)?b:"unavailable"}(a)})}return s}};function aC(a,b,c,d){let e="string"==typeof a.clientAttemptId?a.clientAttemptId:null;if(!e||!/^[A-Za-z0-9_-]{8,128}$/.test(e))return null;try{return(0,F.L8)({clientAttemptId:e,requestDigest:A(a),status:b,error:c},()=>d.registry().spawnReceiptForClientAttempt(e))}catch{return null}}function aD(a,b,c){!b||a.includes(b)||c&&(0,Y.hY)(b)!==c||a.push(b)}async function aE(a){let b=a.nextUrl.searchParams.get("project")??"",{cwd:c,cwdExists:d}=function(a,b=as){if(!a||!b.transcriptAllowed(a))return{cwd:null,cwdExists:!1};let c=b.readCwd(a);return{cwd:c,cwdExists:!!(c&&b.isDirectory(c))}}(a.nextUrl.searchParams.get("src")),f=(await (0,X.CS)()).filter(a=>a.path.endsWith(".jsonl")&&("claude-projects"===a.root||"codex-sessions"===a.root)).filter(a=>!a.path.includes(i().sep+"subagents"+i().sep)).sort((a,c)=>Number(c.project===b)-Number(a.project===b)||c.mtime-a.mtime).slice(0,80),h=c?[c]:[];if(!c)for(let a of function(a,b=10){return a?(function(){let a=(0,$.Pn)(),b=function(a){let b=ab.map(b=>{let c=i().join(a,b);try{let a=e().statSync(c);return`${b}:${a.dev}:${a.ino}:${a.size}:${a.mtimeMs}:${a.ctimeMs}`}catch{return`${b}:missing`}}),c=i().join(a,"state.sqlite");for(let[d,f]of[["flows","flows.json"],["pipelines","pipelines.json"],["workflows","workflows.json"]]){let g=(0,_.jY)(c,d);if(null!==g)b.push(`${d}:sqlite:${g}`);else{let c=i().join(a,f);try{let a=e().statSync(c);b.push(`${f}:${a.dev}:${a.ino}:${a.size}:${a.mtimeMs}:${a.ctimeMs}`)}catch{b.push(`${f}:missing`)}}}return b.join("|")}(a),c=ac.get(a);if(c&&c.expiresAt>Date.now()&&c.stateIdentity===b)return c.directories;let d=[],f=new Set;for(let b of function(a){let b=new Set,c=ad(i().join(a,"project-catalog.json"))?.files;if(c&&"object"==typeof c&&!Array.isArray(c))for(let a of Object.values(c))ae(a,["cwd","projectRoot"],b);let d=i().join(a,"state.sqlite");for(let[c,e,f]of[["flows.json","flows",["cwd"]],["pipelines.json","pipelines",["repoDir","worktreeDir"]],["workflows.json","workflows",["repoDir","worktreeDir"]]]){let g=(0,_.Vx)(d,e)??ad(i().join(a,c))?.[e];if(Array.isArray(g))for(let a of g)ae(a,f,b)}let e=ad(i().join(a,"worktree-map.json"));if(e)for(let[a,c]of Object.entries(e))b.add(a),ae(c,["repo"],b);return[...b]}(a)){try{if(!e().statSync(b).isDirectory())continue}catch{continue}let a=(0,Y.hY)(b),c=(0,Y.D$)(b)??(a?.startsWith("dir-")?b:void 0),g=a?`${a}\0${b}`:"";!a||!c||f.has(g)||(f.add(g),d.push({cwd:b,project:a,projectRoot:c}))}return ac.set(a,{directories:d,expiresAt:Date.now()+1e4,stateIdentity:b}),d})().filter(b=>b.project===a).slice(0,b).map(a=>a.cwd):[]}(b,10))aD(h,a,b);for(let a of f){if(h.length>=10)break;b&&a.project!==b||aD(h,(0,J.tX)(a.path,{requireDir:!0}),b)}h.length||h.push(g().homedir());let k=(0,V.l)();return j.NextResponse.json({dirs:h,cwd:c,cwdExists:d,spawnTransport:k,imageInput:{claude:(0,S.ki)("claude","structured"===k),codex:(0,S.ki)("codex","structured"===k&&(0,u.JL)(null))}})}async function aF(a,b=aB){var c;let d,f,h,x=function(a){let b=new Set(L),c=process.env.LLV_TS_HOST;c&&b.add(M(c));let d=a.headers.get("host");if(null===d||!b.has(M(d)))return N();let e=a.headers.get("origin");if(null!==e){let a;try{a=new URL(e).host}catch{a=null}if(null===a||!b.has(M(a)))return N()}let f=a.headers.get("sec-fetch-site");return null!==f&&"same-origin"!==f&&"none"!==f?N():null}(a);if(x)return x;try{d=await a.json()}catch{return j.NextResponse.json({error:"invalid JSON"},{status:400})}let y=(0,s.t3)(d.mcpServers);if(!y.ok)return j.NextResponse.json({error:y.error},{status:400});let z=void 0===d.mcpServers?null:y.value,J=(0,t.jh)(d.plugins);if(!J.ok)return j.NextResponse.json({error:J.error},{status:400});let Q=(0,at.s0)(a),S=null,W=null,X=null;if(Q)try{S=b.registry();let c=(0,at.X0)(a,d.src,S);"error"in c?X=c:W=c}catch(a){X={error:a instanceof Error?a.message:String(a),status:503}}let $=a=>(X||aC(d,400,a,b),j.NextResponse.json({error:a},{status:400})),_=(0,at.QD)(a,d);if(_)return $(_);if(void 0!==d.allowSubagents&&"boolean"!=typeof d.allowSubagents)return j.NextResponse.json({error:"allowSubagents must be a boolean"},{status:400});let aa=(0,w.s8)(d);if(!aa.ok)return $(aa.error);let ab=(0,at.Fk)(aa.value?.role??null,d);if(ab)return $(ab);if(aa.value&&(0,F.n4)(aa.value.role)&&!0===d.allowSubagents)return j.NextResponse.json({error:`${aa.value.role} launches cannot enable subagents: reviewer and verifier sessions run every check in-session`},{status:400});let ac="claude"===d.engine||"codex"===d.engine?d.engine:aa.value?.config.engine??null;if(!ac)return j.NextResponse.json({error:"engine must be claude or codex"},{status:400});if(void 0!==d.accountId&&"string"!=typeof d.accountId)return j.NextResponse.json({error:"accountId must be a string"},{status:400});if(void 0!==d.clientAttemptId&&("string"!=typeof d.clientAttemptId||!/^[A-Za-z0-9_-]{8,128}$/.test(d.clientAttemptId)))return j.NextResponse.json({error:"clientAttemptId must be 8-128 URL-safe characters"},{status:400});let ad=(0,r.BL)(ac,{...d,model:d.model??aa.value?.config.model??(0,u.Gh)(ac),effort:void 0===d.effort?aa.value?.config.effort:d.effort});if(ad.error)return j.NextResponse.json({error:ad.error},{status:400});let ae=(0,u.wi)({model:void 0===d.model?aa.value?.config.model:d.model});if(ae.error)return j.NextResponse.json({error:ae.error},{status:400});if(void 0!==d.model&&null!==d.model&&ae.model){let a=(0,u.RC)(ac,ae.model);if("error"in a)return j.NextResponse.json({error:a.error},{status:400})}let ah="string"==typeof d.prompt?d.prompt.trim():"",ai=aa.value?[aa.value.scaffold,ah].filter(Boolean).join("\n\n"):ah,{images:aj,error:ak}=(0,ag.Fu)(d);if(ak)return j.NextResponse.json({error:ak.error},{status:ak.status});let al=void 0===d.title?null:(0,af.St)("string"==typeof d.title?d.title:null,120);if(void 0!==d.title&&!al)return j.NextResponse.json({error:"title must be a semantic, non-placeholder string"},{status:400});let am=(0,af.V0)(ah,60)?(0,af.bF)(aa.value?.role??ac,ah):null;try{f=(0,V.l)()}catch(a){return j.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}if("structured"===f){try{b.assertStructuredRuntime()}catch(a){return j.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:503})}let a=(0,V.H)({engine:ac,model:ae.model,hasImages:aj.length>0,fast:ad.fast});if(a)return j.NextResponse.json({error:a},{status:409});try{(0,T.h1)(ai)}catch(a){return j.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:413})}}let an=S??b.registry(),ao="string"==typeof d.clientAttemptId?d.clientAttemptId:null,ap=ao?an.spawnReceiptForClientAttempt(ao):null;if(!al&&!ap)return j.NextResponse.json({error:af.QE},{status:400});let aq=al??am??(0,af.St)(ap?.launchProfile.title,120);if(!aq)return j.NextResponse.json({error:af.QE},{status:400});if(Q&&X)return j.NextResponse.json({error:X.error},{status:X.status??403});if(Q&&!0===d.allowSubagents&&W?.kind!=="operator")return j.NextResponse.json({error:"allowSubagents requires an authenticated Viewer operator spawn"},{status:403});let ar=null;if(void 0!==d.project&&null!==d.project){if(!(ar="string"==typeof d.project?(0,o.QK)(d.project):null))return j.NextResponse.json({error:"project must be a valid project key"},{status:400});if(Q&&W?.kind!=="operator")return j.NextResponse.json({error:"explicit project requires an authenticated Viewer operator spawn"},{status:403})}let as=null;if(void 0!==d.supersedes&&null!==d.supersedes){if("string"!=typeof d.supersedes||!d.supersedes.trim())return j.NextResponse.json({error:"supersedes must name a conversation id or transcript path"},{status:400});let a=d.supersedes.trim(),b=a.startsWith("conversation_")?an.conversation(a):an.conversationForPath(a);if(!b)return j.NextResponse.json({error:"supersedes does not resolve to a known conversation"},{status:404});let c=an.supersedenceConflict(b.id);if(c)return j.NextResponse.json({error:`supersedes conflicts with the live conversation ${c}`,successorConversationId:c},{status:409});as=b.id}let ax="string"==typeof d.cwd?d.cwd.trim():"";if(!ax)return j.NextResponse.json({error:"working directory is required"},{status:400});let aD=i().resolve("~"===ax||ax.startsWith("~/")?i().join(g().homedir(),ax.slice(1)):ax);try{h=e().statSync(aD)}catch{return j.NextResponse.json({error:`directory does not exist: ${aD}`},{status:400})}if(!h.isDirectory())return j.NextResponse.json({error:`not a directory: ${aD}`},{status:400});let aE=(0,v.kg)(a).ok;if(aE&&!ao)return j.NextResponse.json({error:"clientAttemptId is required for direct operator spawn"},{status:400});if(aE){let a=ar??(0,Y.hY)(aD);if(!a)return j.NextResponse.json({error:"project could not be resolved for direct operator spawn"},{status:400});try{b.recordOperatorActivity?.({idempotencyKey:`spawn:${ao}`,resolvedAttribution:{engine:ac,project:a}})}catch{return j.NextResponse.json({error:"direct operator activity could not be recorded"},{status:503})}}let aG=[],aH=null;try{let g,h,k,r=void 0===d.title||al===am,u=ap?.identityWaveTitleBackfill===!0&&r,v=u?(0,af.St)(ap.launchProfile.title,120)??aq:aq,w=(0,D.bs)((0,at.qe)(W,{...d,role:aa.value?.role}),an),x=w.parent,y=w.reviewed?.conversationId??null;if(Q&&W?.kind==="agent"&&!x)return j.NextResponse.json({error:at.HJ},{status:400});let E=W?.kind==="agent"?"string"==typeof d.src&&!!d.src.trim():"string"==typeof d.src&&!!d.src.trim()||"string"==typeof d.parent&&!!d.parent.trim()||void 0!==d.parentConversationId||"string"==typeof d.reviews&&!!d.reviews.trim(),L=x?E?"explicit":"inferred-caller":null,M=x?.conversationId??null,N="string"==typeof d.src&&d.src.trim()?M:null,S=x?.sessionKey??null,T=x?.artifactPath??null,V=(0,t.GU)({origin:{kind:W?.kind==="agent"?"agent":"operator"},parentConversationId:M,agentRole:aa.value?.role??null}),X=b.internalGrant?.()??null,$=X?.sessionClass===s.Vv?X:null,_=$?[...t.sN]:(0,t.wE)({engine:ac,origin:V,requested:J.value}),ab=$?(0,s.c1)($.mcpServers):(0,s.Mt)({origin:V,requested:z}),ak=(a,b=!1)=>{var c;let e,f=(c={engine:ac,cwd:aD,model:ae.model,effort:ad.effort,fast:ad.fast,accountId:a,role:aa.value?.role??null,title:aq,mcpServers:ab,..._.length?{plugins:_}:{},...!0===d.allowSubagents?{allowSubagents:!0}:{},...ar?{project:ar}:{},parent:B({parentConversationId:M??void 0}),...y?{reviews:B({parentConversationId:y})}:{},...as?{supersedes:B({parentConversationId:as})}:{},prompt:ai,images:aj.map(a=>{var b;return{mime:a.mime,digest:(b={image:a.base64},A(b))}})},e=Object.fromEntries(Object.entries(c).filter(([a])=>"title"!==a)),{current:A(c),withoutTitle:A(e)});if(u||b&&ap)return ap.requestDigest===f.current?f.current:f.withoutTitle;let g=(0,af.St)(ap?.launchProfile.title,120);return ap&&g&&g!==aq||ap?.requestDigest===f.current?f.current:f.withoutTitle},au=N&&b.pipelineAttemptTargetForSource?b.pipelineAttemptTargetForSource(N):null,ax=!$&&(ah.trim()||aj.length)?{prompt:ah,images:aj.length,echo:ai}:null,aB="string"==typeof d.taskId&&d.taskId.trim()?[d.taskId.trim()]:null,aC=(a,b,c,e=void 0!==d.accountId)=>({engine:ac,cwd:aD,transport:f,accountId:a,accountPin:e,parentConversationId:M,parentSource:L,parentSessionKey:S,parentArtifactPath:T,role:aa.value?.role??null,reviewsConversationId:y,explicitProject:ar,supersedes:as,supersedesReason:"recovery-spawn",liveChildrenCap:W?.liveChildrenCap,origin:W?.kind==="agent"?{kind:"agent",conversationId:W.conversationId}:{kind:"operator"},launchProfile:b,clientAttemptId:ao,requestDigest:c,...aB?{taskIds:aB}:{},launchDisplay:ax,memberships:au&&N?[{kind:"pipeline",containerId:au.pipelineId,role:au.role,slot:`adopt:${au.stageId}:${c.slice(0,24)}`,stageId:au.stageId,stageOrder:au.stageOrder,round:null,parentConversationId:N,runtime:{engine:ac,model:b.model,effort:b.effort}}]:[]}),aE=(0,o.Ui)({cwd:aD,model:ae.model,effort:ad.effort,fast:ad.fast,parentConversationId:M,allowSubagents:!0===d.allowSubagents,mcpServers:ab,plugins:_,title:v,...ar?{project:ar}:{}}),aF=a=>{let b=d.accountId,c=(a instanceof Error?a.message:String(a)).slice(0,240),e=an.beginSpawnRequest(aC(b,aE,ak(b)));if("conflict"===e.kind)return j.NextResponse.json({error:"spawn attempt conflicts with its original request"},{status:409});"created"===e.kind&&("structured"===f?an.failStructuredSpawn(e.receipt.launchId,c):an.failSpawn(e.receipt.launchId,c));let g=an.readOnlySnapshot().receipts[e.receipt.launchId]??e.receipt;return j.NextResponse.json(G(g,g.artifactPath,{structured:"structured"===f}))};if(ap&&void 0!==d.accountId&&ap.accountPin&&("failed"===ap.state||"conflicted"===ap.state))return aF(Error(ap.error??"the requested account is not available for this launch"));let aI="string"==typeof d.accountId?d.accountId:null,aJ=ar??(0,Y.hY)(aD);try{g=ap&&null!==ap.accountId&&!(ap.accountPin&&aI)?b.resolveSpawnAccount(ap.engine,ap.accountId):await b.resolveHealthySpawnAccount(ac,d.accountId,aJ,ae.model)}catch(a){if(a instanceof Z.Uq||a instanceof n.fu)return j.NextResponse.json({error:a.message},{status:409});if(void 0===d.accountId)throw a;if("claude"!==ac||!aI)return aF(a);try{let c=b.resolveSpawnAccount(ac,aI),d=await (b.resolvePinnedSpawnAdmission??U.jJ)(ac,c,ae.model);if("retry-at"!==d.kind&&"admissible"!==d.kind)return aF(a);g={...c,admission:d,requestedAdmission:d}}catch{return aF(a)}}let aK=aI&&g.requestedAdmission?.kind==="retry-at"?g.requestedAdmission.retryAt:null,aL=aK?Date.parse(aK):NaN,aM=Number.isFinite(aL)&&aL>Date.now()?new Date(aL).toISOString():null;aM&&aI&&(g=b.resolveSpawnAccount(ac,aI));let aN=!!(aI&&!aM&&g.accountId!==aI),aO=ak("string"==typeof d.accountId?d.accountId:g.accountId,aN||null!==aM),aP=aM?(0,U.X3)(az(a)?"uk":"en",aM):null,aQ=aN?az(a)?ay:aw:null,aR=(c=g,h=(0,p.lV)(ac,aD,{model:ae.model,effort:ad.effort,fast:ad.fast,codexHome:"codex"===ac?c.home:null,claudeConfigDir:"claude"===ac?c.home:null,claudeProjectsDir:"claude"===ac?c.transcriptRoot:null,allowSubagents:!0===d.allowSubagents,mcpServers:ab,deferClaudeSpawnPolicy:!0}),k="claude"===ac&&"structured"===f?(0,U.eK)(h.launchProfile?.permissionMode,{agentInitiated:Q,operatorAuthenticated:W?.kind==="operator",roleSpawn:!!aa.value}):h.launchProfile?.permissionMode,{...h,launchProfile:(0,o.Ui)({...h.launchProfile??{},cwd:aD,parentConversationId:M,allowSubagents:!0===d.allowSubagents,mcpServers:ab,plugins:_,permissionMode:k,title:aQ??v,...ar?{project:ar}:{}})}),aS=()=>{if("claude"!==ac||"tmux"!==f)return;let a=i().basename(aR.transcript??"",".jsonl");(0,l.fg)(g.home)&&(0,H.prepareManagedClaudeSpawnHome)(g.home,aD),(0,H.applyClaudeSpawnPolicy)(g.home,{allowSubagents:!0===d.allowSubagents,baseSettingsPath:(0,l.fg)(g.home)?(0,l.ZK)():null,profileId:a,cwd:aD,mcpServers:ab,mcpStatePath:"managed"===g.kind?i().join(g.home,".claude.json"):i().join(i().dirname(g.home),".claude.json")})},aT=aN&&"string"==typeof d.accountId?d.accountId:g.accountId,aU=await (0,m.Cu)(async()=>{if(!ap&&ao){let b=(0,F.o)(ao);if(b){var a;if(b.requestDigest===(a=d,A(a)))throw new F.eO(b);throw new F.AO}}if(!ap){let a=b.resolveSpawnAccount(ac,g.accountId);if(a.accountId!==g.accountId||a.kind!==g.kind)throw Error("spawn account changed during admission")}return an.beginSpawnRequest(aC(aT,aR.launchProfile,aO,ap?.accountPin??void 0!==d.accountId))});if("conflict"===aU.kind)return j.NextResponse.json({error:"spawn attempt conflicts with its original request"},{status:409});"created"===aU.kind&&(aH=aU.receipt.launchId);let aV="created"===aU.kind&&aI&&g.accountId===aI?(0,av.u)({engine:ac,project:aJ,accountId:aI,conversationId:aU.receipt.conversationId??null,actor:W?.kind==="agent"?{kind:"agent",conversationId:W.conversationId}:{kind:"operator"},via:"launch"})??void 0:void 0,aW=a=>aV?{...a,accountOverride:aV}:a,aX=aU.receipt;if(aM&&aP&&aI){let c,d=aU.receipt.queuedPinnedSpawn;if(d)c=d.imageRefs;else try{c=b.storeImages(aj)}catch(a){throw new aA(a instanceof Error?a.message:String(a))}aX=an.queuePinnedSpawn(aU.receipt.launchId,{version:1,retryAt:aM,accountId:aI,locale:az(a)?"uk":"en",spec:aR,prompt:ai,imageRefs:c,parentArtifactPath:T,pipelineSourceConversationId:N},aP)}let aY=(a,b,c)=>{if(!c||a.accountId===b)return;let d=an.readOnlySnapshot(),e=d.receipts[a.launchId];if(!e?.key||e.artifactPath!==c)return;let f=d.entries[(0,C.pp)(e.key)],g=d.conversations[e.conversationId];f&&g&&(an.reconcileConversations([{engine:e.engine,path:c,accountId:b,launchProfile:e.launchProfile,turn:{state:g.turn.state,source:g.turn.source,terminalAt:g.turn.terminalAt},expectedTurnObservedAt:g.turn.observedAt,observedAt:new Date().toISOString()}]),an.upsert({...f,accountId:b}))},aZ=async(a,c)=>{if(!N||!b.adoptPipelineAttemptFromSource)return;let d=an.readOnlySnapshot().receipts[a.launchId]??a;try{await b.adoptPipelineAttemptFromSource(N,{launchId:d.launchId,conversationId:d.conversationId,sessionId:d.key?.sessionId??null,agentPath:c,paneId:d.verifiedHost?.paneId??d.pane?.paneId??null,startedAt:d.createdAt,runtime:{engine:d.engine,model:d.launchProfile.model,effort:d.launchProfile.effort}})}catch(a){console.error("[spawn] pipeline attempt adoption failed",{launchId:d.launchId,conversationId:d.conversationId,sourceConversationId:N,error:a})}},a$=(a,c,d)=>{b.defer(async()=>{let f;try{f=await b.spawnStructuredConversation({engine:ac,receipt:a,spec:aR,account:g,prompt:ai,imageRefs:d,registry:an,client:c}),aY(a,g.accountId,f.path)}catch(b){console.error("[spawn] structured launch failed",{launchId:a.launchId,conversationId:a.conversationId,error:b}),b instanceof O.Hr&&an.failStructuredSpawn(a.launchId,`structured spawn transport failed: ${b.message}`.slice(0,240));return}if(T&&f.path)try{(0,K.A6)(f.path,T),(0,K.OA)()}catch(b){console.error("[spawn] handoff lineage persistence failed",{launchId:a.launchId,conversationId:a.conversationId,childArtifactPath:f.path,parentArtifactPath:T,error:b})}if(f.path&&await aZ(a,f.path),f.path&&e().existsSync(f.path))try{await b.publishFilesRevision?.(c)}catch(b){console.error("[spawn] transcript materialization refresh failed",{launchId:a.launchId,conversationId:a.conversationId,artifactPath:f.path,error:b})}})};if("replay"===aU.kind){let a,c=(0,q.Vt)(an.readOnlySnapshot()).isStructured(aX),d=aX,e=c?b.runtimeHostClient():null;if(e&&!aM){try{let b=await (0,U.reconcileStructuredSpawnReplay)(d.launchId,an,e);d=b,a=b.initialMessage}catch{}let c=an.claimStartingStructuredSpawn(d.launchId);if(d=c.receipt,c.claimed){let a;try{a=b.storeImages(aj)}catch(a){throw c.receipt.admissionOwner&&an.releaseStartingStructuredSpawn(d.launchId,c.receipt.admissionOwner),new aA(a instanceof Error?a.message:String(a))}a$(d,e,a)}}d.artifactPath&&(0,q.Vt)(an.readOnlySnapshot()).allowsReceipt(d,{structured:c})&&await aZ(d,d.artifactPath);let f=aW(G(d,d.artifactPath,{structured:c,initialMessage:aM?"queued":a}));return j.NextResponse.json(f,{status:"starting"===f.state||c&&"path-pending"===f.state?202:200})}if(aM){aS();let a=aX.admissionOwner?an.releaseSpawnActuation(aX.launchId,aX.admissionOwner).receipt:aX;return j.NextResponse.json(aW(G(a,a.artifactPath,{structured:"structured"===f,initialMessage:"queued"})),{status:202})}if(aS(),"structured"===f){let a,c=b.runtimeHostClient();if(!c)throw Error("structured spawn runtime host is unavailable");try{a=b.storeImages(aj)}catch(a){throw new aA(a instanceof Error?a.message:String(a))}return a$(aU.receipt,c,a),j.NextResponse.json(aW(G(aU.receipt,aU.receipt.artifactPath,{structured:!0})),{status:202})}let a_=(0,ag.Am)(ai,aj);aG=a_.imagePaths;let a0=(0,R.Zn)()?b.runtimeHostClient():null,a1=a0?aU.receipt.launchId:null;if(a0&&a1)try{await a0.operation({scope:(0,P.zV)("operation",a1),kind:"spawn.intent",operationId:a1,producerKey:`viewer-spawn:${a1}`,payload:{engine:ac,cwd:aD,accountId:g.accountId,parentConversationId:M}})}catch{console.warn("[runtime] spawn bookkeeping unavailable; continuing through the legacy spawn path"),a0=null}let a2=Date.now(),a3=await (b.spawnTmuxAgent??ag.Tk)(aR,a_.payload,aU.receipt),a4=await (0,I.s)({engine:ac,knownTranscript:aR.transcript??null,panePid:a3.panePid??null,cwd:aD,startedAtMs:a2,codexSessionsDir:"codex"===ac?g.transcriptRoot:null}),a5=a4?(0,C.sz)(ac,a4):null;if(!a3.host||!await (0,ag.PB)(a3.host)){(0,q.agentRegistry)().invalidateSpawnHost(aU.receipt.launchId,"spawn host disappeared before API confirmation");let a=(0,q.agentRegistry)().readOnlySnapshot().receipts[aU.receipt.launchId];return j.NextResponse.json(aW(G(a,a4)))}if(!a4||!a5||!a3.receipt){let a=(0,q.agentRegistry)().markSpawnPathPending(aU.receipt.launchId);return j.NextResponse.json(aW(G(a,null)))}let a6=(0,q.agentRegistry)().settleSpawn(a3.receipt.launchId,{key:a5,artifactPath:a4,cwd:aD,accountId:g.accountId,status:"starting",host:a3.host,claimEpoch:0,claimOwner:null,pendingAction:"spawn"});if("conflict"===a6.kind)return j.NextResponse.json(aW(G(a6.receipt)));if(aY(a6.receipt,g.accountId,a4),await aZ(a6.receipt,a4),a0&&a1)try{await a0.append({scope:(0,P.zV)("edge",a1),kind:"edge.created",producerKey:`viewer-spawn-edge:${a1}`,payload:{edge:"viewer_spawn",childConversationId:a6.conversation.id,parentConversationId:M,operationId:a1}})}catch{console.warn("[runtime] spawned agent is healthy; lineage bookkeeping will reconcile later")}if(T&&(a4&&(0,K.A6)(a4,T),(0,K.OA)()),!await (0,ag.PB)(a3.host)){(0,q.agentRegistry)().invalidateSpawnHost(aU.receipt.launchId,"spawn host disappeared before API response");let a=(0,q.agentRegistry)().readOnlySnapshot().receipts[aU.receipt.launchId];return j.NextResponse.json(aW(G(a,a4)))}return j.NextResponse.json(aW(G(a6.receipt,a4)))}catch(c){let a=aH?an.readOnlySnapshot().receipts[aH]:null;if(a&&null!==a.pane||(a&&an.failSpawn(a.launchId,"spawn failed before pane binding"),(0,ag.IJ)(aG)),c instanceof D.eX||c instanceof E.sd)return j.NextResponse.json({error:c.message},{status:c.status});if(c instanceof F.AO)return j.NextResponse.json({error:c.message},{status:409});if(c instanceof F.eO)return j.NextResponse.json({error:c.fence.error,code:"spawn_admission_refused"},{status:c.fence.status});if(c instanceof F.Jc)return j.NextResponse.json({error:c.rejection.guidance,code:c.rejection.code,launchId:c.receipt.launchId,conversationId:c.receipt.conversationId,rejection:c.rejection},{status:403});if(c instanceof q.fr)return j.NextResponse.json({error:c.message},{status:429});if(c instanceof aA)return j.NextResponse.json({error:c.message},{status:503});if(c instanceof k.m1||c instanceof l.UV)return j.NextResponse.json({error:c.message},{status:400});let b=c instanceof au.KP?j.NextResponse.json({error:c.message,retrySafe:!0},{status:503}):null;if(b)return b;if(a?.pane){("prompt-delivered"===a.state||"host-verified"===a.state)&&an.markSpawnPathPending(a.launchId);let b=an.readOnlySnapshot().receipts[a.launchId];if(b)return j.NextResponse.json(G(b,b.artifactPath))}return j.NextResponse.json({error:c instanceof Error?c.message:String(c)},{status:500})}}}};
1
+ "use strict";exports.id=8513,exports.ids=[8513],exports.modules={48513:(a,b,c)=>{c.r(b),c.d(b,{executeSpawnRequest:()=>aG,fenceSpawnAdmissionRejection:()=>aD,productionSpawnCommandDependencies:()=>aC,spawnSuggestions:()=>aF});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(34995),k=c(82940),l=c(68465),m=c(63685),n=c(65236),o=c(58577),p=c(22993),q=c(70160),r=c(22619),s=c(23953),t=c(72294),u=c(51888),v=c(50193),w=c(16251),x=c(59789),y=c(21420),z=c(77598),A=c.n(z);function B(a){return A().createHash("sha256").update(JSON.stringify(a)).digest("hex")}function C(a){return"string"==typeof a.parentConversationId?{conversationId:a.parentConversationId}:"string"==typeof a.parent?{path:a.parent}:"string"==typeof a.src?{path:a.src}:null}var D=c(88623),E=c(3187),F=c(8292),G=c(60546);function H(a,b=a.artifactPath,c={}){let d="structured"===a.transport||null===a.transport&&!0===c.structured,e=(null!==a.verifiedHost||!0===c.structured&&"completed"===a.state)&&"failed"!==a.state&&"conflicted"!==a.state,f=(0,q.Vt)().allowsReceipt(a,{structured:d})?b:null;return{ok:!0,target:a.pane?.paneId??a.target??null,path:f,...d&&"claude"===a.engine?{effectivePermissionMode:a.launchProfile.permissionMode??"default"}:{},launchId:a.launchId,conversationId:a.conversationId,parent:a.parentConversationId?{conversationId:a.parentConversationId,source:a.parentSource}:null,launched:e,retrySafe:"failed"===a.state,initialMessage:c.initialMessage??("failed"===a.state||"conflicted"===a.state?"failed":"completed"===a.state||"prompt-delivered"===a.state?"delivered":d&&"path-pending"===a.state?"queued":"pending"),...a.error?{error:a.error}:{},state:"conflicted"===a.state?"conflict":"failed"===a.state?"failed":"starting"===a.state||"pane-bound"===a.state?"starting":"host-verified"===a.state||"prompt-delivered"===a.state||"path-pending"===a.state?"path-pending":"settled",transport:d?"structured":"tmux"}}var I=c(7733),J=c(72674),K=c(66852),L=c(59397);let M=["localhost","127.0.0.1","::1"];function N(a){if(a.startsWith("[")){let b=a.indexOf("]");return -1===b?a:a.slice(1,b)}let b=a.lastIndexOf(":");return -1===b?a:a.slice(0,b)}function O(){return j.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}var P=c(93994),Q=c(75040),R=c(45867),S=c(16196),T=c(74607),U=c(47473),V=c(75211),W=c(51571),X=c(88370),Y=c(66324),Z=c(14310),$=c(53424),_=c(27146),aa=c(14928),ab=c(28976);let ac=["project-catalog.json","worktree-map.json"],ad=(0,ab.E)("project-directories-v2");function ae(a){try{let b=JSON.parse(e().readFileSync(a,"utf8"));return b&&"object"==typeof b&&!Array.isArray(b)?b:null}catch{return null}}function af(a,b,c){if(!(!a||"object"!=typeof a||Array.isArray(a)))for(let d of b){let b=a[d];"string"==typeof b&&b.trim()&&c.add(b)}}var ag=c(57718),ah=c(53740),ai=c(31014),aj=c(48375),ak=c(46211),al=c(89204),am=c(80588),an=c(76190);function ao(a,b,c="activity"){return function(...a){return A().createHash("sha256").update(a.join("\0")).digest("hex")}("activity"===c?"llv-wakatime-heartbeat-v1":"llv-wakatime-boundary-v1",a,b)}function ap(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function aq(a){return"number"==typeof a&&Number.isFinite(a)}function ar(a){return Number.isSafeInteger(a)&&a>=0}function as(a,b=(0,_.BQ)("wakatime-state.json"),c=an.N){if(c()){if(!/^[a-f0-9]{64}$/.test(a.key)||"claude"!==a.engine&&"codex"!==a.engine||!a.project.trim()||a.project.trim()===ak.UNRESOLVED_PROJECT||!Number.isSafeInteger(a.atMs)||a.atMs<=0)throw Error("direct operator heartbeat is invalid");(0,al.Ol)(b,"WakaTime state is busy",()=>{let c=function(a){if(!ap(a)||1!==a.version||!aq(a.enabledAtMs)||!ap(a.streams)||!Array.isArray(a.pending)||!ap(a.retry)||!ap(a.counters))return null;let b=a.credentialGeneration??null;if(!(null===b||"string"==typeof b&&/^[a-f0-9]{64}$/.test(b)))return null;let c={};for(let[b,d]of Object.entries(a.streams)){if(!/^[a-f0-9]{64}$/.test(b)||!ap(d)||"string"!=typeof d.entity||"claude"!==d.engine&&"codex"!==d.engine||"string"!=typeof d.project||0===d.project.length||!aq(d.startedAtMs)||!(null===d.endedAtMs||aq(d.endedAtMs))||!aq(d.lastMaterializedAtMs)||!aq(d.lastObservedAtMs)||!(void 0===d.boundaryFinalizedAtMs||null===d.boundaryFinalizedAtMs||aq(d.boundaryFinalizedAtMs))||null!==d.endedAtMs&&d.endedAtMs<=d.startedAtMs||d.lastMaterializedAtMs<d.startedAtMs-1)return null;c[b]={entity:d.entity,engine:d.engine,project:d.project,startedAtMs:d.startedAtMs,endedAtMs:d.endedAtMs,lastMaterializedAtMs:d.lastMaterializedAtMs,lastObservedAtMs:d.lastObservedAtMs,boundaryFinalizedAtMs:d.boundaryFinalizedAtMs??null}}let d={},e=a.retiredStreams??{};if(!ap(e))return null;for(let[a,b]of Object.entries(e)){if(!/^[a-f0-9]{64}$/.test(a)||!ap(b)||!aq(b.lastMaterializedAtMs)||!aq(b.lastObservedAtMs)||!(null===b.boundaryFinalizedAtMs||aq(b.boundaryFinalizedAtMs))||!aq(b.expiresAtMs))return null;d[a]={lastMaterializedAtMs:b.lastMaterializedAtMs,lastObservedAtMs:b.lastObservedAtMs,boundaryFinalizedAtMs:b.boundaryFinalizedAtMs,expiresAtMs:b.expiresAtMs}}let f=[],g=new Set;for(let b of a.pending){var h;if(!ap(b)||"string"!=typeof b.key||!/^[a-f0-9]{64}$/.test(b.key)||"string"!=typeof b.stream||!aq(b.createdAtMs))return null;let a=ap(h=b.heartbeat)&&"string"==typeof h.entity&&0!==h.entity.length&&"app"===h.type&&"string"==typeof h.project&&0!==h.project.length&&"ai coding"===h.category&&aq(h.time)&&"string"==typeof h.ai_session&&64===h.ai_session.length?{entity:h.entity,type:"app",project:h.project,category:"ai coding",time:h.time,ai_session:h.ai_session}:null;if(!a)return null;let d=void 0===b.kind?"activity":b.kind;if("activity"!==d&&"boundary"!==d)return null;let e=c[b.stream],i=1e3*a.time;if(!e||!Number.isSafeInteger(i)||a.ai_session!==b.stream||a.entity!==("boundary"===d?`agent-log-viewer/boundary/${b.stream.slice(0,16)}`:e.entity)||a.project!==("boundary"===d?"agent-log-viewer-boundary":e.project)||b.key!==ao(b.stream,i,d))return null;g.has(b.key)||(f.push({key:b.key,stream:b.stream,kind:d,createdAtMs:b.createdAtMs,heartbeat:a}),g.add(b.key))}let i=a.retry,j=i.reason;if(!ar(i.failures)||!aq(i.retryAtMs)||null!==j&&"network"!==j&&"timeout"!==j&&"rate_limit"!==j&&"server"!==j&&"auth"!==j)return null;let k=a.counters;return ar(k.accepted)&&ar(k.permanentlyRejected)&&ar(k.compacted)&&ar(k.dropped)&&ar(k.historyGaps)?{version:1,enabledAtMs:a.enabledAtMs,credentialGeneration:b,streams:c,pending:f,retry:{failures:i.failures,retryAtMs:i.retryAtMs,reason:j},counters:{accepted:k.accepted,permanentlyRejected:k.permanentlyRejected,compacted:k.compacted,dropped:k.dropped,historyGaps:k.historyGaps},retiredStreams:d}:null}(function(a=(0,_.BQ)("wakatime-state.json")){try{return JSON.parse(e().readFileSync(a,"utf8"))}catch(a){if("ENOENT"===a.code)return null;throw a}}(b))??{version:1,enabledAtMs:a.atMs,credentialGeneration:null,streams:{},retiredStreams:{},pending:[],retry:{failures:0,retryAtMs:0,reason:null},counters:{accepted:0,permanentlyRejected:0,compacted:0,dropped:0,historyGaps:0}};!function(a,b,c,d){if(a.streams[b.key]||a.retiredStreams?.[b.key])return;let e=`agent-log-viewer/operator/${b.engine}/${b.key.slice(0,16)}`;a.streams[b.key]={entity:e,engine:b.engine,project:b.project,startedAtMs:b.atMs,endedAtMs:b.atMs+1,lastMaterializedAtMs:b.atMs+1,lastObservedAtMs:b.atMs,boundaryFinalizedAtMs:b.atMs+1};let f=ao(b.key,b.atMs);d.has(f)||(a.pending.push({key:f,stream:b.key,kind:"activity",createdAtMs:c,heartbeat:{entity:e,type:"app",project:b.project,category:"ai coding",time:b.atMs/1e3,ai_session:b.key}}),d.add(f))}(c,{...a,project:a.project.trim()},a.atMs,new Set(c.pending.map(a=>a.key)));e().mkdirSync(i().dirname(b),{recursive:!0,mode:448});let d=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${A().randomUUID()}.tmp`);try{e().writeFileSync(d,`${JSON.stringify(c,null,2)}
2
+ `,{encoding:"utf8",mode:384}),e().renameSync(d,b)}finally{try{e().unlinkSync(d)}catch{}}})}}c(58444),c(97347),c(55686);let at={transcriptAllowed:E.FK,readCwd:a=>(0,K.tX)(a),isDirectory:a=>{try{return e().statSync(a).isDirectory()}catch{return!1}}};var au=c(6082),av=c(82059),aw=c(15723);let ax=ai.en["spawnCard.pinUnavailableFallback"],ay=aj.uk["spawnCard.pinUnavailableFallback"],az="string"==typeof ay?ay:ax;function aA(a){let b=a.headers.get("accept-language")?.trim().toLowerCase()??"";return"uk"===b||b.startsWith("uk-")}class aB extends Error{}let aC={registry:q.agentRegistry,resolveHealthySpawnAccount:n.ax,resolveSpawnAccount:(a,b)=>n.accountManager.resolveSpawn(a,b),resolvePinnedSpawnAdmission:V.jJ,runtimeHostClient:P.sS,publishFilesRevision:R.G,spawnStructuredConversation:V.sh,assertStructuredRuntime:y.x_,defer:a=>(0,j.after)(a),storeImages:a=>(0,T.PF)().putMany(a),adoptPipelineAttemptFromSource:X.F_,pipelineAttemptTargetForSource:X.RO,recordOperatorActivity:function(a,b={}){let c={enabled:b.enabled??an.N,now:b.now??Date.now,registrySnapshot:b.registrySnapshot??(()=>(0,q.agentRegistry)().readOnlySnapshot()),enqueue:b.enqueue??as,reportStorageFailure:b.reportStorageFailure??((a,b)=>console.error(`[wakatime] ${a}`,b))};if(!c.enabled())return null;let d=a.idempotencyKey?.trim()??"",e=a.resolvedAttribution;if(e&&("claude"!==e.engine&&"codex"!==e.engine||!e.project.trim()||e.project===ak.UNRESOLVED_PROJECT))throw Error("direct operator activity attribution is invalid");let f=e?null:(0,q.MA)(c.registrySnapshot()),g=a.conversationId?.trim()??"",h=a.path?.trim()??"",i=g.startsWith("conversation_")?f?.conversation(g)??null:null,j=h?f?.conversationForPath(h)??null:null,k=i?new Set([...i.generations.map(a=>a.path),...i.continuityPaths,...i.abandonedContinuityPaths]):null;if(i&&j&&i.id!==j.id||i&&h&&!k?.has(h))throw Error("direct operator activity has conflicting target evidence");let l=i??j,m=a.fallbackEntry,n=e?.engine??l?.engine??(m?.engine==="claude"||m?.engine==="codex"?m.engine:null);if(!n)throw Error("direct operator activity target is unavailable");let o=l?.generations.at(-1),p=e?.project.trim()??(0,am.x)({projectOwnership:l?.projectOwnership,cwd:o?.launchProfile.cwd||m?.cwd,launchProfileProject:o?.launchProfile.project,fallbackProject:m?.project}).project;if(!p||p===ak.UNRESOLVED_PROJECT)throw Error("direct operator activity project is unavailable");let r=c.now();if(!Number.isSafeInteger(r)||r<=0)throw Error("direct operator activity time is invalid");let s={key:d?function(...a){return A().createHash("sha256").update(a.join("\0")).digest("hex")}("llv-wakatime-direct-operator-v1",d):A().randomBytes(32).toString("hex"),engine:n,project:p,atMs:r};try{c.enqueue(s)}catch(a){c.reportStorageFailure("operator_activity_not_stored",{outcome:function(a){if(a instanceof al.Qm)return"busy";if(a instanceof SyntaxError)return"state_unreadable";let b=a?.code;return"string"==typeof b&&/^E[A-Z]{1,15}$/.test(b)?b:"unavailable"}(a)})}return s},engineReadiness:(a,b)=>"claude"===a||"codex"===a?(0,x.h2)(a,b):"connected"};function aD(a,b,c,d){let e="string"==typeof a.clientAttemptId?a.clientAttemptId:null;if(!e||!/^[A-Za-z0-9_-]{8,128}$/.test(e))return null;try{return(0,G.L8)({clientAttemptId:e,requestDigest:B(a),status:b,error:c},()=>d.registry().spawnReceiptForClientAttempt(e))}catch{return null}}function aE(a,b,c){!b||a.includes(b)||c&&(0,Z.hY)(b)!==c||a.push(b)}async function aF(a){let b=a.nextUrl.searchParams.get("project")??"",{cwd:c,cwdExists:d}=function(a,b=at){if(!a||!b.transcriptAllowed(a))return{cwd:null,cwdExists:!1};let c=b.readCwd(a);return{cwd:c,cwdExists:!!(c&&b.isDirectory(c))}}(a.nextUrl.searchParams.get("src")),f=(await (0,Y.CS)()).filter(a=>a.path.endsWith(".jsonl")&&("claude-projects"===a.root||"codex-sessions"===a.root)).filter(a=>!a.path.includes(i().sep+"subagents"+i().sep)).sort((a,c)=>Number(c.project===b)-Number(a.project===b)||c.mtime-a.mtime).slice(0,80),h=c?[c]:[];if(!c)for(let a of function(a,b=10){return a?(function(){let a=(0,_.Pn)(),b=function(a){let b=ac.map(b=>{let c=i().join(a,b);try{let a=e().statSync(c);return`${b}:${a.dev}:${a.ino}:${a.size}:${a.mtimeMs}:${a.ctimeMs}`}catch{return`${b}:missing`}}),c=i().join(a,"state.sqlite");for(let[d,f]of[["flows","flows.json"],["pipelines","pipelines.json"],["workflows","workflows.json"]]){let g=(0,aa.jY)(c,d);if(null!==g)b.push(`${d}:sqlite:${g}`);else{let c=i().join(a,f);try{let a=e().statSync(c);b.push(`${f}:${a.dev}:${a.ino}:${a.size}:${a.mtimeMs}:${a.ctimeMs}`)}catch{b.push(`${f}:missing`)}}}return b.join("|")}(a),c=ad.get(a);if(c&&c.expiresAt>Date.now()&&c.stateIdentity===b)return c.directories;let d=[],f=new Set;for(let b of function(a){let b=new Set,c=ae(i().join(a,"project-catalog.json"))?.files;if(c&&"object"==typeof c&&!Array.isArray(c))for(let a of Object.values(c))af(a,["cwd","projectRoot"],b);let d=i().join(a,"state.sqlite");for(let[c,e,f]of[["flows.json","flows",["cwd"]],["pipelines.json","pipelines",["repoDir","worktreeDir"]],["workflows.json","workflows",["repoDir","worktreeDir"]]]){let g=(0,aa.Vx)(d,e)??ae(i().join(a,c))?.[e];if(Array.isArray(g))for(let a of g)af(a,f,b)}let e=ae(i().join(a,"worktree-map.json"));if(e)for(let[a,c]of Object.entries(e))b.add(a),af(c,["repo"],b);return[...b]}(a)){try{if(!e().statSync(b).isDirectory())continue}catch{continue}let a=(0,Z.hY)(b),c=(0,Z.D$)(b)??(a?.startsWith("dir-")?b:void 0),g=a?`${a}\0${b}`:"";!a||!c||f.has(g)||(f.add(g),d.push({cwd:b,project:a,projectRoot:c}))}return ad.set(a,{directories:d,expiresAt:Date.now()+1e4,stateIdentity:b}),d})().filter(b=>b.project===a).slice(0,b).map(a=>a.cwd):[]}(b,10))aE(h,a,b);for(let a of f){if(h.length>=10)break;b&&a.project!==b||aE(h,(0,K.tX)(a.path,{requireDir:!0}),b)}h.length||h.push(g().homedir());let k=(0,W.l)();return j.NextResponse.json({dirs:h,cwd:c,cwdExists:d,spawnTransport:k,imageInput:{claude:(0,T.ki)("claude","structured"===k),codex:(0,T.ki)("codex","structured"===k&&(0,u.JL)(null))}})}async function aG(a,b=aC){var c;let d,f,h,y=function(a){let b=new Set(M),c=process.env.LLV_TS_HOST;c&&b.add(N(c));let d=a.headers.get("host");if(null===d||!b.has(N(d)))return O();let e=a.headers.get("origin");if(null!==e){let a;try{a=new URL(e).host}catch{a=null}if(null===a||!b.has(N(a)))return O()}let f=a.headers.get("sec-fetch-site");return null!==f&&"same-origin"!==f&&"none"!==f?O():null}(a);if(y)return y;try{d=await a.json()}catch{return j.NextResponse.json({error:"invalid JSON"},{status:400})}let z=(0,s.t3)(d.mcpServers);if(!z.ok)return j.NextResponse.json({error:z.error},{status:400});let A=void 0===d.mcpServers?null:z.value,K=(0,t.jh)(d.plugins);if(!K.ok)return j.NextResponse.json({error:K.error},{status:400});let R=(0,au.s0)(a),T=null,X=null,Y=null;if(R)try{T=b.registry();let c=(0,au.X0)(a,d.src,T);"error"in c?Y=c:X=c}catch(a){Y={error:a instanceof Error?a.message:String(a),status:503}}let _=a=>(Y||aD(d,400,a,b),j.NextResponse.json({error:a},{status:400})),aa=(0,au.QD)(a,d);if(aa)return _(aa);if(void 0!==d.allowSubagents&&"boolean"!=typeof d.allowSubagents)return j.NextResponse.json({error:"allowSubagents must be a boolean"},{status:400});let ab=(0,w.s8)(d);if(!ab.ok)return _(ab.error);let ac=(0,au.Fk)(ab.value?.role??null,d);if(ac)return _(ac);if(ab.value&&(0,G.n4)(ab.value.role)&&!0===d.allowSubagents)return j.NextResponse.json({error:`${ab.value.role} launches cannot enable subagents: reviewer and verifier sessions run every check in-session`},{status:400});let ad="claude"===d.engine||"codex"===d.engine?d.engine:ab.value?.config.engine??null;if(!ad)return j.NextResponse.json({error:"engine must be claude or codex"},{status:400});let ae=ab.value&&("claude"===ad||"codex"===ad)?b.engineReadiness?.(ad,"string"==typeof d.project?d.project:null)??"connected":"connected";if(ab.value&&("claude"===ad||"codex"===ad)&&"connected"!==ae){let a={role:ab.value.role,engine:ad,reason:ae},c=(0,x._N)(a);return Y||aD(d,409,c,b),j.NextResponse.json({error:c,code:x.Bw,details:(0,x.vg)(a)},{status:409})}if(void 0!==d.accountId&&"string"!=typeof d.accountId)return j.NextResponse.json({error:"accountId must be a string"},{status:400});if(void 0!==d.clientAttemptId&&("string"!=typeof d.clientAttemptId||!/^[A-Za-z0-9_-]{8,128}$/.test(d.clientAttemptId)))return j.NextResponse.json({error:"clientAttemptId must be 8-128 URL-safe characters"},{status:400});let af=(0,r.BL)(ad,{...d,model:d.model??ab.value?.config.model??(0,u.Gh)(ad),effort:void 0===d.effort?ab.value?.config.effort:d.effort});if(af.error)return j.NextResponse.json({error:af.error},{status:400});let ai=(0,u.wi)({model:void 0===d.model?ab.value?.config.model:d.model});if(ai.error)return j.NextResponse.json({error:ai.error},{status:400});if(void 0!==d.model&&null!==d.model&&ai.model){let a=(0,u.RC)(ad,ai.model);if("error"in a)return j.NextResponse.json({error:a.error},{status:400})}let aj="string"==typeof d.prompt?d.prompt.trim():"",ak=ab.value?[ab.value.scaffold,aj].filter(Boolean).join("\n\n"):aj,{images:al,error:am}=(0,ah.Fu)(d);if(am)return j.NextResponse.json({error:am.error},{status:am.status});let an=void 0===d.title?null:(0,ag.St)("string"==typeof d.title?d.title:null,120);if(void 0!==d.title&&!an)return j.NextResponse.json({error:"title must be a semantic, non-placeholder string"},{status:400});let ao=(0,ag.V0)(aj,60)?(0,ag.bF)(ab.value?.role??ad,aj):null;try{f=(0,W.l)()}catch(a){return j.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}if("structured"===f){try{b.assertStructuredRuntime()}catch(a){return j.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:503})}let a=(0,W.H)({engine:ad,model:ai.model,hasImages:al.length>0,fast:af.fast});if(a)return j.NextResponse.json({error:a},{status:409});try{(0,U.h1)(ak)}catch(a){return j.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:413})}}let ap=T??b.registry(),aq="string"==typeof d.clientAttemptId?d.clientAttemptId:null,ar=aq?ap.spawnReceiptForClientAttempt(aq):null;if(!an&&!ar)return j.NextResponse.json({error:ag.QE},{status:400});let as=an??ao??(0,ag.St)(ar?.launchProfile.title,120);if(!as)return j.NextResponse.json({error:ag.QE},{status:400});if(R&&Y)return j.NextResponse.json({error:Y.error},{status:Y.status??403});if(R&&!0===d.allowSubagents&&X?.kind!=="operator")return j.NextResponse.json({error:"allowSubagents requires an authenticated Viewer operator spawn"},{status:403});let at=null;if(void 0!==d.project&&null!==d.project){if(!(at="string"==typeof d.project?(0,o.QK)(d.project):null))return j.NextResponse.json({error:"project must be a valid project key"},{status:400});if(R&&X?.kind!=="operator")return j.NextResponse.json({error:"explicit project requires an authenticated Viewer operator spawn"},{status:403})}let ay=null;if(void 0!==d.supersedes&&null!==d.supersedes){if("string"!=typeof d.supersedes||!d.supersedes.trim())return j.NextResponse.json({error:"supersedes must name a conversation id or transcript path"},{status:400});let a=d.supersedes.trim(),b=a.startsWith("conversation_")?ap.conversation(a):ap.conversationForPath(a);if(!b)return j.NextResponse.json({error:"supersedes does not resolve to a known conversation"},{status:404});let c=ap.supersedenceConflict(b.id);if(c)return j.NextResponse.json({error:`supersedes conflicts with the live conversation ${c}`,successorConversationId:c},{status:409});ay=b.id}let aE="string"==typeof d.cwd?d.cwd.trim():"";if(!aE)return j.NextResponse.json({error:"working directory is required"},{status:400});let aF=i().resolve("~"===aE||aE.startsWith("~/")?i().join(g().homedir(),aE.slice(1)):aE);try{h=e().statSync(aF)}catch{return j.NextResponse.json({error:`directory does not exist: ${aF}`},{status:400})}if(!h.isDirectory())return j.NextResponse.json({error:`not a directory: ${aF}`},{status:400});let aH=(0,v.kg)(a).ok;if(aH&&!aq)return j.NextResponse.json({error:"clientAttemptId is required for direct operator spawn"},{status:400});if(aH){let a=at??(0,Z.hY)(aF);if(!a)return j.NextResponse.json({error:"project could not be resolved for direct operator spawn"},{status:400});try{b.recordOperatorActivity?.({idempotencyKey:`spawn:${aq}`,resolvedAttribution:{engine:ad,project:a}})}catch{return j.NextResponse.json({error:"direct operator activity could not be recorded"},{status:503})}}let aI=[],aJ=null;try{let g,h,k,r=void 0===d.title||an===ao,u=ar?.identityWaveTitleBackfill===!0&&r,v=u?(0,ag.St)(ar.launchProfile.title,120)??as:as,w=(0,E.bs)((0,au.qe)(X,{...d,role:ab.value?.role}),ap),x=w.parent,y=w.reviewed?.conversationId??null;if(R&&X?.kind==="agent"&&!x)return j.NextResponse.json({error:au.HJ},{status:400});let z=X?.kind==="agent"?"string"==typeof d.src&&!!d.src.trim():"string"==typeof d.src&&!!d.src.trim()||"string"==typeof d.parent&&!!d.parent.trim()||void 0!==d.parentConversationId||"string"==typeof d.reviews&&!!d.reviews.trim(),F=x?z?"explicit":"inferred-caller":null,M=x?.conversationId??null,N="string"==typeof d.src&&d.src.trim()?M:null,O=x?.sessionKey??null,T=x?.artifactPath??null,U=(0,t.GU)({origin:{kind:X?.kind==="agent"?"agent":"operator"},parentConversationId:M,agentRole:ab.value?.role??null}),W=b.internalGrant?.()??null,Y=W?.sessionClass===s.Vv?W:null,_=Y?[...t.sN]:(0,t.wE)({engine:ad,origin:U,requested:K.value}),aa=Y?(0,s.c1)(Y.mcpServers):(0,s.Mt)({origin:U,requested:A}),ac=(a,b=!1)=>{var c;let e,f=(c={engine:ad,cwd:aF,model:ai.model,effort:af.effort,fast:af.fast,accountId:a,role:ab.value?.role??null,title:as,mcpServers:aa,..._.length?{plugins:_}:{},...!0===d.allowSubagents?{allowSubagents:!0}:{},...at?{project:at}:{},parent:C({parentConversationId:M??void 0}),...y?{reviews:C({parentConversationId:y})}:{},...ay?{supersedes:C({parentConversationId:ay})}:{},prompt:ak,images:al.map(a=>{var b;return{mime:a.mime,digest:(b={image:a.base64},B(b))}})},e=Object.fromEntries(Object.entries(c).filter(([a])=>"title"!==a)),{current:B(c),withoutTitle:B(e)});if(u||b&&ar)return ar.requestDigest===f.current?f.current:f.withoutTitle;let g=(0,ag.St)(ar?.launchProfile.title,120);return ar&&g&&g!==as||ar?.requestDigest===f.current?f.current:f.withoutTitle},ae=N&&b.pipelineAttemptTargetForSource?b.pipelineAttemptTargetForSource(N):null,am=!Y&&(aj.trim()||al.length)?{prompt:aj,images:al.length,echo:ak}:null,av="string"==typeof d.taskId&&d.taskId.trim()?[d.taskId.trim()]:null,aC=(a,b,c,e=void 0!==d.accountId)=>({engine:ad,cwd:aF,transport:f,accountId:a,accountPin:e,parentConversationId:M,parentSource:F,parentSessionKey:O,parentArtifactPath:T,role:ab.value?.role??null,reviewsConversationId:y,explicitProject:at,supersedes:ay,supersedesReason:"recovery-spawn",liveChildrenCap:X?.liveChildrenCap,origin:X?.kind==="agent"?{kind:"agent",conversationId:X.conversationId}:{kind:"operator"},launchProfile:b,clientAttemptId:aq,requestDigest:c,...av?{taskIds:av}:{},launchDisplay:am,memberships:ae&&N?[{kind:"pipeline",containerId:ae.pipelineId,role:ae.role,slot:`adopt:${ae.stageId}:${c.slice(0,24)}`,stageId:ae.stageId,stageOrder:ae.stageOrder,round:null,parentConversationId:N,runtime:{engine:ad,model:b.model,effort:b.effort}}]:[]}),aD=(0,o.Ui)({cwd:aF,model:ai.model,effort:af.effort,fast:af.fast,parentConversationId:M,allowSubagents:!0===d.allowSubagents,mcpServers:aa,plugins:_,title:v,...at?{project:at}:{}}),aE=a=>{let b=d.accountId,c=(a instanceof Error?a.message:String(a)).slice(0,240),e=ap.beginSpawnRequest(aC(b,aD,ac(b)));if("conflict"===e.kind)return j.NextResponse.json({error:"spawn attempt conflicts with its original request"},{status:409});"created"===e.kind&&("structured"===f?ap.failStructuredSpawn(e.receipt.launchId,c):ap.failSpawn(e.receipt.launchId,c));let g=ap.readOnlySnapshot().receipts[e.receipt.launchId]??e.receipt;return j.NextResponse.json(H(g,g.artifactPath,{structured:"structured"===f}))};if(ar&&void 0!==d.accountId&&ar.accountPin&&("failed"===ar.state||"conflicted"===ar.state))return aE(Error(ar.error??"the requested account is not available for this launch"));let aG="string"==typeof d.accountId?d.accountId:null,aH=at??(0,Z.hY)(aF);try{g=ar&&null!==ar.accountId&&!(ar.accountPin&&aG)?b.resolveSpawnAccount(ar.engine,ar.accountId):await b.resolveHealthySpawnAccount(ad,d.accountId,aH,ai.model)}catch(a){if(a instanceof $.Uq||a instanceof n.fu)return j.NextResponse.json({error:a.message},{status:409});if(void 0===d.accountId)throw a;if("claude"!==ad||!aG)return aE(a);try{let c=b.resolveSpawnAccount(ad,aG),d=await (b.resolvePinnedSpawnAdmission??V.jJ)(ad,c,ai.model);if("retry-at"!==d.kind&&"admissible"!==d.kind)return aE(a);g={...c,admission:d,requestedAdmission:d}}catch{return aE(a)}}let aK=aG&&g.requestedAdmission?.kind==="retry-at"?g.requestedAdmission.retryAt:null,aL=aK?Date.parse(aK):NaN,aM=Number.isFinite(aL)&&aL>Date.now()?new Date(aL).toISOString():null;aM&&aG&&(g=b.resolveSpawnAccount(ad,aG));let aN=!!(aG&&!aM&&g.accountId!==aG),aO=ac("string"==typeof d.accountId?d.accountId:g.accountId,aN||null!==aM),aP=aM?(0,V.X3)(aA(a)?"uk":"en",aM):null,aQ=aN?aA(a)?az:ax:null,aR=(c=g,h=(0,p.lV)(ad,aF,{model:ai.model,effort:af.effort,fast:af.fast,codexHome:"codex"===ad?c.home:null,claudeConfigDir:"claude"===ad?c.home:null,claudeProjectsDir:"claude"===ad?c.transcriptRoot:null,allowSubagents:!0===d.allowSubagents,mcpServers:aa,deferClaudeSpawnPolicy:!0}),k="claude"===ad&&"structured"===f?(0,V.eK)(h.launchProfile?.permissionMode,{agentInitiated:R,operatorAuthenticated:X?.kind==="operator",roleSpawn:!!ab.value}):h.launchProfile?.permissionMode,{...h,launchProfile:(0,o.Ui)({...h.launchProfile??{},cwd:aF,parentConversationId:M,allowSubagents:!0===d.allowSubagents,mcpServers:aa,plugins:_,permissionMode:k,title:aQ??v,...at?{project:at}:{}})}),aS=()=>{if("claude"!==ad||"tmux"!==f)return;let a=i().basename(aR.transcript??"",".jsonl");(0,l.fg)(g.home)&&(0,I.prepareManagedClaudeSpawnHome)(g.home,aF),(0,I.applyClaudeSpawnPolicy)(g.home,{allowSubagents:!0===d.allowSubagents,baseSettingsPath:(0,l.fg)(g.home)?(0,l.ZK)():null,profileId:a,cwd:aF,mcpServers:aa,mcpStatePath:"managed"===g.kind?i().join(g.home,".claude.json"):i().join(i().dirname(g.home),".claude.json")})},aT=aN&&"string"==typeof d.accountId?d.accountId:g.accountId,aU=await (0,m.Cu)(async()=>{if(!ar&&aq){let b=(0,G.o)(aq);if(b){var a;if(b.requestDigest===(a=d,B(a)))throw new G.eO(b);throw new G.AO}}if(!ar){let a=b.resolveSpawnAccount(ad,g.accountId);if(a.accountId!==g.accountId||a.kind!==g.kind)throw Error("spawn account changed during admission")}return ap.beginSpawnRequest(aC(aT,aR.launchProfile,aO,ar?.accountPin??void 0!==d.accountId))});if("conflict"===aU.kind)return j.NextResponse.json({error:"spawn attempt conflicts with its original request"},{status:409});"created"===aU.kind&&(aJ=aU.receipt.launchId);let aV="created"===aU.kind&&aG&&g.accountId===aG?(0,aw.u)({engine:ad,project:aH,accountId:aG,conversationId:aU.receipt.conversationId??null,actor:X?.kind==="agent"?{kind:"agent",conversationId:X.conversationId}:{kind:"operator"},via:"launch"})??void 0:void 0,aW=a=>aV?{...a,accountOverride:aV}:a,aX=aU.receipt;if(aM&&aP&&aG){let c,d=aU.receipt.queuedPinnedSpawn;if(d)c=d.imageRefs;else try{c=b.storeImages(al)}catch(a){throw new aB(a instanceof Error?a.message:String(a))}aX=ap.queuePinnedSpawn(aU.receipt.launchId,{version:1,retryAt:aM,accountId:aG,locale:aA(a)?"uk":"en",spec:aR,prompt:ak,imageRefs:c,parentArtifactPath:T,pipelineSourceConversationId:N},aP)}let aY=(a,b,c)=>{if(!c||a.accountId===b)return;let d=ap.readOnlySnapshot(),e=d.receipts[a.launchId];if(!e?.key||e.artifactPath!==c)return;let f=d.entries[(0,D.pp)(e.key)],g=d.conversations[e.conversationId];f&&g&&(ap.reconcileConversations([{engine:e.engine,path:c,accountId:b,launchProfile:e.launchProfile,turn:{state:g.turn.state,source:g.turn.source,terminalAt:g.turn.terminalAt},expectedTurnObservedAt:g.turn.observedAt,observedAt:new Date().toISOString()}]),ap.upsert({...f,accountId:b}))},aZ=async(a,c)=>{if(!N||!b.adoptPipelineAttemptFromSource)return;let d=ap.readOnlySnapshot().receipts[a.launchId]??a;try{await b.adoptPipelineAttemptFromSource(N,{launchId:d.launchId,conversationId:d.conversationId,sessionId:d.key?.sessionId??null,agentPath:c,paneId:d.verifiedHost?.paneId??d.pane?.paneId??null,startedAt:d.createdAt,runtime:{engine:d.engine,model:d.launchProfile.model,effort:d.launchProfile.effort}})}catch(a){console.error("[spawn] pipeline attempt adoption failed",{launchId:d.launchId,conversationId:d.conversationId,sourceConversationId:N,error:a})}},a$=(a,c,d)=>{b.defer(async()=>{let f;try{f=await b.spawnStructuredConversation({engine:ad,receipt:a,spec:aR,account:g,prompt:ak,imageRefs:d,registry:ap,client:c}),aY(a,g.accountId,f.path)}catch(b){console.error("[spawn] structured launch failed",{launchId:a.launchId,conversationId:a.conversationId,error:b}),b instanceof P.Hr&&ap.failStructuredSpawn(a.launchId,`structured spawn transport failed: ${b.message}`.slice(0,240));return}if(T&&f.path)try{(0,L.A6)(f.path,T),(0,L.OA)()}catch(b){console.error("[spawn] handoff lineage persistence failed",{launchId:a.launchId,conversationId:a.conversationId,childArtifactPath:f.path,parentArtifactPath:T,error:b})}if(f.path&&await aZ(a,f.path),f.path&&e().existsSync(f.path))try{await b.publishFilesRevision?.(c)}catch(b){console.error("[spawn] transcript materialization refresh failed",{launchId:a.launchId,conversationId:a.conversationId,artifactPath:f.path,error:b})}})};if("replay"===aU.kind){let a,c=(0,q.Vt)(ap.readOnlySnapshot()).isStructured(aX),d=aX,e=c?b.runtimeHostClient():null;if(e&&!aM){try{let b=await (0,V.reconcileStructuredSpawnReplay)(d.launchId,ap,e);d=b,a=b.initialMessage}catch{}let c=ap.claimStartingStructuredSpawn(d.launchId);if(d=c.receipt,c.claimed){let a;try{a=b.storeImages(al)}catch(a){throw c.receipt.admissionOwner&&ap.releaseStartingStructuredSpawn(d.launchId,c.receipt.admissionOwner),new aB(a instanceof Error?a.message:String(a))}a$(d,e,a)}}d.artifactPath&&(0,q.Vt)(ap.readOnlySnapshot()).allowsReceipt(d,{structured:c})&&await aZ(d,d.artifactPath);let f=aW(H(d,d.artifactPath,{structured:c,initialMessage:aM?"queued":a}));return j.NextResponse.json(f,{status:"starting"===f.state||c&&"path-pending"===f.state?202:200})}if(aM){aS();let a=aX.admissionOwner?ap.releaseSpawnActuation(aX.launchId,aX.admissionOwner).receipt:aX;return j.NextResponse.json(aW(H(a,a.artifactPath,{structured:"structured"===f,initialMessage:"queued"})),{status:202})}if(aS(),"structured"===f){let a,c=b.runtimeHostClient();if(!c)throw Error("structured spawn runtime host is unavailable");try{a=b.storeImages(al)}catch(a){throw new aB(a instanceof Error?a.message:String(a))}return a$(aU.receipt,c,a),j.NextResponse.json(aW(H(aU.receipt,aU.receipt.artifactPath,{structured:!0})),{status:202})}let a_=(0,ah.Am)(ak,al);aI=a_.imagePaths;let a0=(0,S.Zn)()?b.runtimeHostClient():null,a1=a0?aU.receipt.launchId:null;if(a0&&a1)try{await a0.operation({scope:(0,Q.zV)("operation",a1),kind:"spawn.intent",operationId:a1,producerKey:`viewer-spawn:${a1}`,payload:{engine:ad,cwd:aF,accountId:g.accountId,parentConversationId:M}})}catch{console.warn("[runtime] spawn bookkeeping unavailable; continuing through the legacy spawn path"),a0=null}let a2=Date.now(),a3=await (b.spawnTmuxAgent??ah.Tk)(aR,a_.payload,aU.receipt),a4=await (0,J.s)({engine:ad,knownTranscript:aR.transcript??null,panePid:a3.panePid??null,cwd:aF,startedAtMs:a2,codexSessionsDir:"codex"===ad?g.transcriptRoot:null}),a5=a4?(0,D.sz)(ad,a4):null;if(!a3.host||!await (0,ah.PB)(a3.host)){(0,q.agentRegistry)().invalidateSpawnHost(aU.receipt.launchId,"spawn host disappeared before API confirmation");let a=(0,q.agentRegistry)().readOnlySnapshot().receipts[aU.receipt.launchId];return j.NextResponse.json(aW(H(a,a4)))}if(!a4||!a5||!a3.receipt){let a=(0,q.agentRegistry)().markSpawnPathPending(aU.receipt.launchId);return j.NextResponse.json(aW(H(a,null)))}let a6=(0,q.agentRegistry)().settleSpawn(a3.receipt.launchId,{key:a5,artifactPath:a4,cwd:aF,accountId:g.accountId,status:"starting",host:a3.host,claimEpoch:0,claimOwner:null,pendingAction:"spawn"});if("conflict"===a6.kind)return j.NextResponse.json(aW(H(a6.receipt)));if(aY(a6.receipt,g.accountId,a4),await aZ(a6.receipt,a4),a0&&a1)try{await a0.append({scope:(0,Q.zV)("edge",a1),kind:"edge.created",producerKey:`viewer-spawn-edge:${a1}`,payload:{edge:"viewer_spawn",childConversationId:a6.conversation.id,parentConversationId:M,operationId:a1}})}catch{console.warn("[runtime] spawned agent is healthy; lineage bookkeeping will reconcile later")}if(T&&(a4&&(0,L.A6)(a4,T),(0,L.OA)()),!await (0,ah.PB)(a3.host)){(0,q.agentRegistry)().invalidateSpawnHost(aU.receipt.launchId,"spawn host disappeared before API response");let a=(0,q.agentRegistry)().readOnlySnapshot().receipts[aU.receipt.launchId];return j.NextResponse.json(aW(H(a,a4)))}return j.NextResponse.json(aW(H(a6.receipt,a4)))}catch(c){let a=aJ?ap.readOnlySnapshot().receipts[aJ]:null;if(a&&null!==a.pane||(a&&ap.failSpawn(a.launchId,"spawn failed before pane binding"),(0,ah.IJ)(aI)),c instanceof E.eX||c instanceof F.sd)return j.NextResponse.json({error:c.message},{status:c.status});if(c instanceof G.AO)return j.NextResponse.json({error:c.message},{status:409});if(c instanceof G.eO)return j.NextResponse.json({error:c.fence.error,code:"spawn_admission_refused"},{status:c.fence.status});if(c instanceof G.Jc)return j.NextResponse.json({error:c.rejection.guidance,code:c.rejection.code,launchId:c.receipt.launchId,conversationId:c.receipt.conversationId,rejection:c.rejection},{status:403});if(c instanceof q.fr)return j.NextResponse.json({error:c.message},{status:429});if(c instanceof aB)return j.NextResponse.json({error:c.message},{status:503});if(c instanceof k.m1||c instanceof l.UV)return j.NextResponse.json({error:c.message},{status:400});let b=c instanceof av.KP?j.NextResponse.json({error:c.message,retrySafe:!0},{status:503}):null;if(b)return b;if(a?.pane){("prompt-delivered"===a.state||"host-verified"===a.state)&&ap.markSpawnPathPending(a.launchId);let b=ap.readOnlySnapshot().receipts[a.launchId];if(b)return j.NextResponse.json(H(b,b.artifactPath))}return j.NextResponse.json({error:c instanceof Error?c.message:String(c)},{status:500})}}}};
@@ -1,2 +1,2 @@
1
1
  "use strict";exports.id=8617,exports.ids=[8617],exports.modules={915:(a,b,c)=>{c.d(b,{$U:()=>w,Cv:()=>x,Dd:()=>s,Ip:()=>m,S6:()=>r,bv:()=>o,gq:()=>t,kz:()=>u,uX:()=>v});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(48892),k=c(91724),l=c(30795);let m=120,n=()=>(0,k.BQ)("session-titles.json");class o extends Error{constructor(a){super(a),this.name="TitleStoreUnreadableError"}}function p(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.key&&a.key.length>0&&(null===a.title||"string"==typeof a.title&&a.title.length>0)&&"number"==typeof a.revision&&Number.isInteger(a.revision)&&a.revision>0&&"string"==typeof a.updatedAt}function q(a=n()){let b,c;try{b=g().readFileSync(a,"utf8")}catch(a){if("ENOENT"===a.code)return[];throw new o(`session titles store is unreadable: ${a.message}`)}try{c=JSON.parse(b)}catch{throw new o("session titles store is not valid JSON")}if(!c||"object"!=typeof c||Array.isArray(c))throw new o("session titles store has an unexpected shape");let d=c;if(void 0!==d.version&&1!==d.version)throw new o(`session titles store schema version ${String(d.version)} is unsupported`);if(!Array.isArray(d.titles))throw new o("session titles store is missing its titles array");let e=d.titles.filter(p);if(e.length!==d.titles.length)throw new o("session titles store contains malformed records");return e}function r(a=n()){try{return q(a)}catch{return[]}}function s(a){let b=(0,l.cr)(a,m);return b.length>0?b:null}function t(a){return!a.slice(a.lastIndexOf("/")+1).startsWith("agent-")&&!a.includes("/subagents/")}function u(a,b=[],c=[]){let d=[],e=new Set,f=a=>{e.has(a)||(e.add(a),d.push(a))};for(let c of(a.conversationId?.startsWith("conversation_")&&f(`conversation:${a.conversationId}`),b))c.startsWith("conversation_")&&c!==a.conversationId&&f(`conversation:${c}`);let g=b=>{if("claude"===a.engine||"codex"===a.engine){let c=(0,j.sz)(a.engine,b);c&&f(`uuid:${(0,j.pp)(c)}`)}f(`path:${b}`)};for(let b of(g(a.path),c))g(b);return d}function v(a){return new Map(a.map(a=>[a.key,a]))}function w(a,b,c=[],d=[]){let e=function(a,b,c=[],d=[]){for(let e of u(a,c,d)){let a=b.get(e);if(a)return a}return null}(a,b,c,d);e&&(a.titleRevision=e.revision,null!==e.title&&(void 0===a.autoTitle&&(a.autoTitle=a.title),a.title=e.title))}function x(a,b,c,d,f,h=n()){let j=new Set(a);return function(a,b=n()){return function(a,b){let c=Date.now();for(g().mkdirSync(i().dirname(a),{recursive:!0});;)try{let c=g().openSync(a,"wx",384);try{return g().writeFileSync(c,`${process.pid}
2
- `,"utf8"),b()}finally{g().closeSync(c),g().rmSync(a,{force:!0})}}catch(b){if("EEXIST"!==b.code)throw b;try{if(Date.now()-g().statSync(a).mtimeMs>1e4){g().rmSync(a,{force:!0});continue}}catch{continue}if(Date.now()-c>=5e3)throw Error("session titles store is busy; retry shortly");Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,10)}}(`${b}.lock`,()=>{var c;let d=a(q(b));return d.records&&function(a,b=n()){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({version:1,titles:a},null,2)+"\n","utf8"),g().renameSync(c,b)}((c=d.records).length<=2e3?c:[...c].sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt)).slice(0,2e3),b),d.result})}(e=>{let g=null;for(let b of a){let a=e.find(a=>a.key===b);if(a){g=a;break}}if(void 0!==d&&d!==(g?.revision??0))return{records:void 0,result:{ok:!1,conflict:g}};let h=null===c?null:s(c),i=e.filter(a=>!j.has(a.key));if(null===h){if(!g)return{records:void 0,result:{ok:!0,override:null,revision:0}};if(null===g.title)return{records:void 0,result:{ok:!0,override:null,revision:g.revision}};let a={key:b,title:null,revision:g.revision+1,updatedAt:f};return{records:[...i,a],result:{ok:!0,override:null,revision:a.revision}}}let k={key:b,title:h,revision:(g?.revision??0)+1,updatedAt:f};return{records:[...i,k],result:{ok:!0,override:k,revision:k.revision}}},h)}},11149:(a,b,c)=>{c.d(b,{M:()=>l,n:()=>m});var d=c(73024),e=c.n(d),f=c(3587),g=c(79645),h=c(89940),i=c(27832),j=c(70107);function k(a,b){return a.startsWith("dir-")?a===(0,i.qe)(b):!!a.startsWith("repo-")&&[...new Set([(0,i.V5)(b),(0,j.D$)(b)].filter(a=>!!a))].some(b=>(0,i.YV)(b)===a)}function l(a,b){let c,d,f=a.trim();if(!(0,i.z)(f)||!b?.trim()||!function(a){try{return e().statSync(a).isDirectory()}catch{return!1}}(b.trim()))return null;let g=function(a){try{return e().realpathSync.native(a)}catch{return a}}(b.trim()),l=(d=(c=(0,j.D$)(g))?(0,i.im)(c):null)?{project:d.project,displayName:d.displayName}:(0,i.NP)(g);if(!l||!(0,i.z)(l.project))return null;let m=(0,h.G$)(f),n=m!==f&&k(m,g)?m:f;return k(n,g)&&n!==l.project&&(0,h.G$)(n)!==l.project?{source:n,target:l.project,displayName:l.displayName}:null}function m(a){let b=[],c=new Set;for(let d of a){if(!(!d||c.has(d.source))){if((c.add(d.source),(0,h.G$)(d.source)!==d.target&&(0,h.YX)([d])&&(0,f.aM)(new Map([[d.source,d.target]])))&&(0,h.oh)([d])){b.push(d);try{(0,g.Q)([{key:`project-succession:${d.source}:${d.target}`,type:"project_moved",at:new Date().toISOString(),project:d.target,summary:`${d.displayName}: project identity moved from ${d.source} to ${d.target}; everything recorded under the old key now reads as this project`}])}catch{}}}}return b}},12770:(a,b,c)=>{c.d(b,{Lh:()=>e,j0:()=>g,pV:()=>f});var d=c(643);function e(){return new Promise(a=>setImmediate(a))}async function f(a,b,c={}){let g=Math.max(1,Math.floor(c.batchSize??16)),h=Math.max(1,c.timeBudgetMs??32),i=d.performance.now(),j=0;for(let c=0;c<a.length;c+=1)await b(a[c],c),j+=1,!(c+1>=a.length)&&(j<g&&d.performance.now()-i<h||(await e(),i=d.performance.now(),j=0))}async function g(a,b,c={}){let d=Array(a.length);return await f(a,async(a,c)=>{d[c]=await b(a,c)},c),d}},13605:(a,b,c)=>{c.d(b,{Wl:()=>g,cy:()=>e,de:()=>d});let d=10,e=80;function f(a,b){let c=Number(a);return Number.isSafeInteger(c)&&c>0?c:b}function g(a,b,c=function(a=process.env){return{projectCap:f(a.LLV_SCHEME_PROJECT_CAP,d),cardsPerProject:f(a.LLV_SCHEME_CARDS_PER_PROJECT,e)}}(),h={}){let i=h.protect,j=i?new Set(a.filter(i)):null,k=new Set;for(let d of a)if(k.add(b(d)),k.size>=c.projectCap)break;let l=new Map;return a.filter(a=>{if(j?.has(a))return!0;let d=b(a);if(!k.has(d))return!1;let e=l.get(d)??0;return!(e>=c.cardsPerProject)&&(l.set(d,e+1),!0)})}},15862:(a,b,c)=>{c.d(b,{Ot:()=>l,xe:()=>m});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(78966),i=c(41617);function j(a){try{return e().realpathSync(a)}catch{return null}}let k=a=>a;function l(a,b=function(){let a=[],b=b=>{b&&!a.includes(b)&&a.push(b)},c=a=>{try{for(let c of a())b(c)}catch{}};try{b(g().join((0,h.Hy)(),"projects")),b((0,h.o1)())}catch{}return c(h.pW),c(i.vD),a}()){let c=new Map;for(let b of a){let a=j(b);a&&!c.has(a)&&c.set(a,b)}if(!c.size)return k;let d=[];for(let a of b){let b=c.get(j(a)??"\0");b&&b!==a&&d.push([a+g().sep,b+g().sep])}return d.length?(d.sort(([a],[b])=>b.length-a.length),a=>{for(let[b,c]of d)if(a.startsWith(b))return c+a.slice(b.length);return a}):k}function m(a,b){if(!a?.size||b===k)return a;let c=new Set;for(let d of a)c.add(d),c.add(b(d));return c.size===a.size?a:c}},23855:(a,b,c)=>{c.d(b,{Be:()=>t,He:()=>x,Hz:()=>y,Ko:()=>p,Ul:()=>s,mR:()=>v,pk:()=>q,sY:()=>m,w8:()=>w,wK:()=>r});var d=c(73024),e=c.n(d),f=c(52509),g=c(70976),h=c(23921),i=c(49113);(0,f.E)("turn").clear(),(0,f.E)("turn-evidence-v1").clear(),(0,f.E)("turn-evidence-v2").clear();let j=(0,f.E)("turn-evidence-v3"),k=(0,f.E)("tail-v3"),l=(0,f.E)("head-records-v2");function m(a,b,c,d=4194304,e=41){let f=l.get(a);if(f&&f.size===b&&f.mtimeMs===c&&f.nbytes===d&&f.recordLimit===e)return{records:f.records.slice(),complete:!0};let h=(0,g.zy)(a,b,c,{maxBytes:d,lineLimit:e});if(!h.complete||!h.value)return{records:[],complete:!1};let{text:i,read:j,bytes:k}=h.value,n=i.split("\n");j<b&&!i.endsWith("\n")&&(n=n.slice(0,-1));let o=[];for(let a of n.slice(0,e)){let b=a.trim();if(b)try{let a=JSON.parse(b);a&&"object"==typeof a&&!Array.isArray(a)&&o.push(a)}catch{}}l.delete(a);let p=0;for(let a of l.values())p+=a.sourceBytes;for(;l.size>0&&(l.size>=64||p+k.length>0x1000000);){let a=l.keys().next().value;if(void 0===a)break;p-=l.get(a)?.sourceBytes??0,l.delete(a)}return l.set(a,{size:b,mtimeMs:c,nbytes:d,recordLimit:e,sourceBytes:k.length,records:o}),{records:o.slice(),complete:!0}}function n(a,b){let c=`${b.authoritative?"authoritative":"activity"}:${a}`;for(j.delete(c);j.size>=4096;){let a=j.keys().next().value;if(void 0===a)break;j.delete(a)}j.set(c,b)}function o(a,b,c,d){return"claude"===c&&!!d&&"terminal"===a.state&&null!==(0,i.v)(b)}function p(a){return"codex-sessions"===a?"codex":"openclaw-sessions"===a?"openclaw":"claude"}function q(a,b,c,d,e=!0){let f=`${e?"authoritative":"activity"}:${a}`,g=j.get(f);if(g&&g.size===b&&g.mtimeMs===c&&g.engine===d)return n(a,g),{turn:{...g.turn},complete:!0,composerReleased:g.composerReleased,recoveryReleased:g.recoveryReleased};let h=w(a,b,c),k=(0,i.j)(h.records,d,e),l=h.complete&&o(k,h.records,d,e);if(h.complete){n(a,{size:b,mtimeMs:c,engine:d,authoritative:e,turn:k,composerReleased:!1,recoveryReleased:l});let f=!e,g=`${f?"authoritative":"activity"}:${a}`,m=j.get(g),p=m?.size===b&&m.mtimeMs===c&&m.engine===d&&m.composerReleased,q=(0,i.j)(h.records,d,f);n(a,{size:b,mtimeMs:c,engine:d,authoritative:f,turn:q,composerReleased:p,recoveryReleased:o(q,h.records,d,f)})}return{turn:k,complete:h.complete,composerReleased:!1,recoveryReleased:l}}function r(a,b,c,d){for(let e of[`activity:${a}`,`authoritative:${a}`]){let a=j.get(e);if(a&&a.size===b&&a.mtimeMs===c&&a.engine===d)return{...a.turn}}return null}function s(a,b,c,d,e,f={}){let g=f.authoritative??!0,h=f.composerReleased??!1;"claude"===d&&g&&"terminal"===e.state||n(a,{size:b,mtimeMs:c,engine:d,authoritative:g,turn:{...e},composerReleased:h,recoveryReleased:!1})}function t(a,b,c,d){let e=`authoritative:${a}`,f=j.get(e);f&&f.size===b&&f.mtimeMs===c&&f.engine===d&&n(a,{...f,composerReleased:!0})}function u(a,b){return a.dev===b.dev&&a.ino===b.ino&&a.size===b.size&&a.mtimeNs===b.mtimeNs&&a.ctimeNs===b.ctimeNs}async function v(a,b=131072){let c=null;try{let d;c=await e().promises.open(a,"r");let f=await c.stat({bigint:!0});if(!f.isFile())return{integrity:"uncertain",records:[]};let g=Number(f.size);if(!Number.isSafeInteger(g))return{integrity:"uncertain",records:[]};let h=Math.min(g,b),i=g-h,j=+(i>0),k=i-j,l=Buffer.alloc(h+j),m=0;for(;m<l.length;){let a=await c.read(l,m,l.length-m,k+m);if(0===a.bytesRead)return{integrity:"uncertain",records:[]};m+=a.bytesRead}let n=await c.stat({bigint:!0}),o=await e().promises.stat(a,{bigint:!0});if(!u(f,n)||!u(n,o))return{integrity:"uncertain",records:[]};let p=l;if(i>0)if(10===l[0])p=l.subarray(1);else{let a=l.indexOf(10);if(a<0)return{integrity:"complete",prefixTruncated:!0,records:[]};p=l.subarray(a+1)}try{d=new TextDecoder("utf-8",{fatal:!0}).decode(p)}catch{return{integrity:"uncertain",records:[]}}let q=d.split("\n"),r=[];for(let a of q){let b,c=a.trim();if(c){try{b=JSON.parse(c)}catch{return{integrity:"uncertain",records:[]}}if(!b||"object"!=typeof b||Array.isArray(b))return{integrity:"uncertain",records:[]};r.push(b)}}return{integrity:"complete",prefixTruncated:i>0,records:r}}catch{return{integrity:"uncertain",records:[]}}finally{await c?.close().catch(()=>void 0)}}function w(a,b,c,d=131072){let f=k.get(a);if(f&&f.size===b&&f.mtimeMs===c&&f.nbytes===d)return{records:f.records.slice(),complete:!0,prefixTruncated:f.prefixTruncated};let g=function(a,b,c){let d=0,f="",g=!1;try{let h=e().openSync(a,"r");try{d=Math.max(0,b-c);let a=Buffer.alloc(Math.max(0,b-d)),i=0;for(;i<a.length;){let b=e().readSync(h,a,i,a.length-i,d+i);if(0===b)break;i+=b}g=i===a.length,f=a.toString("utf8",0,i)}finally{e().closeSync(h)}}catch{return{records:[],complete:!1,prefixTruncated:!1}}let h=f.split("\n");d>0&&h.length&&(h=h.slice(1));let i=[];for(let a of h){let b=a.trim();if(b)try{let a=JSON.parse(b);a&&"object"==typeof a&&!Array.isArray(a)&&i.push(a)}catch{}}return{records:i,complete:g,prefixTruncated:d>0}}(a,b,d);if(!g.complete)return g;if(k.size>=64&&!k.has(a)){let a=k.keys().next().value;void 0!==a&&k.delete(a)}return k.set(a,{size:b,mtimeMs:c,nbytes:d,prefixTruncated:g.prefixTruncated,records:g.records}),{records:g.records.slice(),complete:!0,prefixTruncated:g.prefixTruncated}}function x(a,b,c,d=131072){return w(a,b,c,d).records}function y(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",complete:!0}:{state:e<900?"recent":"idle",reason:"output_released",complete:!0};let f=!0;if(b.endsWith(".jsonl")){let g=q(b,d,1e3*c,p(a),!1),h="terminal"===g.turn.state?"done":"busy"===g.turn.state?"busy":null;if(f=g.complete,"busy"===h)return e<180?{state:"live",reason:"jsonl_turn_open",complete:f}:{state:"stalled",reason:"jsonl_turn_stalled",complete:f};if("done"===h)return{state:e<900?"recent":"idle",reason:"jsonl_turn_completed",complete:f}}return e<20?{state:"live",reason:"mtime_fresh",complete:f}:e<900?{state:"recent",reason:"mtime_recent",complete:f}:{state:"idle",reason:"mtime_old",complete:f}}},23921:(a,b,c)=>{c.d(b,{$L:()=>t,$U:()=>s,$w:()=>o,BB:()=>r,Bj:()=>D,FQ:()=>q,Fe:()=>u,Ib:()=>C,SP:()=>p,TK:()=>w,Tu:()=>x,VI:()=>v,Vt:()=>B,pl:()=>n,qM:()=>z,qP:()=>y});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(91724),i=c(63657),j=c(89333);let k=null,l=null,m=null;function n(a){return Number.isInteger(a)&&a>0&&i.B.pidAlive(a)}function o(a=!1){let b=Date.now();if(!a&&k&&b-k.at<12e3)return k.map;let c=new Map;return i.B.scanFdTargetsUnder(j.GH["claude-tasks"],(a,b)=>{a.endsWith(".output")&&!c.has(a)&&c.set(a,b)}),k={at:b,map:c},c}function p(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&&l&&l.key===d&&f-l.at<12e3)return l.map;let g=new Map;return c.size>0&&i.B.scanFdTargetsFor([...c.keys()],(a,b,d)=>{let e=c.get(a);e&&!g.has(e)&&d()&&g.set(e,b)}),l={at:f,key:d,map:g},g}function q(a,b){return i.B.pidWritesPath(a,b)}function r(a,b){return i.B.pidHoldsPath(a,b)}function s(a){return i.B.readArgv(a)}function t(a){return i.B.readCwd(a)}function u(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 v="LLV_STRUCTURED_HOST";function w(){return(0,h.BQ)()}function x(a){return i.B.readEnvVar(a,v)}function y(a){let b=u(a);if(null===b||B(a))return null;if("codex"===b)return a.includes("app-server")?"codex":null;let c=a.includes("-p")||a.includes("--print"),d=a.some((b,c)=>"--input-format"===b&&"stream-json"===a[c+1]);return c&&d?"claude":null}function z(a){return a.includes("--fork-session")}let A=new Set(["daemon","--bg-pty-host","--bg-spare"]);function B(a){return a.some(a=>A.has(a))}function C(a){return i.B.readPpid(a)}function D(a=!1){let b=Date.now();if(!a&&m&&b-m.at<12e3)return m.list;let c=[];for(let a of i.B.listProcesses()){let b=u(a.argv);null===b||B(a.argv)||null!==a.cwd&&c.push({pid:a.pid,engine:b,argv:a.argv,cwd:a.cwd,tty:a.tty})}return m={at:b,list:c},c}},28617:(a,b,c)=>{c.d(b,{Y8:()=>v,ZO:()=>P,g_:()=>Q,nd:()=>O});var d=c(73024),e=c.n(d),f=c(51455),g=c(76760),h=c.n(g),i=c(12770),j=c(36177),k=c(44502),l=c(2451),m=c(66024),n=c(12962),o=c(70107),p=c(78082),q=c(39876),r=c(89333),s=c(13605),t=c(23855),u=c(15862);function v(a,b){let c=h().relative(a,b).split(h().sep);return 4===c.length&&"tasks"===c[2]&&c[3]?.endsWith(".output")?[c[0]??"",c[1]??"",c[3].slice(0,-7)]:null}let w=-1/0;function x(a){return"object"==typeof a&&null!==a&&"code"in a&&"ENOENT"===a.code}function y(a,b,c){if(x(c))return!0;let d=Date.now();if(d-w>=6e4){w=d;let e=c instanceof Error?`${c.message}${"code"in c&&c.code?` (${String(c.code)})`:""}`:String(c);console.error(`[scanner discovery] ${a} failed for ${b}: ${e}; retaining the last completed scan`)}return!1}function z(a){let b=0,c=[];return async function(d){b>=a&&await new Promise(a=>c.push(a)),b+=1;try{return await d()}finally{b-=1,c.shift()?.()}}}async function A(a,b,c,d){let e;try{e=await d(()=>(0,f.readdir)(c,{withFileTypes:!0}))}catch(a){return{paths:[],complete:y("read directory",c,a)}}let g=await Promise.all(e.map(async e=>e.isDirectory()?e.name.startsWith(".git")||"claude-projects"===a&&"tool-results"===e.name?{paths:[],complete:!0}:A(a,b,h().join(c,e.name),d):e.isFile()&&r.Rg.some(a=>e.name.endsWith(a))&&("openclaw-sessions"!==a||(0,n.mu)(e.name))?{paths:[{rootName:a,root:b,path:h().join(c,e.name)}],complete:!0}:{paths:[],complete:!0}));return{paths:g.flatMap(a=>a.paths),complete:g.every(a=>a.complete)}}async function B(a,b,c){let d,g=a.path;try{d=await c(()=>(0,f.stat)(g))}catch(a){return{raw:[],complete:y("stat file",g,a)}}if("claude-projects"===a.rootName&&(0,l.a$)(h().relative(b["claude-projects"],g)))return{raw:[],complete:!0};let i="claude-tasks"===a.rootName?v(b["claude-tasks"],g):null;if("claude-tasks"===a.rootName&&!i||0===d.size&&!i)return{raw:[],complete:!0};if(i){let[a,d,f]=i,g=h().join(b["claude-projects"],a,d,"subagents","agent-"+f+".jsonl");try{return await c(()=>e().promises.access(g)),{raw:[],complete:!0}}catch(a){if(!x(a))return{raw:[],complete:y("access task-output twin",g,a)}}}return{raw:[{...a,st:d}],complete:!0}}function C(a){let b=new Map;for(let c of a){let a=h().basename(c.path);if("codex-sessions"!==c.rootName||!a.startsWith("rollout-")||!a.endsWith(".jsonl"))continue;let d=b.get(a);d&&d.root===c.root||b.set(a,c)}return a.filter(a=>{let c=h().basename(a.path);return"codex-sessions"!==a.rootName||!c.startsWith("rollout-")||!c.endsWith(".jsonl")||b.get(c)===a})}async function D(a,b){try{return await b(()=>e().promises.access(a)),{exists:!0,complete:!0}}catch(b){return{exists:!1,complete:y("access root",a,b)}}}function E(a){return Array.isArray(a)?a:Object.entries(a)}function F(a){return(0,u.Ot)(E(a).map(([,a])=>a))}function G(a,b,c,d,e){if(!(0,p.pu)(c))return;let f=e??("1"===process.env.LLV_FILE_SCANNER_WORKER?void 0:k.O);f?.({complete:b,sources:a.flatMap(a=>"openclaw"===a.engine?[]:[{path:a.path,project:d?.get(a.path)??a.project,engine:a.engine,size:a.size,mtimeMs:1e3*a.mtime}])})}async function H(a,b,c){let d=await I(a,b),e=Array.isArray(a)?r.GH:a;c&&d.complete&&(c(C(d.paths)),await new Promise(a=>setImmediate(a)));let f=await Promise.all(d.paths.map(a=>B(a,e,b)));return{raw:C(f.flatMap(a=>a.raw)),complete:d.complete&&f.every(a=>a.complete)}}async function I(a,b){let c=await Promise.all(E(a).map(async([a,c])=>{let d=await D(c,b);return d.exists?A(a,c,c,b):{paths:[],complete:d.complete}}));return{paths:c.flatMap(a=>a.paths),complete:c.every(a=>a.complete)}}async function J(a,b){let c=Date.now()-18e4,d=[];for(let e of a){if(d.length>=32)break;if(b.has(e.path)||!e.path.endsWith(".jsonl")||e.st.mtimeMs<=c)continue;let a=(0,t.Ko)(e.rootName);(0,t.wK)(e.path,e.st.size,e.st.mtimeMs,a)||d.push(e)}let e=!1;return await (0,i.pV)(d,a=>{let b=(0,t.pk)(a.path,a.st.size,a.st.mtimeMs,(0,t.Ko)(a.rootName),!1);e||="busy"===b.turn.state}),e}function K(a,b,c){return(0,s.Wl)(a,a=>{let c;return(c=b.get(a.path))&&"other"!==c?c:`unresolved:${h().dirname(a.path)}`},void 0,{protect:a=>(function(a,b){if(b?.has(a.path))return!0;if(!a.path.endsWith(".jsonl"))return!1;let c=(0,t.wK)(a.path,a.st.size,a.st.mtimeMs,(0,t.Ko)(a.rootName));return c?.state==="busy"})(a,c)})}let L={codex:"Codex",claude:"Claude",openclaw:"OpenClaw"};async function M(a,b,c,d=[],e=a=>a){let f=new Map(a),g=(0,j.xg)(!0);await (0,i.pV)([...g.projectByPath],([a,b])=>{let c=e(a);f.has(c)&&f.set(c,b)});let h=new Map,k=new Map;return await (0,i.pV)(d,a=>{k.set(a.project,{projectRoot:a.projectRoot,displayName:a.displayName})}),await (0,i.pV)(b,b=>{if(c?.has(b.path))return;let d=f.get(b.path)??b.project,e=a.get(b.path)??b.project,i=k.get(e),j=g.projectMetadataByPath.get(b.path),l=h.get(d)??{project:d,displayName:j?.displayName??i?.displayName??b.projectName,smt:0,conversations:0};l.smt=Math.max(l.smt,b.mtime),l.conversations+=1;let m=j?.projectRoot??i?.projectRoot;!l.projectRoot&&m&&(l.projectRoot=m),h.set(d,l)}),{projectByPath:f,projectCatalog:[...h.values()].sort((a,b)=>b.smt-a.smt||a.project.localeCompare(b.project))}}async function N(a,b,c,d,e,f=a=>a,g){let j=(0,q.g)(),k=(0,u.xe)(c,f),l=(0,u.xe)(d,f);a.sort((a,b)=>b.st.mtimeMs-a.st.mtimeMs);let n=new Map;await (0,i.pV)(a,a=>{if("codex-sessions"!==a.rootName||!a.path.endsWith(".jsonl"))return;let b=(0,m.Gz)(a.path);b&&n.set(b,a)});let p=k?.size?[...a.filter(a=>!k.has(a.path)),...a.filter(a=>k.has(a.path))]:a,r=K(p,b??new Map,g);await J(p,new Set(r.map(a=>a.path)))&&(r=K(p,b??new Map,g));let s=new Set(r.map(a=>a.path)),t=l?.size?new Set(s):void 0,v=l?.size?new Map(a.map(a=>[a.path,a])):null,w=async(a,b)=>{await (0,i.pV)(a,c=>{if("codex-sessions"!==c.rootName||!c.path.endsWith(".jsonl"))return;let d=e?.get(c.path)?.nativeParentThreadId,f=void 0===d?(0,m.S)(c.path,c.st.size,c.st.mtimeMs):d,g=f?n.get(f):void 0;g&&!b.has(g.path)&&(b.add(g.path),a.push(g))})};for(let a of(t&&await w([...r],t),l??[])){if(s.has(a))continue;let b=v?.get(a);b&&(s.add(b.path),r.push(b))}await w(r,s);let x=await (0,i.j0)(r,a=>{let c=e?.get(a.path)??(0,o.q0)(a.rootName,a.root,a.path,a.st,j);return{path:a.path,root:a.rootName,name:h().relative(a.root,a.path),project:b?.get(a.path)??c.project,projectName:c.projectName,projectUnresolved:c.projectUnresolved,worktree:c.worktree,cwd:c.cwd,sessionStartedAt:c.sessionStartedAt,nativeParentThreadId:c.nativeParentThreadId,nativeForkSourceThreadId:c.nativeForkSourceThreadId,projectRoot:c.projectRoot,title:c.title,engine:c.engine,kind:c.kind,fmt:c.fmt,parent:null,mtime:a.st.mtimeMs/1e3,size:a.st.size,activity:"idle",proc:null,pid:null,model:null,pendingQuestion:null,waitingInput:null}}),y=t?r.filter(a=>!t.has(a.path)).map(a=>a.path):[];return{files:x,...y.length?{pinOverlayPaths:y}:{}}}async function O(a=(0,r.s9)(),b,c={}){let d=(0,p.FX)(!1!==c.persist||!0===c.persistIndex),e=z(48),f=await H(a,e,c.onResourceSnapshot?a=>{var b;let d;return c.onResourceSnapshot((b=c.resourceBaseline,d=new Map((b?.files??[]).map(a=>[a.path,a])),{files:a.filter(a=>"claude-tasks"!==a.rootName&&a.path.endsWith(".jsonl")).map(a=>{let b=d.get(a.path),c="codex-sessions"===a.rootName?"codex":"openclaw-sessions"===a.rootName?"openclaw":"claude",e=b?.mtime??Date.now()/1e3,f=b?.size??1,g=function(a,b,c){let d=Date.now()/1e3-b;if(a?.size===c&&a.mtime===b){if("jsonl_turn_open"===a.activityReason||"jsonl_turn_stalled"===a.activityReason)return d<180?{activity:"live",activityReason:"jsonl_turn_open"}:{activity:"stalled",activityReason:"jsonl_turn_stalled"};if("jsonl_turn_completed"===a.activityReason)return d<900?{activity:"recent",activityReason:"jsonl_turn_completed"}:{activity:"idle",activityReason:"jsonl_turn_completed"}}return d<20?{activity:"live",activityReason:"mtime_fresh"}:d<900?{activity:"recent",activityReason:"mtime_recent"}:{activity:"idle",activityReason:"mtime_old"}}(b,e,f),i=h().basename(a.path);return{path:a.path,root:a.rootName,name:h().relative(a.root,a.path),project:b?.project??"other",projectName:b?.projectName,projectUnresolved:b?.projectUnresolved,cwd:b?.cwd,sessionStartedAt:b?.sessionStartedAt,nativeParentThreadId:b?.nativeParentThreadId,nativeForkSourceThreadId:b?.nativeForkSourceThreadId,projectRoot:b?.projectRoot,worktree:b?.worktree,title:b?.title??(i.startsWith("agent-")?`Subagent ${i.slice(6).split(".")[0]}`:`${L[c]} session`),engine:c,kind:b?.kind??(i.startsWith("agent-")?"subagent":"session"),fmt:c,parent:b?.parent??null,mtime:e,size:f,...g,proc:b?.proc??null,pid:b?.pid??null,model:null,pendingQuestion:null,waitingInput:null}}),projectCatalog:b?.projectCatalog??[],complete:!0}))}:void 0),g=F(a),i=(0,u.xe)(c.demote??c.loadDemote?.(),g),j=await (0,p.fX)(f.raw,{persist:c.persist,persistIndex:c.persistIndex,excludedSummaryPaths:i,scanToken:d,complete:f.complete}),{projectCatalog:k,projectByPath:l}=await M(j.projectByPath,j.conversationCatalog,i,j.projectCatalog,g),m=await N(f.raw,l,i,c.pin,j.summaryByPath,g,(0,u.xe)(c.hosted,g));return G(j.conversationCatalog,j.complete,d,l,c.transcriptIndexScheduler),{...m,projectCatalog:k,...c.transportConversationCatalog?{conversationCatalog:j.conversationCatalog.map(a=>({...a,project:l.get(a.path)??a.project}))}:{},complete:j.complete}}async function P(a=(0,r.s9)(),b,c,d){let e=(0,p.FX)(!1),f=z(48),g=await H(a,f),h=F(a),i=await (0,p.fX)(g.raw,{persist:!1,scanToken:e,complete:g.complete}),{projectByPath:j}=await M(i.projectByPath,i.conversationCatalog,void 0,i.projectCatalog,h),k=await N(g.raw,j,b,c,i.summaryByPath,h,(0,u.xe)(d,h));return G(i.conversationCatalog,i.complete,e,j),k.files}async function Q(a=(0,r.s9)()){let b=(0,p.FX)(!1),c=await H(a,z(48)),d=await (0,p.fX)(c.raw,{persist:!1,scanToken:b,complete:c.complete});G(d.conversationCatalog,d.complete,b,d.projectByPath)}},34196:(a,b,c)=>{c.d(b,{VO:()=>j,cn:()=>k,jk:()=>i,ml:()=>g,q0:()=>n});var d=c(56809);let e=["starting","running","waiting","stalled","completed","failed","blocked","gone"],f=["stage_started","stage_resumed","stage_paused","stage_completed","stage_failed","stage_blocked","review_verdict","repair_ready","deploy_ready","deploy_succeeded","deploy_failed","delivery_held","delivery_delivered","delivery_expired","agent_stalled","agent_gone","agent_resumed","project_moved"],g={stage_started:"running",stage_resumed:"running",stage_paused:"waiting",stage_completed:"completed",stage_failed:"failed",stage_blocked:"blocked",review_verdict:"completed",repair_ready:"waiting",deploy_ready:"waiting",deploy_succeeded:"completed",deploy_failed:"failed",delivery_held:"waiting",delivery_delivered:"completed",delivery_expired:"failed",agent_stalled:"stalled",agent_gone:"gone",agent_resumed:"running",project_moved:"completed"},h=new Set(["stage_completed","stage_failed","stage_blocked","review_verdict","deploy_succeeded","deploy_failed","delivery_held","delivery_expired"]);function i(a){return h.has(a)}function j(a){return"string"==typeof a&&f.includes(a)}function k(a){return"string"==typeof a&&e.includes(a)}let l=/^\s*(?:```|~~~)/,m=/[\p{L}\p{N}]/u;function n(a,b=200){if("string"!=typeof a||!a.trim())return"";let c=(0,d.j)(a),e=!1;for(let a of c.split(/\r?\n/)){if(l.test(a)){e=!e;continue}if(e)continue;let c=a.replace(/\s+/g," ").trim();if(c&&m.test(c))return c.length>b?`${c.slice(0,b-1)}…`:c}return""}},36177:(a,b,c)=>{c.d(b,{C$:()=>p,Ug:()=>s,Y:()=>r,f0:()=>w,iD:()=>t,jX:()=>v,xg:()=>x});var d=c(73024),e=c.n(d),f=c(10781),g=c(91724),h=c(70107),i=c(40713),j=c(36405),k=c(915);let l=new WeakMap,m=new WeakMap,n=null;function o(a,b,c=!0){let d=new Map,e=new Map,f=new Map,g=new Map,j=new Map,k=new Set;for(let b of Object.values(a.conversations)){let a=[...b.generations.map(a=>a.path),...b.continuityPaths];for(let c of(f.set(b.id,a),a))d.has(c)||d.set(c,b.id);let e=b.generations.at(-1);if(e){if(c){let{project:a}=(0,i.x)({projectOwnership:b.projectOwnership,cwd:e.launchProfile.cwd,launchProfileProject:e.launchProfile.project});a&&(g.set(e.path,a),e.launchProfile.cwd&&j.set(e.path,e.launchProfile.cwd))}for(let a of b.generations)a.path!==e.path&&k.add(a.path);for(let a of b.continuityPaths)a!==e.path&&k.add(a)}}for(let b of Object.keys(a.conversationAliases)){let c=function(a,b){let c=b,d=new Set;for(;!d.has(c);){d.add(c);let b=a.conversationAliases[c];if(!b)break;c=b}return c}(a,b);if(c===b)continue;let d=e.get(c);d?d.push(b):e.set(c,[b])}let l=new Map,m=new Map;return{signature:b,snapshot:a,conversationByPath:d,aliasesByCanonical:e,ownedPathsByConversation:f,projectByPath:g,projectMetadataByPath:{get(a){let b=l.get(a);if(void 0!==b)return b??void 0;let c=j.get(a),d=g.get(a);if(!c||!d)return void l.set(a,null);let e=m.get(c);m.has(c)||(e=(0,h.ot)(c),m.set(c,e));let f=e?.project===d?{displayName:e.displayName,...e.repo?{projectRoot:e.repo}:{},...e.unresolved?{unresolved:!0}:{}}:null;return l.set(a,f),f??void 0}},archivedPaths:k}}function p(a){let b=l.get(a);if(b)return b;let c=o(a,"snapshot");return l.set(a,c),c}function q(a,b=!1){let c;try{c=a.readOnlySnapshot()}catch(a){if(b&&!(a instanceof f.Ou))throw a;return null}return p(c)}function r(a,b,c=!0){let d=u(!0,void 0===b?void 0:c?p(b):function(a){let b=m.get(a);if(b)return b;let c=o(a,"snapshot-identity",!1);return m.set(a,c),c}(b),c);for(let b of a)d(b)}function s(a,b){let c=(0,k.uX)((0,k.S6)());if(0===c.size)return;let d=[...c.keys()].flatMap(a=>a.startsWith("conversation:")?[a.slice(13)]:[]),e=d.length>0?b(d):[],f=new Map,g=new Set(a.map(a=>a.path));for(let a of e)for(let b of a.ownedPaths)g.has(b)&&!f.has(b)&&f.set(b,a);for(let b of a){let a=f.get(b.path);a&&(b.conversationId=a.conversationId),(0,k.$U)(b,c,a?.aliases??[],a?.ownedPaths??[])}}function t(a){let b=u(!1,function(){let a,b=(0,g.BQ)("agent-registry.json");try{let c=e().statSync(b,{bigint:!0});a=`${b}:${c.mtimeNs}:${c.size}`}catch{return null}if(n?.signature===a)return n;try{let c=(0,f.l5)(JSON.parse(e().readFileSync(b,"utf8")));return n=o(c,a)}catch{return null}}());for(let c of a)b(c)}function u(a=!0,b,c=!0){let d=(0,k.uX)((0,k.S6)()),e=void 0===b?q((0,f.agentRegistry)()):b,g=e?.snapshot??null,h=e?.conversationByPath??new Map,l=e?.aliasesByCanonical??new Map,m=e?.ownedPathsByConversation??new Map;return b=>{if("claude"!==b.engine&&"codex"!==b.engine)return;if(b.spawn){b.renamable=!1;return}let f=h.get(b.path);!b.conversationId&&f&&(b.conversationId=f);let n=f?g?.conversations[f]:void 0,o=n?.generations.at(-1);if(o?.path===b.path&&(b.title=o.launchProfile.title??b.title,c)){b.project=(0,i.x)({projectOwnership:n?.projectOwnership,cwd:o.launchProfile.cwd,launchProfileProject:o.launchProfile.project,fallbackProject:b.project}).project??b.project;let a=e?.projectMetadataByPath.get(b.path);a&&(b.projectName=a.displayName,b.projectRoot=a.projectRoot??b.projectRoot,b.projectUnresolved=a.unresolved),n?.projectOwnership&&(b.projectOwnership={...n.projectOwnership})}if(a&&(b.renamable=(0,j.V)(b)),d.size>0){let a=b.conversationId?l.get(b.conversationId)??[]:[],c=b.conversationId?m.get(b.conversationId)??[]:[];(0,k.$U)(b,d,a,c)}}}async function v(a,b=48,c=()=>new Promise(a=>setImmediate(a)),d=!0){let e=u(!0,void 0,d);for(let d=0;d<a.length;d+=1)e(a[d]),(d+1)%b==0&&await c()}function w(a){let b=x().projectByPath;for(let c of a){let a=b.get(c.path);a&&(c.project=a)}}function x(a=!1){let b=q((0,f.agentRegistry)(),a);return b?{projectByPath:b.projectByPath,projectMetadataByPath:b.projectMetadataByPath,archivedPaths:b.archivedPaths}:{projectByPath:new Map,projectMetadataByPath:new Map,archivedPaths:new Set}}},36405:(a,b,c)=>{c.d(b,{V:()=>h,Y:()=>i});var d=c(73024),e=c.n(d),f=c(66024),g=c(915);function h(a){if("claude"!==a.engine&&"codex"!==a.engine||a.kind&&"session"!==a.kind||!(0,g.gq)(a.path))return!1;let b=void 0===a.mtime?void 0:1e3*a.mtime;return!("codex"===a.engine&&(0,f.ET)(a.path,a.size,b))}function i(a,b){let c=0;try{c=e().statSync(b).size}catch{c=0}return h({engine:a,path:b,size:c})}},40713:(a,b,c)=>{c.d(b,{x:()=>g});var d=c(89940),e=c(27832),f=c(70107);function g(a){let b=a.cwd?.trim(),c=Object.hasOwn(a,"cwdInfo")?a.cwdInfo??null:b?(0,f.ot)(b):null,g=a.projectOwnership?.project.trim();if(g){let a=(0,d.G$)(g),b=c?.project&&c.project!==e.Mv;if(!(b&&a===c?.displayName)&&(a!==e.Mv||!b))return{project:a,...c?.worktree?{worktree:c.worktree}:{},source:"ownership"}}if(c?.project)return{project:c.project,...c.worktree?{worktree:c.worktree}:{},source:"cwd"};let h=a.launchProfileProject?.trim();if(h)return{project:(0,d.G$)(h),source:"launch-profile"};let i=a.fallbackProject?.trim();return i?{project:(0,d.G$)(i),source:"fallback"}:{project:null,source:null}}},44502:(a,b,c)=>{c.d(b,{O:()=>h});var d=c(5197);let e=globalThis;async function f(a,b){let c=await (0,d.DL)(a,{complete:b});if(c.failures.length)throw Error(`${c.failures.length} transcript file(s) could not be indexed`)}async function g(a){for(;a.pending;){let b=a.pending;delete a.pending;try{await b.run(b.feed.sources,b.feed.complete)}catch(b){let a=b instanceof Error?b.message:String(b);console.error(`[transcript search] background indexing failed: ${a}; a later scan will retry`)}}}function h(a,b={}){let c=e.__llvTranscriptFeed??={scheduled:!1,idleWaiters:[]};c.pending={feed:a,run:b.run??f},c.active||c.scheduled||(c.scheduled=!0,setImmediate(()=>(function a(b){if(b.scheduled=!1,b.active)return;let c=g(b);b.active=c,c.finally(()=>{if(b.active===c&&delete b.active,b.pending&&!b.scheduled)b.scheduled=!0,setImmediate(()=>a(b));else if(!b.scheduled&&!b.active&&!b.pending)for(let a of b.idleWaiters.splice(0))a()})})(c)))}},49113:(a,b,c)=>{c.d(b,{j:()=>o,v:()=>n});var d=c(12962),e=c(95544);function f(a){let b=a.timestamp;return"string"==typeof b?b:null}let g=new Set(["authentication_failed","rate_limit"]);function h(a){return!0===a.isApiErrorMessage&&"string"==typeof a.error&&g.has(a.error)}let i="<synthetic>";function j(a){let b;if(b=((0,e.xK)(a.message)??{}).content,(0,e.Em)(b).some(a=>"tool_use"===(0,e.r$)(a.type)))return!1;let c=(0,e.r$)(((0,e.xK)(a.message)??{}).stop_reason);return"end_turn"===c||"stop_sequence"===c}function k(a){let b=(0,e.xK)(a.message)?.content;return"string"==typeof b?b:(0,e.Em)(b).map(a=>(0,e.r$)(a.text)??"").join("\n")}let l=/^no response requested\.?$/i,m=/^\s*\[Request interrupted by user(?: for tool use)?\]\s*$/;function n(a){let b=!1;for(let c=a.length-1;c>=0;c-=1){let d=a[c];if("result"===d.type)return b?{terminalAt:f(d)}:null;if("assistant"===d.type){if(h(d))return b?{terminalAt:f(d)}:null;if(!(!0!==d.isApiErrorMessage&&(0,e.r$)(((0,e.xK)(d.message)??{}).model)===i&&l.test(k(d).trim())))return null;b=!0;continue}if("user"===d.type){if(!b&&!(!0===d.interruptedByShutdown||"interruptedMessageId"in d||m.test(k(d))))return null;b=!0}}return null}function o(a,b,c=!1){if("openclaw"===b){for(let b=a.length-1;b>=0;b-=1){let c=a[b],g=(0,d.j5)(c);if(g){if("assistant"===g.role){if(!(0,d.Re)(c))continue;let a=(0,e.r$)(g.stopReason);if("stop"===a||"error"===a||"aborted"===a)return{state:"terminal",source:"lifecycle",terminalAt:f(c)};return{state:"busy",source:"assistant",terminalAt:null}}if("user"===g.role)return{state:"busy",source:"lifecycle",terminalAt:null}}}return{state:"unknown",source:"empty",terminalAt:null}}if("codex"===b){let b=!1,c=null,d=!1,g=new Set,h=0;for(let i of a){let a=(0,e.xK)(i.payload)??{},j=(0,e.r$)(a.type);if(!j)continue;if("task_started"===j||"turn_started"===j||"user_message"===j){g.clear(),h=0,b=!0,c=null,d=!1;continue}if("turn_aborted"===j){g.clear(),h=0,b=!1,c=f(i),d=!0;continue}if("task_complete"===j||"turn_complete"===j||"turn_completed"===j){0===g.size&&0===h?(b=!1,c=f(i),d=!0):(b=!0,c=null,d=!1);continue}if("agent_message"===j||"token_count"===j||"reasoning"===j)continue;let k=j.includes("output")||j.endsWith("_result");if(!(j.includes("tool")||j.includes("function")||j.includes("command")))continue;let l=(0,e.r$)(a.call_id)??(0,e.r$)(a.callId)??(0,e.r$)(a.id);if(k){let a=l?g.delete(l):h>0;if(!a&&d)continue;a&&!l&&(h-=1)}else l?g.add(l):h+=1;b=!0,c=null,d=!1}return d&&!b&&0===g.size&&0===h?{state:"terminal",source:"lifecycle",terminalAt:c}:b||g.size>0||h>0?{state:"busy",source:g.size>0||h>0?"tool":"lifecycle",terminalAt:null}:{state:"unknown",source:"empty",terminalAt:null}}if(c){let b={state:"unknown",source:"empty",terminalAt:null};for(let c of a)"result"===c.type?b={state:"terminal",source:"lifecycle",terminalAt:f(c)}:"user"===c.type?b={state:"busy",source:"lifecycle",terminalAt:null}:"assistant"===c.type&&(b=h(c)||!0!==c.isApiErrorMessage&&(0,e.r$)(((0,e.xK)(c.message)??{}).model)!==i&&j(c)?{state:"terminal",source:"lifecycle",terminalAt:f(c)}:{state:"busy",source:"assistant",terminalAt:null});if("busy"!==b.state)return b;let c=n(a);return c?{state:"terminal",source:"lifecycle",terminalAt:c.terminalAt}:b}for(let b of[...a].reverse()){if("assistant"===b.type){if(h(b)||j(b))return{state:"terminal",source:"lifecycle",terminalAt:f(b)};return{state:"busy",source:"assistant",terminalAt:null}}if("user"===b.type)return{state:"busy",source:"lifecycle",terminalAt:null}}return{state:"unknown",source:"empty",terminalAt:null}}},78082:(a,b,c)=>{c.d(b,{FX:()=>u,OQ:()=>w,fX:()=>E,pu:()=>v});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(3587),k=c(91724),l=c(12770),m=c(89940),n=c(27832),o=c(11149),p=c(63678),q=c(70107),r=c(39876);let s=-1/0,t=globalThis;function u(a){let b=(t.__llvProjectCatalogPublicationGeneration??0)+1;if(t.__llvProjectCatalogPublicationGeneration=b,!a)return{publication:b,persistence:null};let c=(t.__llvProjectCatalogPersistenceGeneration??0)+1;return t.__llvProjectCatalogPersistenceGeneration=c,{publication:b,persistence:c}}function v(a){return t.__llvProjectCatalogPublicationGeneration===a.publication}function w(a,b,c){return!!v(b)&&!!c&&((0,p.ru)(a),!0)}function x(){return(0,k.BQ)("project-catalog.json")}function y(a,b){return"codex-sessions"===a||"openclaw-sessions"===a||"claude-projects"===a&&("session"===b||"subagent"===b)}function z(a){return"codex-sessions"===a?"codex":"claude-projects"===a?"claude":"openclaw-sessions"===a?"openclaw":"shell"}function A(a){return"codex-sessions"===a?"codex":"claude-projects"===a?"claude":"openclaw-sessions"===a?"openclaw":"plain"}function B(a,b){let c=i().basename(a.path);return"subagent"===b?"Subagent "+c.slice(6).split(".")[0]:"codex-sessions"===a.rootName?"Codex session":"claude-projects"===a.rootName?"Claude session":"openclaw-sessions"===a.rootName?"OpenClaw session":"Background task "+c.split(".")[0]}function C(a,b){a.files[b.path]={summaryVersion:b.summaryVersion,summaryIncomplete:b.summaryIncomplete,rootName:b.rootName,size:b.size,mtimeMs:b.mtimeMs,sidecarSize:b.sidecarSize,sidecarMtimeMs:b.sidecarMtimeMs,stateKey:b.stateKey,project:b.project,projectName:b.projectName,projectUnresolved:b.projectUnresolved,projectRoot:b.projectRoot,kind:b.kind,session:b.session,worktree:b.worktree,cwd:b.cwd??null,sessionStartedAt:b.sessionStartedAt??null,nativeParentThreadId:b.nativeParentThreadId??null,nativeForkSourceThreadId:b.nativeForkSourceThreadId??null,title:b.titleCached?b.title:void 0,engine:b.engine,fmt:b.fmt}}function D(a){return"claude-projects"!==a.rootName&&"claude-tasks"!==a.rootName?null:i().relative(a.root,a.path).split(i().sep)[0]||null}async function E(a,b={}){let c=!1!==b.persist||!0===b.persistIndex,d=b.scanToken??u(c),f=function(){try{let a=JSON.parse(g().readFileSync(x(),"utf8"));if(1!==a.version&&2!==a.version||!a.files||"object"!=typeof a.files||Array.isArray(a.files))return{version:2,resolutionVersion:r.Q,files:{}};let b={};for(let[c,d]of Object.entries(a.files)){if(!d||"object"!=typeof d||Array.isArray(d)||"codex-sessions"!==d.rootName&&"claude-projects"!==d.rootName&&"claude-tasks"!==d.rootName&&"openclaw-sessions"!==d.rootName||"number"!=typeof d.size||"number"!=typeof d.mtimeMs||"string"!=typeof d.stateKey||"string"!=typeof d.project||void 0!==d.projectName&&"string"!=typeof d.projectName||void 0!==d.projectUnresolved&&!0!==d.projectUnresolved||void 0!==d.projectRoot&&null!==d.projectRoot&&"string"!=typeof d.projectRoot||"string"!=typeof d.kind)continue;let a="codex"===d.engine||"claude"===d.engine||"shell"===d.engine||"openclaw"===d.engine?d.engine:void 0,e="codex"===d.fmt||"claude"===d.fmt||"plain"===d.fmt||"openclaw"===d.fmt?d.fmt:void 0,f="string"==typeof d.cwd?d.cwd:null===d.cwd?null:void 0,g="string"==typeof d.sessionStartedAt?d.sessionStartedAt:null===d.sessionStartedAt?null:void 0,h="string"==typeof d.nativeParentThreadId?d.nativeParentThreadId:null===d.nativeParentThreadId?null:void 0,i="string"==typeof d.nativeForkSourceThreadId?d.nativeForkSourceThreadId:null===d.nativeForkSourceThreadId?null:void 0,j="number"==typeof d.sidecarSize?d.sidecarSize:null===d.sidecarSize?null:void 0,k="number"==typeof d.sidecarMtimeMs?d.sidecarMtimeMs:null===d.sidecarMtimeMs?null:void 0,l=4===d.summaryVersion&&"string"==typeof d.title&&"string"==typeof d.projectName&&void 0!==a&&void 0!==e&&void 0!==f&&void 0!==g&&void 0!==h&&void 0!==i&&void 0!==d.projectRoot&&void 0!==j&&void 0!==k;b[c]={summaryVersion:l?4:void 0,summaryIncomplete:!l&&!0===d.summaryIncomplete||void 0,rootName:d.rootName,size:d.size,mtimeMs:d.mtimeMs,sidecarSize:j,sidecarMtimeMs:k,stateKey:d.stateKey,project:d.project,projectName:"string"==typeof d.projectName?d.projectName:(0,n.rj)(d.project),projectUnresolved:!0===d.projectUnresolved||void 0,projectRoot:"string"==typeof d.projectRoot?d.projectRoot:null===d.projectRoot?null:void 0,kind:d.kind,session:y(d.rootName,d.kind),worktree:"string"==typeof d.worktree?d.worktree:void 0,cwd:f,sessionStartedAt:g,nativeParentThreadId:h,nativeForkSourceThreadId:i,title:"string"==typeof d.title?d.title:void 0,engine:a,fmt:e}}return{version:2,resolutionVersion:a.resolutionVersion??0,files:b}}catch{return{version:2,resolutionVersion:r.Q,files:{}}}}(),h=(0,r.g)(),k={},p=new Map,v=new Map,F=new Map,G=new Map;await (0,l.pV)(a,a=>{G.set(a.path,f.files[a.path]?.project)});let H=await (0,l.j0)(a,a=>(function(a,b,c){let d=b.files[a.path],e=(0,q.tS)(a.rootName,a.path,a.st);if(e.complete&&d?.summaryVersion===4&&d.size===a.st.size&&d.mtimeMs===a.st.mtimeMs&&d.sidecarSize===e.sidecarSize&&d.sidecarMtimeMs===e.sidecarMtimeMs&&void 0!==d.projectRoot&&(b.resolutionVersion!==r.Q||d.stateKey!==c)){let e=(0,q.xn)(a.rootName,a.root,a.path,{project:d.project,projectName:d.projectName??(0,n.rj)(d.project),projectUnresolved:d.projectUnresolved,worktree:d.worktree,cwd:d.cwd??void 0,sessionStartedAt:d.sessionStartedAt,nativeParentThreadId:d.nativeParentThreadId,nativeForkSourceThreadId:d.nativeForkSourceThreadId,projectRoot:d.projectRoot,title:d.title??B(a,d.kind),engine:d.engine??z(a.rootName),kind:d.kind,fmt:d.fmt??A(a.rootName)},c),f={...d,path:a.path,stateKey:c,project:e.project,projectName:e.projectName,projectUnresolved:e.projectUnresolved,projectRoot:e.projectRoot??null,worktree:e.worktree,cwd:e.cwd,session:y(a.rootName,e.kind),title:e.title,titleCached:!0,engine:e.engine,kind:e.kind,fmt:e.fmt};return C(b,f),f}if(b.resolutionVersion===r.Q&&e.complete&&d&&d.size===a.st.size&&d.mtimeMs===a.st.mtimeMs&&(4!==d.summaryVersion||d.sidecarSize===e.sidecarSize&&d.sidecarMtimeMs===e.sidecarMtimeMs)&&d.stateKey===c&&void 0!==d.projectRoot){if(4!==d.summaryVersion){let b=(0,q.CL)(a.rootName,a.root,a.path,a.st,c,e),f=b.description,g=!0===d.summaryIncomplete;return{...d,summaryVersion:b.complete?4:void 0,summaryIncomplete:!!g&&!b.complete||void 0,sidecarSize:e.sidecarSize,sidecarMtimeMs:e.sidecarMtimeMs,path:a.path,project:g?f.project||"other":d.project,projectName:g?f.projectName:d.projectName??(0,n.rj)(d.project),projectUnresolved:g?f.projectUnresolved:d.projectUnresolved,projectRoot:g?f.projectRoot??null:d.projectRoot,kind:g?f.kind:d.kind,session:y(a.rootName,g?f.kind:d.kind),worktree:g?f.worktree:d.worktree,cwd:f.cwd,sessionStartedAt:f.sessionStartedAt,nativeParentThreadId:f.nativeParentThreadId,nativeForkSourceThreadId:f.nativeForkSourceThreadId,title:f.title,titleCached:!0,engine:f.engine,fmt:f.fmt}}return{path:a.path,...d,session:y(a.rootName,d.kind),cwd:d.cwd??void 0,sessionStartedAt:d.sessionStartedAt,nativeParentThreadId:d.nativeParentThreadId,nativeForkSourceThreadId:d.nativeForkSourceThreadId,title:d.title??B(a,d.kind),titleCached:"string"==typeof d.title,engine:d.engine??z(a.rootName),fmt:d.fmt??A(a.rootName)}}let f=(0,q.CL)(a.rootName,a.root,a.path,a.st,c,e),g=f.description,h=f.complete||d?.summaryVersion!==4?void 0:d,i={summaryVersion:f.complete?4:void 0,summaryIncomplete:!f.complete||void 0,path:a.path,rootName:a.rootName,size:a.st.size,mtimeMs:a.st.mtimeMs,sidecarSize:e.sidecarSize,sidecarMtimeMs:e.sidecarMtimeMs,stateKey:c,project:h?.project??(g.project||"other"),projectName:h?.projectName??g.projectName,projectUnresolved:h?.projectUnresolved??g.projectUnresolved,projectRoot:h?h.projectRoot??null:g.projectRoot??null,kind:g.kind,session:y(a.rootName,g.kind),worktree:h?.worktree??g.worktree,cwd:h?h.cwd??void 0:g.cwd,sessionStartedAt:h?h.sessionStartedAt:g.sessionStartedAt,nativeParentThreadId:h?h.nativeParentThreadId:g.nativeParentThreadId,nativeForkSourceThreadId:h?h.nativeForkSourceThreadId:g.nativeForkSourceThreadId,title:g.title,titleCached:!0,engine:g.engine,fmt:g.fmt};return C(b,i),i})(a,f,h)),I=!1!==b.complete&&H.every(a=>4===a.summaryVersion),J=new Map;await (0,l.pV)(a,(a,b)=>{let c=H[b],d="claude-projects"===c.rootName&&c.session?D(a):null;d&&J.set(d,c.project)}),await (0,l.pV)(a,(b,c)=>{let d=D(a[c]),e=d?J.get(d):void 0;e&&(H[c].project=e)});let K=new Map,L=new Map;await (0,l.pV)(H,a=>{if(k[a.path]={summaryVersion:a.summaryVersion,summaryIncomplete:a.summaryIncomplete,rootName:a.rootName,size:a.size,mtimeMs:a.mtimeMs,sidecarSize:a.sidecarSize,sidecarMtimeMs:a.sidecarMtimeMs,stateKey:a.stateKey,project:a.project,projectName:a.projectName,projectUnresolved:a.projectUnresolved,projectRoot:a.projectRoot,kind:a.kind,session:a.session,worktree:a.worktree,cwd:a.cwd??null,sessionStartedAt:a.sessionStartedAt??null,nativeParentThreadId:a.nativeParentThreadId??null,nativeForkSourceThreadId:a.nativeForkSourceThreadId??null,title:a.titleCached?a.title:void 0,engine:a.engine,fmt:a.fmt},a.cwd&&a.project){let b=L.get(a.cwd)??new Set;b.add(a.project),L.set(a.cwd,b)}let c=G.get(a.path);if(c&&c!==a.project){let b=K.get(c)??new Set;b.add(a.project),K.set(c,b)}let d=a.project||"other";F.set(a.path,d);let e=p.get(d);if(e||(e={project:d,displayName:a.projectName??(0,n.rj)(d),smt:0,conversations:0},p.set(d,e)),e.smt=Math.max(e.smt,a.mtimeMs/1e3),a.session&&(e.conversations+=1),a.projectRoot&&!b.excludedSummaryPaths?.has(a.path)){let b=v.get(d)??new Map,c=b.get(a.projectRoot)??{count:0,newest:0};c.count+=1,c.newest=Math.max(c.newest,a.mtimeMs),b.set(a.projectRoot,c),v.set(d,b)}}),await (0,l.pV)([...v],([a,b])=>{let c=[...b].sort(([a,b],[c,d])=>d.count-b.count||d.newest-b.newest||a.localeCompare(c))[0]?.[0];c&&(p.get(a).projectRoot=c)}),await (0,l.pV)([...b.excludedSummaryPaths??[]],a=>{let b=k[a],c=b?p.get(b.project||"other"):void 0;b?.session&&c&&c.conversations>0&&(c.conversations-=1)});let M=[],N=new Map;await (0,l.pV)(H,(b,c)=>{N.set(b.path,{project:b.project||"other",projectName:b.projectName??(0,n.rj)(b.project||"other"),projectUnresolved:b.projectUnresolved,worktree:b.worktree,cwd:b.cwd??void 0,sessionStartedAt:b.sessionStartedAt,nativeParentThreadId:b.nativeParentThreadId,nativeForkSourceThreadId:b.nativeForkSourceThreadId,projectRoot:b.projectRoot,title:b.title,engine:b.engine,kind:b.kind,fmt:b.fmt}),b.session&&("codex"===b.engine||"claude"===b.engine||"openclaw"===b.engine)&&M.push({path:b.path,root:b.rootName,name:i().relative(a[c].root,b.path),project:b.project||"other",projectName:b.projectName,projectUnresolved:b.projectUnresolved,worktree:b.worktree,title:b.title,firstPrompt:"",engine:b.engine,kind:b.kind,fmt:b.fmt,mtime:b.mtimeMs/1e3,size:b.size})});let O=null!==d.persistence&&t.__llvProjectCatalogPersistenceGeneration===d.persistence;if(w(M,d,I),O&&c&&I){let a=!0;if(!1!==b.persist)try{let b=function(a,b){let c=new Map,d=[];for(let[e,f]of a){if(1!==f.size){d.push(e);continue}let g=f.values().next().value,h=new Set([e]);for(;g&&(b.get(g)?.conversations??0)===0;){if(h.has(g)){g=void 0;break}h.add(g);let b=a.get(g);if(b?.size!==1)break;g=b.values().next().value}g&&g!==e&&(b.get(g)?.conversations??0)>0&&c.set(e,g)}return{migrations:c,conflicts:d}}(K,p);if(b.conflicts.length>0)throw Error("ambiguous catalog project identity");let c=b.migrations,d=[...c].map(([a,b])=>({source:a,target:b,displayName:p.get(b)?.displayName??(0,n.rj)(b)})),e=(0,m.JC)(),f=e.conflicts.length;for(let a of e.registrations){let b=c.get(a.source);if(b&&b!==a.target){f+=1;continue}c.set(a.source,a.target),d.push(a)}f>0&&console.error(`[project catalog] ${f} durable project alias source(s) unresolved; persisting the clean batch and retrying them on a later scan`),(a=(0,m.YX)(d))&&(a=(0,j.aM)(c)),a&&(a=(0,m.oh)(d))}catch{a=!1}if(a&&!1!==b.persist)try{(0,o.n)([...L].filter(([,a])=>a.size>1).flatMap(([a,b])=>[...b].map(b=>(0,o.M)(b,a))))}catch{console.error("[project catalog] project identity succession deferred; a later scan will retry")}a?function(a){let b,c="create state directory",d=x();try{let f=x();d=f,g().mkdirSync(i().dirname(f),{recursive:!0,mode:448}),g().chmodSync(i().dirname(f),448),b=i().join(i().dirname(f),`.${i().basename(f)}.${process.pid}.${e().randomUUID()}.tmp`),c="write temporary index",d=b,g().writeFileSync(b,JSON.stringify(a)+"\n",{encoding:"utf8",mode:384}),c="rename temporary index",d=f,g().renameSync(b,f)}catch(a){if(void 0!==b)try{g().unlinkSync(b)}catch{}!function(a,b,c){let d=Date.now();if(d-s<6e4)return;s=d;let e=c instanceof Error?`${c.message}${"code"in c&&c.code?` (${String(c.code)})`:""}`:String(c);console.error(`[project catalog] ${a} failed for ${b}: ${e}; a later scan will retry`)}(c,d,a)}}({version:2,resolutionVersion:r.Q,files:k}):console.error("[project catalog] board project migration deferred; a later scan will retry")}return{projectCatalog:[...p.values()].filter(a=>a.conversations>0).sort((a,b)=>b.smt-a.smt||a.project.localeCompare(b.project)),projectByPath:F,conversationCatalog:M,summaryByPath:N,complete:I}}},79645:(a,b,c)=>{c.d(b,{Q:()=>p,Vj:()=>q,_1:()=>o});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(91724),i=c(65154),j=c(2033),k=c(34196);function l(){return(0,h.BQ)("lifecycle-journal.json")}class m extends Error{constructor(a,b){super(`the lifecycle journal at ${a} is unreadable (${b}); move it aside to start a new one`),this.name="LifecycleJournalCorruptError",this.journalPath=a}}function n(){let a,b,c=l();try{a=g().readFileSync(c,"utf8")}catch(a){if("ENOENT"===a.code)return{version:1,lastSeq:0,events:[],retired:[]};throw new m(c,`it could not be read: ${a.message}`)}try{b=JSON.parse(a)}catch{throw new m(c,"it is not valid JSON — the last write was truncated")}return function(a,b){if(!a||"object"!=typeof a||Array.isArray(a))throw new m(b,"its contents are not a journal object");if(void 0!==a.events&&!Array.isArray(a.events))throw new m(b,"its events field is not an array");let c=a.events??[],d=[];for(let[a,e]of c.entries()){let f=function(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.id||!a.id||!Number.isInteger(a.seq)||a.seq<1||"string"!=typeof a.at||!a.at||!(0,k.VO)(a.type))return null;let b=(0,k.cn)(a.state)?a.state:k.ml[a.type],c=a=>"string"==typeof a?a:null;return{id:a.id,seq:a.seq,at:a.at,type:a.type,state:b,project:c(a.project),pipelineId:c(a.pipelineId),stageId:c(a.stageId),attempt:Number.isInteger(a.attempt)?a.attempt:null,conversationId:c(a.conversationId),role:c(a.role),summary:"string"==typeof a.summary?a.summary:""}}(e);if(!f)throw new m(b,`recorded event ${a+1} of ${c.length} is malformed`);d.push(f)}d.sort((a,b)=>a.seq-b.seq);let e=Array.isArray(a.retired)?a.retired.filter(a=>"string"==typeof a):[],f=d.at(-1)?.seq??0;return{version:1,lastSeq:Number.isInteger(a.lastSeq)?Math.max(a.lastSeq,f):f,events:d,retired:e}}(b,c)}function o(){return n()}function p(a){return 0===a.length?{appended:[],skipped:0}:(0,j.Ol)(l(),"lifecycle journal is busy",()=>{var b;let c=n(),d=new Set([...c.events.map(a=>a.id),...c.retired]),f=[],g=0;for(let h of a){let a=(b=h.key,`evt_${e().createHash("sha256").update(b).digest("hex").slice(0,24)}`);if(d.has(a)){g+=1;continue}d.add(a),c.lastSeq+=1;let i={id:a,seq:c.lastSeq,at:h.at,type:h.type,state:k.ml[h.type],project:h.project??null,pipelineId:h.pipelineId??null,stageId:h.stageId??null,attempt:Number.isInteger(h.attempt)?h.attempt:null,conversationId:h.conversationId??null,role:h.role??null,summary:(0,k.q0)(h.summary)};c.events.push(i),f.push(i)}if(0===f.length)return{appended:f,skipped:g};if(c.events.length>2e3){let a=c.events.splice(0,c.events.length-2e3);c.retired=[...c.retired,...a.map(a=>a.id)].slice(-8e3)}return(0,i.f)(l(),c),{appended:f,skipped:g}})}function q(a,b={}){let c=Math.max(1,Math.min(200,Number.isInteger(b.limit)?b.limit:50)),d=Number.isInteger(b.afterSeq)?b.afterSeq:0,e=a.events.filter(a=>!(a.seq<=d)&&(!b.project||a.project===b.project)&&(!b.pipelineId||a.pipelineId===b.pipelineId)&&(!b.conversationId||a.conversationId===b.conversationId)&&(!b.stageId||a.stageId===b.stageId)&&(!b.type||a.type===b.type)&&!0),f=e.slice(0,c);return{count:f.length,events:f,cursor:a.lastSeq,remaining:e.length-f.length}}},89333:(a,b,c)=>{let d,e,f;c.d(b,{Bz:()=>s,EG:()=>w,GH:()=>q,Ps:()=>x,Rg:()=>t,jQ:()=>u,s9:()=>r});var g=c(73024),h=c.n(g),i=c(48161),j=c.n(i),k=c(76760),l=c.n(k),m=c(41617),n=c(78966),o=c(13605);let p=j().homedir(),q={"codex-sessions":l().join(p,".codex/sessions"),"claude-projects":l().join(p,".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),"openclaw-sessions":l().join(p,".openclaw/agents")};function r(){let a=[...(0,m.vD)().map(a=>["codex-sessions",a]),...(0,n.pW)().map(a=>["claude-projects",a]),["claude-tasks",q["claude-tasks"]],...(function(){let a,b,c=l().join((b=process.env.OPENCLAW_STATE_DIR?.trim())?l().resolve(b):l().join(j().homedir(),".openclaw"),"agents");try{a=h().readdirSync(c,{withFileTypes:!0})}catch{return[]}return a.filter(a=>(a.isDirectory()||a.isSymbolicLink())&&!a.name.startsWith(".")).map(a=>l().join(c,a.name,"sessions")).sort()})().map(a=>["openclaw-sessions",a])],b=new Set;return a.filter(([,a])=>{let c=v(a)??l().resolve(a);return!b.has(c)&&(b.add(c),!0)})}function s(a){for(let b of(0,n.pW)())try{let c=h().realpathSync(a),d=h().realpathSync(b);if(c.startsWith(d+l().sep))return b}catch{}return null}let t=[".log",".jsonl",".output",".txt"],u=786432;function v(a){try{return h().realpathSync(a)}catch{return null}}function w(a){let b=v(a);return!!b&&r().some(([,a])=>{let c=v(a);return null!==c&&b.startsWith(c+l().sep)})}function x(a){for(let b of(0,m.vD)())try{let c=h().realpathSync(a),d=h().realpathSync(b);if(c.startsWith(d+l().sep))return b}catch{continue}return null}o.de,o.cy}};
2
+ `,"utf8"),b()}finally{g().closeSync(c),g().rmSync(a,{force:!0})}}catch(b){if("EEXIST"!==b.code)throw b;try{if(Date.now()-g().statSync(a).mtimeMs>1e4){g().rmSync(a,{force:!0});continue}}catch{continue}if(Date.now()-c>=5e3)throw Error("session titles store is busy; retry shortly");Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,10)}}(`${b}.lock`,()=>{var c;let d=a(q(b));return d.records&&function(a,b=n()){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({version:1,titles:a},null,2)+"\n","utf8"),g().renameSync(c,b)}((c=d.records).length<=2e3?c:[...c].sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt)).slice(0,2e3),b),d.result})}(e=>{let g=null;for(let b of a){let a=e.find(a=>a.key===b);if(a){g=a;break}}if(void 0!==d&&d!==(g?.revision??0))return{records:void 0,result:{ok:!1,conflict:g}};let h=null===c?null:s(c),i=e.filter(a=>!j.has(a.key));if(null===h){if(!g)return{records:void 0,result:{ok:!0,override:null,revision:0}};if(null===g.title)return{records:void 0,result:{ok:!0,override:null,revision:g.revision}};let a={key:b,title:null,revision:g.revision+1,updatedAt:f};return{records:[...i,a],result:{ok:!0,override:null,revision:a.revision}}}let k={key:b,title:h,revision:(g?.revision??0)+1,updatedAt:f};return{records:[...i,k],result:{ok:!0,override:k,revision:k.revision}}},h)}},11149:(a,b,c)=>{c.d(b,{M:()=>l,n:()=>m});var d=c(73024),e=c.n(d),f=c(3587),g=c(79645),h=c(89940),i=c(27832),j=c(70107);function k(a,b){return a.startsWith("dir-")?a===(0,i.directoryProjectId)(b):!!a.startsWith("repo-")&&[...new Set([(0,i.repositoryRootForPath)(b),(0,j.D$)(b)].filter(a=>!!a))].some(b=>(0,i.localRepositoryProjectId)(b)===a)}function l(a,b){let c,d,f=a.trim();if(!(0,i.isCanonicalProjectId)(f)||!b?.trim()||!function(a){try{return e().statSync(a).isDirectory()}catch{return!1}}(b.trim()))return null;let g=function(a){try{return e().realpathSync.native(a)}catch{return a}}(b.trim()),l=(d=(c=(0,j.D$)(g))?(0,i.projectIdentityFromRepositoryRoot)(c):null)?{project:d.project,displayName:d.displayName}:(0,i.projectIdentityFromDirectory)(g);if(!l||!(0,i.isCanonicalProjectId)(l.project))return null;let m=(0,h.G$)(f),n=m!==f&&k(m,g)?m:f;return k(n,g)&&n!==l.project&&(0,h.G$)(n)!==l.project?{source:n,target:l.project,displayName:l.displayName}:null}function m(a){let b=[],c=new Set;for(let d of a){if(!(!d||c.has(d.source))){if((c.add(d.source),(0,h.G$)(d.source)!==d.target&&(0,h.YX)([d])&&(0,f.aM)(new Map([[d.source,d.target]])))&&(0,h.oh)([d])){b.push(d);try{(0,g.Q)([{key:`project-succession:${d.source}:${d.target}`,type:"project_moved",at:new Date().toISOString(),project:d.target,summary:`${d.displayName}: project identity moved from ${d.source} to ${d.target}; everything recorded under the old key now reads as this project`}])}catch{}}}}return b}},12770:(a,b,c)=>{c.d(b,{Lh:()=>e,j0:()=>g,pV:()=>f});var d=c(643);function e(){return new Promise(a=>setImmediate(a))}async function f(a,b,c={}){let g=Math.max(1,Math.floor(c.batchSize??16)),h=Math.max(1,c.timeBudgetMs??32),i=d.performance.now(),j=0;for(let c=0;c<a.length;c+=1)await b(a[c],c),j+=1,!(c+1>=a.length)&&(j<g&&d.performance.now()-i<h||(await e(),i=d.performance.now(),j=0))}async function g(a,b,c={}){let d=Array(a.length);return await f(a,async(a,c)=>{d[c]=await b(a,c)},c),d}},13605:(a,b,c)=>{c.d(b,{Wl:()=>g,cy:()=>e,de:()=>d});let d=10,e=80;function f(a,b){let c=Number(a);return Number.isSafeInteger(c)&&c>0?c:b}function g(a,b,c=function(a=process.env){return{projectCap:f(a.LLV_SCHEME_PROJECT_CAP,d),cardsPerProject:f(a.LLV_SCHEME_CARDS_PER_PROJECT,e)}}(),h={}){let i=h.protect,j=i?new Set(a.filter(i)):null,k=new Set;for(let d of a)if(k.add(b(d)),k.size>=c.projectCap)break;let l=new Map;return a.filter(a=>{if(j?.has(a))return!0;let d=b(a);if(!k.has(d))return!1;let e=l.get(d)??0;return!(e>=c.cardsPerProject)&&(l.set(d,e+1),!0)})}},15862:(a,b,c)=>{c.d(b,{Ot:()=>l,xe:()=>m});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(78966),i=c(41617);function j(a){try{return e().realpathSync(a)}catch{return null}}let k=a=>a;function l(a,b=function(){let a=[],b=b=>{b&&!a.includes(b)&&a.push(b)},c=a=>{try{for(let c of a())b(c)}catch{}};try{b(g().join((0,h.Hy)(),"projects")),b((0,h.o1)())}catch{}return c(h.pW),c(i.vD),a}()){let c=new Map;for(let b of a){let a=j(b);a&&!c.has(a)&&c.set(a,b)}if(!c.size)return k;let d=[];for(let a of b){let b=c.get(j(a)??"\0");b&&b!==a&&d.push([a+g().sep,b+g().sep])}return d.length?(d.sort(([a],[b])=>b.length-a.length),a=>{for(let[b,c]of d)if(a.startsWith(b))return c+a.slice(b.length);return a}):k}function m(a,b){if(!a?.size||b===k)return a;let c=new Set;for(let d of a)c.add(d),c.add(b(d));return c.size===a.size?a:c}},23855:(a,b,c)=>{c.d(b,{Be:()=>t,He:()=>x,Hz:()=>y,Ko:()=>p,Ul:()=>s,mR:()=>v,pk:()=>q,sY:()=>m,w8:()=>w,wK:()=>r});var d=c(73024),e=c.n(d),f=c(52509),g=c(70976),h=c(23921),i=c(49113);(0,f.E)("turn").clear(),(0,f.E)("turn-evidence-v1").clear(),(0,f.E)("turn-evidence-v2").clear();let j=(0,f.E)("turn-evidence-v3"),k=(0,f.E)("tail-v3"),l=(0,f.E)("head-records-v2");function m(a,b,c,d=4194304,e=41){let f=l.get(a);if(f&&f.size===b&&f.mtimeMs===c&&f.nbytes===d&&f.recordLimit===e)return{records:f.records.slice(),complete:!0};let h=(0,g.zy)(a,b,c,{maxBytes:d,lineLimit:e});if(!h.complete||!h.value)return{records:[],complete:!1};let{text:i,read:j,bytes:k}=h.value,n=i.split("\n");j<b&&!i.endsWith("\n")&&(n=n.slice(0,-1));let o=[];for(let a of n.slice(0,e)){let b=a.trim();if(b)try{let a=JSON.parse(b);a&&"object"==typeof a&&!Array.isArray(a)&&o.push(a)}catch{}}l.delete(a);let p=0;for(let a of l.values())p+=a.sourceBytes;for(;l.size>0&&(l.size>=64||p+k.length>0x1000000);){let a=l.keys().next().value;if(void 0===a)break;p-=l.get(a)?.sourceBytes??0,l.delete(a)}return l.set(a,{size:b,mtimeMs:c,nbytes:d,recordLimit:e,sourceBytes:k.length,records:o}),{records:o.slice(),complete:!0}}function n(a,b){let c=`${b.authoritative?"authoritative":"activity"}:${a}`;for(j.delete(c);j.size>=4096;){let a=j.keys().next().value;if(void 0===a)break;j.delete(a)}j.set(c,b)}function o(a,b,c,d){return"claude"===c&&!!d&&"terminal"===a.state&&null!==(0,i.v)(b)}function p(a){return"codex-sessions"===a?"codex":"openclaw-sessions"===a?"openclaw":"claude"}function q(a,b,c,d,e=!0){let f=`${e?"authoritative":"activity"}:${a}`,g=j.get(f);if(g&&g.size===b&&g.mtimeMs===c&&g.engine===d)return n(a,g),{turn:{...g.turn},complete:!0,composerReleased:g.composerReleased,recoveryReleased:g.recoveryReleased};let h=w(a,b,c),k=(0,i.j)(h.records,d,e),l=h.complete&&o(k,h.records,d,e);if(h.complete){n(a,{size:b,mtimeMs:c,engine:d,authoritative:e,turn:k,composerReleased:!1,recoveryReleased:l});let f=!e,g=`${f?"authoritative":"activity"}:${a}`,m=j.get(g),p=m?.size===b&&m.mtimeMs===c&&m.engine===d&&m.composerReleased,q=(0,i.j)(h.records,d,f);n(a,{size:b,mtimeMs:c,engine:d,authoritative:f,turn:q,composerReleased:p,recoveryReleased:o(q,h.records,d,f)})}return{turn:k,complete:h.complete,composerReleased:!1,recoveryReleased:l}}function r(a,b,c,d){for(let e of[`activity:${a}`,`authoritative:${a}`]){let a=j.get(e);if(a&&a.size===b&&a.mtimeMs===c&&a.engine===d)return{...a.turn}}return null}function s(a,b,c,d,e,f={}){let g=f.authoritative??!0,h=f.composerReleased??!1;"claude"===d&&g&&"terminal"===e.state||n(a,{size:b,mtimeMs:c,engine:d,authoritative:g,turn:{...e},composerReleased:h,recoveryReleased:!1})}function t(a,b,c,d){let e=`authoritative:${a}`,f=j.get(e);f&&f.size===b&&f.mtimeMs===c&&f.engine===d&&n(a,{...f,composerReleased:!0})}function u(a,b){return a.dev===b.dev&&a.ino===b.ino&&a.size===b.size&&a.mtimeNs===b.mtimeNs&&a.ctimeNs===b.ctimeNs}async function v(a,b=131072){let c=null;try{let d;c=await e().promises.open(a,"r");let f=await c.stat({bigint:!0});if(!f.isFile())return{integrity:"uncertain",records:[]};let g=Number(f.size);if(!Number.isSafeInteger(g))return{integrity:"uncertain",records:[]};let h=Math.min(g,b),i=g-h,j=+(i>0),k=i-j,l=Buffer.alloc(h+j),m=0;for(;m<l.length;){let a=await c.read(l,m,l.length-m,k+m);if(0===a.bytesRead)return{integrity:"uncertain",records:[]};m+=a.bytesRead}let n=await c.stat({bigint:!0}),o=await e().promises.stat(a,{bigint:!0});if(!u(f,n)||!u(n,o))return{integrity:"uncertain",records:[]};let p=l;if(i>0)if(10===l[0])p=l.subarray(1);else{let a=l.indexOf(10);if(a<0)return{integrity:"complete",prefixTruncated:!0,records:[]};p=l.subarray(a+1)}try{d=new TextDecoder("utf-8",{fatal:!0}).decode(p)}catch{return{integrity:"uncertain",records:[]}}let q=d.split("\n"),r=[];for(let a of q){let b,c=a.trim();if(c){try{b=JSON.parse(c)}catch{return{integrity:"uncertain",records:[]}}if(!b||"object"!=typeof b||Array.isArray(b))return{integrity:"uncertain",records:[]};r.push(b)}}return{integrity:"complete",prefixTruncated:i>0,records:r}}catch{return{integrity:"uncertain",records:[]}}finally{await c?.close().catch(()=>void 0)}}function w(a,b,c,d=131072){let f=k.get(a);if(f&&f.size===b&&f.mtimeMs===c&&f.nbytes===d)return{records:f.records.slice(),complete:!0,prefixTruncated:f.prefixTruncated};let g=function(a,b,c){let d=0,f="",g=!1;try{let h=e().openSync(a,"r");try{d=Math.max(0,b-c);let a=Buffer.alloc(Math.max(0,b-d)),i=0;for(;i<a.length;){let b=e().readSync(h,a,i,a.length-i,d+i);if(0===b)break;i+=b}g=i===a.length,f=a.toString("utf8",0,i)}finally{e().closeSync(h)}}catch{return{records:[],complete:!1,prefixTruncated:!1}}let h=f.split("\n");d>0&&h.length&&(h=h.slice(1));let i=[];for(let a of h){let b=a.trim();if(b)try{let a=JSON.parse(b);a&&"object"==typeof a&&!Array.isArray(a)&&i.push(a)}catch{}}return{records:i,complete:g,prefixTruncated:d>0}}(a,b,d);if(!g.complete)return g;if(k.size>=64&&!k.has(a)){let a=k.keys().next().value;void 0!==a&&k.delete(a)}return k.set(a,{size:b,mtimeMs:c,nbytes:d,prefixTruncated:g.prefixTruncated,records:g.records}),{records:g.records.slice(),complete:!0,prefixTruncated:g.prefixTruncated}}function x(a,b,c,d=131072){return w(a,b,c,d).records}function y(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",complete:!0}:{state:e<900?"recent":"idle",reason:"output_released",complete:!0};let f=!0;if(b.endsWith(".jsonl")){let g=q(b,d,1e3*c,p(a),!1),h="terminal"===g.turn.state?"done":"busy"===g.turn.state?"busy":null;if(f=g.complete,"busy"===h)return e<180?{state:"live",reason:"jsonl_turn_open",complete:f}:{state:"stalled",reason:"jsonl_turn_stalled",complete:f};if("done"===h)return{state:e<900?"recent":"idle",reason:"jsonl_turn_completed",complete:f}}return e<20?{state:"live",reason:"mtime_fresh",complete:f}:e<900?{state:"recent",reason:"mtime_recent",complete:f}:{state:"idle",reason:"mtime_old",complete:f}}},23921:(a,b,c)=>{c.d(b,{$L:()=>t,$U:()=>s,$w:()=>o,BB:()=>r,Bj:()=>D,FQ:()=>q,Fe:()=>u,Ib:()=>C,SP:()=>p,TK:()=>w,Tu:()=>x,VI:()=>v,Vt:()=>B,pl:()=>n,qM:()=>z,qP:()=>y});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(91724),i=c(63657),j=c(89333);let k=null,l=null,m=null;function n(a){return Number.isInteger(a)&&a>0&&i.B.pidAlive(a)}function o(a=!1){let b=Date.now();if(!a&&k&&b-k.at<12e3)return k.map;let c=new Map;return i.B.scanFdTargetsUnder(j.GH["claude-tasks"],(a,b)=>{a.endsWith(".output")&&!c.has(a)&&c.set(a,b)}),k={at:b,map:c},c}function p(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&&l&&l.key===d&&f-l.at<12e3)return l.map;let g=new Map;return c.size>0&&i.B.scanFdTargetsFor([...c.keys()],(a,b,d)=>{let e=c.get(a);e&&!g.has(e)&&d()&&g.set(e,b)}),l={at:f,key:d,map:g},g}function q(a,b){return i.B.pidWritesPath(a,b)}function r(a,b){return i.B.pidHoldsPath(a,b)}function s(a){return i.B.readArgv(a)}function t(a){return i.B.readCwd(a)}function u(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 v="LLV_STRUCTURED_HOST";function w(){return(0,h.BQ)()}function x(a){return i.B.readEnvVar(a,v)}function y(a){let b=u(a);if(null===b||B(a))return null;if("codex"===b)return a.includes("app-server")?"codex":null;let c=a.includes("-p")||a.includes("--print"),d=a.some((b,c)=>"--input-format"===b&&"stream-json"===a[c+1]);return c&&d?"claude":null}function z(a){return a.includes("--fork-session")}let A=new Set(["daemon","--bg-pty-host","--bg-spare"]);function B(a){return a.some(a=>A.has(a))}function C(a){return i.B.readPpid(a)}function D(a=!1){let b=Date.now();if(!a&&m&&b-m.at<12e3)return m.list;let c=[];for(let a of i.B.listProcesses()){let b=u(a.argv);null===b||B(a.argv)||null!==a.cwd&&c.push({pid:a.pid,engine:b,argv:a.argv,cwd:a.cwd,tty:a.tty})}return m={at:b,list:c},c}},28617:(a,b,c)=>{c.d(b,{Y8:()=>v,ZO:()=>P,g_:()=>Q,nd:()=>O});var d=c(73024),e=c.n(d),f=c(51455),g=c(76760),h=c.n(g),i=c(12770),j=c(36177),k=c(44502),l=c(2451),m=c(66024),n=c(12962),o=c(70107),p=c(78082),q=c(39876),r=c(89333),s=c(13605),t=c(23855),u=c(15862);function v(a,b){let c=h().relative(a,b).split(h().sep);return 4===c.length&&"tasks"===c[2]&&c[3]?.endsWith(".output")?[c[0]??"",c[1]??"",c[3].slice(0,-7)]:null}let w=-1/0;function x(a){return"object"==typeof a&&null!==a&&"code"in a&&"ENOENT"===a.code}function y(a,b,c){if(x(c))return!0;let d=Date.now();if(d-w>=6e4){w=d;let e=c instanceof Error?`${c.message}${"code"in c&&c.code?` (${String(c.code)})`:""}`:String(c);console.error(`[scanner discovery] ${a} failed for ${b}: ${e}; retaining the last completed scan`)}return!1}function z(a){let b=0,c=[];return async function(d){b>=a&&await new Promise(a=>c.push(a)),b+=1;try{return await d()}finally{b-=1,c.shift()?.()}}}async function A(a,b,c,d){let e;try{e=await d(()=>(0,f.readdir)(c,{withFileTypes:!0}))}catch(a){return{paths:[],complete:y("read directory",c,a)}}let g=await Promise.all(e.map(async e=>e.isDirectory()?e.name.startsWith(".git")||"claude-projects"===a&&"tool-results"===e.name?{paths:[],complete:!0}:A(a,b,h().join(c,e.name),d):e.isFile()&&r.Rg.some(a=>e.name.endsWith(a))&&("openclaw-sessions"!==a||(0,n.mu)(e.name))?{paths:[{rootName:a,root:b,path:h().join(c,e.name)}],complete:!0}:{paths:[],complete:!0}));return{paths:g.flatMap(a=>a.paths),complete:g.every(a=>a.complete)}}async function B(a,b,c){let d,g=a.path;try{d=await c(()=>(0,f.stat)(g))}catch(a){return{raw:[],complete:y("stat file",g,a)}}if("claude-projects"===a.rootName&&(0,l.a$)(h().relative(b["claude-projects"],g)))return{raw:[],complete:!0};let i="claude-tasks"===a.rootName?v(b["claude-tasks"],g):null;if("claude-tasks"===a.rootName&&!i||0===d.size&&!i)return{raw:[],complete:!0};if(i){let[a,d,f]=i,g=h().join(b["claude-projects"],a,d,"subagents","agent-"+f+".jsonl");try{return await c(()=>e().promises.access(g)),{raw:[],complete:!0}}catch(a){if(!x(a))return{raw:[],complete:y("access task-output twin",g,a)}}}return{raw:[{...a,st:d}],complete:!0}}function C(a){let b=new Map;for(let c of a){let a=h().basename(c.path);if("codex-sessions"!==c.rootName||!a.startsWith("rollout-")||!a.endsWith(".jsonl"))continue;let d=b.get(a);d&&d.root===c.root||b.set(a,c)}return a.filter(a=>{let c=h().basename(a.path);return"codex-sessions"!==a.rootName||!c.startsWith("rollout-")||!c.endsWith(".jsonl")||b.get(c)===a})}async function D(a,b){try{return await b(()=>e().promises.access(a)),{exists:!0,complete:!0}}catch(b){return{exists:!1,complete:y("access root",a,b)}}}function E(a){return Array.isArray(a)?a:Object.entries(a)}function F(a){return(0,u.Ot)(E(a).map(([,a])=>a))}function G(a,b,c,d,e){if(!(0,p.pu)(c))return;let f=e??("1"===process.env.LLV_FILE_SCANNER_WORKER?void 0:k.O);f?.({complete:b,sources:a.flatMap(a=>"openclaw"===a.engine?[]:[{path:a.path,project:d?.get(a.path)??a.project,engine:a.engine,size:a.size,mtimeMs:1e3*a.mtime}])})}async function H(a,b,c){let d=await I(a,b),e=Array.isArray(a)?r.GH:a;c&&d.complete&&(c(C(d.paths)),await new Promise(a=>setImmediate(a)));let f=await Promise.all(d.paths.map(a=>B(a,e,b)));return{raw:C(f.flatMap(a=>a.raw)),complete:d.complete&&f.every(a=>a.complete)}}async function I(a,b){let c=await Promise.all(E(a).map(async([a,c])=>{let d=await D(c,b);return d.exists?A(a,c,c,b):{paths:[],complete:d.complete}}));return{paths:c.flatMap(a=>a.paths),complete:c.every(a=>a.complete)}}async function J(a,b){let c=Date.now()-18e4,d=[];for(let e of a){if(d.length>=32)break;if(b.has(e.path)||!e.path.endsWith(".jsonl")||e.st.mtimeMs<=c)continue;let a=(0,t.Ko)(e.rootName);(0,t.wK)(e.path,e.st.size,e.st.mtimeMs,a)||d.push(e)}let e=!1;return await (0,i.pV)(d,a=>{let b=(0,t.pk)(a.path,a.st.size,a.st.mtimeMs,(0,t.Ko)(a.rootName),!1);e||="busy"===b.turn.state}),e}function K(a,b,c){return(0,s.Wl)(a,a=>{let c;return(c=b.get(a.path))&&"other"!==c?c:`unresolved:${h().dirname(a.path)}`},void 0,{protect:a=>(function(a,b){if(b?.has(a.path))return!0;if(!a.path.endsWith(".jsonl"))return!1;let c=(0,t.wK)(a.path,a.st.size,a.st.mtimeMs,(0,t.Ko)(a.rootName));return c?.state==="busy"})(a,c)})}let L={codex:"Codex",claude:"Claude",openclaw:"OpenClaw"};async function M(a,b,c,d=[],e=a=>a){let f=new Map(a),g=(0,j.xg)(!0);await (0,i.pV)([...g.projectByPath],([a,b])=>{let c=e(a);f.has(c)&&f.set(c,b)});let h=new Map,k=new Map;return await (0,i.pV)(d,a=>{k.set(a.project,{projectRoot:a.projectRoot,displayName:a.displayName})}),await (0,i.pV)(b,b=>{if(c?.has(b.path))return;let d=f.get(b.path)??b.project,e=a.get(b.path)??b.project,i=k.get(e),j=g.projectMetadataByPath.get(b.path),l=h.get(d)??{project:d,displayName:j?.displayName??i?.displayName??b.projectName,smt:0,conversations:0};l.smt=Math.max(l.smt,b.mtime),l.conversations+=1;let m=j?.projectRoot??i?.projectRoot;!l.projectRoot&&m&&(l.projectRoot=m),h.set(d,l)}),{projectByPath:f,projectCatalog:[...h.values()].sort((a,b)=>b.smt-a.smt||a.project.localeCompare(b.project))}}async function N(a,b,c,d,e,f=a=>a,g){let j=(0,q.g)(),k=(0,u.xe)(c,f),l=(0,u.xe)(d,f);a.sort((a,b)=>b.st.mtimeMs-a.st.mtimeMs);let n=new Map;await (0,i.pV)(a,a=>{if("codex-sessions"!==a.rootName||!a.path.endsWith(".jsonl"))return;let b=(0,m.Gz)(a.path);b&&n.set(b,a)});let p=k?.size?[...a.filter(a=>!k.has(a.path)),...a.filter(a=>k.has(a.path))]:a,r=K(p,b??new Map,g);await J(p,new Set(r.map(a=>a.path)))&&(r=K(p,b??new Map,g));let s=new Set(r.map(a=>a.path)),t=l?.size?new Set(s):void 0,v=l?.size?new Map(a.map(a=>[a.path,a])):null,w=async(a,b)=>{await (0,i.pV)(a,c=>{if("codex-sessions"!==c.rootName||!c.path.endsWith(".jsonl"))return;let d=e?.get(c.path)?.nativeParentThreadId,f=void 0===d?(0,m.S)(c.path,c.st.size,c.st.mtimeMs):d,g=f?n.get(f):void 0;g&&!b.has(g.path)&&(b.add(g.path),a.push(g))})};for(let a of(t&&await w([...r],t),l??[])){if(s.has(a))continue;let b=v?.get(a);b&&(s.add(b.path),r.push(b))}await w(r,s);let x=await (0,i.j0)(r,a=>{let c=e?.get(a.path)??(0,o.q0)(a.rootName,a.root,a.path,a.st,j);return{path:a.path,root:a.rootName,name:h().relative(a.root,a.path),project:b?.get(a.path)??c.project,projectName:c.projectName,projectUnresolved:c.projectUnresolved,worktree:c.worktree,cwd:c.cwd,sessionStartedAt:c.sessionStartedAt,nativeParentThreadId:c.nativeParentThreadId,nativeForkSourceThreadId:c.nativeForkSourceThreadId,projectRoot:c.projectRoot,title:c.title,engine:c.engine,kind:c.kind,fmt:c.fmt,parent:null,mtime:a.st.mtimeMs/1e3,size:a.st.size,activity:"idle",proc:null,pid:null,model:null,pendingQuestion:null,waitingInput:null}}),y=t?r.filter(a=>!t.has(a.path)).map(a=>a.path):[];return{files:x,...y.length?{pinOverlayPaths:y}:{}}}async function O(a=(0,r.s9)(),b,c={}){let d=(0,p.FX)(!1!==c.persist||!0===c.persistIndex),e=z(48),f=await H(a,e,c.onResourceSnapshot?a=>{var b;let d;return c.onResourceSnapshot((b=c.resourceBaseline,d=new Map((b?.files??[]).map(a=>[a.path,a])),{files:a.filter(a=>"claude-tasks"!==a.rootName&&a.path.endsWith(".jsonl")).map(a=>{let b=d.get(a.path),c="codex-sessions"===a.rootName?"codex":"openclaw-sessions"===a.rootName?"openclaw":"claude",e=b?.mtime??Date.now()/1e3,f=b?.size??1,g=function(a,b,c){let d=Date.now()/1e3-b;if(a?.size===c&&a.mtime===b){if("jsonl_turn_open"===a.activityReason||"jsonl_turn_stalled"===a.activityReason)return d<180?{activity:"live",activityReason:"jsonl_turn_open"}:{activity:"stalled",activityReason:"jsonl_turn_stalled"};if("jsonl_turn_completed"===a.activityReason)return d<900?{activity:"recent",activityReason:"jsonl_turn_completed"}:{activity:"idle",activityReason:"jsonl_turn_completed"}}return d<20?{activity:"live",activityReason:"mtime_fresh"}:d<900?{activity:"recent",activityReason:"mtime_recent"}:{activity:"idle",activityReason:"mtime_old"}}(b,e,f),i=h().basename(a.path);return{path:a.path,root:a.rootName,name:h().relative(a.root,a.path),project:b?.project??"other",projectName:b?.projectName,projectUnresolved:b?.projectUnresolved,cwd:b?.cwd,sessionStartedAt:b?.sessionStartedAt,nativeParentThreadId:b?.nativeParentThreadId,nativeForkSourceThreadId:b?.nativeForkSourceThreadId,projectRoot:b?.projectRoot,worktree:b?.worktree,title:b?.title??(i.startsWith("agent-")?`Subagent ${i.slice(6).split(".")[0]}`:`${L[c]} session`),engine:c,kind:b?.kind??(i.startsWith("agent-")?"subagent":"session"),fmt:c,parent:b?.parent??null,mtime:e,size:f,...g,proc:b?.proc??null,pid:b?.pid??null,model:null,pendingQuestion:null,waitingInput:null}}),projectCatalog:b?.projectCatalog??[],complete:!0}))}:void 0),g=F(a),i=(0,u.xe)(c.demote??c.loadDemote?.(),g),j=await (0,p.fX)(f.raw,{persist:c.persist,persistIndex:c.persistIndex,excludedSummaryPaths:i,scanToken:d,complete:f.complete}),{projectCatalog:k,projectByPath:l}=await M(j.projectByPath,j.conversationCatalog,i,j.projectCatalog,g),m=await N(f.raw,l,i,c.pin,j.summaryByPath,g,(0,u.xe)(c.hosted,g));return G(j.conversationCatalog,j.complete,d,l,c.transcriptIndexScheduler),{...m,projectCatalog:k,...c.transportConversationCatalog?{conversationCatalog:j.conversationCatalog.map(a=>({...a,project:l.get(a.path)??a.project}))}:{},complete:j.complete}}async function P(a=(0,r.s9)(),b,c,d){let e=(0,p.FX)(!1),f=z(48),g=await H(a,f),h=F(a),i=await (0,p.fX)(g.raw,{persist:!1,scanToken:e,complete:g.complete}),{projectByPath:j}=await M(i.projectByPath,i.conversationCatalog,void 0,i.projectCatalog,h),k=await N(g.raw,j,b,c,i.summaryByPath,h,(0,u.xe)(d,h));return G(i.conversationCatalog,i.complete,e,j),k.files}async function Q(a=(0,r.s9)()){let b=(0,p.FX)(!1),c=await H(a,z(48)),d=await (0,p.fX)(c.raw,{persist:!1,scanToken:b,complete:c.complete});G(d.conversationCatalog,d.complete,b,d.projectByPath)}},34196:(a,b,c)=>{c.d(b,{VO:()=>j,cn:()=>k,jk:()=>i,ml:()=>g,q0:()=>n});var d=c(56809);let e=["starting","running","waiting","stalled","completed","failed","blocked","gone"],f=["stage_started","stage_resumed","stage_paused","stage_completed","stage_failed","stage_blocked","review_verdict","repair_ready","deploy_ready","deploy_succeeded","deploy_failed","delivery_held","delivery_delivered","delivery_expired","agent_stalled","agent_gone","agent_resumed","project_moved"],g={stage_started:"running",stage_resumed:"running",stage_paused:"waiting",stage_completed:"completed",stage_failed:"failed",stage_blocked:"blocked",review_verdict:"completed",repair_ready:"waiting",deploy_ready:"waiting",deploy_succeeded:"completed",deploy_failed:"failed",delivery_held:"waiting",delivery_delivered:"completed",delivery_expired:"failed",agent_stalled:"stalled",agent_gone:"gone",agent_resumed:"running",project_moved:"completed"},h=new Set(["stage_completed","stage_failed","stage_blocked","review_verdict","deploy_succeeded","deploy_failed","delivery_held","delivery_expired"]);function i(a){return h.has(a)}function j(a){return"string"==typeof a&&f.includes(a)}function k(a){return"string"==typeof a&&e.includes(a)}let l=/^\s*(?:```|~~~)/,m=/[\p{L}\p{N}]/u;function n(a,b=200){if("string"!=typeof a||!a.trim())return"";let c=(0,d.j)(a),e=!1;for(let a of c.split(/\r?\n/)){if(l.test(a)){e=!e;continue}if(e)continue;let c=a.replace(/\s+/g," ").trim();if(c&&m.test(c))return c.length>b?`${c.slice(0,b-1)}…`:c}return""}},36177:(a,b,c)=>{c.d(b,{C$:()=>p,Ug:()=>s,Y:()=>r,f0:()=>w,iD:()=>t,jX:()=>v,xg:()=>x});var d=c(73024),e=c.n(d),f=c(10781),g=c(91724),h=c(70107),i=c(40713),j=c(36405),k=c(915);let l=new WeakMap,m=new WeakMap,n=null;function o(a,b,c=!0){let d=new Map,e=new Map,f=new Map,g=new Map,j=new Map,k=new Set;for(let b of Object.values(a.conversations)){let a=[...b.generations.map(a=>a.path),...b.continuityPaths];for(let c of(f.set(b.id,a),a))d.has(c)||d.set(c,b.id);let e=b.generations.at(-1);if(e){if(c){let{project:a}=(0,i.x)({projectOwnership:b.projectOwnership,cwd:e.launchProfile.cwd,launchProfileProject:e.launchProfile.project});a&&(g.set(e.path,a),e.launchProfile.cwd&&j.set(e.path,e.launchProfile.cwd))}for(let a of b.generations)a.path!==e.path&&k.add(a.path);for(let a of b.continuityPaths)a!==e.path&&k.add(a)}}for(let b of Object.keys(a.conversationAliases)){let c=function(a,b){let c=b,d=new Set;for(;!d.has(c);){d.add(c);let b=a.conversationAliases[c];if(!b)break;c=b}return c}(a,b);if(c===b)continue;let d=e.get(c);d?d.push(b):e.set(c,[b])}let l=new Map,m=new Map;return{signature:b,snapshot:a,conversationByPath:d,aliasesByCanonical:e,ownedPathsByConversation:f,projectByPath:g,projectMetadataByPath:{get(a){let b=l.get(a);if(void 0!==b)return b??void 0;let c=j.get(a),d=g.get(a);if(!c||!d)return void l.set(a,null);let e=m.get(c);m.has(c)||(e=(0,h.ot)(c),m.set(c,e));let f=e?.project===d?{displayName:e.displayName,...e.repo?{projectRoot:e.repo}:{},...e.unresolved?{unresolved:!0}:{}}:null;return l.set(a,f),f??void 0}},archivedPaths:k}}function p(a){let b=l.get(a);if(b)return b;let c=o(a,"snapshot");return l.set(a,c),c}function q(a,b=!1){let c;try{c=a.readOnlySnapshot()}catch(a){if(b&&!(a instanceof f.Ou))throw a;return null}return p(c)}function r(a,b,c=!0){let d=u(!0,void 0===b?void 0:c?p(b):function(a){let b=m.get(a);if(b)return b;let c=o(a,"snapshot-identity",!1);return m.set(a,c),c}(b),c);for(let b of a)d(b)}function s(a,b){let c=(0,k.uX)((0,k.S6)());if(0===c.size)return;let d=[...c.keys()].flatMap(a=>a.startsWith("conversation:")?[a.slice(13)]:[]),e=d.length>0?b(d):[],f=new Map,g=new Set(a.map(a=>a.path));for(let a of e)for(let b of a.ownedPaths)g.has(b)&&!f.has(b)&&f.set(b,a);for(let b of a){let a=f.get(b.path);a&&(b.conversationId=a.conversationId),(0,k.$U)(b,c,a?.aliases??[],a?.ownedPaths??[])}}function t(a){let b=u(!1,function(){let a,b=(0,g.BQ)("agent-registry.json");try{let c=e().statSync(b,{bigint:!0});a=`${b}:${c.mtimeNs}:${c.size}`}catch{return null}if(n?.signature===a)return n;try{let c=(0,f.l5)(JSON.parse(e().readFileSync(b,"utf8")));return n=o(c,a)}catch{return null}}());for(let c of a)b(c)}function u(a=!0,b,c=!0){let d=(0,k.uX)((0,k.S6)()),e=void 0===b?q((0,f.agentRegistry)()):b,g=e?.snapshot??null,h=e?.conversationByPath??new Map,l=e?.aliasesByCanonical??new Map,m=e?.ownedPathsByConversation??new Map;return b=>{if("claude"!==b.engine&&"codex"!==b.engine)return;if(b.spawn){b.renamable=!1;return}let f=h.get(b.path);!b.conversationId&&f&&(b.conversationId=f);let n=f?g?.conversations[f]:void 0,o=n?.generations.at(-1);if(o?.path===b.path&&(b.title=o.launchProfile.title??b.title,c)){b.project=(0,i.x)({projectOwnership:n?.projectOwnership,cwd:o.launchProfile.cwd,launchProfileProject:o.launchProfile.project,fallbackProject:b.project}).project??b.project;let a=e?.projectMetadataByPath.get(b.path);a&&(b.projectName=a.displayName,b.projectRoot=a.projectRoot??b.projectRoot,b.projectUnresolved=a.unresolved),n?.projectOwnership&&(b.projectOwnership={...n.projectOwnership})}if(a&&(b.renamable=(0,j.V)(b)),d.size>0){let a=b.conversationId?l.get(b.conversationId)??[]:[],c=b.conversationId?m.get(b.conversationId)??[]:[];(0,k.$U)(b,d,a,c)}}}async function v(a,b=48,c=()=>new Promise(a=>setImmediate(a)),d=!0){let e=u(!0,void 0,d);for(let d=0;d<a.length;d+=1)e(a[d]),(d+1)%b==0&&await c()}function w(a){let b=x().projectByPath;for(let c of a){let a=b.get(c.path);a&&(c.project=a)}}function x(a=!1){let b=q((0,f.agentRegistry)(),a);return b?{projectByPath:b.projectByPath,projectMetadataByPath:b.projectMetadataByPath,archivedPaths:b.archivedPaths}:{projectByPath:new Map,projectMetadataByPath:new Map,archivedPaths:new Set}}},36405:(a,b,c)=>{c.d(b,{V:()=>h,Y:()=>i});var d=c(73024),e=c.n(d),f=c(66024),g=c(915);function h(a){if("claude"!==a.engine&&"codex"!==a.engine||a.kind&&"session"!==a.kind||!(0,g.gq)(a.path))return!1;let b=void 0===a.mtime?void 0:1e3*a.mtime;return!("codex"===a.engine&&(0,f.ET)(a.path,a.size,b))}function i(a,b){let c=0;try{c=e().statSync(b).size}catch{c=0}return h({engine:a,path:b,size:c})}},40713:(a,b,c)=>{c.d(b,{x:()=>g});var d=c(89940),e=c(27832),f=c(70107);function g(a){let b=a.cwd?.trim(),c=Object.hasOwn(a,"cwdInfo")?a.cwdInfo??null:b?(0,f.ot)(b):null,g=a.projectOwnership?.project.trim();if(g){let a=(0,d.G$)(g),b=c?.project&&c.project!==e.UNRESOLVED_PROJECT;if(!(b&&a===c?.displayName)&&(a!==e.UNRESOLVED_PROJECT||!b))return{project:a,...c?.worktree?{worktree:c.worktree}:{},source:"ownership"}}if(c?.project)return{project:c.project,...c.worktree?{worktree:c.worktree}:{},source:"cwd"};let h=a.launchProfileProject?.trim();if(h)return{project:(0,d.G$)(h),source:"launch-profile"};let i=a.fallbackProject?.trim();return i?{project:(0,d.G$)(i),source:"fallback"}:{project:null,source:null}}},44502:(a,b,c)=>{c.d(b,{O:()=>h});var d=c(5197);let e=globalThis;async function f(a,b){let c=await (0,d.DL)(a,{complete:b});if(c.failures.length)throw Error(`${c.failures.length} transcript file(s) could not be indexed`)}async function g(a){for(;a.pending;){let b=a.pending;delete a.pending;try{await b.run(b.feed.sources,b.feed.complete)}catch(b){let a=b instanceof Error?b.message:String(b);console.error(`[transcript search] background indexing failed: ${a}; a later scan will retry`)}}}function h(a,b={}){let c=e.__llvTranscriptFeed??={scheduled:!1,idleWaiters:[]};c.pending={feed:a,run:b.run??f},c.active||c.scheduled||(c.scheduled=!0,setImmediate(()=>(function a(b){if(b.scheduled=!1,b.active)return;let c=g(b);b.active=c,c.finally(()=>{if(b.active===c&&delete b.active,b.pending&&!b.scheduled)b.scheduled=!0,setImmediate(()=>a(b));else if(!b.scheduled&&!b.active&&!b.pending)for(let a of b.idleWaiters.splice(0))a()})})(c)))}},49113:(a,b,c)=>{c.d(b,{j:()=>o,v:()=>n});var d=c(12962),e=c(95544);function f(a){let b=a.timestamp;return"string"==typeof b?b:null}let g=new Set(["authentication_failed","rate_limit"]);function h(a){return!0===a.isApiErrorMessage&&"string"==typeof a.error&&g.has(a.error)}let i="<synthetic>";function j(a){let b;if(b=((0,e.xK)(a.message)??{}).content,(0,e.Em)(b).some(a=>"tool_use"===(0,e.r$)(a.type)))return!1;let c=(0,e.r$)(((0,e.xK)(a.message)??{}).stop_reason);return"end_turn"===c||"stop_sequence"===c}function k(a){let b=(0,e.xK)(a.message)?.content;return"string"==typeof b?b:(0,e.Em)(b).map(a=>(0,e.r$)(a.text)??"").join("\n")}let l=/^no response requested\.?$/i,m=/^\s*\[Request interrupted by user(?: for tool use)?\]\s*$/;function n(a){let b=!1;for(let c=a.length-1;c>=0;c-=1){let d=a[c];if("result"===d.type)return b?{terminalAt:f(d)}:null;if("assistant"===d.type){if(h(d))return b?{terminalAt:f(d)}:null;if(!(!0!==d.isApiErrorMessage&&(0,e.r$)(((0,e.xK)(d.message)??{}).model)===i&&l.test(k(d).trim())))return null;b=!0;continue}if("user"===d.type){if(!b&&!(!0===d.interruptedByShutdown||"interruptedMessageId"in d||m.test(k(d))))return null;b=!0}}return null}function o(a,b,c=!1){if("openclaw"===b){for(let b=a.length-1;b>=0;b-=1){let c=a[b],g=(0,d.j5)(c);if(g){if("assistant"===g.role){if(!(0,d.Re)(c))continue;let a=(0,e.r$)(g.stopReason);if("stop"===a||"error"===a||"aborted"===a)return{state:"terminal",source:"lifecycle",terminalAt:f(c)};return{state:"busy",source:"assistant",terminalAt:null}}if("user"===g.role)return{state:"busy",source:"lifecycle",terminalAt:null}}}return{state:"unknown",source:"empty",terminalAt:null}}if("codex"===b){let b=!1,c=null,d=!1,g=new Set,h=0;for(let i of a){let a=(0,e.xK)(i.payload)??{},j=(0,e.r$)(a.type);if(!j)continue;if("task_started"===j||"turn_started"===j||"user_message"===j){g.clear(),h=0,b=!0,c=null,d=!1;continue}if("turn_aborted"===j){g.clear(),h=0,b=!1,c=f(i),d=!0;continue}if("task_complete"===j||"turn_complete"===j||"turn_completed"===j){0===g.size&&0===h?(b=!1,c=f(i),d=!0):(b=!0,c=null,d=!1);continue}if("agent_message"===j||"token_count"===j||"reasoning"===j)continue;let k=j.includes("output")||j.endsWith("_result");if(!(j.includes("tool")||j.includes("function")||j.includes("command")))continue;let l=(0,e.r$)(a.call_id)??(0,e.r$)(a.callId)??(0,e.r$)(a.id);if(k){let a=l?g.delete(l):h>0;if(!a&&d)continue;a&&!l&&(h-=1)}else l?g.add(l):h+=1;b=!0,c=null,d=!1}return d&&!b&&0===g.size&&0===h?{state:"terminal",source:"lifecycle",terminalAt:c}:b||g.size>0||h>0?{state:"busy",source:g.size>0||h>0?"tool":"lifecycle",terminalAt:null}:{state:"unknown",source:"empty",terminalAt:null}}if(c){let b={state:"unknown",source:"empty",terminalAt:null};for(let c of a)"result"===c.type?b={state:"terminal",source:"lifecycle",terminalAt:f(c)}:"user"===c.type?b={state:"busy",source:"lifecycle",terminalAt:null}:"assistant"===c.type&&(b=h(c)||!0!==c.isApiErrorMessage&&(0,e.r$)(((0,e.xK)(c.message)??{}).model)!==i&&j(c)?{state:"terminal",source:"lifecycle",terminalAt:f(c)}:{state:"busy",source:"assistant",terminalAt:null});if("busy"!==b.state)return b;let c=n(a);return c?{state:"terminal",source:"lifecycle",terminalAt:c.terminalAt}:b}for(let b of[...a].reverse()){if("assistant"===b.type){if(h(b)||j(b))return{state:"terminal",source:"lifecycle",terminalAt:f(b)};return{state:"busy",source:"assistant",terminalAt:null}}if("user"===b.type)return{state:"busy",source:"lifecycle",terminalAt:null}}return{state:"unknown",source:"empty",terminalAt:null}}},78082:(a,b,c)=>{c.d(b,{FX:()=>v,OQ:()=>x,fX:()=>F,pu:()=>w});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(3587),k=c(91724),l=c(65154),m=c(12770),n=c(89940),o=c(27832),p=c(11149),q=c(63678),r=c(70107),s=c(39876);let t=-1/0,u=globalThis;function v(a){let b=(u.__llvProjectCatalogPublicationGeneration??0)+1;if(u.__llvProjectCatalogPublicationGeneration=b,!a)return{publication:b,persistence:null};let c=(u.__llvProjectCatalogPersistenceGeneration??0)+1;return u.__llvProjectCatalogPersistenceGeneration=c,{publication:b,persistence:c}}function w(a){return u.__llvProjectCatalogPublicationGeneration===a.publication}function x(a,b,c){return!!w(b)&&!!c&&((0,q.ru)(a),!0)}function y(){return(0,k.BQ)("project-catalog.json")}function z(a,b){return"codex-sessions"===a||"openclaw-sessions"===a||"claude-projects"===a&&("session"===b||"subagent"===b)}function A(a){return"codex-sessions"===a?"codex":"claude-projects"===a?"claude":"openclaw-sessions"===a?"openclaw":"shell"}function B(a){return"codex-sessions"===a?"codex":"claude-projects"===a?"claude":"openclaw-sessions"===a?"openclaw":"plain"}function C(a,b){let c=i().basename(a.path);return"subagent"===b?"Subagent "+c.slice(6).split(".")[0]:"codex-sessions"===a.rootName?"Codex session":"claude-projects"===a.rootName?"Claude session":"openclaw-sessions"===a.rootName?"OpenClaw session":"Background task "+c.split(".")[0]}function D(a,b){a.files[b.path]={summaryVersion:b.summaryVersion,summaryIncomplete:b.summaryIncomplete,rootName:b.rootName,size:b.size,mtimeMs:b.mtimeMs,sidecarSize:b.sidecarSize,sidecarMtimeMs:b.sidecarMtimeMs,stateKey:b.stateKey,project:b.project,projectName:b.projectName,projectUnresolved:b.projectUnresolved,projectRoot:b.projectRoot,kind:b.kind,session:b.session,worktree:b.worktree,cwd:b.cwd??null,sessionStartedAt:b.sessionStartedAt??null,nativeParentThreadId:b.nativeParentThreadId??null,nativeForkSourceThreadId:b.nativeForkSourceThreadId??null,title:b.titleCached?b.title:void 0,engine:b.engine,fmt:b.fmt}}function E(a){return"claude-projects"!==a.rootName&&"claude-tasks"!==a.rootName?null:i().relative(a.root,a.path).split(i().sep)[0]||null}async function F(a,b={}){let c=!1!==b.persist||!0===b.persistIndex,d=b.scanToken??v(c),f=function(){try{let a=(0,l.dt)(y());if(!a||1!==a.version&&2!==a.version||!a.files||"object"!=typeof a.files||Array.isArray(a.files))return{version:2,resolutionVersion:s.Q,files:{}};let b={};for(let[c,d]of Object.entries(a.files)){if(!d||"object"!=typeof d||Array.isArray(d)||"codex-sessions"!==d.rootName&&"claude-projects"!==d.rootName&&"claude-tasks"!==d.rootName&&"openclaw-sessions"!==d.rootName||"number"!=typeof d.size||"number"!=typeof d.mtimeMs||"string"!=typeof d.stateKey||"string"!=typeof d.project||void 0!==d.projectName&&"string"!=typeof d.projectName||void 0!==d.projectUnresolved&&!0!==d.projectUnresolved||void 0!==d.projectRoot&&null!==d.projectRoot&&"string"!=typeof d.projectRoot||"string"!=typeof d.kind)continue;let a="codex"===d.engine||"claude"===d.engine||"shell"===d.engine||"openclaw"===d.engine?d.engine:void 0,e="codex"===d.fmt||"claude"===d.fmt||"plain"===d.fmt||"openclaw"===d.fmt?d.fmt:void 0,f="string"==typeof d.cwd?d.cwd:null===d.cwd?null:void 0,g="string"==typeof d.sessionStartedAt?d.sessionStartedAt:null===d.sessionStartedAt?null:void 0,h="string"==typeof d.nativeParentThreadId?d.nativeParentThreadId:null===d.nativeParentThreadId?null:void 0,i="string"==typeof d.nativeForkSourceThreadId?d.nativeForkSourceThreadId:null===d.nativeForkSourceThreadId?null:void 0,j="number"==typeof d.sidecarSize?d.sidecarSize:null===d.sidecarSize?null:void 0,k="number"==typeof d.sidecarMtimeMs?d.sidecarMtimeMs:null===d.sidecarMtimeMs?null:void 0,l=4===d.summaryVersion&&"string"==typeof d.title&&"string"==typeof d.projectName&&void 0!==a&&void 0!==e&&void 0!==f&&void 0!==g&&void 0!==h&&void 0!==i&&void 0!==d.projectRoot&&void 0!==j&&void 0!==k;b[c]={summaryVersion:l?4:void 0,summaryIncomplete:!l&&!0===d.summaryIncomplete||void 0,rootName:d.rootName,size:d.size,mtimeMs:d.mtimeMs,sidecarSize:j,sidecarMtimeMs:k,stateKey:d.stateKey,project:d.project,projectName:"string"==typeof d.projectName?d.projectName:(0,o.displayNameFromProjectIdentity)(d.project),projectUnresolved:!0===d.projectUnresolved||void 0,projectRoot:"string"==typeof d.projectRoot?d.projectRoot:null===d.projectRoot?null:void 0,kind:d.kind,session:z(d.rootName,d.kind),worktree:"string"==typeof d.worktree?d.worktree:void 0,cwd:f,sessionStartedAt:g,nativeParentThreadId:h,nativeForkSourceThreadId:i,title:"string"==typeof d.title?d.title:void 0,engine:a,fmt:e}}return{version:2,resolutionVersion:a.resolutionVersion??0,files:b}}catch{return{version:2,resolutionVersion:s.Q,files:{}}}}(),h=(0,s.g)(),k={},q=new Map,w=new Map,G=new Map,H=new Map;await (0,m.pV)(a,a=>{H.set(a.path,f.files[a.path]?.project)});let I=await (0,m.j0)(a,a=>(function(a,b,c){let d=b.files[a.path],e=(0,r.tS)(a.rootName,a.path,a.st);if(e.complete&&d?.summaryVersion===4&&d.size===a.st.size&&d.mtimeMs===a.st.mtimeMs&&d.sidecarSize===e.sidecarSize&&d.sidecarMtimeMs===e.sidecarMtimeMs&&void 0!==d.projectRoot&&(b.resolutionVersion!==s.Q||d.stateKey!==c)){let e=(0,r.xn)(a.rootName,a.root,a.path,{project:d.project,projectName:d.projectName??(0,o.displayNameFromProjectIdentity)(d.project),projectUnresolved:d.projectUnresolved,worktree:d.worktree,cwd:d.cwd??void 0,sessionStartedAt:d.sessionStartedAt,nativeParentThreadId:d.nativeParentThreadId,nativeForkSourceThreadId:d.nativeForkSourceThreadId,projectRoot:d.projectRoot,title:d.title??C(a,d.kind),engine:d.engine??A(a.rootName),kind:d.kind,fmt:d.fmt??B(a.rootName)},c),f={...d,path:a.path,stateKey:c,project:e.project,projectName:e.projectName,projectUnresolved:e.projectUnresolved,projectRoot:e.projectRoot??null,worktree:e.worktree,cwd:e.cwd,session:z(a.rootName,e.kind),title:e.title,titleCached:!0,engine:e.engine,kind:e.kind,fmt:e.fmt};return D(b,f),f}if(b.resolutionVersion===s.Q&&e.complete&&d&&d.size===a.st.size&&d.mtimeMs===a.st.mtimeMs&&(4!==d.summaryVersion||d.sidecarSize===e.sidecarSize&&d.sidecarMtimeMs===e.sidecarMtimeMs)&&d.stateKey===c&&void 0!==d.projectRoot){if(4!==d.summaryVersion){let b=(0,r.CL)(a.rootName,a.root,a.path,a.st,c,e),f=b.description,g=!0===d.summaryIncomplete;return{...d,summaryVersion:b.complete?4:void 0,summaryIncomplete:!!g&&!b.complete||void 0,sidecarSize:e.sidecarSize,sidecarMtimeMs:e.sidecarMtimeMs,path:a.path,project:g?f.project||"other":d.project,projectName:g?f.projectName:d.projectName??(0,o.displayNameFromProjectIdentity)(d.project),projectUnresolved:g?f.projectUnresolved:d.projectUnresolved,projectRoot:g?f.projectRoot??null:d.projectRoot,kind:g?f.kind:d.kind,session:z(a.rootName,g?f.kind:d.kind),worktree:g?f.worktree:d.worktree,cwd:f.cwd,sessionStartedAt:f.sessionStartedAt,nativeParentThreadId:f.nativeParentThreadId,nativeForkSourceThreadId:f.nativeForkSourceThreadId,title:f.title,titleCached:!0,engine:f.engine,fmt:f.fmt}}return{path:a.path,...d,session:z(a.rootName,d.kind),cwd:d.cwd??void 0,sessionStartedAt:d.sessionStartedAt,nativeParentThreadId:d.nativeParentThreadId,nativeForkSourceThreadId:d.nativeForkSourceThreadId,title:d.title??C(a,d.kind),titleCached:"string"==typeof d.title,engine:d.engine??A(a.rootName),fmt:d.fmt??B(a.rootName)}}let f=(0,r.CL)(a.rootName,a.root,a.path,a.st,c,e),g=f.description,h=f.complete||d?.summaryVersion!==4?void 0:d,i={summaryVersion:f.complete?4:void 0,summaryIncomplete:!f.complete||void 0,path:a.path,rootName:a.rootName,size:a.st.size,mtimeMs:a.st.mtimeMs,sidecarSize:e.sidecarSize,sidecarMtimeMs:e.sidecarMtimeMs,stateKey:c,project:h?.project??(g.project||"other"),projectName:h?.projectName??g.projectName,projectUnresolved:h?.projectUnresolved??g.projectUnresolved,projectRoot:h?h.projectRoot??null:g.projectRoot??null,kind:g.kind,session:z(a.rootName,g.kind),worktree:h?.worktree??g.worktree,cwd:h?h.cwd??void 0:g.cwd,sessionStartedAt:h?h.sessionStartedAt:g.sessionStartedAt,nativeParentThreadId:h?h.nativeParentThreadId:g.nativeParentThreadId,nativeForkSourceThreadId:h?h.nativeForkSourceThreadId:g.nativeForkSourceThreadId,title:g.title,titleCached:!0,engine:g.engine,fmt:g.fmt};return D(b,i),i})(a,f,h)),J=!1!==b.complete&&I.every(a=>4===a.summaryVersion),K=new Map;await (0,m.pV)(a,(a,b)=>{let c=I[b],d="claude-projects"===c.rootName&&c.session?E(a):null;d&&K.set(d,c.project)}),await (0,m.pV)(a,(b,c)=>{let d=E(a[c]),e=d?K.get(d):void 0;e&&(I[c].project=e)});let L=new Map,M=new Map;await (0,m.pV)(I,a=>{if(k[a.path]={summaryVersion:a.summaryVersion,summaryIncomplete:a.summaryIncomplete,rootName:a.rootName,size:a.size,mtimeMs:a.mtimeMs,sidecarSize:a.sidecarSize,sidecarMtimeMs:a.sidecarMtimeMs,stateKey:a.stateKey,project:a.project,projectName:a.projectName,projectUnresolved:a.projectUnresolved,projectRoot:a.projectRoot,kind:a.kind,session:a.session,worktree:a.worktree,cwd:a.cwd??null,sessionStartedAt:a.sessionStartedAt??null,nativeParentThreadId:a.nativeParentThreadId??null,nativeForkSourceThreadId:a.nativeForkSourceThreadId??null,title:a.titleCached?a.title:void 0,engine:a.engine,fmt:a.fmt},a.cwd&&a.project){let b=M.get(a.cwd)??new Set;b.add(a.project),M.set(a.cwd,b)}let c=H.get(a.path);if(c&&c!==a.project){let b=L.get(c)??new Set;b.add(a.project),L.set(c,b)}let d=a.project||"other";G.set(a.path,d);let e=q.get(d);if(e||(e={project:d,displayName:a.projectName??(0,o.displayNameFromProjectIdentity)(d),smt:0,conversations:0},q.set(d,e)),e.smt=Math.max(e.smt,a.mtimeMs/1e3),a.session&&(e.conversations+=1),a.projectRoot&&!b.excludedSummaryPaths?.has(a.path)){let b=w.get(d)??new Map,c=b.get(a.projectRoot)??{count:0,newest:0};c.count+=1,c.newest=Math.max(c.newest,a.mtimeMs),b.set(a.projectRoot,c),w.set(d,b)}}),await (0,m.pV)([...w],([a,b])=>{let c=[...b].sort(([a,b],[c,d])=>d.count-b.count||d.newest-b.newest||a.localeCompare(c))[0]?.[0];c&&(q.get(a).projectRoot=c)}),await (0,m.pV)([...b.excludedSummaryPaths??[]],a=>{let b=k[a],c=b?q.get(b.project||"other"):void 0;b?.session&&c&&c.conversations>0&&(c.conversations-=1)});let N=[],O=new Map;await (0,m.pV)(I,(b,c)=>{O.set(b.path,{project:b.project||"other",projectName:b.projectName??(0,o.displayNameFromProjectIdentity)(b.project||"other"),projectUnresolved:b.projectUnresolved,worktree:b.worktree,cwd:b.cwd??void 0,sessionStartedAt:b.sessionStartedAt,nativeParentThreadId:b.nativeParentThreadId,nativeForkSourceThreadId:b.nativeForkSourceThreadId,projectRoot:b.projectRoot,title:b.title,engine:b.engine,kind:b.kind,fmt:b.fmt}),b.session&&("codex"===b.engine||"claude"===b.engine||"openclaw"===b.engine)&&N.push({path:b.path,root:b.rootName,name:i().relative(a[c].root,b.path),project:b.project||"other",projectName:b.projectName,projectUnresolved:b.projectUnresolved,worktree:b.worktree,title:b.title,firstPrompt:"",engine:b.engine,kind:b.kind,fmt:b.fmt,mtime:b.mtimeMs/1e3,size:b.size})});let P=null!==d.persistence&&u.__llvProjectCatalogPersistenceGeneration===d.persistence;if(x(N,d,J),P&&c&&J){let a=!0;if(!1!==b.persist)try{let b=function(a,b){let c=new Map,d=[];for(let[e,f]of a){if(1!==f.size){d.push(e);continue}let g=f.values().next().value,h=new Set([e]);for(;g&&(b.get(g)?.conversations??0)===0;){if(h.has(g)){g=void 0;break}h.add(g);let b=a.get(g);if(b?.size!==1)break;g=b.values().next().value}g&&g!==e&&(b.get(g)?.conversations??0)>0&&c.set(e,g)}return{migrations:c,conflicts:d}}(L,q);if(b.conflicts.length>0)throw Error("ambiguous catalog project identity");let c=b.migrations,d=[...c].map(([a,b])=>({source:a,target:b,displayName:q.get(b)?.displayName??(0,o.displayNameFromProjectIdentity)(b)})),e=(0,n.JC)(),f=e.conflicts.length;for(let a of e.registrations){let b=c.get(a.source);if(b&&b!==a.target){f+=1;continue}c.set(a.source,a.target),d.push(a)}f>0&&console.error(`[project catalog] ${f} durable project alias source(s) unresolved; persisting the clean batch and retrying them on a later scan`),(a=(0,n.YX)(d))&&(a=(0,j.aM)(c)),a&&(a=(0,n.oh)(d))}catch{a=!1}if(a&&!1!==b.persist)try{(0,p.n)([...M].filter(([,a])=>a.size>1).flatMap(([a,b])=>[...b].map(b=>(0,p.M)(b,a))))}catch{console.error("[project catalog] project identity succession deferred; a later scan will retry")}a?function(a){let b,c="create state directory",d=y();try{let f=y();d=f,g().mkdirSync(i().dirname(f),{recursive:!0,mode:448}),g().chmodSync(i().dirname(f),448),b=i().join(i().dirname(f),`.${i().basename(f)}.${process.pid}.${e().randomUUID()}.tmp`),c="write temporary index",d=b,g().writeFileSync(b,JSON.stringify(a)+"\n",{encoding:"utf8",mode:384}),(0,l.Hr)(b),c="rename temporary index",d=f,g().renameSync(b,f),(0,l.Hr)(i().dirname(f))}catch(a){if(void 0!==b)try{g().unlinkSync(b)}catch{}!function(a,b,c){let d=Date.now();if(d-t<6e4)return;t=d;let e=c instanceof Error?`${c.message}${"code"in c&&c.code?` (${String(c.code)})`:""}`:String(c);console.error(`[project catalog] ${a} failed for ${b}: ${e}; a later scan will retry`)}(c,d,a)}}({version:2,resolutionVersion:s.Q,files:k}):console.error("[project catalog] board project migration deferred; a later scan will retry")}return{projectCatalog:[...q.values()].filter(a=>a.conversations>0).sort((a,b)=>b.smt-a.smt||a.project.localeCompare(b.project)),projectByPath:G,conversationCatalog:N,summaryByPath:O,complete:J}}},79645:(a,b,c)=>{c.d(b,{Q:()=>p,Vj:()=>q,_1:()=>o});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(91724),i=c(65154),j=c(2033),k=c(34196);function l(){return(0,h.BQ)("lifecycle-journal.json")}class m extends Error{constructor(a,b){super(`the lifecycle journal at ${a} is unreadable (${b}); move it aside to start a new one`),this.name="LifecycleJournalCorruptError",this.journalPath=a}}function n(){let a,b,c=l();try{a=g().readFileSync(c,"utf8")}catch(a){if("ENOENT"===a.code)return{version:1,lastSeq:0,events:[],retired:[]};throw new m(c,`it could not be read: ${a.message}`)}try{b=JSON.parse(a)}catch{throw new m(c,"it is not valid JSON — the last write was truncated")}return function(a,b){if(!a||"object"!=typeof a||Array.isArray(a))throw new m(b,"its contents are not a journal object");if(void 0!==a.events&&!Array.isArray(a.events))throw new m(b,"its events field is not an array");let c=a.events??[],d=[];for(let[a,e]of c.entries()){let f=function(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.id||!a.id||!Number.isInteger(a.seq)||a.seq<1||"string"!=typeof a.at||!a.at||!(0,k.VO)(a.type))return null;let b=(0,k.cn)(a.state)?a.state:k.ml[a.type],c=a=>"string"==typeof a?a:null;return{id:a.id,seq:a.seq,at:a.at,type:a.type,state:b,project:c(a.project),pipelineId:c(a.pipelineId),stageId:c(a.stageId),attempt:Number.isInteger(a.attempt)?a.attempt:null,conversationId:c(a.conversationId),role:c(a.role),summary:"string"==typeof a.summary?a.summary:""}}(e);if(!f)throw new m(b,`recorded event ${a+1} of ${c.length} is malformed`);d.push(f)}d.sort((a,b)=>a.seq-b.seq);let e=Array.isArray(a.retired)?a.retired.filter(a=>"string"==typeof a):[],f=d.at(-1)?.seq??0;return{version:1,lastSeq:Number.isInteger(a.lastSeq)?Math.max(a.lastSeq,f):f,events:d,retired:e}}(b,c)}function o(){return n()}function p(a){return 0===a.length?{appended:[],skipped:0}:(0,j.Ol)(l(),"lifecycle journal is busy",()=>{var b;let c=n(),d=new Set([...c.events.map(a=>a.id),...c.retired]),f=[],g=0;for(let h of a){let a=(b=h.key,`evt_${e().createHash("sha256").update(b).digest("hex").slice(0,24)}`);if(d.has(a)){g+=1;continue}d.add(a),c.lastSeq+=1;let i={id:a,seq:c.lastSeq,at:h.at,type:h.type,state:k.ml[h.type],project:h.project??null,pipelineId:h.pipelineId??null,stageId:h.stageId??null,attempt:Number.isInteger(h.attempt)?h.attempt:null,conversationId:h.conversationId??null,role:h.role??null,summary:(0,k.q0)(h.summary)};c.events.push(i),f.push(i)}if(0===f.length)return{appended:f,skipped:g};if(c.events.length>2e3){let a=c.events.splice(0,c.events.length-2e3);c.retired=[...c.retired,...a.map(a=>a.id)].slice(-8e3)}return(0,i.fZ)(l(),c),{appended:f,skipped:g}})}function q(a,b={}){let c=Math.max(1,Math.min(200,Number.isInteger(b.limit)?b.limit:50)),d=Number.isInteger(b.afterSeq)?b.afterSeq:0,e=a.events.filter(a=>!(a.seq<=d)&&(!b.project||a.project===b.project)&&(!b.pipelineId||a.pipelineId===b.pipelineId)&&(!b.conversationId||a.conversationId===b.conversationId)&&(!b.stageId||a.stageId===b.stageId)&&(!b.type||a.type===b.type)&&!0),f=e.slice(0,c);return{count:f.length,events:f,cursor:a.lastSeq,remaining:e.length-f.length}}},89333:(a,b,c)=>{let d,e,f;c.d(b,{Bz:()=>s,EG:()=>w,GH:()=>q,Ps:()=>x,Rg:()=>t,jQ:()=>u,s9:()=>r});var g=c(73024),h=c.n(g),i=c(48161),j=c.n(i),k=c(76760),l=c.n(k),m=c(41617),n=c(78966),o=c(13605);let p=j().homedir(),q={"codex-sessions":l().join(p,".codex/sessions"),"claude-projects":l().join(p,".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),"openclaw-sessions":l().join(p,".openclaw/agents")};function r(){let a=[...(0,m.vD)().map(a=>["codex-sessions",a]),...(0,n.pW)().map(a=>["claude-projects",a]),["claude-tasks",q["claude-tasks"]],...(function(){let a,b,c=l().join((b=process.env.OPENCLAW_STATE_DIR?.trim())?l().resolve(b):l().join(j().homedir(),".openclaw"),"agents");try{a=h().readdirSync(c,{withFileTypes:!0})}catch{return[]}return a.filter(a=>(a.isDirectory()||a.isSymbolicLink())&&!a.name.startsWith(".")).map(a=>l().join(c,a.name,"sessions")).sort()})().map(a=>["openclaw-sessions",a])],b=new Set;return a.filter(([,a])=>{let c=v(a)??l().resolve(a);return!b.has(c)&&(b.add(c),!0)})}function s(a){for(let b of(0,n.pW)())try{let c=h().realpathSync(a),d=h().realpathSync(b);if(c.startsWith(d+l().sep))return b}catch{}return null}let t=[".log",".jsonl",".output",".txt"],u=786432;function v(a){try{return h().realpathSync(a)}catch{return null}}function w(a){let b=v(a);return!!b&&r().some(([,a])=>{let c=v(a);return null!==c&&b.startsWith(c+l().sep)})}function x(a){for(let b of(0,m.vD)())try{let c=h().realpathSync(a),d=h().realpathSync(b);if(c.startsWith(d+l().sep))return b}catch{continue}return null}o.de,o.cy}};
@@ -1,5 +1,5 @@
1
- "use strict";exports.id=8817,exports.ids=[8817],exports.modules={22018:(a,b,c)=>{c.d(b,{y:()=>d});function d(a){return void 0!==a.default?a.default:"integer"===a.kind?a.min??1:"select"===a.kind?a.options?.[0]??"":""}},43237:(a,b,c)=>{c.d(b,{Lh:()=>e,j0:()=>g,pV:()=>f});var d=c(643);function e(){return new Promise(a=>setImmediate(a))}async function f(a,b,c={}){let g=Math.max(1,Math.floor(c.batchSize??16)),h=Math.max(1,c.timeBudgetMs??32),i=d.performance.now(),j=0;for(let c=0;c<a.length;c+=1)await b(a[c],c),j+=1,!(c+1>=a.length)&&(j<g&&d.performance.now()-i<h||(await e(),i=d.performance.now(),j=0))}async function g(a,b,c={}){let d=Array(a.length);return await f(a,async(a,c)=>{d[c]=await b(a,c)},c),d}},97386:(a,b,c)=>{c.d(b,{aW:()=>l,OH:()=>n,fy:()=>m,s8:()=>o,X2:()=>k,hB:()=>j});var d=c(22619),e=c(51888);let f={engine:"claude",model:"opus",effort:"high"},g={engine:"codex",model:"gpt-5.6-terra",effort:"low"};var h=c(22018),i=c(22371);function j(a,b){var c;let d="builder"===a.id&&"frontend"===b.domain?"\n\nUI/frontend implementation guidance: follow the approved interaction and visual contract, preserve accessible semantics, responsive behavior, and English/Ukrainian parity.":"";return c=a.promptScaffold,c.replace(/\{\{([A-Za-z][A-Za-z0-9]*)\}\}/g,(a,c)=>String(b[c]??"")).replace(/^(Repository|Issue query|Urgent list):\s*\n/gm,"")+d}function k(a){return a.safetyFences.length?`
1
+ "use strict";exports.id=8817,exports.ids=[8817],exports.modules={16251:(a,b,c)=>{c.d(b,{OH:()=>m,X2:()=>j,aW:()=>k,fy:()=>l,hB:()=>i,s8:()=>n});var d=c(22619),e=c(51888),f=c(44443),g=c(22018),h=c(22371);function i(a,b){var c;let d="builder"===a.id&&"frontend"===b.domain?"\n\nUI/frontend implementation guidance: follow the approved interaction and visual contract, preserve accessible semantics, responsive behavior, and English/Ukrainian parity.":"";return c=a.promptScaffold,c.replace(/\{\{([A-Za-z][A-Za-z0-9]*)\}\}/g,(a,c)=>String(b[c]??"")).replace(/^(Repository|Issue query|Urgent list):\s*\n/gm,"")+d}function j(a){return a.safetyFences.length?`
2
2
 
3
3
  Safety fences:
4
- ${a.safetyFences.map(a=>`- ${a}`).join("\n")}`:""}function l(a,b){return"builder"!==a.id?a.config:"frontend"===b.domain?f:"apply-fixes"===b.mode?g:a.config}function m(a,b={},c={},f=(0,i.pQ)()){let g=f.find(b=>b.id===a);if(!g)return{ok:!1,error:`unknown role: ${a} (allowed: ${f.map(a=>a.id).join(", ")})`};let n=function(a,b,{requireRequired:c=!0}={}){if(void 0!==b&&(!b||"object"!=typeof b||Array.isArray(b)))return{ok:!1,error:"roleParams must be an object"};let d=b??{},e=new Map(a.parameters.map(a=>[a.key,a]));for(let b of Object.keys(d))if(!e.has(b)){let c=a.parameters.map(a=>a.key).join(", ")||"none";return{ok:!1,error:`unknown role parameter: ${b} (${a.id} accepts: ${c})`}}let f={};for(let b of a.parameters){let a=d[b.key];if(void 0===a||""===a){if(b.required&&c)return{ok:!1,error:`missing required role parameter: ${b.key}`};f[b.key]=(0,h.y)(b);continue}if("integer"===b.kind){if(!Number.isInteger(a)||"number"!=typeof a||void 0!==b.min&&a<b.min||void 0!==b.max&&a>b.max)return{ok:!1,error:`invalid role parameter: ${b.key}`};f[b.key]=a;continue}let e=function(a){if("string"!=typeof a)return null;let b=a.trim();return b&&b.length<=2e3?b:null}(a);if(!e||"select"===b.kind&&!b.options?.includes(e))return{ok:!1,error:`invalid role parameter: ${b.key}`};f[b.key]=e}return{ok:!0,value:f}}(g,b);if(!n.ok)return n;let o=function(a,b,c){let f={...l(a,b),...c};if("claude"!==f.engine&&"codex"!==f.engine)return{ok:!1,error:"engine must be claude or codex"};let g=(0,e.RC)(f.engine,f.model);if("error"in g)return{ok:!1,error:g.error};f.model=g.model;let h=(0,d.ve)(f.engine,f.model);return h.includes(f.effort)?{ok:!0,value:f}:{ok:!1,error:`effort for ${f.engine} must be one of: ${h.join(", ")}`}}(g,n.value,c);return o.ok?{ok:!0,value:{definition:g,config:o.value,params:n.value,prompt:j(g,n.value)+k(g),requiresDeploymentConfirmation:"deployer"===g.id}}:o}function n(){return(0,i.pQ)()}function o(a){if(void 0===a.role||null===a.role||""===a.role)return{ok:!0,value:null};if("string"!=typeof a.role)return{ok:!1,error:"role must be a string"};let b=m(a.role,a.roleParams);if(!b.ok)return b;let c={};if(void 0!==a.engine){if("claude"!==a.engine&&"codex"!==a.engine)return{ok:!1,error:"engine must be claude or codex"};if(a.engine!==b.value.config.engine&&void 0===a.model)return{ok:!1,error:"model is required when overriding a role engine"};c.engine=a.engine}"string"==typeof a.model&&a.model.trim()&&(c.model=a.model.trim()),"string"==typeof a.effort&&a.effort.trim()&&(c.effort=a.effort.trim());let d=m(a.role,a.roleParams,c);return d.ok?d.value.requiresDeploymentConfirmation&&"deploy"!==a.confirm?{ok:!1,error:"deployer requires confirm: deploy"}:{ok:!0,value:{config:d.value.config,scaffold:d.value.prompt,role:d.value.definition.id}}:d}},98817:(a,b,c)=>{c.r(b),c.d(b,{FLOWS_SCHEMA_VERSION:()=>x,SEEDED_PRESETS:()=>w,atomicWriteText:()=>B,checkpointFlowRollbackMirrorForDemotion:()=>W,checkpointFlowRollbackMirrorForDemotionAsync:()=>X,configuredReviewerFallback:()=>v,findingsPathFor:()=>al,flowArtifactsDir:()=>ak,flowStateCollectionSeed:()=>P,loadFlow:()=>N,loadFlows:()=>M,loadFlowsForTick:()=>Q,loadPresets:()=>ai,mergeSeededPresets:()=>F,normalizeFindings:()=>ap,outputPathFor:()=>am,patchFlowRows:()=>af,planFlowStateMigration:()=>T,reconcileFlowConversationOwnership:()=>_,reconcileFlowConversationOwnershipCooperatively:()=>aa,saveFlowRows:()=>ae,saveFlows:()=>ad,savePresets:()=>aj,seededPresetsFromRoles:()=>u,stderrPathFor:()=>an,stdoutPathFor:()=>ao,withFlowMutation:()=>ag,withFlowSnapshot:()=>ah});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(70160),l=c(43237),m=c(14928),n=c(49048),o=c(38751),p=c(97386),q=c(22371);let r=()=>(0,j.BQ)("flows.json"),s=()=>(0,j.BQ)("review-loop-presets.json");function t(a,b,c={}){if("builder"!==b)return{...a.find(a=>a.id===b).config};let d=(0,p.fy)(b,c,{},a);return d.ok?{...d.value.config}:{...n.W.find(a=>a.id===b).config}}function u(){let a=(0,q.e3)(),b=t(a,"builder"),c=t(a,"builder",{mode:"apply-fixes",domain:"general"}),d=t(a,"reviewer"),e=t(a,"architect");return[{name:"Astra medium → Astra xhigh",implementer:b,reviewer:d},{name:"Terra low → Astra xhigh",implementer:c,reviewer:d},{name:"Astra medium → Opus 5",implementer:b,reviewer:e},{name:"Opus 5 → Astra xhigh",implementer:e,reviewer:d},{name:"Sonnet → Astra xhigh",implementer:{engine:"claude",model:"sonnet",effort:"high"},reviewer:d}].map(a=>({...a,managed:"role-registry"}))}function v(){return t((0,q.e3)(),"architect")}let w=u(),x=3,y=/^(?:claude|codex):[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,z=/^(?:default|unknown|managed:[0-9a-f]{12})$/;function A(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 B(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 C(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&&(void 0===a.headRef||null===a.headRef||"string"==typeof a.headRef)&&(void 0===a.requireRemoteHead||"boolean"==typeof a.requireRemoteHead)&&(void 0===a.targetSha||null===a.targetSha||"string"==typeof a.targetSha)&&(void 0===a.spec||"string"==typeof a.spec)&&(void 0===a.reviewerSandbox||"full"===a.reviewerSandbox||"restricted"===a.reviewerSandbox)&&(void 0===a.hostClaim||null===a.hostClaim||y.test(a.hostClaim.sessionKey)&&z.test(a.hostClaim.accountRef))&&Array.isArray(a.rounds)}function D(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.name&&E(a.implementer)&&E(a.reviewer)&&(void 0===a.managed||"role-registry"===a.managed)}function E(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&("claude"===a.engine||"codex"===a.engine)&&(null===a.model||"string"==typeof a.model)&&(null===a.effort||"string"==typeof a.effort)}function F(a,b=u()){let c=new Set(a.map(a=>a.name));return[...b.filter(a=>!c.has(a.name)),...a]}let G=null,H=new Map,I=new WeakMap;function J(a){return I.set(a,new Map(a.map(a=>[a.id,JSON.stringify(a)]))),a}function K(){return V().signature()}function L(a){return a.map(a=>({...a,hostClaim:a.hostClaim?{...a.hostClaim}:null,rounds:a.rounds.map(a=>({...a}))}))}function M(){let a=K();if(G?.signature===a)return J(L(G.flows));let b=V().snapshot(),c=K();return a===c&&(G={signature:c,flows:b}),J(L(b))}function N(a){return V().get(a)}function O(a){return!["approved","done_comment","needs_decision","closed"].includes(a.state)}function P(){return{collection:"flows",schemaVersion:x,migrationId:"flows-json-v1",loadRecords:S,key:a=>a.id,controllerActive:O}}function Q(){return V().snapshotForController()}function R(a){return a?{...a,resetKnown:a.resetKnown??!0}:null}function S(){let a=function(){let a;try{a=g().readFileSync(r(),"utf8")}catch(a){if("ENOENT"===a.code)return null;throw Error("could not read legacy flow state",{cause:a})}try{return JSON.parse(a)}catch(a){throw Error("legacy flow state contains malformed JSON",{cause:a})}}();if(null===a)return[];if(!a||"object"!=typeof a||Array.isArray(a))throw Error("legacy flow state must be an object");if(!Array.isArray(a.flows)||!a.flows.every(C))throw Error("legacy flow state contains malformed records");return a.flows.map(a=>({...a,project:(0,o.G$)(a.project),revision:a.revision??0,targetSha:a.targetSha??null,implementerConversationId:a.implementerConversationId??null,reviewerFallback:void 0===a.reviewerFallback&&"codex"===a.roles.reviewer.engine?v():a.reviewerFallback??null,pausedState:a.pausedState??null,kickoffDelivery:a.kickoffDelivery??null,hostClaim:a.hostClaim??null,rounds:a.rounds.map(a=>({...a,reviewerConversationId:a.reviewerConversationId??null,reviewerRole:a.reviewerRole??null,attemptedAccounts:a.attemptedAccounts??[],autoRetryCount:a.autoRetryCount??0,sessionId:a.sessionId??null,reviewerPid:a.reviewerPid??null,reviewerIdentity:a.reviewerIdentity??null,reviewHeadSha:a.reviewHeadSha??null,spawnStartedAt:a.spawnStartedAt??null,launchId:a.launchId??null,launchLeaseUntil:a.launchLeaseUntil??null,relayStartedAt:a.relayStartedAt??null,relayRetryCount:a.relayRetryCount??0,relayDeliveryAttempt:a.relayDeliveryAttempt??0,relayDeliveryTransport:a.relayDeliveryTransport??null,relayRetryAt:a.relayRetryAt??null,relayRetryRequiresIdempotency:a.relayRetryRequiresIdempotency??!1,relayDelivery:a.relayDelivery??null,relayPendingSettlement:a.relayPendingSettlement??null,relayHold:R(a.relayHold),terminalAt:a.terminalAt??null,error:a.error??null}))}))}function T(){let a=S();return{records:a.length,keys:a.map(a=>a.id)}}function U(a){return C(a)?{...a,project:(0,o.G$)(a.project),revision:a.revision??0,targetSha:a.targetSha??null,implementerConversationId:a.implementerConversationId??null,reviewerFallback:void 0===a.reviewerFallback&&"codex"===a.roles.reviewer.engine?v():a.reviewerFallback??null,pausedState:a.pausedState??null,kickoffDelivery:a.kickoffDelivery??null,hostClaim:a.hostClaim??null,rounds:a.rounds.map(a=>({...a,reviewerConversationId:a.reviewerConversationId??null,reviewerRole:a.reviewerRole??null,attemptedAccounts:a.attemptedAccounts??[],autoRetryCount:a.autoRetryCount??0,sessionId:a.sessionId??null,reviewerPid:a.reviewerPid??null,reviewerIdentity:a.reviewerIdentity??null,reviewHeadSha:a.reviewHeadSha??null,spawnStartedAt:a.spawnStartedAt??null,launchId:a.launchId??null,launchLeaseUntil:a.launchLeaseUntil??null,relayStartedAt:a.relayStartedAt??null,relayRetryCount:a.relayRetryCount??0,relayDeliveryAttempt:a.relayDeliveryAttempt??0,relayDeliveryTransport:a.relayDeliveryTransport??null,relayRetryAt:a.relayRetryAt??null,relayRetryRequiresIdempotency:a.relayRetryRequiresIdempotency??!1,relayDelivery:a.relayDelivery??null,relayPendingSettlement:a.relayPendingSettlement??null,relayHold:R(a.relayHold),terminalAt:a.terminalAt??null,error:a.error??null}))}:null}function V(){let a=(0,j.BQ)("state.sqlite"),b=H.get(a);if(b)return b;(0,m.t0)(a,[P()]);let c=new m.UY(a,{collection:"flows",schemaVersion:x,busyMessage:"flow state is busy",key:a=>a.id,decode:U,clone:a=>L([a])[0],controllerActive:O,strictDecode:!0,decodeError:a=>Error("flow SQLite state contains a malformed row",{cause:a})});return H.set(a,c),c}function W(){return V().checkpointMirrorForDemotion((a,b)=>{A(r(),{schemaVersion:x,_sqliteRevision:b,flows:a})})}async function X(){return V().checkpointMirrorForDemotionAsync((a,b)=>{A(r(),{schemaVersion:x,_sqliteRevision:b,flows:a})})}function Y(a,b){if(a.implementerConversationId?.startsWith("conversation_")){let c=b.conversation(a.implementerConversationId)?.generations.at(-1)?.path;return!!c&&c!==a.implementerPath&&(a.implementerPath=c,!0)}let c=b.conversationForPath(a.implementerPath);if(!c)return!1;a.implementerConversationId=c.id;let d=c.generations.at(-1)?.path;return d&&(a.implementerPath=d),!0}function Z(a,b){if(a.reviewerConversationId?.startsWith("conversation_")){let c=b.conversation(a.reviewerConversationId)?.generations.at(-1)?.path;return!!c&&c!==a.reviewerPath&&(a.reviewerPath=c,!0)}if(!a.reviewerPath)return!1;let c=b.conversationForPath(a.reviewerPath);if(!c)return!1;a.reviewerConversationId=c.id;let d=c.generations.at(-1)?.path;return d&&(a.reviewerPath=d),!0}function $(a,b,c){return a===c.path&&(b??null)===c.conversationId}function _(a=(0,k.agentRegistry)()){let b=M(),c=!1;for(let d of b)for(let b of(c=Y(d,a)||c,d.rounds))c=Z(b,a)||c;c&&ad(b)}async function aa(a=(0,k.agentRegistry)()){let b=M(),c=[];await (0,l.pV)(b,async b=>{let d={path:b.implementerPath,conversationId:b.implementerConversationId??null},e=Y(b,a),f=[];await (0,l.pV)(b.rounds,b=>{let c={path:b.reviewerPath,conversationId:b.reviewerConversationId??null};Z(b,a)&&f.push({n:b.n,before:c,after:{path:b.reviewerPath,conversationId:b.reviewerConversationId??null}})}),(e||f.length>0)&&c.push({id:b.id,implementer:e?{before:d,after:{path:b.implementerPath,conversationId:b.implementerConversationId??null}}:null,rounds:f})}),function(a){if(0===a.length)return;let b=M(),c=new Map(b.map(a=>[a.id,a])),d=!1;for(let b of a){let a=c.get(b.id);if(a)for(let c of(b.implementer&&$(a.implementerPath,a.implementerConversationId,b.implementer.before)&&(a.implementerPath=b.implementer.after.path,a.implementerConversationId=b.implementer.after.conversationId,d=!0),b.rounds)){let b=a.rounds.find(a=>a.n===c.n);b&&$(b.reviewerPath,b.reviewerConversationId,c.before)&&(b.reviewerPath=c.after.path,b.reviewerConversationId=c.after.conversationId,d=!0)}}d&&ad(b)}(c)}function ab(a){let b={...a};return delete b.revision,JSON.stringify(b)}function ac(a){for(let b of a){let a=V().get(b.id)??void 0;if(a&&void 0!==b.revision&&b.revision<(a.revision??0)){for(let a of Object.keys(b))delete b[a];Object.assign(b,structuredClone(a));continue}b.revision=a&&ab(a)===ab(b)?a.revision??0:(a?.revision??0)+1}}function ad(a){let b=I.get(a);if(!b){V().replaceSync(a,{beforePersist:ac}),J(a);return}let c=new Set(a.map(a=>a.id)),d=a.filter(a=>b.get(a.id)!==JSON.stringify(a)),e=[...b.keys()].filter(a=>!c.has(a));V().patchSync(()=>(ac(d),{records:d,deleteKeys:e.filter(a=>{let c=V().get(a);return null!==c&&JSON.stringify(c)===b.get(a)})})),J(a)}function ae(a){0!==a.length&&V().replaceSync(a,{mergeOmitted:!0,beforePersist:ac})}function af(a,b){let c=[...new Set(a)];if(0===c.length)return;let d=V();d.patchSync(()=>{let a=b(c.flatMap(a=>{let b=d.get(a);return b?[b]:[]}));return ac(a),{records:a}})}async function ag(a){return await V().mutate(a,({dirtyRecords:a})=>ac(a))}function ah(a){return V().withSnapshotSync(a)}function ai(){let a=function(a){try{return JSON.parse(g().readFileSync(a,"utf8"))}catch{return null}}(s()),b=Array.isArray(a?.presets)?a.presets.filter(D):[],c=F(b);return JSON.stringify(c)!==JSON.stringify(b)&&aj(c),c}function aj(a){A(s(),{presets:a})}function ak(a){return i().join((0,j.BQ)("flows"),a)}function al(a,b){return i().join(ak(a),`round-${b}-review.md`)}function am(a,b){return i().join(ak(a),`round-${b}-last-message.md`)}function an(a,b){return i().join(ak(a),`round-${b}-stderr.txt`)}function ao(a,b){return i().join(ak(a),`round-${b}-stdout.log`)}function ap(a,b){let c=b.replace(/^\s*VERDICT:\s*(APPROVE|REQUEST_CHANGES|COMMENT)\s*$/im,"").trim();return`VERDICT: ${a}
4
+ ${a.safetyFences.map(a=>`- ${a}`).join("\n")}`:""}function k(a,b){return"builder"!==a.id?a.config:"frontend"===b.domain?a.variants?.frontend??f.C:"apply-fixes"===b.mode?a.variants?.["apply-fixes"]??f.i:a.config}function l(a,b={},c={},f=(0,h.pQ)()){let m=f.find(b=>b.id===a);if(!m)return{ok:!1,error:`unknown role: ${a} (allowed: ${f.map(a=>a.id).join(", ")})`};let n=function(a,b,{requireRequired:c=!0}={}){if(void 0!==b&&(!b||"object"!=typeof b||Array.isArray(b)))return{ok:!1,error:"roleParams must be an object"};let d=b??{},e=new Map(a.parameters.map(a=>[a.key,a]));for(let b of Object.keys(d))if(!e.has(b)){let c=a.parameters.map(a=>a.key).join(", ")||"none";return{ok:!1,error:`unknown role parameter: ${b} (${a.id} accepts: ${c})`}}let f={};for(let b of a.parameters){let a=d[b.key];if(void 0===a||""===a){if(b.required&&c)return{ok:!1,error:`missing required role parameter: ${b.key}`};f[b.key]=(0,g.y)(b);continue}if("integer"===b.kind){if(!Number.isInteger(a)||"number"!=typeof a||void 0!==b.min&&a<b.min||void 0!==b.max&&a>b.max)return{ok:!1,error:`invalid role parameter: ${b.key}`};f[b.key]=a;continue}let e=function(a){if("string"!=typeof a)return null;let b=a.trim();return b&&b.length<=2e3?b:null}(a);if(!e||"select"===b.kind&&!b.options?.includes(e))return{ok:!1,error:`invalid role parameter: ${b.key}`};f[b.key]=e}return{ok:!0,value:f}}(m,b);if(!n.ok)return n;let o=function(a,b,c){let f={...k(a,b),...c};if("claude"!==f.engine&&"codex"!==f.engine)return{ok:!1,error:"engine must be claude or codex"};let g=(0,e.RC)(f.engine,f.model);if("error"in g)return{ok:!1,error:g.error};f.model=g.model;let h=(0,d.ve)(f.engine,f.model);return h.includes(f.effort)?{ok:!0,value:f}:{ok:!1,error:`effort for ${f.engine} must be one of: ${h.join(", ")}`}}(m,n.value,c);return o.ok?{ok:!0,value:{definition:m,config:o.value,params:n.value,prompt:i(m,n.value)+j(m),requiresDeploymentConfirmation:"deployer"===m.id}}:o}function m(){return(0,h.pQ)()}function n(a){if(void 0===a.role||null===a.role||""===a.role)return{ok:!0,value:null};if("string"!=typeof a.role)return{ok:!1,error:"role must be a string"};let b=l(a.role,a.roleParams);if(!b.ok)return b;let c={};if(void 0!==a.engine){if("claude"!==a.engine&&"codex"!==a.engine)return{ok:!1,error:"engine must be claude or codex"};if(a.engine!==b.value.config.engine&&void 0===a.model)return{ok:!1,error:"model is required when overriding a role engine"};c.engine=a.engine}"string"==typeof a.model&&a.model.trim()&&(c.model=a.model.trim()),"string"==typeof a.effort&&a.effort.trim()&&(c.effort=a.effort.trim());let d=l(a.role,a.roleParams,c);return d.ok?d.value.requiresDeploymentConfirmation&&"deploy"!==a.confirm?{ok:!1,error:"deployer requires confirm: deploy"}:{ok:!0,value:{config:d.value.config,scaffold:d.value.prompt,role:d.value.definition.id}}:d}},22018:(a,b,c)=>{c.d(b,{y:()=>d});function d(a){return void 0!==a.default?a.default:"integer"===a.kind?a.min??1:"select"===a.kind?a.options?.[0]??"":""}},43237:(a,b,c)=>{c.d(b,{Lh:()=>e,j0:()=>g,pV:()=>f});var d=c(643);function e(){return new Promise(a=>setImmediate(a))}async function f(a,b,c={}){let g=Math.max(1,Math.floor(c.batchSize??16)),h=Math.max(1,c.timeBudgetMs??32),i=d.performance.now(),j=0;for(let c=0;c<a.length;c+=1)await b(a[c],c),j+=1,!(c+1>=a.length)&&(j<g&&d.performance.now()-i<h||(await e(),i=d.performance.now(),j=0))}async function g(a,b,c={}){let d=Array(a.length);return await f(a,async(a,c)=>{d[c]=await b(a,c)},c),d}},98817:(a,b,c)=>{c.r(b),c.d(b,{FLOWS_SCHEMA_VERSION:()=>w,atomicWriteText:()=>A,checkpointFlowRollbackMirrorForDemotion:()=>V,checkpointFlowRollbackMirrorForDemotionAsync:()=>W,configuredReviewerFallback:()=>v,findingsPathFor:()=>ak,flowArtifactsDir:()=>aj,flowStateCollectionSeed:()=>O,loadFlow:()=>M,loadFlows:()=>L,loadFlowsForTick:()=>P,loadPresets:()=>ah,mergeSeededPresets:()=>E,normalizeFindings:()=>ao,outputPathFor:()=>al,patchFlowRows:()=>ae,planFlowStateMigration:()=>S,reconcileFlowConversationOwnership:()=>$,reconcileFlowConversationOwnershipCooperatively:()=>_,saveFlowRows:()=>ad,saveFlows:()=>ac,savePresets:()=>ai,seededPresetsFromRoles:()=>u,stderrPathFor:()=>am,stdoutPathFor:()=>an,withFlowMutation:()=>af,withFlowSnapshot:()=>ag});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(70160),l=c(43237),m=c(14928),n=c(49048),o=c(38751),p=c(16251),q=c(22371);let r=()=>(0,j.BQ)("flows.json"),s=()=>(0,j.BQ)("review-loop-presets.json");function t(a,b,c={}){if("builder"!==b)return{...a.find(a=>a.id===b).config};let d=(0,p.fy)(b,c,{},a);return d.ok?{...d.value.config}:{...n.W.find(a=>a.id===b).config}}function u(){let a=(0,q.e3)(),b=t(a,"builder"),c=t(a,"builder",{mode:"apply-fixes",domain:"general"}),d=t(a,"reviewer"),e=t(a,"architect");return[{name:"Astra medium → Astra xhigh",implementer:b,reviewer:d},{name:"Terra low → Astra xhigh",implementer:c,reviewer:d},{name:"Astra medium → Opus 5",implementer:b,reviewer:e},{name:"Opus 5 → Astra xhigh",implementer:e,reviewer:d},{name:"Sonnet → Astra xhigh",implementer:{engine:"claude",model:"sonnet",effort:"high"},reviewer:d}].map(a=>({...a,managed:"role-registry"}))}function v(){return t((0,q.e3)(),"architect")}let w=3,x=/^(?:claude|codex):[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,y=/^(?:default|unknown|managed:[0-9a-f]{12})$/;function z(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 A(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 B(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&&(void 0===a.headRef||null===a.headRef||"string"==typeof a.headRef)&&(void 0===a.requireRemoteHead||"boolean"==typeof a.requireRemoteHead)&&(void 0===a.targetSha||null===a.targetSha||"string"==typeof a.targetSha)&&(void 0===a.spec||"string"==typeof a.spec)&&(void 0===a.reviewerSandbox||"full"===a.reviewerSandbox||"restricted"===a.reviewerSandbox)&&(void 0===a.hostClaim||null===a.hostClaim||x.test(a.hostClaim.sessionKey)&&y.test(a.hostClaim.accountRef))&&Array.isArray(a.rounds)}function C(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.name&&D(a.implementer)&&D(a.reviewer)&&(void 0===a.managed||"role-registry"===a.managed)}function D(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&("claude"===a.engine||"codex"===a.engine)&&(null===a.model||"string"==typeof a.model)&&(null===a.effort||"string"==typeof a.effort)}function E(a,b=u()){let c=new Set(a.map(a=>a.name));return[...b.filter(a=>!c.has(a.name)),...a]}let F=null,G=new Map,H=new WeakMap;function I(a){return H.set(a,new Map(a.map(a=>[a.id,JSON.stringify(a)]))),a}function J(){return U().signature()}function K(a){return a.map(a=>({...a,hostClaim:a.hostClaim?{...a.hostClaim}:null,rounds:a.rounds.map(a=>({...a}))}))}function L(){let a=J();if(F?.signature===a)return I(K(F.flows));let b=U().snapshot(),c=J();return a===c&&(F={signature:c,flows:b}),I(K(b))}function M(a){return U().get(a)}function N(a){return!["approved","done_comment","needs_decision","closed"].includes(a.state)}function O(){return{collection:"flows",schemaVersion:w,migrationId:"flows-json-v1",loadRecords:R,key:a=>a.id,controllerActive:N}}function P(){return U().snapshotForController()}function Q(a){return a?{...a,resetKnown:a.resetKnown??!0}:null}function R(){let a=function(){let a;try{a=g().readFileSync(r(),"utf8")}catch(a){if("ENOENT"===a.code)return null;throw Error("could not read legacy flow state",{cause:a})}try{return JSON.parse(a)}catch(a){throw Error("legacy flow state contains malformed JSON",{cause:a})}}();if(null===a)return[];if(!a||"object"!=typeof a||Array.isArray(a))throw Error("legacy flow state must be an object");if(!Array.isArray(a.flows)||!a.flows.every(B))throw Error("legacy flow state contains malformed records");return a.flows.map(a=>({...a,project:(0,o.G$)(a.project),revision:a.revision??0,targetSha:a.targetSha??null,implementerConversationId:a.implementerConversationId??null,reviewerFallback:void 0===a.reviewerFallback&&"codex"===a.roles.reviewer.engine?v():a.reviewerFallback??null,pausedState:a.pausedState??null,kickoffDelivery:a.kickoffDelivery??null,hostClaim:a.hostClaim??null,rounds:a.rounds.map(a=>({...a,reviewerConversationId:a.reviewerConversationId??null,reviewerRole:a.reviewerRole??null,attemptedAccounts:a.attemptedAccounts??[],autoRetryCount:a.autoRetryCount??0,sessionId:a.sessionId??null,reviewerPid:a.reviewerPid??null,reviewerIdentity:a.reviewerIdentity??null,reviewHeadSha:a.reviewHeadSha??null,spawnStartedAt:a.spawnStartedAt??null,launchId:a.launchId??null,launchLeaseUntil:a.launchLeaseUntil??null,relayStartedAt:a.relayStartedAt??null,relayRetryCount:a.relayRetryCount??0,relayDeliveryAttempt:a.relayDeliveryAttempt??0,relayDeliveryTransport:a.relayDeliveryTransport??null,relayRetryAt:a.relayRetryAt??null,relayRetryRequiresIdempotency:a.relayRetryRequiresIdempotency??!1,relayDelivery:a.relayDelivery??null,relayPendingSettlement:a.relayPendingSettlement??null,relayHold:Q(a.relayHold),terminalAt:a.terminalAt??null,error:a.error??null}))}))}function S(){let a=R();return{records:a.length,keys:a.map(a=>a.id)}}function T(a){return B(a)?{...a,project:(0,o.G$)(a.project),revision:a.revision??0,targetSha:a.targetSha??null,implementerConversationId:a.implementerConversationId??null,reviewerFallback:void 0===a.reviewerFallback&&"codex"===a.roles.reviewer.engine?v():a.reviewerFallback??null,pausedState:a.pausedState??null,kickoffDelivery:a.kickoffDelivery??null,hostClaim:a.hostClaim??null,rounds:a.rounds.map(a=>({...a,reviewerConversationId:a.reviewerConversationId??null,reviewerRole:a.reviewerRole??null,attemptedAccounts:a.attemptedAccounts??[],autoRetryCount:a.autoRetryCount??0,sessionId:a.sessionId??null,reviewerPid:a.reviewerPid??null,reviewerIdentity:a.reviewerIdentity??null,reviewHeadSha:a.reviewHeadSha??null,spawnStartedAt:a.spawnStartedAt??null,launchId:a.launchId??null,launchLeaseUntil:a.launchLeaseUntil??null,relayStartedAt:a.relayStartedAt??null,relayRetryCount:a.relayRetryCount??0,relayDeliveryAttempt:a.relayDeliveryAttempt??0,relayDeliveryTransport:a.relayDeliveryTransport??null,relayRetryAt:a.relayRetryAt??null,relayRetryRequiresIdempotency:a.relayRetryRequiresIdempotency??!1,relayDelivery:a.relayDelivery??null,relayPendingSettlement:a.relayPendingSettlement??null,relayHold:Q(a.relayHold),terminalAt:a.terminalAt??null,error:a.error??null}))}:null}function U(){let a=(0,j.BQ)("state.sqlite"),b=G.get(a);if(b)return b;(0,m.t0)(a,[O()]);let c=new m.UY(a,{collection:"flows",schemaVersion:w,busyMessage:"flow state is busy",key:a=>a.id,decode:T,clone:a=>K([a])[0],controllerActive:N,strictDecode:!0,decodeError:a=>Error("flow SQLite state contains a malformed row",{cause:a})});return G.set(a,c),c}function V(){return U().checkpointMirrorForDemotion((a,b)=>{z(r(),{schemaVersion:w,_sqliteRevision:b,flows:a})})}async function W(){return U().checkpointMirrorForDemotionAsync((a,b)=>{z(r(),{schemaVersion:w,_sqliteRevision:b,flows:a})})}function X(a,b){if(a.implementerConversationId?.startsWith("conversation_")){let c=b.conversation(a.implementerConversationId)?.generations.at(-1)?.path;return!!c&&c!==a.implementerPath&&(a.implementerPath=c,!0)}let c=b.conversationForPath(a.implementerPath);if(!c)return!1;a.implementerConversationId=c.id;let d=c.generations.at(-1)?.path;return d&&(a.implementerPath=d),!0}function Y(a,b){if(a.reviewerConversationId?.startsWith("conversation_")){let c=b.conversation(a.reviewerConversationId)?.generations.at(-1)?.path;return!!c&&c!==a.reviewerPath&&(a.reviewerPath=c,!0)}if(!a.reviewerPath)return!1;let c=b.conversationForPath(a.reviewerPath);if(!c)return!1;a.reviewerConversationId=c.id;let d=c.generations.at(-1)?.path;return d&&(a.reviewerPath=d),!0}function Z(a,b,c){return a===c.path&&(b??null)===c.conversationId}function $(a=(0,k.agentRegistry)()){let b=L(),c=!1;for(let d of b)for(let b of(c=X(d,a)||c,d.rounds))c=Y(b,a)||c;c&&ac(b)}async function _(a=(0,k.agentRegistry)()){let b=L(),c=[];await (0,l.pV)(b,async b=>{let d={path:b.implementerPath,conversationId:b.implementerConversationId??null},e=X(b,a),f=[];await (0,l.pV)(b.rounds,b=>{let c={path:b.reviewerPath,conversationId:b.reviewerConversationId??null};Y(b,a)&&f.push({n:b.n,before:c,after:{path:b.reviewerPath,conversationId:b.reviewerConversationId??null}})}),(e||f.length>0)&&c.push({id:b.id,implementer:e?{before:d,after:{path:b.implementerPath,conversationId:b.implementerConversationId??null}}:null,rounds:f})}),function(a){if(0===a.length)return;let b=L(),c=new Map(b.map(a=>[a.id,a])),d=!1;for(let b of a){let a=c.get(b.id);if(a)for(let c of(b.implementer&&Z(a.implementerPath,a.implementerConversationId,b.implementer.before)&&(a.implementerPath=b.implementer.after.path,a.implementerConversationId=b.implementer.after.conversationId,d=!0),b.rounds)){let b=a.rounds.find(a=>a.n===c.n);b&&Z(b.reviewerPath,b.reviewerConversationId,c.before)&&(b.reviewerPath=c.after.path,b.reviewerConversationId=c.after.conversationId,d=!0)}}d&&ac(b)}(c)}function aa(a){let b={...a};return delete b.revision,JSON.stringify(b)}function ab(a){for(let b of a){let a=U().get(b.id)??void 0;if(a&&void 0!==b.revision&&b.revision<(a.revision??0)){for(let a of Object.keys(b))delete b[a];Object.assign(b,structuredClone(a));continue}b.revision=a&&aa(a)===aa(b)?a.revision??0:(a?.revision??0)+1}}function ac(a){let b=H.get(a);if(!b){U().replaceSync(a,{beforePersist:ab}),I(a);return}let c=new Set(a.map(a=>a.id)),d=a.filter(a=>b.get(a.id)!==JSON.stringify(a)),e=[...b.keys()].filter(a=>!c.has(a));U().patchSync(()=>(ab(d),{records:d,deleteKeys:e.filter(a=>{let c=U().get(a);return null!==c&&JSON.stringify(c)===b.get(a)})})),I(a)}function ad(a){0!==a.length&&U().replaceSync(a,{mergeOmitted:!0,beforePersist:ab})}function ae(a,b){let c=[...new Set(a)];if(0===c.length)return;let d=U();d.patchSync(()=>{let a=b(c.flatMap(a=>{let b=d.get(a);return b?[b]:[]}));return ab(a),{records:a}})}async function af(a){return await U().mutate(a,({dirtyRecords:a})=>ab(a))}function ag(a){return U().withSnapshotSync(a)}function ah(){let a=function(a){try{return JSON.parse(g().readFileSync(a,"utf8"))}catch{return null}}(s()),b=Array.isArray(a?.presets)?a.presets.filter(C):[],c=E(b);return JSON.stringify(c)!==JSON.stringify(b)&&ai(c),c}function ai(a){z(s(),{presets:a})}function aj(a){return i().join((0,j.BQ)("flows"),a)}function ak(a,b){return i().join(aj(a),`round-${b}-review.md`)}function al(a,b){return i().join(aj(a),`round-${b}-last-message.md`)}function am(a,b){return i().join(aj(a),`round-${b}-stderr.txt`)}function an(a,b){return i().join(aj(a),`round-${b}-stdout.log`)}function ao(a,b){let c=b.replace(/^\s*VERDICT:\s*(APPROVE|REQUEST_CHANGES|COMMENT)\s*$/im,"").trim();return`VERDICT: ${a}
5
5
  ${c?"\n"+c+"\n":"\n"}`}}};