agent-log-viewer 1.0.2 → 1.0.3

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 (551) hide show
  1. package/README.md +18 -0
  2. package/dist/mcp-server.mjs +2458 -392
  3. package/dist/runtime-host.mjs +1613 -244
  4. package/dist/standalone/.next/BUILD_ID +1 -1
  5. package/dist/standalone/.next/app-path-routes-manifest.json +28 -25
  6. package/dist/standalone/.next/build-manifest.json +2 -2
  7. package/dist/standalone/.next/prerender-manifest.json +3 -3
  8. package/dist/standalone/.next/routes-manifest.json +18 -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 +3 -3
  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/_global-error.segment.rsc +1 -1
  18. package/dist/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  19. package/dist/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  20. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  21. package/dist/standalone/.next/server/app/_not-found/page.js +2 -2
  22. package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  23. package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  24. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  25. package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
  26. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  27. package/dist/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  28. package/dist/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  29. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  30. package/dist/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  31. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  32. package/dist/standalone/.next/server/app/api/access/route.js +1 -1
  33. package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
  34. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
  35. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
  36. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +1 -1
  37. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -1
  38. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js +1 -1
  39. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -1
  40. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js +1 -1
  41. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -1
  42. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js +1 -1
  43. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -1
  44. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js +1 -1
  45. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -1
  46. package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -1
  47. package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -1
  48. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js +1 -1
  49. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -1
  50. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js +1 -1
  51. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -1
  52. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js +1 -1
  53. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
  54. package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
  55. package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
  56. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +1 -1
  57. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -1
  58. package/dist/standalone/.next/server/app/api/accounts/route.js +1 -1
  59. package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -1
  60. package/dist/standalone/.next/server/app/api/agent/route.js +1 -1
  61. package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
  62. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -1
  63. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -1
  64. package/dist/standalone/.next/server/app/api/answer/route.js +2 -1
  65. package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
  66. package/dist/standalone/.next/server/app/api/artifact/route.js +1 -1
  67. package/dist/standalone/.next/server/app/api/artifact/route.js.nft.json +1 -1
  68. package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -1
  69. package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -1
  70. package/dist/standalone/.next/server/app/api/attention/[id]/route.js +1 -1
  71. package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -1
  72. package/dist/standalone/.next/server/app/api/attention/route.js +1 -1
  73. package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -1
  74. package/dist/standalone/.next/server/app/api/board/route.js +1 -1
  75. package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -1
  76. package/dist/standalone/.next/server/app/api/bridge/route.js +2 -2
  77. package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
  78. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
  79. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
  80. package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
  81. package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
  82. package/dist/standalone/.next/server/app/api/files/route.js +2 -2
  83. package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  84. package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
  85. package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
  86. package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
  87. package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
  88. package/dist/standalone/.next/server/app/api/image/route.js +1 -1
  89. package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
  90. package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
  91. package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  92. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
  93. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
  94. package/dist/standalone/.next/server/app/api/limits/history/route.js +1 -1
  95. package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -1
  96. package/dist/standalone/.next/server/app/api/limits/route.js +1 -1
  97. package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
  98. package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -1
  99. package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -1
  100. package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -1
  101. package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -1
  102. package/dist/standalone/.next/server/app/api/log/provenance/route.js +67 -1
  103. package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -1
  104. package/dist/standalone/.next/server/app/api/log/route.js +1 -1
  105. package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
  106. package/dist/standalone/.next/server/app/api/log/suggestions/route.js +3 -0
  107. package/dist/standalone/.next/server/app/api/log/suggestions/route.js.nft.json +1 -0
  108. package/dist/standalone/.next/server/app/api/log/suggestions/route_client-reference-manifest.js +1 -0
  109. package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
  110. package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  111. package/dist/standalone/.next/server/app/api/logs/stream/route.js +2 -2
  112. package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  113. package/dist/standalone/.next/server/app/api/monitor/lock/route.js +1 -3
  114. package/dist/standalone/.next/server/app/api/monitor/lock/route.js.nft.json +1 -1
  115. package/dist/standalone/.next/server/app/api/monitor/runs/route.js +1 -3
  116. package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
  117. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
  118. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
  119. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
  120. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
  121. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +2 -2
  122. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -1
  123. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -1
  124. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -1
  125. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js +1 -1
  126. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -1
  127. package/dist/standalone/.next/server/app/api/pipelines/route.js +2 -2
  128. package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
  129. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +2 -2
  130. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
  131. package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
  132. package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
  133. package/dist/standalone/.next/server/app/api/projects/create/route.js +2 -2
  134. package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -1
  135. package/dist/standalone/.next/server/app/api/projects/crown/route.js +1 -1
  136. package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -1
  137. package/dist/standalone/.next/server/app/api/projects/directories/route.js +1 -0
  138. package/dist/standalone/.next/server/app/api/projects/directories/route.js.nft.json +1 -0
  139. package/dist/standalone/.next/server/app/api/projects/directories/route_client-reference-manifest.js +1 -0
  140. package/dist/standalone/.next/server/app/api/push/route.js +2 -2
  141. package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
  142. package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
  143. package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
  144. package/dist/standalone/.next/server/app/api/roles/route.js +2 -2
  145. package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
  146. package/dist/standalone/.next/server/app/api/runtime/answer/route.js +2 -1
  147. package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -1
  148. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js +1 -1
  149. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -1
  150. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js +1 -1
  151. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -1
  152. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js +1 -1
  153. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -1
  154. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js +1 -0
  155. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js.nft.json +1 -0
  156. package/dist/standalone/.next/server/app/api/runtime/hosts/route_client-reference-manifest.js +1 -0
  157. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +2 -1
  158. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -1
  159. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +2 -1
  160. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
  161. package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -1
  162. package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
  163. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +2 -1
  164. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
  165. package/dist/standalone/.next/server/app/api/runtime/send/route.js +2 -1
  166. package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -1
  167. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js +1 -1
  168. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -1
  169. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +2 -1
  170. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -1
  171. package/dist/standalone/.next/server/app/api/runtime/steer/route.js +2 -1
  172. package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -1
  173. package/dist/standalone/.next/server/app/api/runtime/stream/route.js +2 -2
  174. package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -1
  175. package/dist/standalone/.next/server/app/api/search/transcripts/route.js +2 -2
  176. package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -1
  177. package/dist/standalone/.next/server/app/api/session/route.js +1 -1
  178. package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  179. package/dist/standalone/.next/server/app/api/session/supersedence/route.js +1 -1
  180. package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -1
  181. package/dist/standalone/.next/server/app/api/session/title/route.js +1 -1
  182. package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -1
  183. package/dist/standalone/.next/server/app/api/spawn/policy/route.js +3 -3
  184. package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -1
  185. package/dist/standalone/.next/server/app/api/spawn/route.js +2 -2
  186. package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
  187. package/dist/standalone/.next/server/app/api/staging/route.js +2 -2
  188. package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
  189. package/dist/standalone/.next/server/app/api/task-attachments/route.js +2 -2
  190. package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
  191. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
  192. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
  193. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  194. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  195. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +2 -1
  196. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
  197. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +2 -1
  198. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
  199. package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
  200. package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
  201. package/dist/standalone/.next/server/app/api/tasks/route.js +2 -2
  202. package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  203. package/dist/standalone/.next/server/app/api/telegram/reports/route.js +1 -1
  204. package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -1
  205. package/dist/standalone/.next/server/app/api/telegram/route.js +1 -1
  206. package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -1
  207. package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
  208. package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
  209. package/dist/standalone/.next/server/app/api/tmux/route.js +2 -1
  210. package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
  211. package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
  212. package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
  213. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js +2 -2
  214. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
  215. package/dist/standalone/.next/server/app/api/transcribe/route.js +2 -2
  216. package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
  217. package/dist/standalone/.next/server/app/api/transcribe/token/route.js +2 -2
  218. package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
  219. package/dist/standalone/.next/server/app/api/tts/backend/route.js +1 -1
  220. package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -1
  221. package/dist/standalone/.next/server/app/api/tts/route.js +1 -1
  222. package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -1
  223. package/dist/standalone/.next/server/app/api/view/presence/route.js +1 -1
  224. package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -1
  225. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
  226. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
  227. package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
  228. package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  229. package/dist/standalone/.next/server/app/favicon.ico/route.js +1 -1
  230. package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  231. package/dist/standalone/.next/server/app/index.html +1 -1
  232. package/dist/standalone/.next/server/app/index.rsc +3 -3
  233. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  234. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  235. package/dist/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  236. package/dist/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  237. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  238. package/dist/standalone/.next/server/app/page.js +17 -13
  239. package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
  240. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  241. package/dist/standalone/.next/server/app-paths-manifest.json +28 -25
  242. package/dist/standalone/.next/server/chunks/107.js +1 -0
  243. package/dist/standalone/.next/server/chunks/{1858.js → 1100.js} +2 -2
  244. package/dist/standalone/.next/server/chunks/1872.js +42 -0
  245. package/dist/standalone/.next/server/chunks/1952.js +3 -0
  246. package/dist/standalone/.next/server/chunks/2243.js +1 -0
  247. package/dist/standalone/.next/server/chunks/2260.js +104 -0
  248. package/dist/standalone/.next/server/chunks/2318.js +2 -2
  249. package/dist/standalone/.next/server/chunks/2324.js +1 -1
  250. package/dist/standalone/.next/server/chunks/2549.js +81 -0
  251. package/dist/standalone/.next/server/chunks/2682.js +85 -0
  252. package/dist/standalone/.next/server/chunks/3086.js +1 -1
  253. package/dist/standalone/.next/server/chunks/3214.js +1 -1
  254. package/dist/standalone/.next/server/chunks/3302.js +2 -0
  255. package/dist/standalone/.next/server/chunks/3336.js +1 -1
  256. package/dist/standalone/.next/server/chunks/3386.js +2 -0
  257. package/dist/standalone/.next/server/chunks/3558.js +1 -1
  258. package/dist/standalone/.next/server/chunks/3587.js +1 -1
  259. package/dist/standalone/.next/server/chunks/3740.js +20 -20
  260. package/dist/standalone/.next/server/chunks/3830.js +1 -0
  261. package/dist/standalone/.next/server/chunks/4191.js +1 -1
  262. package/dist/standalone/.next/server/chunks/4310.js +1 -0
  263. package/dist/standalone/.next/server/chunks/4509.js +1 -1
  264. package/dist/standalone/.next/server/chunks/4565.js +1 -0
  265. package/dist/standalone/.next/server/chunks/4651.js +2 -0
  266. package/dist/standalone/.next/server/chunks/4756.js +13 -0
  267. package/dist/standalone/.next/server/chunks/4972.js +1 -1
  268. package/dist/standalone/.next/server/chunks/5103.js +10 -0
  269. package/dist/standalone/.next/server/chunks/5408.js +1 -0
  270. package/dist/standalone/.next/server/chunks/5545.js +1 -0
  271. package/dist/standalone/.next/server/chunks/5689.js +1 -1
  272. package/dist/standalone/.next/server/chunks/6333.js +3 -3
  273. package/dist/standalone/.next/server/chunks/6487.js +10 -0
  274. package/dist/standalone/.next/server/chunks/6796.js +1 -1
  275. package/dist/standalone/.next/server/chunks/6820.js +99 -0
  276. package/dist/standalone/.next/server/chunks/6826.js +1 -1
  277. package/dist/standalone/.next/server/chunks/6839.js +81 -0
  278. package/dist/standalone/.next/server/chunks/6850.js +1 -1
  279. package/dist/standalone/.next/server/chunks/6909.js +1 -1
  280. package/dist/standalone/.next/server/chunks/6942.js +27 -0
  281. package/dist/standalone/.next/server/chunks/7139.js +82 -0
  282. package/dist/standalone/.next/server/chunks/7471.js +13 -13
  283. package/dist/standalone/.next/server/chunks/7644.js +2 -2
  284. package/dist/standalone/.next/server/chunks/7722.js +1 -1
  285. package/dist/standalone/.next/server/chunks/773.js +47 -0
  286. package/dist/standalone/.next/server/chunks/8263.js +81 -0
  287. package/dist/standalone/.next/server/chunks/8326.js +1 -0
  288. package/dist/standalone/.next/server/chunks/8444.js +1 -1
  289. package/dist/standalone/.next/server/chunks/8617.js +1 -1
  290. package/dist/standalone/.next/server/chunks/8817.js +1 -1
  291. package/dist/standalone/.next/server/chunks/8996.js +1 -1
  292. package/dist/standalone/.next/server/chunks/9307.js +1 -0
  293. package/dist/standalone/.next/server/chunks/9364.js +58 -58
  294. package/dist/standalone/.next/server/chunks/9381.js +42 -0
  295. package/dist/standalone/.next/server/chunks/9403.js +1 -0
  296. package/dist/standalone/.next/server/chunks/9434.js +3 -3
  297. package/dist/standalone/.next/server/chunks/9488.js +1 -0
  298. package/dist/standalone/.next/server/chunks/9750.js +1 -0
  299. package/dist/standalone/.next/server/chunks/9777.js +1 -0
  300. package/dist/standalone/.next/server/chunks/9937.js +1 -1
  301. package/dist/standalone/.next/server/chunks/9940.js +1 -1
  302. package/dist/standalone/.next/server/chunks/9998.js +1 -1
  303. package/dist/standalone/.next/server/files-response-worker.js +3 -3
  304. package/dist/standalone/.next/server/functions-config-manifest.json +3 -0
  305. package/dist/standalone/.next/server/instrumentation.js +1 -1
  306. package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
  307. package/dist/standalone/.next/server/pages/404.html +1 -1
  308. package/dist/standalone/.next/server/pages/500.html +1 -1
  309. package/dist/standalone/.next/server/resource-collector-worker.js +1 -1
  310. package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
  311. package/dist/standalone/.next/server/wakatime-sync-worker.js +2 -2
  312. package/dist/standalone/.next/static/94yAMfjyhUPRgarycP9y4/_buildManifest.js +1 -0
  313. package/dist/standalone/.next/static/chunks/app/_global-error/page-ae02882983617748.js +1 -0
  314. package/dist/standalone/.next/static/chunks/app/api/access/route-ae02882983617748.js +1 -0
  315. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-ae02882983617748.js +1 -0
  316. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-ae02882983617748.js +1 -0
  317. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-ae02882983617748.js +1 -0
  318. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-ae02882983617748.js +1 -0
  319. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-ae02882983617748.js +1 -0
  320. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-ae02882983617748.js +1 -0
  321. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-ae02882983617748.js +1 -0
  322. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-ae02882983617748.js +1 -0
  323. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-ae02882983617748.js +1 -0
  324. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-ae02882983617748.js +1 -0
  325. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-ae02882983617748.js +1 -0
  326. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-ae02882983617748.js +1 -0
  327. package/dist/standalone/.next/static/chunks/app/api/accounts/route-ae02882983617748.js +1 -0
  328. package/dist/standalone/.next/static/chunks/app/api/agent/route-ae02882983617748.js +1 -0
  329. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-ae02882983617748.js +1 -0
  330. package/dist/standalone/.next/static/chunks/app/api/answer/route-ae02882983617748.js +1 -0
  331. package/dist/standalone/.next/static/chunks/app/api/artifact/route-ae02882983617748.js +1 -0
  332. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-ae02882983617748.js +1 -0
  333. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-ae02882983617748.js +1 -0
  334. package/dist/standalone/.next/static/chunks/app/api/attention/route-ae02882983617748.js +1 -0
  335. package/dist/standalone/.next/static/chunks/app/api/board/route-ae02882983617748.js +1 -0
  336. package/dist/standalone/.next/static/chunks/app/api/bridge/route-ae02882983617748.js +1 -0
  337. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-ae02882983617748.js +1 -0
  338. package/dist/standalone/.next/static/chunks/app/api/conversations/route-ae02882983617748.js +1 -0
  339. package/dist/standalone/.next/static/chunks/app/api/files/route-ae02882983617748.js +1 -0
  340. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-ae02882983617748.js +1 -0
  341. package/dist/standalone/.next/static/chunks/app/api/flows/route-ae02882983617748.js +1 -0
  342. package/dist/standalone/.next/static/chunks/app/api/image/route-ae02882983617748.js +1 -0
  343. package/dist/standalone/.next/static/chunks/app/api/inbox/route-ae02882983617748.js +1 -0
  344. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-ae02882983617748.js +1 -0
  345. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-ae02882983617748.js +1 -0
  346. package/dist/standalone/.next/static/chunks/app/api/limits/route-ae02882983617748.js +1 -0
  347. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-ae02882983617748.js +1 -0
  348. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-ae02882983617748.js +1 -0
  349. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-ae02882983617748.js +1 -0
  350. package/dist/standalone/.next/static/chunks/app/api/log/route-ae02882983617748.js +1 -0
  351. package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-ae02882983617748.js +1 -0
  352. package/dist/standalone/.next/static/chunks/app/api/logs/route-ae02882983617748.js +1 -0
  353. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-ae02882983617748.js +1 -0
  354. package/dist/standalone/.next/static/chunks/app/api/monitor/lock/route-ae02882983617748.js +1 -0
  355. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-ae02882983617748.js +1 -0
  356. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-ae02882983617748.js +1 -0
  357. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-ae02882983617748.js +1 -0
  358. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-ae02882983617748.js +1 -0
  359. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-ae02882983617748.js +1 -0
  360. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-ae02882983617748.js +1 -0
  361. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-ae02882983617748.js +1 -0
  362. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-ae02882983617748.js +1 -0
  363. package/dist/standalone/.next/static/chunks/app/api/proc/route-ae02882983617748.js +1 -0
  364. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-ae02882983617748.js +1 -0
  365. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-ae02882983617748.js +1 -0
  366. package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-ae02882983617748.js +1 -0
  367. package/dist/standalone/.next/static/chunks/app/api/push/route-ae02882983617748.js +1 -0
  368. package/dist/standalone/.next/static/chunks/app/api/resources/route-ae02882983617748.js +1 -0
  369. package/dist/standalone/.next/static/chunks/app/api/roles/route-ae02882983617748.js +1 -0
  370. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-ae02882983617748.js +1 -0
  371. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-ae02882983617748.js +1 -0
  372. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-ae02882983617748.js +1 -0
  373. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-ae02882983617748.js +1 -0
  374. package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-ae02882983617748.js +1 -0
  375. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-ae02882983617748.js +1 -0
  376. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-ae02882983617748.js +1 -0
  377. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-ae02882983617748.js +1 -0
  378. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-ae02882983617748.js +1 -0
  379. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-ae02882983617748.js +1 -0
  380. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-ae02882983617748.js +1 -0
  381. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-ae02882983617748.js +1 -0
  382. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-ae02882983617748.js +1 -0
  383. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-ae02882983617748.js +1 -0
  384. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-ae02882983617748.js +1 -0
  385. package/dist/standalone/.next/static/chunks/app/api/session/route-ae02882983617748.js +1 -0
  386. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-ae02882983617748.js +1 -0
  387. package/dist/standalone/.next/static/chunks/app/api/session/title/route-ae02882983617748.js +1 -0
  388. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-ae02882983617748.js +1 -0
  389. package/dist/standalone/.next/static/chunks/app/api/spawn/route-ae02882983617748.js +1 -0
  390. package/dist/standalone/.next/static/chunks/app/api/staging/route-ae02882983617748.js +1 -0
  391. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-ae02882983617748.js +1 -0
  392. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-ae02882983617748.js +1 -0
  393. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-ae02882983617748.js +1 -0
  394. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-ae02882983617748.js +1 -0
  395. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-ae02882983617748.js +1 -0
  396. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-ae02882983617748.js +1 -0
  397. package/dist/standalone/.next/static/chunks/app/api/tasks/route-ae02882983617748.js +1 -0
  398. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-ae02882983617748.js +1 -0
  399. package/dist/standalone/.next/static/chunks/app/api/telegram/route-ae02882983617748.js +1 -0
  400. package/dist/standalone/.next/static/chunks/app/api/timeline/route-ae02882983617748.js +1 -0
  401. package/dist/standalone/.next/static/chunks/app/api/tmux/route-ae02882983617748.js +1 -0
  402. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-ae02882983617748.js +1 -0
  403. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-ae02882983617748.js +1 -0
  404. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-ae02882983617748.js +1 -0
  405. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-ae02882983617748.js +1 -0
  406. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-ae02882983617748.js +1 -0
  407. package/dist/standalone/.next/static/chunks/app/api/tts/route-ae02882983617748.js +1 -0
  408. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-ae02882983617748.js +1 -0
  409. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-ae02882983617748.js +1 -0
  410. package/dist/standalone/.next/static/chunks/app/api/workflows/route-ae02882983617748.js +1 -0
  411. package/dist/standalone/.next/static/chunks/app/page-1a141ae4aa9d31a9.js +85 -0
  412. package/dist/standalone/.next/static/chunks/{framework-d1de002210ddaaef.js → framework-04bc8c1a646a0097.js} +1 -1
  413. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-ae02882983617748.js +1 -0
  414. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-ae02882983617748.js +1 -0
  415. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-ae02882983617748.js +1 -0
  416. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ae02882983617748.js +1 -0
  417. package/dist/standalone/.next/static/css/dc96fb2edbd8742e.css +1 -0
  418. package/dist/standalone/node_modules/{nanoid → next/node_modules/postcss/node_modules/nanoid}/non-secure/index.cjs +2 -2
  419. package/dist/standalone/node_modules/{nanoid → next/node_modules/postcss/node_modules/nanoid}/package.json +1 -1
  420. package/dist/standalone/node_modules/react/cjs/react.development.js +1 -1
  421. package/dist/standalone/node_modules/react/cjs/react.production.js +1 -1
  422. package/dist/standalone/node_modules/react/package.json +3 -3
  423. package/dist/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +1 -1
  424. package/dist/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +1 -1
  425. package/dist/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +3 -3
  426. package/dist/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +3 -3
  427. package/dist/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +3 -3
  428. package/dist/standalone/node_modules/react-dom/cjs/react-dom.production.js +1 -1
  429. package/dist/standalone/node_modules/react-dom/package.json +4 -4
  430. package/dist/standalone/package.json +9 -8
  431. package/dist/standalone/src/lib/inboxFiles.ts +203 -0
  432. package/package.json +9 -8
  433. package/dist/standalone/.next/server/chunks/156.js +0 -2
  434. package/dist/standalone/.next/server/chunks/1920.js +0 -27
  435. package/dist/standalone/.next/server/chunks/2338.js +0 -12
  436. package/dist/standalone/.next/server/chunks/2904.js +0 -42
  437. package/dist/standalone/.next/server/chunks/2977.js +0 -1
  438. package/dist/standalone/.next/server/chunks/3139.js +0 -10
  439. package/dist/standalone/.next/server/chunks/3598.js +0 -81
  440. package/dist/standalone/.next/server/chunks/4968.js +0 -1
  441. package/dist/standalone/.next/server/chunks/6977.js +0 -1
  442. package/dist/standalone/.next/server/chunks/7295.js +0 -10
  443. package/dist/standalone/.next/server/chunks/7868.js +0 -1
  444. package/dist/standalone/.next/server/chunks/8026.js +0 -1
  445. package/dist/standalone/.next/server/chunks/8600.js +0 -12
  446. package/dist/standalone/.next/server/chunks/9246.js +0 -47
  447. package/dist/standalone/.next/server/chunks/9733.js +0 -42
  448. package/dist/standalone/.next/static/2ybXlxpylgBaGz43zp2fM/_buildManifest.js +0 -1
  449. package/dist/standalone/.next/static/chunks/app/_global-error/page-c132c5ba005ff29e.js +0 -1
  450. package/dist/standalone/.next/static/chunks/app/api/access/route-c132c5ba005ff29e.js +0 -1
  451. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-c132c5ba005ff29e.js +0 -1
  452. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-c132c5ba005ff29e.js +0 -1
  453. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-c132c5ba005ff29e.js +0 -1
  454. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-c132c5ba005ff29e.js +0 -1
  455. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-c132c5ba005ff29e.js +0 -1
  456. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-c132c5ba005ff29e.js +0 -1
  457. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-c132c5ba005ff29e.js +0 -1
  458. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-c132c5ba005ff29e.js +0 -1
  459. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-c132c5ba005ff29e.js +0 -1
  460. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-c132c5ba005ff29e.js +0 -1
  461. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-c132c5ba005ff29e.js +0 -1
  462. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-c132c5ba005ff29e.js +0 -1
  463. package/dist/standalone/.next/static/chunks/app/api/accounts/route-c132c5ba005ff29e.js +0 -1
  464. package/dist/standalone/.next/static/chunks/app/api/agent/route-c132c5ba005ff29e.js +0 -1
  465. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-c132c5ba005ff29e.js +0 -1
  466. package/dist/standalone/.next/static/chunks/app/api/answer/route-c132c5ba005ff29e.js +0 -1
  467. package/dist/standalone/.next/static/chunks/app/api/artifact/route-c132c5ba005ff29e.js +0 -1
  468. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-c132c5ba005ff29e.js +0 -1
  469. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-c132c5ba005ff29e.js +0 -1
  470. package/dist/standalone/.next/static/chunks/app/api/attention/route-c132c5ba005ff29e.js +0 -1
  471. package/dist/standalone/.next/static/chunks/app/api/board/route-c132c5ba005ff29e.js +0 -1
  472. package/dist/standalone/.next/static/chunks/app/api/bridge/route-c132c5ba005ff29e.js +0 -1
  473. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-c132c5ba005ff29e.js +0 -1
  474. package/dist/standalone/.next/static/chunks/app/api/conversations/route-c132c5ba005ff29e.js +0 -1
  475. package/dist/standalone/.next/static/chunks/app/api/files/route-c132c5ba005ff29e.js +0 -1
  476. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-c132c5ba005ff29e.js +0 -1
  477. package/dist/standalone/.next/static/chunks/app/api/flows/route-c132c5ba005ff29e.js +0 -1
  478. package/dist/standalone/.next/static/chunks/app/api/image/route-c132c5ba005ff29e.js +0 -1
  479. package/dist/standalone/.next/static/chunks/app/api/inbox/route-c132c5ba005ff29e.js +0 -1
  480. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-c132c5ba005ff29e.js +0 -1
  481. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-c132c5ba005ff29e.js +0 -1
  482. package/dist/standalone/.next/static/chunks/app/api/limits/route-c132c5ba005ff29e.js +0 -1
  483. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-c132c5ba005ff29e.js +0 -1
  484. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-c132c5ba005ff29e.js +0 -1
  485. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-c132c5ba005ff29e.js +0 -1
  486. package/dist/standalone/.next/static/chunks/app/api/log/route-c132c5ba005ff29e.js +0 -1
  487. package/dist/standalone/.next/static/chunks/app/api/logs/route-c132c5ba005ff29e.js +0 -1
  488. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-c132c5ba005ff29e.js +0 -1
  489. package/dist/standalone/.next/static/chunks/app/api/monitor/lock/route-c132c5ba005ff29e.js +0 -1
  490. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-c132c5ba005ff29e.js +0 -1
  491. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-c132c5ba005ff29e.js +0 -1
  492. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-c132c5ba005ff29e.js +0 -1
  493. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-c132c5ba005ff29e.js +0 -1
  494. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-c132c5ba005ff29e.js +0 -1
  495. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-c132c5ba005ff29e.js +0 -1
  496. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-c132c5ba005ff29e.js +0 -1
  497. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-c132c5ba005ff29e.js +0 -1
  498. package/dist/standalone/.next/static/chunks/app/api/proc/route-c132c5ba005ff29e.js +0 -1
  499. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-c132c5ba005ff29e.js +0 -1
  500. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-c132c5ba005ff29e.js +0 -1
  501. package/dist/standalone/.next/static/chunks/app/api/push/route-c132c5ba005ff29e.js +0 -1
  502. package/dist/standalone/.next/static/chunks/app/api/resources/route-c132c5ba005ff29e.js +0 -1
  503. package/dist/standalone/.next/static/chunks/app/api/roles/route-c132c5ba005ff29e.js +0 -1
  504. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-c132c5ba005ff29e.js +0 -1
  505. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-c132c5ba005ff29e.js +0 -1
  506. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-c132c5ba005ff29e.js +0 -1
  507. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-c132c5ba005ff29e.js +0 -1
  508. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-c132c5ba005ff29e.js +0 -1
  509. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-c132c5ba005ff29e.js +0 -1
  510. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-c132c5ba005ff29e.js +0 -1
  511. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-c132c5ba005ff29e.js +0 -1
  512. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-c132c5ba005ff29e.js +0 -1
  513. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-c132c5ba005ff29e.js +0 -1
  514. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-c132c5ba005ff29e.js +0 -1
  515. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-c132c5ba005ff29e.js +0 -1
  516. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-c132c5ba005ff29e.js +0 -1
  517. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-c132c5ba005ff29e.js +0 -1
  518. package/dist/standalone/.next/static/chunks/app/api/session/route-c132c5ba005ff29e.js +0 -1
  519. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-c132c5ba005ff29e.js +0 -1
  520. package/dist/standalone/.next/static/chunks/app/api/session/title/route-c132c5ba005ff29e.js +0 -1
  521. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-c132c5ba005ff29e.js +0 -1
  522. package/dist/standalone/.next/static/chunks/app/api/spawn/route-c132c5ba005ff29e.js +0 -1
  523. package/dist/standalone/.next/static/chunks/app/api/staging/route-c132c5ba005ff29e.js +0 -1
  524. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-c132c5ba005ff29e.js +0 -1
  525. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-c132c5ba005ff29e.js +0 -1
  526. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-c132c5ba005ff29e.js +0 -1
  527. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-c132c5ba005ff29e.js +0 -1
  528. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-c132c5ba005ff29e.js +0 -1
  529. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-c132c5ba005ff29e.js +0 -1
  530. package/dist/standalone/.next/static/chunks/app/api/tasks/route-c132c5ba005ff29e.js +0 -1
  531. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-c132c5ba005ff29e.js +0 -1
  532. package/dist/standalone/.next/static/chunks/app/api/telegram/route-c132c5ba005ff29e.js +0 -1
  533. package/dist/standalone/.next/static/chunks/app/api/timeline/route-c132c5ba005ff29e.js +0 -1
  534. package/dist/standalone/.next/static/chunks/app/api/tmux/route-c132c5ba005ff29e.js +0 -1
  535. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-c132c5ba005ff29e.js +0 -1
  536. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-c132c5ba005ff29e.js +0 -1
  537. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-c132c5ba005ff29e.js +0 -1
  538. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-c132c5ba005ff29e.js +0 -1
  539. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-c132c5ba005ff29e.js +0 -1
  540. package/dist/standalone/.next/static/chunks/app/api/tts/route-c132c5ba005ff29e.js +0 -1
  541. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-c132c5ba005ff29e.js +0 -1
  542. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-c132c5ba005ff29e.js +0 -1
  543. package/dist/standalone/.next/static/chunks/app/api/workflows/route-c132c5ba005ff29e.js +0 -1
  544. package/dist/standalone/.next/static/chunks/app/page-7ba2538fa87e3d62.js +0 -80
  545. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-c132c5ba005ff29e.js +0 -1
  546. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-c132c5ba005ff29e.js +0 -1
  547. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-c132c5ba005ff29e.js +0 -1
  548. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-c132c5ba005ff29e.js +0 -1
  549. package/dist/standalone/.next/static/css/498f12ddef7ecb0e.css +0 -1
  550. /package/dist/standalone/.next/static/{2ybXlxpylgBaGz43zp2fM → 94yAMfjyhUPRgarycP9y4}/_ssgManifest.js +0 -0
  551. /package/dist/standalone/node_modules/{nanoid → next/node_modules/postcss/node_modules/nanoid}/non-secure/package.json +0 -0
@@ -0,0 +1,85 @@
1
+ "use strict";exports.id=2682,exports.ids=[2682,3302,9937],exports.modules={2798:(a,b,c)=>{c.d(b,{L8:()=>d,OT:()=>g,ij:()=>f});let d=10,e=`## Initial visible status
2
+ Your first turn after receiving this mandate must produce a visible assistant status in this conversation. For a FRESH seat with no missions, greet in exactly two lines:
3
+ Ready in {project}.
4
+ Tell me what to ship — I open lanes, spawn implementers and reviewers, and merge on APPROVE. Nothing starts until you ask.
5
+ Use the actual project name in place of {project}. For a ROTATION, when work remains, inventory the mandate missions and state your plan in that status. When every rotation mission is already complete, reply exactly: "all mandate missions are complete; standing by". A generic continuation nudge never replaces or suppresses this first visible status.`,f=`You are the viewer's built-in Manager (issues #182, #691) — the agent that owns the board and runs the whole conveyor through the viewer's own HTTP API and MCP tools. You never act outside them.
6
+
7
+ ${e}
8
+
9
+ ## Two channels to the operator
10
+ The operator talks to whoever they want, you included. When they write in your own conversation, answer them there — directly, plainly, helpfully, in your own voice, at whatever length the question deserves. That channel is sanctioned and first-class: what you write in it reaches them, and a question they put to you is yours to answer.
11
+ The second channel is the bridge report log below. It carries what must reach the operator while they are elsewhere, spoken in the Codex realtime voice gateway's voice once the gateway drains it. An outcome you neither answered in chat nor put in a report reached nobody.
12
+
13
+ ## Bridge reports — the second channel (manager -> gateway)
14
+ Append one report per meaningful outcome, with a stable key so a retry after a host death is a no-op rather than a duplicate. Classes, and nothing outside this list:
15
+ - status — brief progress worth surfacing; keep these rare.
16
+ - completed / failed — a stage, review, merge or deploy settled.
17
+ - blocked — you cannot proceed and need a decision.
18
+ - review_verdict — an APPROVE or REQUEST_CHANGES with the round and PR.
19
+ - question — you need an answer from the user; the gateway will ask them and reply.
20
+ Bodies are short prose, at most 2 KB, no transcript payloads, no raw tool output, no secrets, no full board dumps. Say what happened and what it means, with ids and links. Routine chatter belongs nowhere: no report at all is the correct amount for a poll that found nothing.
21
+
22
+ ## Directives (gateway -> you)
23
+ The gateway relays the user's intent to you with send_message. A directive may carry one trailer line, "[bridge ref=<seq>]", naming the report with that seq it answers. Treat only a trailer as an answer — never read one into unrelated prose.
24
+
25
+ ## Steering the operator's attention (request_attention)
26
+ The two channels above carry words; this one carries their screen. request_attention moves the operator's one active Viewer to a card and verifies it landed; they keep a one-action Return. Use it when you do something concrete they care about right now, and pair it with the words that explain it (chat reply or bridge report) — a move nobody explained is a jump.
27
+ Move them when: you just spawned or resumed a worker for something they asked for (focus that conversation as you say it is running); a review verdict, merge or deploy lands (focus the card it landed on); a lane blocks on THEM (focus the surface that is blocking, and ask in the same breath).
28
+ Do not move them for polling, routine status, your own bookkeeping, or twice for the same event. One move per real outcome; reason is one operator-safe sentence about why to look, never the card's contents. NO_ACTIVE_VIEW means nobody is at the desk — that is normal, not a failure to retry in a loop.
29
+ Targets are typed and discriminated by kind. The shapes, verbatim:
30
+ - conversation — {"kind":"conversation","conversationId":"conversation_..."} (the durable id spawn and list_conversations return; {"kind":"conversation","path":"/.../transcript.jsonl"} works too)
31
+ - stage — {"kind":"stage","pipelineId":"pipeline_...","stageId":"review"}; pipeline — {"kind":"pipeline","pipelineId":"pipeline_..."}
32
+ - flow round — {"kind":"flowRound","flowId":"flow_...","round":2}; task — {"kind":"task","taskId":"task_..."}
33
+ - draft — {"kind":"draft","draftId":"draft_..."} plus a top-level project; board coordinates — region and point, which accept intent "show" only.
34
+ intent "show" frames and highlights the card; intent "open" also opens it. A rejected target names the kind it read and the fields that kind expects — read it rather than guessing another shape.
35
+
36
+ ## Reply drafts (suggest_replies)
37
+ Call suggest_replies after EVERY message of yours that asks the operator something or proposes a course of action — a question, a choice between options, a plan you want a yes to, a status that ends in "shall I". Offer 2–4 short, distinct drafts, each one a message they could send as-is: the plain yes, the narrowed yes, the "hold — explain X first". Write them in the operator's own language, the one they are writing to you in.
38
+ They render as pills under your message and land in their composer on a tap, editable before sending — the viewer never sends one, so a draft is an offer and never a decision, and never a substitute for asking clearly in the message itself. The newest set replaces your previous one for that conversation, and their next message clears it: offer a fresh set with each new ask, and never re-offer drafts to something they already answered. A message that asks nothing needs no drafts.
39
+
40
+ ## Conveyor rules
41
+ Drive every accepted piece of work through: GitHub issue -> worktree lane -> implementer agent -> review flow -> merge bar -> batched deploy -> cleanup.
42
+ - One lane (worktree + branch) per issue; one owner per file across active worktrees.
43
+ - Spawn implementers via POST /api/spawn with title = a semantic task name, src = YOUR transcript path (lineage draws the diagram edges), and role per the role table; workers end with "REVIEW_READY: <PR url>".
44
+ - Reviews run as flows (POST /api/flows) or fresh reviewer spawns (role: "reviewer", reviews: <implementer ref>) — a fresh reviewer every round, verdict contract "VERDICT: APPROVE|REQUEST_CHANGES".
45
+ - Merge bar: merge only on an APPROVE verdict with green gates (tsc + tests). Never merge red.
46
+ - Keep task cards updated via /api/tasks. Report state changes as bridge reports.
47
+
48
+ ## Pipeline stage contract
49
+ A pipeline is a GRAPH of stages, not a list. Each stage is {id (unique, URL-safe), kind: "run" | "review-loop", prompt, next: <stage id> | null, onFail?: {to, maxRounds?} (run stages only), role: {roleId, params?}} and carries its runtime overrides — engine, model, effort, access — on the stage itself, never inside role. next is the pass edge and DEFAULTS TO null: stages you never wire reach nothing, and a review-loop must be pass-reachable from a run stage through next edges (it reviews that run's session), so array order alone is not a chain. review-loop stages are read-only, take no onFail, and default to the registry's Codex reviewer runtime. src is your transcript path; a draft that pins baseBranch must also pass baseRef, a SHA you resolve.
50
+
51
+ ## Start-by-default pipeline contract
52
+ When the operator asks for work, assess complexity, compose stages/roles, POST /api/pipelines with autoStart: true (or start it immediately after creation), and put the work in motion without a confirmation step or draft. Create a draft only when the operator explicitly asks for a draft or to review the plan first in that request: POST /api/pipelines with autoStart: false, report the draft id/link, and wait for the operator to press Start on the board. The explicit draft request may be asked in your own conversation or relayed through the gateway; both channels carry the same authority.
53
+
54
+ ## Deploys
55
+ YOU decide when to deploy, and you execute it yourself. Your authority is your designated seat, attributed server-side — a session that is not the designated orchestrator is refused, and a seat acts only for its own project. Nobody — you included — ever asks the user to confirm, approve, repeat, or say a commit hash. There is no confirmation step for the user, anywhere; deploys reach the user through your reports.
56
+ 1. Prepare: merges landed on origin/main, gates green. Never deploy red.
57
+ 2. Resolve origin/main to a full 40-hex commit SHA yourself and verify it contains what you shipped. The SHA is machine evidence — never route it through the user.
58
+ 3. Call deploy_exact_sha with revision=<sha>. Deployments serialize (a busy receipt means one is already running); a retry reuses the same clientRequestId and replays the original receipt.
59
+ 4. Report the outcome as a bridge report (completed/failed) — a statement of fact, never a question. The deployment ledger is the durable audit of what shipped and when.
60
+
61
+ ## Fences
62
+ - Operate exclusively through the viewer API and MCP tools (spawn, flows, pipelines, tasks, files, agent/snapshot, tmux). No direct process or runtime manipulation.
63
+ - If this checkout carries an llv-conveyor skill, it is your playbook; otherwise the conveyor rules above are the playbook.
64
+ - Replacing manual spawns is a non-goal: the user's own agents keep working; you coordinate, you do not take over.
65
+ - Re-derive board state per turn from bounded snapshots rather than accumulating it in context.`;function g(a){return a.includes(e)?a:`${a}
66
+
67
+ ${e}`}},33302:(a,b,c)=>{c.d(b,{NZ:()=>r,Tj:()=>t,kg:()=>s,mn:()=>n});var d=c(77598),e=c.n(d),f=c(21872),g=c(89937),h=c(4012);let i=/^[A-Za-z0-9_-]{43}$/,j="x-llv-internal-service",k=/^[a-f0-9]{64}$/,l=["monitor","mcp","orchestrator"];function m(a){let b,c=a.headers.get(h.VIEWER_SPAWN_CAPABILITY_HEADER)?.trim()??"";return c&&i.test(c)?(b=e().createHash("sha256").update(c).digest("hex"),(0,f.agentRegistry)().conversationIdForSpawnCapabilityDigest(b)):null}function n(a){return null===m(a)}let o={ok:!1,status:403,error:"this is an operator-only action; an agent may not perform it, whatever role it holds"},p={ok:!1,status:403,error:"background Viewer activity is outside direct operator activity"};function q(a){return e().createHmac("sha256",(0,g.ensureOperatorSpawnCapability)()).update(`llv-internal-service-v1\0${a}`).digest("hex")}function r(a){return{[j]:`${a}.${q(a)}`}}function s(a){return"valid"===function(a){let b=a.headers.get(j)?.trim()??"";if(!b)return"absent";let c=b.indexOf("."),d=b.slice(0,c),f=b.slice(c+1);if(!l.includes(d)||!k.test(f))return"invalid";try{let a=q(d);return e().timingSafeEqual(Buffer.from(f),Buffer.from(a))?"valid":"invalid"}catch{return"invalid"}}(a)?p:t(a)}function t(a){return m(a)?o:{ok:!0}}},35961:(a,b,c)=>{c.d(b,{W:()=>g});var d=c(23211);let e=["localhost","127.0.0.1","::1"];function f(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 g(a){let b=new Set(e),c=process.env.LLV_TS_HOST;c&&b.add(f(c));let d=a.headers.get("host");if(null===d||!b.has(f(d)))return h();let g=a.headers.get("origin");if(null!==g){let a;try{a=new URL(g).host}catch{a=null}if(null===a||!b.has(f(a)))return h()}let i=a.headers.get("sec-fetch-site");return null!==i&&"same-origin"!==i&&"none"!==i?h():null}function h(){return d.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}},47008:(a,b,c)=>{c.d(b,{ip:()=>ae,CX:()=>ad});var d=c(73024),e=c.n(d),f=c(22962),g=c(74382),h=c(21872),i=c(89937),j=c(4837),k=c(33302),l=c(4012),m=c(10167),n=c(50201),o=c(70107),p=c(99411),q=c(41022),r=c(30795),s=c(21153),t=c(76760),u=c.n(t),v=c(91724),w=c(56809),x=c(2798);let y="## Handoff from your predecessor (rotation)",z="## Rotation history",A=" …[truncated]";function B(a){return Buffer.byteLength(a,"utf8")}function C(a,b){if(B(a)<=b)return{value:a,truncated:!1,codePoints:[...a].length};let c=B(A),d=0,e=0,f="";for(let g of a){let a=B(g);if(d+a+c>b)break;f+=g,d+=a,e+=1}return f?{value:`${f}${A}`,truncated:!0,codePoints:e}:{value:"",truncated:!0,codePoints:0}}function D(a){return a.replace(/\r\n?/g,"\n")}function E(a){return D(a).replace(/^#{1,6}[ \t]+/gm,"- ")}function F(a,b,c,d){return[a,...b?[`${z}
68
+ ${b}`]:[],[y,...c.header,...c.tasks?[c.tasks]:[],...d?[`Notes from the caller:
69
+ ${d}`]:[]].join("\n\n")].join("\n\n")}function G(a,b){if("existing"===a)return 0;let c=(0,p.s8)({role:"orchestrator",roleParams:b??{mode:"standard"}});return c.ok&&c.value?B(c.value.scaffold)+2:0}function H(a){return{error:`mandate is too large to deliver: ${a.bytes} bytes of mandate plus ${a.overhead} bytes of launch overhead exceeds the ${a.bound}-byte structured envelope by ${a.excess} bytes; shorten the mandate by at least ${a.excess} bytes`,code:"mandate_too_large",bytes:a.bytes,overhead:a.overhead,bound:a.bound,excess:a.excess}}let I={resolveAccount:async()=>{let{accountManager:a}=await Promise.resolve().then(c.bind(c,86850));return a.resolveHeadlessSpawn("codex",null,[])},run:async a=>{let{runHeadlessCodexOnce:b}=await Promise.resolve().then(c.bind(c,51906));return await b(a)},readPredecessorReport:(a,b)=>(function(a,b){let c,d=null;try{d=e().openSync(a,e().constants.O_RDONLY|e().constants.O_NOFOLLOW);let b=e().fstatSync(d);if(!b.isFile())return null;let f=e().lstatSync(a);if(!f.isFile()||f.dev!==b.dev||f.ino!==b.ino)return null;let g=Math.max(0,b.size-262144),h=Buffer.alloc(b.size-g);e().readSync(d,h,0,h.length,g),c=h.toString("utf8"),g>0&&(c=c.slice(c.indexOf("\n")+1))}catch{return null}finally{null!==d&&e().closeSync(d)}let f=c.split("\n");for(let a=f.length-1;a>=0;a-=1){let c;try{let b=JSON.parse(f[a]);if(!b||"object"!=typeof b||Array.isArray(b))continue;c=b}catch{continue}let d="claude"===b?function(a){if("assistant"!==a.type)return null;let b=a.message;if(!b||"object"!=typeof b||Array.isArray(b))return null;let c=b.content;return"string"==typeof c?c:Array.isArray(c)?c.flatMap(a=>a&&"object"==typeof a&&!Array.isArray(a)&&"text"===a.type&&"string"==typeof a.text?[a.text]:[]).join("\n"):null}(c):function(a){let b=a.payload;return!b||"object"!=typeof b||Array.isArray(b)?null:"agent_message"===b.type&&"string"==typeof b.message?b.message:null}(c);if(d?.trim())return C(d.trim(),6e3).value||null}return null})(a,b)},J=/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/g,K=/\b((?:github|gitlab)\.com\/|bitbucket\.org\/)[A-Za-z0-9][A-Za-z0-9-]{0,38}/gi,L=/(^|[^A-Za-z0-9_@/])@[A-Za-z0-9][A-Za-z0-9._-]{1,38}/g,M=/~\/[^\s"'`)\],;]*/g,N=/(?<![A-Za-z0-9_~:/])\/(?:home|Users|root|tmp|var|etc|opt|srv|mnt|media|app|workspace|private|data|usr|proc|dev)\/[^\s"'`)\],;]*/g,O=/(?<![A-Za-z0-9_~:/])\/[A-Za-z0-9._-]+\/[A-Za-z0-9._-]+\/[^\s"'`)\],;]*/g,P=/\b(?:conversation|session|launch|thread|run|acct|account|agent)_(?=[A-Za-z0-9-]*\d)[A-Za-z0-9-]{6,}\b/gi,Q=/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi;function R(a){return(0,w.j)(a).replace(J,"[redacted-email]").replace(K,"$1[redacted-handle]").replace(L,"$1[redacted-handle]").replace(M,"[redacted-path]").replace(N,"[redacted-path]").replace(O,"[redacted-path]").replace(P,"[redacted-id]").replace(Q,"[redacted-id]")}let S=`You are compacting the rotation history of a project manager agent's mandate. Write a digest of the material below for the manager's successor. Use exactly these three headings and short bullet points under each:
70
+
71
+ Decisions:
72
+ Blockers:
73
+ In flight:
74
+
75
+ Rules: at most 3500 bytes in total. Keep only what the successor needs to act: decisions already made, blockers still open, and work in flight with its current state. Never include names, account handles, email addresses, tokens, or file paths. Do not use Markdown headings starting with "#". Do not run commands or read files; everything you need is below. Output the digest only — no preamble, no closing remarks.`;async function T(a,b=I){let c=await b.resolveAccount();if("exhausted"===c.kind)return{kind:"fallback",reason:"exhausted"};if("available"!==c.kind)return{kind:"fallback",reason:"unavailable"};let d=a.predecessor?b.readPredecessorReport(a.predecessor.path,a.predecessor.engine):null,f=(0,v.BQ)("orchestrator","handoff-digests",a.clientRequestId);try{let e=await b.run({key:`orchestrator-handoff:${a.clientRequestId}`,cwd:u().join(f,"cwd"),prompt:function(a,b){let c=a.priorHistory?R(a.priorHistory).trim():null,d=b?R(b).trim():null,e=a.priorHandoffs.map(a=>R(a).trim()).filter(Boolean),f=B(c??"")+B(d??"")+e.reduce((a,b)=>a+B(b),0),g=0;for(;g<e.length&&f>48e3;)f-=B(e[g]),g+=1;let h=e.slice(g);return[S,`=== Previous rotation history ===
76
+ ${c??"(none)"}`,`=== Earlier handoffs, oldest first ===
77
+ ${h.length?h.map((a,b)=>`--- handoff ${b+1} ---
78
+ ${a}`).join("\n\n"):"(none)"}`,`=== Predecessor's last report ===
79
+ ${d??"(unavailable)"}`].join("\n\n")}(a,d),model:j.Ze,effort:"low",account:"codex"===c.account.engine?{home:c.account.home,managed:"managed"===c.account.kind}:null,artifactDir:f,timeoutMs:75e3,sandbox:"read-only"});if("timeout"===e.status)return{kind:"fallback",reason:"timeout"};if("done"!==e.status)return{kind:"fallback",reason:"failed"};let g=R(e.finalOutput).trim();if(!g)return{kind:"fallback",reason:"empty"};if(B(g)>4096)return{kind:"fallback",reason:"over_budget"};let h=E(g).trim();return h?{kind:"digest",text:h}:{kind:"fallback",reason:"empty"}}finally{e().rmSync(f,{recursive:!0,force:!0})}}var U=c(15408);let V={spawn:async function(a){let{executeSpawnRequest:b}=await Promise.all([c.e(4191),c.e(2318),c.e(7722)]).then(c.bind(c,67722)),d={headers:new Headers({host:"127.0.0.1",...(0,k.NZ)("orchestrator"),[l.VIEWER_SPAWN_CAPABILITY_HEADER]:(0,i.ensureOperatorSpawnCapability)()}),json:async()=>a},e=await b(d);return{status:e.status,body:await e.json()}},deliver:async function(a){if((0,n.cM)()){let{enqueueStructuredMessage:b}=await Promise.resolve().then(c.bind(c,2592)),d=await b({path:a.path??"",conversationId:a.conversationId,clientMessageId:a.clientMessageId,text:a.text,images:[]});if(d)return d.ok?{ok:!0,outcome:"outcome"in d&&"string"==typeof d.outcome?d.outcome:"delivered"}:{ok:!1,error:d.error}}let b=await (0,m.Ku)({pid:null,path:a.path??"",conversationId:a.conversationId,clientMessageId:a.clientMessageId,text:a.text,images:[]});return b.ok?{ok:!0,outcome:b.outcome??"delivered"}:{ok:!1,error:b.error}},conversationTarget:a=>{let b=(0,h.agentRegistry)().conversation(a);if(!b)return null;if(b.supersededBy)return{kind:"ineligible",code:"conversation_ineligible",error:"conversation is superseded"};let c=b.generations.at(-1),d=c?.path?.trim();if(!d||!e().existsSync(d))return{kind:"ineligible",code:"missing_transcript",error:"conversation transcript is unavailable"};let f=c?.launchProfile?.cwd?.trim();if(!f||!e().existsSync(f)||!e().statSync(f).isDirectory())return{kind:"ineligible",code:"invalid_cwd",error:"conversation cwd is unavailable"};let g=b.projectOwnership?.project??(0,o.hY)(f);return g?{kind:"eligible",conversationId:b.id,path:d,cwd:f,project:(0,U.ut)(g),engine:b.engine,model:c?.launchProfile.model?.trim()||(0,j.Gh)(b.engine)}:{kind:"ineligible",code:"missing_project",error:"conversation project is unavailable"}},projectTasks:a=>(0,s.h6)().filter(b=>b.project===a&&"done"!==b.status).map(a=>({id:a.id,status:a.status,text:a.text})),summarizeHandoffs:a=>T(a),launchSettlement:({launchId:a,clientRequestId:b})=>{let c=(0,h.agentRegistry)().spawnReceiptForClientAttempt(b);return!c||a&&c.launchId!==a?{kind:"unknown"}:c.rejection||"failed"===c.state||"conflicted"===c.state?{kind:"failed",error:c.error??c.rejection?.guidance??`spawn receipt is terminally ${c.state}`}:{kind:"settled",conversationId:c.conversationId,path:"materialized"===c.artifactLifecycle?c.artifactPath:null,launchId:c.launchId,engine:c.engine,model:c.launchProfile.model}},runtimeIdentity:a=>{let b=(0,h.agentRegistry)().conversation(a),c=b?b.generations.at(-1)?.launchProfile.model?.trim()||(0,j.Gh)(b.engine):null;return{engine:b?.engine??null,model:c}},stampRegistryIdentity:a=>{(0,h.agentRegistry)().stampOrchestratorSeatIdentity(a)},now:()=>new Date().toISOString()},W=/^[A-Za-z0-9_-]{8,128}$/;function X(a,b,c){return{status:409,body:{error:`the orchestrator seat for ${a} changed while this rotation composed its handoff (designation epoch ${b} is no longer current); rotate again to hand off from the seated orchestrator`,code:"incumbent_changed",currentSeatEpoch:c?.seatEpoch??null,currentConversationId:c?.conversationId??null}}}function Y(a){return"string"==typeof a?a.trim():""}function Z(a){let b=null===a.path&&null!==a.intent.launchId;return{status:200,body:{ok:!0,replayed:!0,state:a.path?"settled":b?"accepted":"starting",accepted:b,conversationId:a.conversationId,path:a.path,launchId:a.intent.launchId,seat:a}}}function $(a){return{status:409,body:{error:"an orchestrator seat transition is already in progress for this project",code:"seat_intent_in_progress",seat:a}}}async function _(a,b){let c=null,d=(0,f.oV)(()=>{let d=(0,U.ho)({project:a.project,clientRequestId:a.clientRequestId,conversationId:a.conversationId,path:a.path,launchId:a.launchId,engine:a.engine,model:a.model,now:b.now()});return"missing"!==d.kind&&(c=aa(d.seat,b)),d});return"missing"===d.kind?null:{seat:c??d.seat}}function aa(a,b){if(!a.conversationId)throw Error("active orchestrator seat is missing its conversation identity");let c=a.engine&&a.model?{engine:null,model:null}:b.runtimeIdentity(a.conversationId),d=(0,U.T7)({project:a.project,conversationId:a.conversationId,engine:c.engine,model:c.model})??a;return b.stampRegistryIdentity(d),d}function ab(a,b,c){return(0,f.oV)(()=>{let d=(0,U.HS)(a).active;return d&&d.intent.clientRequestId===b?aa(d,c):null})}function ac(a,b){let c=(0,U.HS)(a).pending;if(!c||"spawn"!==c.intent.mode||null!==c.intent.error)return null;let d=b.launchSettlement({launchId:c.intent.launchId,clientRequestId:c.intent.clientRequestId});return"settled"===d.kind?_({project:a,clientRequestId:c.intent.clientRequestId,conversationId:d.conversationId,path:d.path,launchId:d.launchId??c.intent.launchId,...d.engine?{engine:d.engine}:{},...d.model?{model:d.model}:{}},b):("failed"===d.kind&&(0,U.Cp)(a,c.intent.clientRequestId,d.error),null)}async function ad(a,b=V){let c,d,f,i="string"==typeof a.project?(0,g.QK)(a.project):null;if(!i)return{status:400,body:{error:"project must be a valid project key"}};let j=(0,U.ut)(i),k="string"==typeof a.mandate?a.mandate:"";if(!k.trim())return{status:400,body:{error:"mandate is required"}};let l=Y(a.clientRequestId);if(!W.test(l))return{status:400,body:{error:"clientRequestId must be 8-128 URL-safe characters"}};let m=Y(a.conversationId);if(m&&!m.startsWith("conversation_"))return{status:400,body:{error:"conversationId is invalid"}};let n="number"==typeof a.promptVersion&&Number.isInteger(a.promptVersion)?a.promptVersion:null,o=(c=G(m?"existing":"spawn",a.roleParams),(f=(d=B((0,x.OT)(k)))+c-q.N0)>0?{ok:!1,bytes:d,overhead:c,bound:q.N0,excess:f}:{ok:!0,bytes:d,overhead:c});if(!o.ok)return{status:413,body:H(o)};let s=ac(j,b);s&&await s;let t=ab(j,l,b);if(t)return Z(t);let u="number"==typeof a.expectedIncumbentSeatEpoch?a.expectedIncumbentSeatEpoch:null;if(null!==u){let a=(0,U.HS)(j).active;if(!a||a.seatEpoch!==u)return X(j,u,a)}if(m){let a=b.conversationTarget(m);if(!a)return{status:404,body:{error:"conversation is unknown to the registry"}};if("ineligible"===a.kind)return{status:409,body:{error:a.error,code:a.code}};if(a.project!==j)return{status:409,body:{error:"conversation belongs to a different project",code:"project_mismatch"}};let c=(0,U.$p)({project:j,mandate:k,clientRequestId:l,mode:"existing",conversationId:a.conversationId,engine:a.engine??null,model:a.model??null,promptVersion:n,now:b.now()});if("completed"===c.kind){let a=ab(j,l,b);return a?Z(a):{status:409,body:{error:"seat intent was superseded by a newer designation"}}}if("in_progress"===c.kind)return $(c.seat);let d="replay"===c.kind?b.conversationTarget(c.seat.conversationId??""):a;if(!d||"ineligible"===d.kind||d.project!==j){let a="the pending adoption target is no longer eligible";return(0,U.Cp)(j,l,a),{status:409,body:{error:a,code:"adoption_target_unavailable",seat:(0,U.HS)(j).pending}}}let e=await b.deliver({conversationId:d.conversationId,path:d.path,clientMessageId:`orchmandate_${l}`,text:(0,x.OT)("replay"===c.kind?c.seat.mandate:k)});if(!e.ok){let a=e.error??"mandate delivery failed";return(0,U.Cp)(j,l,a),{status:502,body:{error:a,code:"mandate_delivery_failed",seat:(0,U.HS)(j).pending}}}let f=await _({project:j,clientRequestId:l,conversationId:d.conversationId,path:d.path},b);return f?{status:200,body:{ok:!0,state:"settled",conversationId:d.conversationId,path:d.path,delivery:e.outcome??"delivered",seat:f.seat}}:{status:409,body:{error:"seat intent was superseded by a newer designation"}}}let v=(0,U.HS)(j).active;if(v&&v.intent.clientRequestId!==l&&!0!==a.replaceIncumbent)return{status:409,body:{error:`an orchestrator is already designated for ${j}; use rotate_orchestrator for an explicit handoff, or pass replaceIncumbent: true to replace deliberately`,code:"already_designated",incumbentSeatEpoch:v.seatEpoch}};let w=(0,p.s8)({role:"orchestrator",roleParams:a.roleParams,engine:a.engine,model:a.model,effort:a.effort});if(!w.ok||!w.value)return{status:400,body:{error:w.ok?"orchestrator runtime is unavailable":w.error}};let y=(0,U.$p)({project:j,mandate:k,clientRequestId:l,mode:"spawn",engine:w.value.config.engine,model:w.value.config.model,promptVersion:n,now:b.now()});if("completed"===y.kind){let a=ab(j,l,b);return a?Z(a):{status:409,body:{error:"seat intent was superseded by a newer designation"}}}if("in_progress"===y.kind)return $(y.seat);if("replay"===y.kind&&!0!==y.seat.runtimeIdentityFrozen){let a="legacy pending orchestrator runtime identity is unavailable; retry the designation with a new clientRequestId";return(0,U.Cp)(j,l,a),{status:409,body:{error:a,code:"legacy_runtime_identity_unavailable",seat:(0,U.HS)(j).pending}}}let z=(0,x.OT)("replay"===y.kind?y.seat.mandate:k),A="replay"===y.kind?{...y.seat.engine?{engine:y.seat.engine}:{},...y.seat.model?{model:y.seat.model}:{}}:{engine:w.value.config.engine,model:w.value.config.model},C=function(a,b){if("string"==typeof b&&b.trim())return b.trim();let c=process.env.LLV_ORCHESTRATOR_CWD?.trim();if(c)return c;let d=a=>{if(!a)return!1;try{return e().statSync(a).isDirectory()}catch{return!1}};for(let b of Object.values((0,h.agentRegistry)().readOnlySnapshot().conversations).filter(b=>b.projectOwnership?.project===a||b.generations.some(b=>b.launchProfile?.project===a)).sort((a,b)=>(b.updatedAt??"").localeCompare(a.updatedAt??"")))for(let a=b.generations.length-1;a>=0;a-=1){let c=b.generations[a]?.launchProfile?.cwd;if(d(c))return c}return null}(j,a.cwd);if(!C)return(0,U.Cp)(j,l,"orchestrator cwd could not be resolved"),{status:400,body:{error:"orchestrator cwd could not be resolved — pass cwd explicitly or set LLV_ORCHESTRATOR_CWD",code:"cwd_unresolved",seat:(0,U.HS)(j).pending}};let D={...Object.fromEntries(["cwd","effort","fast","accountId","images","roleParams","allowSubagents"].flatMap(b=>void 0===a[b]?[]:[[b,a[b]]])),...A,role:"orchestrator",roleParams:a.roleParams??{mode:"standard"},project:j,cwd:C,prompt:z,title:(0,r.bF)("orchestrator",z,j),clientAttemptId:l},E=await b.spawn(D),F=Y(E.body.conversationId),I=E.status>=200&&E.status<300&&!1!==E.body.ok,J=Y(E.body.launchId),K=I&&202===E.status&&!!F&&!!J;if(!(I&&!1!==E.body.launched&&F)&&!K){let a=Y(E.body.error)||(I?F?"spawn did not report an accepted launch":"spawn response omitted conversationId":`spawn was rejected with HTTP status ${E.status}`);return(0,U.Cp)(j,l,a),{status:E.status,body:{...E.body,seat:(0,U.HS)(j).pending}}}let L=await _({project:j,clientRequestId:l,conversationId:F,path:"string"==typeof E.body.path?E.body.path:null,launchId:J||null,engine:w.value.config.engine,model:w.value.config.model},b);return L?{status:E.status,body:{...E.body,...K?{accepted:!0,state:"accepted"}:{},seat:L.seat}}:{status:409,body:{error:"seat intent was superseded by a newer designation"}}}async function ae(a,b=V){let c="string"==typeof a.project?(0,g.QK)(a.project):null;if(!c)return{status:400,body:{error:"project must be a valid project key"}};let d=(0,U.ut)(c),e=Y(a.clientRequestId);if(!W.test(e))return{status:400,body:{error:"clientRequestId must be 8-128 URL-safe characters"}};let f=ac(d,b);f&&await f;let h=(0,U.HS)(d).active;if(!h?.conversationId)return{status:409,body:{error:"no orchestrator is designated for this project — use create_orchestrator instead of rotating",code:"no_incumbent"}};let i=b.conversationTarget(h.conversationId),j=i?.kind==="eligible"?i:null,k=b.projectTasks(d).slice(0,12),l=Y(a.handoffNotes).slice(0,2e3),m={header:[`You are replacing orchestrator conversation ${h.conversationId} for project ${d}. Its manager authority is revoked; its session and card remain on the board, linked to yours.`,j?.path??h.path?`Your predecessor's full transcript — decisions, blockers, in-flight work — is at: ${j?.path??h.path}. Review its recent turns before acting.`:"Your predecessor's transcript path is not recorded; reconstruct state from the board before acting."],tasks:k.length?`Open board tasks for this project:
80
+ ${k.map(a=>`- [${a.status}] ${a.text.slice(0,140)} (${a.id})`).join("\n")}`:"No open board tasks are recorded for this project.",notes:l||null},n=function(a,b){let c=(0,U.HS)(a.project).pending;if(c&&c.intent.clientRequestId===a.clientRequestId&&null===c.intent.error)return{kind:"composed",mandate:c.mandate,handoff:null};let d=function(a){let b=[],c=[],d=[],e=null,f=[],g=()=>{let a=f.join("\n").trim();a&&("history"===e?c.push(a):"handoff"===e&&d.push(a)),f=[]};for(let c of D(a).split("\n")){if(c===z||c===y){g(),e=c===z?"history":"handoff";continue}null===e?b.push(c):f.push(c)}return g(),{core:b.join("\n").trimEnd(),history:c.length?c.join("\n\n"):null,handoffs:d}}(a.base);return null===d.history&&0===d.handoffs.length?af(a,d.core,null,"none",null):(async()=>{let c;try{c=await b.summarizeHandoffs({project:a.project,clientRequestId:a.clientRequestId,priorHistory:d.history,priorHandoffs:d.handoffs,predecessor:a.predecessor})}catch{c={kind:"fallback",reason:"error"}}if("digest"===c.kind){let b;return af(a,d.core,(b=E(c.text).trim())&&C(b,4096).value||null,"digest",null)}return console.warn(`orchestrator rotation for ${a.project} used the verbatim handoff fallback: ${c.reason}`),af(a,d.core,function(a,b,c){let d=[...[...b].reverse().slice(0,2).map(a=>({label:"### Earlier handoff",body:a})),...a?[{label:"### Earlier rotation history",body:a}]:[]];if(!d.length)return null;let e=`(verbatim — summarizer ${c})`,f=4096-B(e),g=[];for(let a of d){let b=B(`
81
+
82
+ ${a.label}
83
+ `);if(f-b<=0)continue;let c=C(E(a.body).trim(),f-b).value;c&&(g.push({label:a.label,body:c}),f-=b+B(c))}return g.length?[e,...g.reverse().map(a=>`${a.label}
84
+ ${a.body}`)].join("\n\n"):null}(d.history,d.handoffs,c.reason),"fallback",c.reason)})()}({project:d,clientRequestId:e,base:Y(a.mandate)||h.mandate,handoff:m,predecessor:j?{path:j.path,engine:j.engine}:null,roleParams:a.roleParams},b),o=n instanceof Promise?await n:n,p={conversationId:h.conversationId,path:j?.path??h.path,seatEpoch:h.seatEpoch},q=(0,U.HS)(d).active;if(!q||q.conversationId!==h.conversationId||q.seatEpoch!==h.seatEpoch){let a=X(d,h.seatEpoch,q);return{status:a.status,body:{...a.body,rotatedFrom:p}}}if("too_large"===o.kind)return{status:413,body:{...o.body,rotatedFrom:p}};let r=await ad({project:d,mandate:o.mandate,clientRequestId:e,replaceIncumbent:!0,expectedIncumbentSeatEpoch:h.seatEpoch,promptVersion:h.promptVersion,...void 0!==a.engine?{engine:a.engine}:{},...void 0!==a.model?{model:a.model}:{},...void 0!==a.effort?{effort:a.effort}:{},...void 0!==a.fast?{fast:a.fast}:{},...void 0!==a.cwd?{cwd:a.cwd}:j?{cwd:j.cwd}:{},...void 0!==a.accountId?{accountId:a.accountId}:{}},b);return{status:r.status,body:{...r.body,rotatedFrom:p,...o.handoff?{handoff:o.handoff}:{}}}}function af(a,b,c,d,e){let f=G("spawn",a.roleParams),g=function(a){let b=D(a.core),c=null===a.history?null:E(a.history),d={header:a.handoff.header.map(E),tasks:null===a.handoff.tasks?null:E(a.handoff.tasks),notes:null===a.handoff.notes?null:E(a.handoff.notes)},e=b=>B(a.deliver(b)),f=F(b,c,d,d.notes),g=e(f);if(g<=a.budgetBytes)return{kind:"fits",mandate:f,bytes:g,historyDropped:!1,notesTruncatedTo:null};if(null!==c){let c=F(b,null,d,d.notes),f=e(c);if(f<=a.budgetBytes)return{kind:"fits",mandate:c,bytes:f,historyDropped:!0,notesTruncatedTo:null}}let h=null!==c,i=F(b,null,d,null),j=e(i);if(j>a.budgetBytes)return{kind:"too_large",bytes:j,budgetBytes:a.budgetBytes};let k=d.notes;if(!k)return{kind:"fits",mandate:i,bytes:j,historyDropped:h,notesTruncatedTo:null};let l=[...k],m={mandate:i,bytes:j,kept:0},n=1,o=l.length-1;for(;n<=o;){let c=Math.floor((n+o)/2),f=F(b,null,d,`${l.slice(0,c).join("")}${A}`),g=e(f);g<=a.budgetBytes?(m={mandate:f,bytes:g,kept:c},n=c+1):o=c-1}return{kind:"fits",mandate:m.mandate,bytes:m.bytes,historyDropped:h,notesTruncatedTo:m.kept}}({core:b,history:c,handoff:a.handoff,budgetBytes:q.N0-f,deliver:x.OT});return"too_large"===g.kind?{kind:"too_large",body:H({ok:!1,bytes:g.bytes,overhead:f,bound:q.N0,excess:g.bytes-g.budgetBytes})}:{kind:"composed",mandate:g.mandate,handoff:{history:d,reason:e,historyDropped:g.historyDropped,notesTruncatedTo:g.notesTruncatedTo,mandateBytes:g.bytes}}}},89937:(a,b,c)=>{c.r(b),c.d(b,{OperatorSpawnCapabilityError:()=>l,ensureOperatorSpawnCapability:()=>p,matchesOperatorSpawnCapability:()=>q,operatorSpawnCapabilityPath:()=>m,rotateOperatorSpawnCapability:()=>o});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724);let k=/^[A-Za-z0-9_-]{43}$/;class l extends Error{constructor(a,b,c){const d="object"==typeof c&&null!==c&&"code"in c&&"string"==typeof c.code?` (${c.code})`:"";super(`Viewer operator spawn capability ${a} failed at ${b}${d}`),this.name="OperatorSpawnCapabilityError"}}function m(){return(0,j.BQ)("operator-spawn-capability")}function n(){let a=m();try{let b=g().lstatSync(a);if(!b.isFile()||b.isSymbolicLink())return null;let c=g().readFileSync(a,"utf8").trim();if(!k.test(c))return null;return(511&b.mode)!=384&&g().chmodSync(a,384),c}catch(b){if("object"==typeof b&&null!==b&&"code"in b&&"ENOENT"===b.code)return null;throw new l("read",a,b)}}function o(){let a=e().randomBytes(32).toString("base64url"),b=m(),c=i().dirname(b),d=null;try{g().mkdirSync(c,{recursive:!0,mode:448}),d=i().join(c,`.${i().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`),g().writeFileSync(d,`${a}
85
+ `,{encoding:"utf8",flag:"wx",mode:384}),g().chmodSync(d,384),g().renameSync(d,b)}catch(a){throw new l("write",b,a)}finally{if(d)try{g().rmSync(d,{force:!0})}catch(a){throw new l("write",b,a)}}return a}function p(){return n()??o()}function q(a){if(!k.test(a))return!1;let b=n();return!!b&&e().timingSafeEqual(Buffer.from(a),Buffer.from(b))}}};
@@ -1 +1 @@
1
- "use strict";exports.id=3086,exports.ids=[3086],exports.modules={23086:(a,b,c)=>{c.d(b,{Ll:()=>P,Nm:()=>O,TF:()=>v,vx:()=>Q});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(50920),k=c(7058),l=c(94284),m=c(7343),n=c(78598),o=c(36552);let p="files-scan-snapshot.json",q=-1/0,r=globalThis;function s(a){return"object"==typeof a&&null!==a}function t(a){if(!s(a)||!0!==a.complete||!Array.isArray(a.files)||!Array.isArray(a.projectCatalog))return!1;let b=a.files.every(a=>{var b;return!!s(a)&&"string"==typeof a.path&&("codex-sessions"===a.root||"claude-projects"===a.root||"claude-tasks"===a.root)&&"string"==typeof a.name&&"string"==typeof a.project&&"string"==typeof a.title&&("codex"===a.engine||"claude"===a.engine||"shell"===a.engine)&&"string"==typeof a.kind&&("codex"===a.fmt||"claude"===a.fmt||"plain"===a.fmt)&&(null===a.parent||"string"==typeof a.parent)&&"number"==typeof a.mtime&&Number.isFinite(a.mtime)&&"number"==typeof a.size&&Number.isFinite(a.size)&&(void 0===a.sessionStartedAt||null===a.sessionStartedAt||"string"==typeof a.sessionStartedAt)&&(void 0===a.nativeParentThreadId||null===a.nativeParentThreadId||"string"==typeof a.nativeParentThreadId)&&(void 0===a.nativeForkSourceThreadId||null===a.nativeForkSourceThreadId||"string"==typeof a.nativeForkSourceThreadId)&&("live"===a.activity||"recent"===a.activity||"stalled"===a.activity||"idle"===a.activity)&&(void 0===a.authoritativeTurn||!!s(b=a.authoritativeTurn)&&("busy"===b.state||"terminal"===b.state||"idle"===b.state||"unknown"===b.state)&&("lifecycle"===b.source||"tool"===b.source||"assistant"===b.source||"empty"===b.source)&&(null===b.terminalAt||"string"==typeof b.terminalAt))&&(null===a.proc||"running"===a.proc||"done"===a.proc||"killed"===a.proc)&&(null===a.pid||"number"==typeof a.pid)&&(null===a.model||"string"==typeof a.model)&&(null===a.pendingQuestion||s(a.pendingQuestion))&&(null===a.waitingInput||s(a.waitingInput))}),c=a.projectCatalog.every(a=>s(a)&&"string"==typeof a.project&&"number"==typeof a.smt&&Number.isFinite(a.smt)&&"number"==typeof a.conversations&&Number.isSafeInteger(a.conversations)&&(void 0===a.projectRoot||"string"==typeof a.projectRoot));return b&&c}function u(){try{let a=JSON.parse(g().readFileSync((0,j.BQ)(p),"utf8"));if(!s(a)||1!==a.version||9!==a.schemaVersion||!t(a.snapshot))return;return a.snapshot}catch{return}}function v(){return u()}function w(a){let b,c="create state directory",d=(0,j.BQ)(p);try{let f=(0,j.BQ)(p);d=f,g().mkdirSync(i().dirname(f),{recursive:!0,mode:448}),b=i().join(i().dirname(f),`.${i().basename(f)}.${process.pid}.${e().randomUUID()}.tmp`),c="write temporary snapshot",d=b,g().writeFileSync(b,JSON.stringify({version:1,schemaVersion:9,snapshot:a})+"\n",{encoding:"utf8",mode:384}),c="rename temporary snapshot",d=f,g().renameSync(b,f)}catch(e){if(void 0!==b)try{g().unlinkSync(b)}catch{}let a=Date.now();if(a-q>=6e4){q=a;let b=e instanceof Error?`${e.message}${"code"in e&&e.code?` (${String(e.code)})`:""}`:String(e);console.error(`[files scan cache] ${c} failed for ${d}: ${b}; a later refresh will retry`)}}}function x(a){return s(a)&&"promise"in a?x(a.promise):s(a)&&"function"==typeof a.then?Promise.resolve(a):void 0}function y(a,b,c,d=c,e=new AbortController){let f={generation:b,promise:c,resourcePromise:d,controller:e,subscribers:0,settled:!1};a.refresh=f;let g=()=>{f.settled=!0,a.refresh===f&&(a.refresh=void 0)};return c.then(g,g),f}function z(a){return a instanceof Error&&"AbortError"===a.name?a:new DOMException("file scan cancelled","AbortError")}function A(a,b){return b?.aborted?Promise.reject(z(b.reason)):(a.subscribers+=1,new Promise((c,d)=>{let e=!0,f=()=>{e&&(e=!1,b?.removeEventListener("abort",g),a.subscribers-=1,0!==a.subscribers||a.settled||a.controller.abort(z()))},g=()=>{f(),d(z(b?.reason))};b?.addEventListener("abort",g,{once:!0}),a.promise.then(a=>{e&&(f(),c(a))},a=>{e&&(f(),d(a))})}))}async function B(a,b,c,d){let e=performance.now();try{let f=await d();return a.lastScan={generation:b,reason:c,status:"complete",durationMs:performance.now()-e},f}catch(d){throw a.lastScan={generation:b,reason:c,status:"failed",durationMs:performance.now()-e},d}}function C(a,b,c,d,e){let f=void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration,g="ordinary"===c||"cold"===c;return B(a,b,c,async()=>{let c=await (0,o.uh)({fresh:f,join:g,signal:e},(b,c)=>(0,o.KZ)(b,{persistIndex:"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER,...d?{onResourceSnapshot:d,resourceBaseline:a.snapshot}:{}},c));if(!c.complete)throw Error("filesystem scan incomplete");return"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER&&w(c),a.snapshot=c,a.snapshotGeneration=Math.max(a.snapshotGeneration,b),a.refreshedAt=Date.now(),a.completedAt=a.refreshedAt,f&&void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration&&(a.freshObservationGeneration=void 0),c})}function D(a,b,c){let d=new AbortController,e=C(a,b,c,void 0,d.signal);return y(a,b,e,e,d)}function E(a,b,c){var d;let e,f,g,h,i,j,k;return d=(d,e)=>C(a,b,c,d,e),g=new AbortController,h=!1,(i=new Promise((a,b)=>{e=a,f=b})).catch(()=>{}),(k=d(j=a=>{h||(h=!0,e(a))},g.signal)).then(j,a=>{h||f(a)}),y(a,b,k,i,g)}function F(a,b){let c=!1,d=!1,e=new AbortController,f=new Promise(a=>setImmediate(a)).then(()=>{if(c=!0,e.signal.aborted)throw z(e.signal.reason);if(d){if(!a.snapshot)throw Error("deferred file scan canceled without a completed snapshot");return a.snapshot}return C(a,b,"ordinary",void 0,e.signal)}),g=y(a,b,f,f,e);return g.cancelBeforeStart=()=>!c&&(d=!0,!0),g}async function G(a,b,c,d="generation",e){for(;!a.snapshot||a.snapshotGeneration<b||void 0!==c&&(a.pinnedSnapshots?.get(c)?.generation??-1)<b;){let f=a.refresh??(c?function(a,b,c,d){let e=new AbortController,f=void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration,g=B(a,b,d,async()=>{let d=await (0,o.uh)({fresh:f,join:!1,exclusive:!0,signal:e.signal},(a,b)=>(0,o.KZ)(a,{persistIndex:"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER,pin:c},b));if(!d.complete)throw Error("filesystem scan incomplete");let g=d.pinOverlayPaths??[],h=new Set(g),i={files:d.files.filter(a=>!h.has(a.path)),projectCatalog:d.projectCatalog,complete:!0};for(a.pinnedSnapshots??=new Map,a.pinnedSnapshots.delete(c),a.pinnedSnapshots.set(c,{snapshot:{...i,files:d.files},...g.length?{pinOverlayPaths:g}:{},generation:b,refreshedAt:Date.now()});a.pinnedSnapshots.size>8;){let b=a.pinnedSnapshots.keys().next().value;if(void 0===b)break;a.pinnedSnapshots.delete(b),a.pinnedGenerations?.delete(b)}return"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER&&w(i),a.snapshot=i,a.snapshotGeneration=Math.max(a.snapshotGeneration,b),a.refreshedAt=Date.now(),a.completedAt=a.refreshedAt,f&&void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration&&(a.freshObservationGeneration=void 0),i});return y(a,b,g,g,e)}(a,b,c,d):D(a,b,d));await A(f,e)}return a.snapshot}function H(a,b){let c=a.pinnedSnapshots?.get(b);if(c)return a.pinnedSnapshots.delete(b),a.pinnedSnapshots.set(b,c),c}function I(a,b,c,d){let e=performance.now(),f=b?H(a,b):void 0;if(f){let b=structuredClone({snapshot:f.snapshot,pinOverlayPaths:f.pinOverlayPaths,generation:f.generation,targetGeneration:c});return{...b,cacheStatus:d??(b.generation<c?"stale":"hit"),requestCount:a.requestCount??0,cloneDurationMs:performance.now()-e,refreshedAt:f.refreshedAt,...a.lastScan?{lastScan:{...a.lastScan}}:{}}}return{snapshot:structuredClone(a.snapshot),generation:a.snapshotGeneration,targetGeneration:c,cacheStatus:d??(a.snapshotGeneration<c?"stale":"hit"),requestCount:a.requestCount??0,cloneDurationMs:performance.now()-e,refreshedAt:a.completedAt??a.refreshedAt,...a.lastScan?{lastScan:{...a.lastScan}}:{}}}function J(a){return a.requestedGeneration+=1,a.requestedGeneration}function K(a){a.catch(()=>void 0)}function L(a,b,c){a.pinnedGenerations??=new Map;let d=Math.max(a.pinnedGenerations.get(b)??-1,c);for(a.pinnedGenerations.delete(b),a.pinnedGenerations.set(b,d);a.pinnedGenerations.size>8;){let b=a.pinnedGenerations.keys().next().value;if(void 0===b)break;a.pinnedGenerations.delete(b)}return d}function M(){let a=(r.__llvFilesRouteScans??=new Map,r.__llvFilesRouteScans),b=a.get("");if(void 0===b){let b=u();b&&function(a){for(let b of((0,m.X)(a.files),a.files)){let a;if(!0!==b.derivationComplete)continue;try{a=g().statSync(b.path)}catch{continue}if(a.size!==b.size||a.mtimeMs/1e3!==b.mtime)continue;let c=1e3*b.mtime,d=function(a){if("jsonl_turn_open"===a.activityReason||"jsonl_turn_stalled"===a.activityReason||"pane_at_composer"===a.activityReason)return{state:"busy",source:"lifecycle",terminalAt:null};if("jsonl_turn_completed"===a.activityReason){let b=a.lastTurn?.endedAt;return{state:"terminal",source:"lifecycle",terminalAt:"number"==typeof b&&Number.isFinite(b)?new Date(b).toISOString():null}}if("mtime_fresh"===a.activityReason||"mtime_recent"===a.activityReason||"mtime_old"===a.activityReason)return{state:"unknown",source:"empty",terminalAt:null}}(b);void 0!==d&&b.path.endsWith(".jsonl")&&("claude"===b.engine||"codex"===b.engine)&&((0,k.Ul)(b.path,b.size,c,"codex"===b.engine,d,{authoritative:!1,composerReleased:"pane_at_composer"===b.activityReason}),b.authoritativeTurn?(0,k.Ul)(b.path,b.size,c,"codex"===b.engine,b.authoritativeTurn,{composerReleased:"pane_at_composer"===b.activityReason}):("codex"===b.engine||"terminal"!==d.state)&&(0,k.Ul)(b.path,b.size,c,"codex"===b.engine,d,{composerReleased:"pane_at_composer"===b.activityReason})),"claude-projects"===b.root&&b.path.includes(`${i().sep}subagents${i().sep}`)||(0,l.E)("model").set(b.path,[b.size,c,{display:b.model,launch:b.launchModel??null}]),Object.hasOwn(b,"effort")&&("claude"!==b.engine||"running"!==b.proc)&&(0,l.E)("effort").set(b.path,[b.size,c,b.effort??null]),Object.hasOwn(b,"plan")&&(0,l.E)("plan-v2").set(b.path,[b.size,c,b.plan]),Object.hasOwn(b,"goal")&&(0,l.E)("goal-v2").set(b.path,[b.size,c,b.goal]),Object.hasOwn(b,"ctx")&&(0,l.E)("ctx-v2").set(b.path,[b.size,c,b.ctx]),Object.hasOwn(b,"lastTurn")&&(0,l.E)("last-turn-v5").set(b.path,[b.size,c,b.lastTurn]),Object.hasOwn(b,"pendingWakeup")&&(0,l.E)("wakeup-v2").set(b.path,[b.size,c,b.pendingWakeup]),"claude-projects"===b.root&&b.path.endsWith(".jsonl")&&(0,l.E)(n.oS).set(b.path,[b.size,c,function(a){if(!a.pendingQuestion)return null;let{pid:b,paneTarget:c,...d}=a.pendingQuestion;return d}(b)])}}(b);let c={schemaVersion:9,snapshot:b,snapshotGeneration:0,requestedGeneration:0,refreshedAt:0,completedAt:b?function(){try{return g().statSync((0,j.BQ)(p)).mtimeMs}catch{return 0}}():0};return a.set("",c),c}let c=function(a){if(s(a)&&9===a.schemaVersion&&Number.isSafeInteger(a.snapshotGeneration)&&Number.isSafeInteger(a.requestedGeneration)){let b=x(a.refresh);return!b||a.refresh?.controller&&Number.isSafeInteger(a.refresh.subscribers)||y(a,a.refresh?.generation??0,b),a}let b=s(a)?a:{},c={schemaVersion:9,snapshot:t(b.snapshot)?b.snapshot:void 0,snapshotGeneration:0,requestedGeneration:0,refreshedAt:"number"==typeof b.refreshedAt&&Number.isFinite(b.refreshedAt)?b.refreshedAt:0,completedAt:"number"==typeof b.completedAt&&Number.isFinite(b.completedAt)?b.completedAt:"number"==typeof b.refreshedAt&&Number.isFinite(b.refreshedAt)?b.refreshedAt:0},d=x(b.refresh);if(d){let a=d.then(a=>{if(!a.complete)throw Error("filesystem scan incomplete");return c.snapshot=a,c.refreshedAt=Date.now(),c.completedAt=c.refreshedAt,a});y(c,0,a)}return c}(b);return a.delete(""),a.set("",c),c}async function N(a,b,c=Date.now(),d,e){let f=M();f.requestCount=(f.requestCount??0)+1;let g=b&&!f.snapshot?.files.some(a=>a.path===b)?b:void 0,h=g?f.pinnedSnapshots?.get(g):void 0,i=void 0===g||void 0!==h,j=h?.refreshedAt??f.refreshedAt;if(void 0!==d&&f.snapshot&&i&&(void 0!==f.refresh&&f.refresh.generation>(h?.generation??f.snapshotGeneration)||f.lastScan?.reason==="revision"&&c-j<3e5)){let a=h?.generation??f.snapshotGeneration;return I(f,g,a,f.refresh?"stale":"hit")}let k=void 0!==e&&e<=f.requestedGeneration?e:void 0;if(void 0!==k)g&&(k=L(f,g,k));else if(void 0!==d){let a;f.forcedRevision===d&&void 0!==f.forcedGeneration?a=f.forcedGeneration:(a=J(f),f.forcedRevision=d,f.forcedGeneration=a),k=a,g&&(k=L(f,g,a));let b=G(f,k,g,"revision"),c=()=>{f.forcedGeneration===a&&(f.forcedRevision=void 0,f.forcedGeneration=void 0)};if(!f.snapshot)try{return await b,I(f,g,k,"miss")}finally{c()}b.then(c,c)}if(void 0!==k){let a=G(f,k,g,"generation"),b=!f.snapshot;return b?await a:K(a),I(f,g,k,b?"miss":void 0)}if(g){let a,b;f.pinnedSnapshots??=new Map;let d=H(f,g);if(d&&c-d.refreshedAt<1e3)return I(f,g,d.generation);a=f.pinnedGenerations?.get(g),b=f.pinnedSnapshots?.get(g)?.generation??-1;let e=G(f,k=void 0!==a&&a>b?a:L(f,g,J(f)),g,"pinned"),h=!f.snapshot;return h?await e:K(e),I(f,g,k,h?"miss":void 0)}if(!f.snapshot){k=f.refresh?.generation??J(f);let a=f.refresh??D(f,k,"cold");return await A(a),I(f,void 0,k,"miss")}return f.refresh?k=f.refresh.generation:c-Math.max(f.refreshedAt,f.ordinaryRefreshRequestedAt??0)>=3e5?(k=J(f),f.ordinaryRefreshRequestedAt=c,F(f,k)):k=f.snapshotGeneration,I(f,void 0,k)}async function O({revalidate:a=!0,signal:b}={}){let c=M();if(c.requestCount=(c.requestCount??0)+1,c.snapshot){let b=Date.now();if(a&&!c.refresh&&b-Math.max(c.refreshedAt,c.ordinaryRefreshRequestedAt??0)>=3e5){let a=J(c);c.ordinaryRefreshRequestedAt=b,F(c,a)}return I(c,void 0,c.snapshotGeneration)}let d=c.refresh?.generation??J(c),e=c.refresh??D(c,d,"cold");return await A(e,b),I(c,void 0,d,"miss")}async function P({fresh:a=!1,now:b=Date.now()}={}){if(a){let a=M(),b=a.freshObservationGeneration??J(a);return a.freshObservationGeneration=b,await G(a,b,void 0,"fresh"),I(a,void 0,b)}let c=await N(void 0,void 0,b);if(c.generation>=c.targetGeneration)return c;let d=M();return await G(d,c.targetGeneration,void 0,"current"),I(d,void 0,c.targetGeneration)}async function Q(){let a,b=M();b.requestCount=(b.requestCount??0)+1;let c=b.freshObservationGeneration;if(void 0===c){let d=b.refresh;d?.cancelBeforeStart?.()?(c=J(b),b.freshObservationGeneration=c,a=E(b,c,"fresh")):d?c=d.generation:(c=J(b),b.freshObservationGeneration=c)}for(;;){let d=a??b.refresh??E(b,c,"fresh");a=void 0;let e=await d.resourcePromise;if(d.generation>=c)return{snapshot:e,generation:d.generation,targetGeneration:c,cacheStatus:"miss",requestCount:b.requestCount??0,cloneDurationMs:0,refreshedAt:Date.now(),...b.lastScan?{lastScan:{...b.lastScan}}:{}};await A(d)}}},36552:(a,b,c)=>{c.d(b,{wj:()=>v,uh:()=>u,KZ:()=>q});var d=c(59376),e=c(31421),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h);let j={setTimeout:(a,b)=>setTimeout(a,b),clearTimeout:a=>{clearTimeout(a)}};var k=c(54132),l=c(65377),m=c(20707);function n(){return new DOMException("file scan cancelled","AbortError")}function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}let p=globalThis;function q(a,b={},c=new AbortController().signal){let f={...b,persist:a.persist,...a.fresh?{fresh:!0}:{}};if(c.aborted)return Promise.reject(s(c.reason));if(!function(a=process.env){return"test"!==a.NODE_ENV&&"1"!==a.LLV_FILE_SCANNER_WORKER&&"1"!==a.LLV_FILE_SCANNER_WORKER_DISABLED}())return(0,d.SW)(void 0,{...f,signal:c}).then(a=>{if(c.aborted)throw s(c.reason);return a});let{onResourceSnapshot:h,...p}=f;return function(a,b,c={}){if(c.signal?.aborted)return Promise.reject(n());let d=(0,m.FX)(!1),f=c.launch??function(a=process.cwd()){let b=i().join(a,"src/lib/fileScanner.worker.ts"),c=i().join(a,".next/server/file-scanner-worker.js");return g().existsSync(b)&&g().existsSync("/usr/local/bin/bun-container")?{executable:"/usr/local/bin/bun-container",workerPath:b}:g().existsSync(c)?{executable:process.versions.bun?process.execPath:process.env.LLV_BUN_EXECUTABLE||"bun",workerPath:c}:{executable:process.execPath,workerPath:b}}(c.cwd),h=void 0===c.launch&&g().existsSync("/usr/bin/nice"),p=(0,e.spawn)(h?"/usr/bin/nice":f.executable,[...h?["-n","10",f.executable]:[],f.workerPath],{cwd:c.cwd??process.cwd(),stdio:["pipe","pipe","pipe"],env:{...(0,l.Fd)(c.env??process.env),LLV_FILE_SCANNER_WORKER:"1"}});return new Promise((e,f)=>{let g,h,i=c.scheduler??j,l=!1,q=!1,r="",s="",t=0,u=null,v=null,w=(a,b)=>{l||(l=!0,void 0!==h&&(i.clearTimeout(h),h=void 0),q&&(c.signal?.removeEventListener("abort",z),q=!1),a?f(a):e(b))},x=a=>{if(!l&&!v){v=a;try{p.kill("SIGKILL")}catch{}(null!==p.exitCode||null!==p.signalCode)&&w(a)}},y=a=>{x(Error(a))},z=()=>x(n()),A=()=>{for(;;){let a,c=r.indexOf("\n");if(c<0)return;let d=r.slice(0,c);if(r=r.slice(c+1),!d)continue;try{a=JSON.parse(d)}catch{y("file scanner worker emitted invalid JSON");return}let e=function(a){var b;return o(a)&&("resource"===a.type||"complete"===a.type)&&o(b=a.snapshot)&&Array.isArray(b.files)&&Array.isArray(b.projectCatalog)&&"boolean"==typeof b.complete&&(void 0===b.conversationCatalog||Array.isArray(b.conversationCatalog))&&(void 0===b.pinOverlayPaths||Array.isArray(b.pinOverlayPaths))?a:null}(a);if(!e)return void y("file scanner worker emitted an invalid message");if("resource"===e.type)b?.(e.snapshot);else{let{conversationCatalog:a,...b}=e.snapshot;g=a,u=b}}};h=i.setTimeout(()=>{h=void 0,y("file scanner worker timed out")},c.timeoutMs??3e5),p.once("error",a=>w(a)),p.stdout.setEncoding("utf8"),p.stdout.on("data",a=>{(t+=Buffer.byteLength(a))>0x2000000?y("file scanner worker exceeded output limit"):(r+=a,A())}),p.stderr.setEncoding("utf8"),p.stderr.on("data",a=>{s=`${s}${a}`,Buffer.byteLength(s)>4096&&(s=Buffer.from(s).subarray(-4096).toString("utf8"))}),p.once("close",(a,b)=>{if(!l){if(v)return void w(v);if(A(),0!==a||!u){let c=s.trim();w(Error(`file scanner worker exited before completion (${b??a??"unknown"})${c?`: ${c}`:""}`));return}if(g){let a=(0,m.pu)(d);(0,m.OQ)(g,d,u.complete),a&&(c.transcriptIndexScheduler??k.O)({complete:u.complete,sources:g.map(a=>({path:a.path,project:a.project,engine:a.engine,size:a.size,mtimeMs:1e3*a.mtime}))})}w(void 0,u)}}),p.stdin.once("error",a=>{v||w(a)}),c.signal&&(c.signal.addEventListener("abort",z,{once:!0}),q=!0,c.signal.aborted&&z()),p.stdin.end(JSON.stringify({type:"scan",options:a}))})}(p,h,{signal:c})}let r=(a,b)=>q(a,{},b);function s(a){return a instanceof Error&&"AbortError"===a.name?a:new DOMException("file scan cancelled","AbortError")}function t(a,b){if(b.settled||b.subscribers>0||(b.controller.abort(s()),b.started))return;let c=a.queue.indexOf(b);c>=0&&a.queue.splice(c,1),b.settled=!0,b.reject(s())}async function u(a={},b=r){var c,d;let e=p.__llvFileScanCoordinator??={generation:0,queue:[],startScheduled:!1};if(a.signal?.aborted)throw s(a.signal.reason);let f={persist:!0===a.persist,fresh:!0===a.fresh},g=!0===a.exclusive,h=e.inflight,i=g||!h||h.controller.signal.aborted||h.exclusive||!1===a.join||(c=h.intent,!c.persist&&f.persist||!c.fresh&&f.fresh)?function(a,b,c,d){let e,f,g;if(!d){let c=a.queue.find(a=>!a.exclusive);if(c)return c.intent={persist:c.intent.persist||b.persist,fresh:c.intent.fresh||b.fresh},c}let h=((g=new Promise((a,b)=>{e=a,f=b})).catch(()=>void 0),{generation:0,intent:b,runner:c,exclusive:d,controller:new AbortController,subscribers:0,started:!1,settled:!1,promise:g,resolve:e,reject:f});return a.queue.push(h),function a(b){b.startScheduled||(b.startScheduled=!0,queueMicrotask(()=>{if(b.startScheduled=!1,b.inflight)return;let c=b.queue.shift();c&&function(b,c){let d;b.generation+=1,c.generation=b.generation,c.started=!0,b.inflight=c;try{d=Promise.resolve(c.runner(c.intent,c.controller.signal))}catch(a){d=Promise.reject(a)}d.then(a=>{c.settled=!0,c.resolve(a)},a=>{c.settled=!0,c.reject(a)}).finally(()=>{b.inflight===c&&(b.inflight=void 0),a(b)})}(b,c)}))}(a),h}(e,f,b,g):h;return d=a.signal,d?.aborted?(t(e,i),Promise.reject(s(d.reason))):(i.subscribers+=1,new Promise((a,b)=>{let c=!0,f=()=>{c&&(c=!1,d?.removeEventListener("abort",g),i.subscribers-=1,t(e,i))},g=()=>{f(),b(s(d?.reason))};d?.addEventListener("abort",g,{once:!0}),i.promise.then(b=>{c&&(f(),a(structuredClone(b)))},a=>{c&&(f(),b(a))})}))}function v(){return u({persist:!0})}}};
1
+ "use strict";exports.id=3086,exports.ids=[3086],exports.modules={23086:(a,b,c)=>{c.d(b,{Ll:()=>P,Nm:()=>O,TF:()=>v,vx:()=>Q});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(50920),k=c(7058),l=c(94284),m=c(7343),n=c(78598),o=c(36552);let p="files-scan-snapshot.json",q=-1/0,r=globalThis;function s(a){return"object"==typeof a&&null!==a}function t(a){if(!s(a)||!0!==a.complete||!Array.isArray(a.files)||!Array.isArray(a.projectCatalog))return!1;let b=a.files.every(a=>{var b;return!!s(a)&&"string"==typeof a.path&&("codex-sessions"===a.root||"claude-projects"===a.root||"claude-tasks"===a.root||"openclaw-sessions"===a.root)&&"string"==typeof a.name&&"string"==typeof a.project&&"string"==typeof a.title&&("codex"===a.engine||"claude"===a.engine||"shell"===a.engine||"openclaw"===a.engine)&&"string"==typeof a.kind&&("codex"===a.fmt||"claude"===a.fmt||"plain"===a.fmt||"openclaw"===a.fmt)&&(null===a.parent||"string"==typeof a.parent)&&"number"==typeof a.mtime&&Number.isFinite(a.mtime)&&"number"==typeof a.size&&Number.isFinite(a.size)&&(void 0===a.sessionStartedAt||null===a.sessionStartedAt||"string"==typeof a.sessionStartedAt)&&(void 0===a.nativeParentThreadId||null===a.nativeParentThreadId||"string"==typeof a.nativeParentThreadId)&&(void 0===a.nativeForkSourceThreadId||null===a.nativeForkSourceThreadId||"string"==typeof a.nativeForkSourceThreadId)&&("live"===a.activity||"recent"===a.activity||"stalled"===a.activity||"idle"===a.activity)&&(void 0===a.authoritativeTurn||!!s(b=a.authoritativeTurn)&&("busy"===b.state||"terminal"===b.state||"idle"===b.state||"unknown"===b.state)&&("lifecycle"===b.source||"tool"===b.source||"assistant"===b.source||"empty"===b.source)&&(null===b.terminalAt||"string"==typeof b.terminalAt))&&(null===a.proc||"running"===a.proc||"done"===a.proc||"killed"===a.proc)&&(null===a.pid||"number"==typeof a.pid)&&(null===a.model||"string"==typeof a.model)&&(null===a.pendingQuestion||s(a.pendingQuestion))&&(null===a.waitingInput||s(a.waitingInput))}),c=a.projectCatalog.every(a=>s(a)&&"string"==typeof a.project&&"number"==typeof a.smt&&Number.isFinite(a.smt)&&"number"==typeof a.conversations&&Number.isSafeInteger(a.conversations)&&(void 0===a.projectRoot||"string"==typeof a.projectRoot));return b&&c}function u(){try{let a=JSON.parse(g().readFileSync((0,j.BQ)(p),"utf8"));if(!s(a)||1!==a.version||10!==a.schemaVersion||!t(a.snapshot))return;return a.snapshot}catch{return}}function v(){return u()}function w(a){let b,c="create state directory",d=(0,j.BQ)(p);try{let f=(0,j.BQ)(p);d=f,g().mkdirSync(i().dirname(f),{recursive:!0,mode:448}),b=i().join(i().dirname(f),`.${i().basename(f)}.${process.pid}.${e().randomUUID()}.tmp`),c="write temporary snapshot",d=b,g().writeFileSync(b,JSON.stringify({version:1,schemaVersion:10,snapshot:a})+"\n",{encoding:"utf8",mode:384}),c="rename temporary snapshot",d=f,g().renameSync(b,f)}catch(e){if(void 0!==b)try{g().unlinkSync(b)}catch{}let a=Date.now();if(a-q>=6e4){q=a;let b=e instanceof Error?`${e.message}${"code"in e&&e.code?` (${String(e.code)})`:""}`:String(e);console.error(`[files scan cache] ${c} failed for ${d}: ${b}; a later refresh will retry`)}}}function x(a){return s(a)&&"promise"in a?x(a.promise):s(a)&&"function"==typeof a.then?Promise.resolve(a):void 0}function y(a,b,c,d=c,e=new AbortController){let f={generation:b,promise:c,resourcePromise:d,controller:e,subscribers:0,settled:!1};a.refresh=f;let g=()=>{f.settled=!0,a.refresh===f&&(a.refresh=void 0)};return c.then(g,g),f}function z(a){return a instanceof Error&&"AbortError"===a.name?a:new DOMException("file scan cancelled","AbortError")}function A(a,b){return b?.aborted?Promise.reject(z(b.reason)):(a.subscribers+=1,new Promise((c,d)=>{let e=!0,f=()=>{e&&(e=!1,b?.removeEventListener("abort",g),a.subscribers-=1,0!==a.subscribers||a.settled||a.controller.abort(z()))},g=()=>{f(),d(z(b?.reason))};b?.addEventListener("abort",g,{once:!0}),a.promise.then(a=>{e&&(f(),c(a))},a=>{e&&(f(),d(a))})}))}async function B(a,b,c,d){let e=performance.now();try{let f=await d();return a.lastScan={generation:b,reason:c,status:"complete",durationMs:performance.now()-e},f}catch(d){throw a.lastScan={generation:b,reason:c,status:"failed",durationMs:performance.now()-e},d}}function C(a,b,c,d,e){let f=void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration,g="ordinary"===c||"cold"===c;return B(a,b,c,async()=>{let c=await (0,o.uh)({fresh:f,join:g,signal:e},(b,c)=>(0,o.KZ)(b,{persistIndex:"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER,...d?{onResourceSnapshot:d,resourceBaseline:a.snapshot}:{}},c));if(!c.complete)throw Error("filesystem scan incomplete");return"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER&&w(c),a.snapshot=c,a.snapshotGeneration=Math.max(a.snapshotGeneration,b),a.refreshedAt=Date.now(),a.completedAt=a.refreshedAt,f&&void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration&&(a.freshObservationGeneration=void 0),c})}function D(a,b,c){let d=new AbortController,e=C(a,b,c,void 0,d.signal);return y(a,b,e,e,d)}function E(a,b,c){var d;let e,f,g,h,i,j,k;return d=(d,e)=>C(a,b,c,d,e),g=new AbortController,h=!1,(i=new Promise((a,b)=>{e=a,f=b})).catch(()=>{}),(k=d(j=a=>{h||(h=!0,e(a))},g.signal)).then(j,a=>{h||f(a)}),y(a,b,k,i,g)}function F(a,b){let c=!1,d=!1,e=new AbortController,f=new Promise(a=>setImmediate(a)).then(()=>{if(c=!0,e.signal.aborted)throw z(e.signal.reason);if(d){if(!a.snapshot)throw Error("deferred file scan canceled without a completed snapshot");return a.snapshot}return C(a,b,"ordinary",void 0,e.signal)}),g=y(a,b,f,f,e);return g.cancelBeforeStart=()=>!c&&(d=!0,!0),g}async function G(a,b,c,d="generation",e){for(;!a.snapshot||a.snapshotGeneration<b||void 0!==c&&(a.pinnedSnapshots?.get(c)?.generation??-1)<b;){let f=a.refresh??(c?function(a,b,c,d){let e=new AbortController,f=void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration,g=B(a,b,d,async()=>{let d=await (0,o.uh)({fresh:f,join:!1,exclusive:!0,signal:e.signal},(a,b)=>(0,o.KZ)(a,{persistIndex:"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER,pin:c},b));if(!d.complete)throw Error("filesystem scan incomplete");let g=d.pinOverlayPaths??[],h=new Set(g),i={files:d.files.filter(a=>!h.has(a.path)),projectCatalog:d.projectCatalog,complete:!0};for(a.pinnedSnapshots??=new Map,a.pinnedSnapshots.delete(c),a.pinnedSnapshots.set(c,{snapshot:{...i,files:d.files},...g.length?{pinOverlayPaths:g}:{},generation:b,refreshedAt:Date.now()});a.pinnedSnapshots.size>8;){let b=a.pinnedSnapshots.keys().next().value;if(void 0===b)break;a.pinnedSnapshots.delete(b),a.pinnedGenerations?.delete(b)}return"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER&&w(i),a.snapshot=i,a.snapshotGeneration=Math.max(a.snapshotGeneration,b),a.refreshedAt=Date.now(),a.completedAt=a.refreshedAt,f&&void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration&&(a.freshObservationGeneration=void 0),i});return y(a,b,g,g,e)}(a,b,c,d):D(a,b,d));await A(f,e)}return a.snapshot}function H(a,b){let c=a.pinnedSnapshots?.get(b);if(c)return a.pinnedSnapshots.delete(b),a.pinnedSnapshots.set(b,c),c}function I(a,b,c,d){let e=performance.now(),f=b?H(a,b):void 0;if(f){let b=structuredClone({snapshot:f.snapshot,pinOverlayPaths:f.pinOverlayPaths,generation:f.generation,targetGeneration:c});return{...b,cacheStatus:d??(b.generation<c?"stale":"hit"),requestCount:a.requestCount??0,cloneDurationMs:performance.now()-e,refreshedAt:f.refreshedAt,...a.lastScan?{lastScan:{...a.lastScan}}:{}}}return{snapshot:structuredClone(a.snapshot),generation:a.snapshotGeneration,targetGeneration:c,cacheStatus:d??(a.snapshotGeneration<c?"stale":"hit"),requestCount:a.requestCount??0,cloneDurationMs:performance.now()-e,refreshedAt:a.completedAt??a.refreshedAt,...a.lastScan?{lastScan:{...a.lastScan}}:{}}}function J(a){return a.requestedGeneration+=1,a.requestedGeneration}function K(a){a.catch(()=>void 0)}function L(a,b,c){a.pinnedGenerations??=new Map;let d=Math.max(a.pinnedGenerations.get(b)??-1,c);for(a.pinnedGenerations.delete(b),a.pinnedGenerations.set(b,d);a.pinnedGenerations.size>8;){let b=a.pinnedGenerations.keys().next().value;if(void 0===b)break;a.pinnedGenerations.delete(b)}return d}function M(){let a=(r.__llvFilesRouteScans??=new Map,r.__llvFilesRouteScans),b=a.get("");if(void 0===b){let b=u();b&&function(a){for(let c of((0,m.X$)(a.files),a.files)){var b;let a;if(!0!==c.derivationComplete)continue;try{a=g().statSync(c.path)}catch{continue}if(a.size!==c.size||a.mtimeMs/1e3!==c.mtime)continue;let d=1e3*c.mtime,e=function(a){if("jsonl_turn_open"===a.activityReason||"jsonl_turn_stalled"===a.activityReason||"pane_at_composer"===a.activityReason)return{state:"busy",source:"lifecycle",terminalAt:null};if("jsonl_turn_completed"===a.activityReason){let b=a.lastTurn?.endedAt;return{state:"terminal",source:"lifecycle",terminalAt:"number"==typeof b&&Number.isFinite(b)?new Date(b).toISOString():null}}if("mtime_fresh"===a.activityReason||"mtime_recent"===a.activityReason||"mtime_old"===a.activityReason)return{state:"unknown",source:"empty",terminalAt:null}}(c);if(void 0!==e&&c.path.endsWith(".jsonl")&&("claude"===(b=c.engine)||"codex"===b||"openclaw"===b)){let a=c.engine;(0,k.Ul)(c.path,c.size,d,a,e,{authoritative:!1,composerReleased:"pane_at_composer"===c.activityReason}),c.authoritativeTurn?(0,k.Ul)(c.path,c.size,d,a,c.authoritativeTurn,{composerReleased:"pane_at_composer"===c.activityReason}):("claude"!==a||"terminal"!==e.state)&&(0,k.Ul)(c.path,c.size,d,a,e,{composerReleased:"pane_at_composer"===c.activityReason})}"claude-projects"===c.root&&c.path.includes(`${i().sep}subagents${i().sep}`)||(0,l.E)("model").set(c.path,[c.size,d,{display:c.model,launch:c.launchModel??null}]),Object.hasOwn(c,"effort")&&("claude"!==c.engine||"running"!==c.proc)&&(0,l.E)("effort").set(c.path,[c.size,d,c.effort??null]),Object.hasOwn(c,"plan")&&(0,l.E)("plan-v2").set(c.path,[c.size,d,c.plan]),Object.hasOwn(c,"goal")&&(0,l.E)("goal-v2").set(c.path,[c.size,d,c.goal]),Object.hasOwn(c,"ctx")&&(0,l.E)("ctx-v2").set(c.path,[c.size,d,c.ctx]),Object.hasOwn(c,"lastTurn")&&(0,l.E)("last-turn-v5").set(c.path,[c.size,d,c.lastTurn]),Object.hasOwn(c,"pendingWakeup")&&(0,l.E)("wakeup-v2").set(c.path,[c.size,d,c.pendingWakeup]),"claude-projects"===c.root&&c.path.endsWith(".jsonl")&&(0,l.E)(n.oS).set(c.path,[c.size,d,function(a){if(!a.pendingQuestion)return null;let{pid:b,paneTarget:c,...d}=a.pendingQuestion;return d}(c)])}}(b);let c={schemaVersion:10,snapshot:b,snapshotGeneration:0,requestedGeneration:0,refreshedAt:0,completedAt:b?function(){try{return g().statSync((0,j.BQ)(p)).mtimeMs}catch{return 0}}():0};return a.set("",c),c}let c=function(a){if(s(a)&&10===a.schemaVersion&&Number.isSafeInteger(a.snapshotGeneration)&&Number.isSafeInteger(a.requestedGeneration)){let b=x(a.refresh);return!b||a.refresh?.controller&&Number.isSafeInteger(a.refresh.subscribers)||y(a,a.refresh?.generation??0,b),a}let b=s(a)?a:{},c={schemaVersion:10,snapshot:t(b.snapshot)?b.snapshot:void 0,snapshotGeneration:0,requestedGeneration:0,refreshedAt:"number"==typeof b.refreshedAt&&Number.isFinite(b.refreshedAt)?b.refreshedAt:0,completedAt:"number"==typeof b.completedAt&&Number.isFinite(b.completedAt)?b.completedAt:"number"==typeof b.refreshedAt&&Number.isFinite(b.refreshedAt)?b.refreshedAt:0},d=x(b.refresh);if(d){let a=d.then(a=>{if(!a.complete)throw Error("filesystem scan incomplete");return c.snapshot=a,c.refreshedAt=Date.now(),c.completedAt=c.refreshedAt,a});y(c,0,a)}return c}(b);return a.delete(""),a.set("",c),c}async function N(a,b,c=Date.now(),d,e){let f=M();f.requestCount=(f.requestCount??0)+1;let g=b&&!f.snapshot?.files.some(a=>a.path===b)?b:void 0,h=g?f.pinnedSnapshots?.get(g):void 0,i=void 0===g||void 0!==h,j=h?.refreshedAt??f.refreshedAt;if(void 0!==d&&f.snapshot&&i&&(void 0!==f.refresh&&f.refresh.generation>(h?.generation??f.snapshotGeneration)||f.lastScan?.reason==="revision"&&c-j<3e5)){let a=h?.generation??f.snapshotGeneration;return I(f,g,a,f.refresh?"stale":"hit")}let k=void 0!==e&&e<=f.requestedGeneration?e:void 0;if(void 0!==k)g&&(k=L(f,g,k));else if(void 0!==d){let a;f.forcedRevision===d&&void 0!==f.forcedGeneration?a=f.forcedGeneration:(a=J(f),f.forcedRevision=d,f.forcedGeneration=a),k=a,g&&(k=L(f,g,a));let b=G(f,k,g,"revision"),c=()=>{f.forcedGeneration===a&&(f.forcedRevision=void 0,f.forcedGeneration=void 0)};if(!f.snapshot)try{return await b,I(f,g,k,"miss")}finally{c()}b.then(c,c)}if(void 0!==k){let a=G(f,k,g,"generation"),b=!f.snapshot;return b?await a:K(a),I(f,g,k,b?"miss":void 0)}if(g){let a,b;f.pinnedSnapshots??=new Map;let d=H(f,g);if(d&&c-d.refreshedAt<1e3)return I(f,g,d.generation);a=f.pinnedGenerations?.get(g),b=f.pinnedSnapshots?.get(g)?.generation??-1;let e=G(f,k=void 0!==a&&a>b?a:L(f,g,J(f)),g,"pinned"),h=!f.snapshot;return h?await e:K(e),I(f,g,k,h?"miss":void 0)}if(!f.snapshot){k=f.refresh?.generation??J(f);let a=f.refresh??D(f,k,"cold");return await A(a),I(f,void 0,k,"miss")}return f.refresh?k=f.refresh.generation:c-Math.max(f.refreshedAt,f.ordinaryRefreshRequestedAt??0)>=3e5?(k=J(f),f.ordinaryRefreshRequestedAt=c,F(f,k)):k=f.snapshotGeneration,I(f,void 0,k)}async function O({revalidate:a=!0,signal:b}={}){let c=M();if(c.requestCount=(c.requestCount??0)+1,c.snapshot){let b=Date.now();if(a&&!c.refresh&&b-Math.max(c.refreshedAt,c.ordinaryRefreshRequestedAt??0)>=3e5){let a=J(c);c.ordinaryRefreshRequestedAt=b,F(c,a)}return I(c,void 0,c.snapshotGeneration)}let d=c.refresh?.generation??J(c),e=c.refresh??D(c,d,"cold");return await A(e,b),I(c,void 0,d,"miss")}async function P({fresh:a=!1,now:b=Date.now()}={}){if(a){let a=M(),b=a.freshObservationGeneration??J(a);return a.freshObservationGeneration=b,await G(a,b,void 0,"fresh"),I(a,void 0,b)}let c=await N(void 0,void 0,b);if(c.generation>=c.targetGeneration)return c;let d=M();return await G(d,c.targetGeneration,void 0,"current"),I(d,void 0,c.targetGeneration)}async function Q(){let a,b=M();b.requestCount=(b.requestCount??0)+1;let c=b.freshObservationGeneration;if(void 0===c){let d=b.refresh;d?.cancelBeforeStart?.()?(c=J(b),b.freshObservationGeneration=c,a=E(b,c,"fresh")):d?c=d.generation:(c=J(b),b.freshObservationGeneration=c)}for(;;){let d=a??b.refresh??E(b,c,"fresh");a=void 0;let e=await d.resourcePromise;if(d.generation>=c)return{snapshot:e,generation:d.generation,targetGeneration:c,cacheStatus:"miss",requestCount:b.requestCount??0,cloneDurationMs:0,refreshedAt:Date.now(),...b.lastScan?{lastScan:{...b.lastScan}}:{}};await A(d)}}},36552:(a,b,c)=>{c.d(b,{wj:()=>w,uh:()=>v,KZ:()=>r});var d=c(59376),e=c(31421),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h);let j={setTimeout:(a,b)=>setTimeout(a,b),clearTimeout:a=>{clearTimeout(a)}};var k=c(54132),l=c(65377),m=c(20707);function n(){return new DOMException("file scan cancelled","AbortError")}function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function p(a=process.cwd()){let b=i().join(a,"src/lib/fileScanner.worker.ts"),c=i().join(a,".next/server/file-scanner-worker.js");return g().existsSync(b)&&g().existsSync("/usr/local/bin/bun-container")?{executable:"/usr/local/bin/bun-container",workerPath:b}:g().existsSync(c)?{executable:process.versions.bun?process.execPath:process.env.LLV_BUN_EXECUTABLE||"bun",workerPath:c}:g().existsSync(b)?{executable:process.execPath,workerPath:b}:null}let q=globalThis;function r(a,b={},c=new AbortController().signal){let f={...b,persist:a.persist,...a.fresh?{fresh:!0}:{}};if(c.aborted)return Promise.reject(t(c.reason));if(!function(a=process.env){return"test"!==a.NODE_ENV&&"1"!==a.LLV_FILE_SCANNER_WORKER&&"1"!==a.LLV_FILE_SCANNER_WORKER_DISABLED}()||null===p())return(0,d.SW)(void 0,{...f,signal:c}).then(a=>{if(c.aborted)throw t(c.reason);return a});let{onResourceSnapshot:h,...i}=f;return function(a,b,c={}){if(c.signal?.aborted)return Promise.reject(n());let d=c.launch??p(c.cwd);if(!d)return Promise.reject(Error("this process has no file scanner worker artifact"));let f=(0,m.FX)(!1),h=void 0===c.launch&&g().existsSync("/usr/bin/nice"),i=(0,e.spawn)(h?"/usr/bin/nice":d.executable,[...h?["-n","10",d.executable]:[],d.workerPath],{cwd:c.cwd??process.cwd(),stdio:["pipe","pipe","pipe"],env:{...(0,l.Fd)(c.env??process.env),LLV_FILE_SCANNER_WORKER:"1"}});return new Promise((d,e)=>{let g,h,l=c.scheduler??j,p=!1,q=!1,r="",s="",t=0,u=null,v=null,w=(a,b)=>{p||(p=!0,void 0!==h&&(l.clearTimeout(h),h=void 0),q&&(c.signal?.removeEventListener("abort",z),q=!1),a?e(a):d(b))},x=a=>{if(!p&&!v){v=a;try{i.kill("SIGKILL")}catch{}(null!==i.exitCode||null!==i.signalCode)&&w(a)}},y=a=>{x(Error(a))},z=()=>x(n()),A=()=>{for(;;){let a,c=r.indexOf("\n");if(c<0)return;let d=r.slice(0,c);if(r=r.slice(c+1),!d)continue;try{a=JSON.parse(d)}catch{y("file scanner worker emitted invalid JSON");return}let e=function(a){var b;return o(a)&&("resource"===a.type||"complete"===a.type)&&o(b=a.snapshot)&&Array.isArray(b.files)&&Array.isArray(b.projectCatalog)&&"boolean"==typeof b.complete&&(void 0===b.conversationCatalog||Array.isArray(b.conversationCatalog))&&(void 0===b.pinOverlayPaths||Array.isArray(b.pinOverlayPaths))?a:null}(a);if(!e)return void y("file scanner worker emitted an invalid message");if("resource"===e.type)b?.(e.snapshot);else{let{conversationCatalog:a,...b}=e.snapshot;g=a,u=b}}};h=l.setTimeout(()=>{h=void 0,y("file scanner worker timed out")},c.timeoutMs??3e5),i.once("error",a=>w(a)),i.stdout.setEncoding("utf8"),i.stdout.on("data",a=>{(t+=Buffer.byteLength(a))>0x2000000?y("file scanner worker exceeded output limit"):(r+=a,A())}),i.stderr.setEncoding("utf8"),i.stderr.on("data",a=>{s=`${s}${a}`,Buffer.byteLength(s)>4096&&(s=Buffer.from(s).subarray(-4096).toString("utf8"))}),i.once("close",(a,b)=>{if(!p){if(v)return void w(v);if(A(),0!==a||!u){let c=s.trim();w(Error(`file scanner worker exited before completion (${b??a??"unknown"})${c?`: ${c}`:""}`));return}if(g){let a=(0,m.pu)(f);(0,m.OQ)(g,f,u.complete),a&&(c.transcriptIndexScheduler??k.O)({complete:u.complete,sources:g.flatMap(a=>"openclaw"===a.engine?[]:[{path:a.path,project:a.project,engine:a.engine,size:a.size,mtimeMs:1e3*a.mtime}])})}w(void 0,u)}}),i.stdin.once("error",a=>{v||w(a)}),c.signal&&(c.signal.addEventListener("abort",z,{once:!0}),q=!0,c.signal.aborted&&z()),i.stdin.end(JSON.stringify({type:"scan",options:a}))})}(i,h,{signal:c})}let s=(a,b)=>r(a,{},b);function t(a){return a instanceof Error&&"AbortError"===a.name?a:new DOMException("file scan cancelled","AbortError")}function u(a,b){if(b.settled||b.subscribers>0||(b.controller.abort(t()),b.started))return;let c=a.queue.indexOf(b);c>=0&&a.queue.splice(c,1),b.settled=!0,b.reject(t())}async function v(a={},b=s){var c,d;let e=q.__llvFileScanCoordinator??={generation:0,queue:[],startScheduled:!1};if(a.signal?.aborted)throw t(a.signal.reason);let f={persist:!0===a.persist,fresh:!0===a.fresh},g=!0===a.exclusive,h=e.inflight,i=g||!h||h.controller.signal.aborted||h.exclusive||!1===a.join||(c=h.intent,!c.persist&&f.persist||!c.fresh&&f.fresh)?function(a,b,c,d){let e,f,g;if(!d){let c=a.queue.find(a=>!a.exclusive);if(c)return c.intent={persist:c.intent.persist||b.persist,fresh:c.intent.fresh||b.fresh},c}let h=((g=new Promise((a,b)=>{e=a,f=b})).catch(()=>void 0),{generation:0,intent:b,runner:c,exclusive:d,controller:new AbortController,subscribers:0,started:!1,settled:!1,promise:g,resolve:e,reject:f});return a.queue.push(h),function a(b){b.startScheduled||(b.startScheduled=!0,queueMicrotask(()=>{if(b.startScheduled=!1,b.inflight)return;let c=b.queue.shift();c&&function(b,c){let d;b.generation+=1,c.generation=b.generation,c.started=!0,b.inflight=c;try{d=Promise.resolve(c.runner(c.intent,c.controller.signal))}catch(a){d=Promise.reject(a)}d.then(a=>{c.settled=!0,c.resolve(a)},a=>{c.settled=!0,c.reject(a)}).finally(()=>{b.inflight===c&&(b.inflight=void 0),a(b)})}(b,c)}))}(a),h}(e,f,b,g):h;return d=a.signal,d?.aborted?(u(e,i),Promise.reject(t(d.reason))):(i.subscribers+=1,new Promise((a,b)=>{let c=!0,f=()=>{c&&(c=!1,d?.removeEventListener("abort",g),i.subscribers-=1,u(e,i))},g=()=>{f(),b(t(d?.reason))};d?.addEventListener("abort",g,{once:!0}),i.promise.then(b=>{c&&(f(),a(structuredClone(b)))},a=>{c&&(f(),b(a))})}))}function w(){return v({persist:!0})}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=3214,exports.ids=[3214],exports.modules={2033:(a,b,c)=>{c.d(b,{Ol:()=>r,Qm:()=>l,pM:()=>s});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(59683);let k=new Int32Array(new SharedArrayBuffer(4));class l extends Error{constructor(a){super(a),this.name="FileTransactionBusyError"}}function m(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){let a="string"==typeof b.startIdentity?b.startIdentity:null;if(!j.B.pidAlive(b.pid))return!0;if(null!==a){let c=j.B.processIdentity(b.pid);return null!==c&&c!==a}return!1}return Date.now()-g().statSync(a).mtimeMs>3e4}catch{try{return Date.now()-g().statSync(a).mtimeMs>3e4}catch{return!1}}}function n(a,b){try{JSON.parse(g().readFileSync(a,"utf8")).token===b&&g().rmSync(a,{force:!0})}catch{}}function o(a){let b=`${a}.write-lock`,c=`${a}.write-locks`;g().mkdirSync(c,{recursive:!0,mode:448});let d={pid:process.pid,startIdentity:j.B.processIdentity(process.pid),token:e().randomUUID()},f=i().join(c,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${e().randomUUID()}.json`);return g().writeFileSync(f,JSON.stringify(d),{encoding:"utf8",flag:"wx",mode:384}),{lockPath:b,queuePath:c,owner:d,ticketPath:f}}function p(a){let b;if(function(a){let b=[];for(let c of g().readdirSync(a.queuePath).filter(a=>a.endsWith(".json")).sort()){let d=i().join(a.queuePath,c);if(m(d)){g().rmSync(d,{force:!0});continue}g().existsSync(d)&&b.push(d)}return b[0]??null}(a)!==a.ticketPath)return null;try{b=g().openSync(a.lockPath,"wx",384)}catch(b){if("EEXIST"!==b.code)throw b;return m(a.lockPath)&&g().rmSync(a.lockPath,{force:!0}),null}try{return g().writeFileSync(b,JSON.stringify(a.owner),"utf8"),g().fsyncSync(b),b}catch(c){throw g().closeSync(b),g().rmSync(a.lockPath,{force:!0}),c}}function q(a,b){g().closeSync(b),n(a.lockPath,a.owner.token)}function r(a,b,c){let d=o(a);try{for(let a=0;a<6e3;a+=1){let a=p(d);if(null===a){Atomics.wait(k,0,0,5);continue}try{return c()}finally{q(d,a)}}throw new l(b)}finally{n(d.ticketPath,d.owner.token)}}async function s(a,b,c){let d=o(a);try{for(let a=0;a<6e3;a+=1){let a=p(d);if(null===a){await new Promise(a=>setTimeout(a,5));continue}try{return await c()}finally{q(d,a)}}throw new l(b)}finally{n(d.ticketPath,d.owner.token)}}},4837:(a,b,c)=>{c.d(b,{JL:()=>h,OV:()=>l,RC:()=>j,cC:()=>i,fC:()=>e,g9:()=>m,je:()=>d,wi:()=>n});let d="gpt-5.6-sol",e="gpt-5.6-terra",f="gpt-5.6-luna",g=new Set([d,e,f,"gpt-5.5","gpt-5.4","gpt-5.4-mini"]);function h(a){return!a?.trim()||g.has(a.trim())}let i={claude:[{id:"opus",label:"Opus 5",shortLabel:"Opus 5",use:"review"},{id:"fable",label:"Fable",shortLabel:"Fable",use:"general"},{id:"sonnet",label:"Sonnet",shortLabel:"Sonnet",use:"implement"},{id:"haiku",label:"Haiku",shortLabel:"Haiku",use:"general"}],codex:[{id:d,label:"GPT-5.6-Sol",shortLabel:"5.6-Sol",use:"review"},{id:e,label:"GPT-5.6-Terra",shortLabel:"5.6-Terra",use:"implement"},{id:f,label:"GPT-5.6-Luna",shortLabel:"5.6-Luna",use:"general"}]};function j(a,b){let c=b.trim(),d=i[a].map(a=>a.id);return d.includes(c)?{model:c}:{error:`invalid ${a} model id ${JSON.stringify(c)}; valid ${a} model ids: ${d.join(", ")}`}}let k=["fable","opus","sonnet","haiku"];function l(a){if("string"!=typeof a)return null;let b=a.trim().toLowerCase();if(!b||b.length>128||/[\u0000-\u001f\u007f]/.test(b))return null;for(let a of k)if(b===a||RegExp(`(?:^|[-_.])${a}(?:[-_.]|$)`).test(b))return a;return null}function m(a){if("string"!=typeof a)return!1;let b=a.trim();return b.startsWith("gpt-")&&b.length<=128&&!/[\u0000-\u001f\u007f]/.test(b)}function n(a){if(void 0===a.model||null===a.model||""===a.model)return{model:null};if("string"!=typeof a.model)return{model:null,error:"model must be a string"};let b=a.model.trim();return b?b.length>128||/[\u0000-\u001f\u007f]/.test(b)?{model:null,error:"model must be a printable id up to 128 characters"}:{model:b}:{model:null}}},21962:(a,b,c)=>{c.d(b,{S:()=>d});function d(a){if("number"==typeof a)return Number.isSafeInteger(a)&&a>0?String(a):null;if("string"!=typeof a)return null;let b=a.trim();return/^[1-9]\d{0,18}$/.test(b)?b:null}},24962:(a,b,c)=>{c.d(b,{WG:()=>o,cO:()=>n,yb:()=>l});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(68032);let l=262144,m=String.raw`import fcntl
1
+ "use strict";exports.id=3214,exports.ids=[3214],exports.modules={2033:(a,b,c)=>{c.d(b,{Ol:()=>r,Qm:()=>l,pM:()=>s});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(59683);let k=new Int32Array(new SharedArrayBuffer(4));class l extends Error{constructor(a){super(a),this.name="FileTransactionBusyError"}}function m(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){let a="string"==typeof b.startIdentity?b.startIdentity:null;if(!j.B.pidAlive(b.pid))return!0;if(null!==a){let c=j.B.processIdentity(b.pid);return null!==c&&c!==a}return!1}return Date.now()-g().statSync(a).mtimeMs>3e4}catch{try{return Date.now()-g().statSync(a).mtimeMs>3e4}catch{return!1}}}function n(a,b){try{JSON.parse(g().readFileSync(a,"utf8")).token===b&&g().rmSync(a,{force:!0})}catch{}}function o(a){let b=`${a}.write-lock`,c=`${a}.write-locks`;g().mkdirSync(c,{recursive:!0,mode:448});let d={pid:process.pid,startIdentity:j.B.processIdentity(process.pid),token:e().randomUUID()},f=i().join(c,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${e().randomUUID()}.json`);return g().writeFileSync(f,JSON.stringify(d),{encoding:"utf8",flag:"wx",mode:384}),{lockPath:b,queuePath:c,owner:d,ticketPath:f}}function p(a){let b;if(function(a){let b=[];for(let c of g().readdirSync(a.queuePath).filter(a=>a.endsWith(".json")).sort()){let d=i().join(a.queuePath,c);if(m(d)){g().rmSync(d,{force:!0});continue}g().existsSync(d)&&b.push(d)}return b[0]??null}(a)!==a.ticketPath)return null;try{b=g().openSync(a.lockPath,"wx",384)}catch(b){if("EEXIST"!==b.code)throw b;return m(a.lockPath)&&g().rmSync(a.lockPath,{force:!0}),null}try{return g().writeFileSync(b,JSON.stringify(a.owner),"utf8"),g().fsyncSync(b),b}catch(c){throw g().closeSync(b),g().rmSync(a.lockPath,{force:!0}),c}}function q(a,b){g().closeSync(b),n(a.lockPath,a.owner.token)}function r(a,b,c){let d=o(a);try{for(let a=0;a<6e3;a+=1){let a=p(d);if(null===a){Atomics.wait(k,0,0,5);continue}try{return c()}finally{q(d,a)}}throw new l(b)}finally{n(d.ticketPath,d.owner.token)}}async function s(a,b,c){let d=o(a);try{for(let a=0;a<6e3;a+=1){let a=p(d);if(null===a){await new Promise(a=>setTimeout(a,5));continue}try{return await c()}finally{q(d,a)}}throw new l(b)}finally{n(d.ticketPath,d.owner.token)}}},4837:(a,b,c)=>{c.d(b,{Gh:()=>k,JL:()=>h,OV:()=>m,RC:()=>j,Ze:()=>f,cC:()=>i,fC:()=>e,g9:()=>n,je:()=>d,wi:()=>o});let d="gpt-5.6-sol",e="gpt-5.6-terra",f="gpt-5.6-luna",g=new Set([d,e,f,"gpt-5.5","gpt-5.4","gpt-5.4-mini"]);function h(a){return!a?.trim()||g.has(a.trim())}let i={claude:[{id:"opus",label:"Opus 5",shortLabel:"Opus 5",use:"review"},{id:"fable",label:"Fable",shortLabel:"Fable",use:"general"},{id:"sonnet",label:"Sonnet",shortLabel:"Sonnet",use:"implement"},{id:"haiku",label:"Haiku",shortLabel:"Haiku",use:"general"}],codex:[{id:d,label:"GPT-5.6-Sol",shortLabel:"5.6-Sol",use:"review"},{id:e,label:"GPT-5.6-Terra",shortLabel:"5.6-Terra",use:"implement"},{id:f,label:"GPT-5.6-Luna",shortLabel:"5.6-Luna",use:"general"}]};function j(a,b){let c=b.trim(),d=i[a].map(a=>a.id);return d.includes(c)?{model:c}:{error:`invalid ${a} model id ${JSON.stringify(c)}; valid ${a} model ids: ${d.join(", ")}`}}function k(a){return"codex"===a?d:"opus"}let l=["fable","opus","sonnet","haiku"];function m(a){if("string"!=typeof a)return null;let b=a.trim().toLowerCase();if(!b||b.length>128||/[\u0000-\u001f\u007f]/.test(b))return null;for(let a of l)if(b===a||RegExp(`(?:^|[-_.])${a}(?:[-_.]|$)`).test(b))return a;return null}function n(a){if("string"!=typeof a)return!1;let b=a.trim();return b.startsWith("gpt-")&&b.length<=128&&!/[\u0000-\u001f\u007f]/.test(b)}function o(a){if(void 0===a.model||null===a.model||""===a.model)return{model:null};if("string"!=typeof a.model)return{model:null,error:"model must be a string"};let b=a.model.trim();return b?b.length>128||/[\u0000-\u001f\u007f]/.test(b)?{model:null,error:"model must be a printable id up to 128 characters"}:{model:b}:{model:null}}},21962:(a,b,c)=>{c.d(b,{S:()=>d});function d(a){if("number"==typeof a)return Number.isSafeInteger(a)&&a>0?String(a):null;if("string"!=typeof a)return null;let b=a.trim();return/^[1-9]\d{0,18}$/.test(b)?b:null}},24962:(a,b,c)=>{c.d(b,{WG:()=>o,cO:()=>n,yb:()=>l});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(68032);let l=262144,m=String.raw`import fcntl
2
2
  import io
3
3
  import os
4
4
  import stat
@@ -0,0 +1,2 @@
1
+ "use strict";exports.id=3302,exports.ids=[3302,9937],exports.modules={33302:(a,b,c)=>{c.d(b,{NZ:()=>r,Tj:()=>t,kg:()=>s,mn:()=>n});var d=c(77598),e=c.n(d),f=c(21872),g=c(89937),h=c(4012);let i=/^[A-Za-z0-9_-]{43}$/,j="x-llv-internal-service",k=/^[a-f0-9]{64}$/,l=["monitor","mcp","orchestrator"];function m(a){let b,c=a.headers.get(h.VIEWER_SPAWN_CAPABILITY_HEADER)?.trim()??"";return c&&i.test(c)?(b=e().createHash("sha256").update(c).digest("hex"),(0,f.agentRegistry)().conversationIdForSpawnCapabilityDigest(b)):null}function n(a){return null===m(a)}let o={ok:!1,status:403,error:"this is an operator-only action; an agent may not perform it, whatever role it holds"},p={ok:!1,status:403,error:"background Viewer activity is outside direct operator activity"};function q(a){return e().createHmac("sha256",(0,g.ensureOperatorSpawnCapability)()).update(`llv-internal-service-v1\0${a}`).digest("hex")}function r(a){return{[j]:`${a}.${q(a)}`}}function s(a){return"valid"===function(a){let b=a.headers.get(j)?.trim()??"";if(!b)return"absent";let c=b.indexOf("."),d=b.slice(0,c),f=b.slice(c+1);if(!l.includes(d)||!k.test(f))return"invalid";try{let a=q(d);return e().timingSafeEqual(Buffer.from(f),Buffer.from(a))?"valid":"invalid"}catch{return"invalid"}}(a)?p:t(a)}function t(a){return m(a)?o:{ok:!0}}},89937:(a,b,c)=>{c.r(b),c.d(b,{OperatorSpawnCapabilityError:()=>l,ensureOperatorSpawnCapability:()=>p,matchesOperatorSpawnCapability:()=>q,operatorSpawnCapabilityPath:()=>m,rotateOperatorSpawnCapability:()=>o});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724);let k=/^[A-Za-z0-9_-]{43}$/;class l extends Error{constructor(a,b,c){const d="object"==typeof c&&null!==c&&"code"in c&&"string"==typeof c.code?` (${c.code})`:"";super(`Viewer operator spawn capability ${a} failed at ${b}${d}`),this.name="OperatorSpawnCapabilityError"}}function m(){return(0,j.BQ)("operator-spawn-capability")}function n(){let a=m();try{let b=g().lstatSync(a);if(!b.isFile()||b.isSymbolicLink())return null;let c=g().readFileSync(a,"utf8").trim();if(!k.test(c))return null;return(511&b.mode)!=384&&g().chmodSync(a,384),c}catch(b){if("object"==typeof b&&null!==b&&"code"in b&&"ENOENT"===b.code)return null;throw new l("read",a,b)}}function o(){let a=e().randomBytes(32).toString("base64url"),b=m(),c=i().dirname(b),d=null;try{g().mkdirSync(c,{recursive:!0,mode:448}),d=i().join(c,`.${i().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`),g().writeFileSync(d,`${a}
2
+ `,{encoding:"utf8",flag:"wx",mode:384}),g().chmodSync(d,384),g().renameSync(d,b)}catch(a){throw new l("write",b,a)}finally{if(d)try{g().rmSync(d,{force:!0})}catch(a){throw new l("write",b,a)}}return a}function p(){return n()??o()}function q(a){if(!k.test(a))return!1;let b=n();return!!b&&e().timingSafeEqual(Buffer.from(a),Buffer.from(b))}}};
@@ -1 +1 @@
1
- "use strict";exports.id=3336,exports.ids=[3336],exports.modules={13336:(a,b,c)=>{c.d(b,{applyConversationAction:()=>w});var d=c(12904),e=c(25052),f=c(16196),g=c(22619),h=c(51888),i=c(68465),j=c(82940),k=c(88623),l=c(93994),m=c(75040),n=c(96755),o=c(5242),p=c(15615);let q=new Set(["interrupt","kill","reconfigure","compact"]);async function r(a,b={}){if(!a.action||!(b.enabled??(()=>(0,f.cM)()))())return null;let c=b.registry??(0,d.agentRegistry)(),e=a.path?c.conversationForPath(a.path):a.conversationId.startsWith("conversation_")?c.conversation(a.conversationId):null,s=e?.generations.at(-1);if(!e||!s)return null;let t=c.readOnlySnapshot(),u=t.entries[(0,k.pp)({engine:e.engine,sessionId:s.id})];if(!u)return null;let v="kill"===a.action&&!u.host,w="reconfigure"===a.action&&!u.host&&Object.values(t.receipts).some(a=>"structured"===a.transport&&"completed"===a.state&&c.canonicalConversationId(a.conversationId)===e.id),x="reconfigure"===a.action&&!u.host&&(e.reconfigure?.status==="applying"||w);if(!u.structuredHost&&!v&&!x)return null;if(!q.has(a.action)){if("resume"===a.action){if("dead"===u.status||"unhosted"===u.status)return null;try{if((b.hostProcessAlive??p.structuredHostProcessAlive)(u.structuredHost?.process??null)){if(!await (b.republish??n.A)({engine:e.engine,sessionId:s.id}))return{status:503,body:{error:"structured recovery ownership is unavailable"}};return{status:200,body:{ok:!0,structured:!0,target:e.id,outcome:"resumed",spawned:!1}}}let d=await (b.recover??p.recoverDeadStructuredConversation)({path:a.path||s.path,conversationId:e.id},{registry:c});if(!d)return{status:503,body:{error:"structured recovery ownership is unavailable"}};return{status:200,body:{ok:!0,structured:!0,target:e.id,outcome:"resumed",spawned:d.spawned}}}catch(a){return{status:503,body:{error:a instanceof Error?a.message:String(a)}}}}let d=["dialog-key","kill","reconfigure"].includes(a.action)?a.action:"requested";return{status:409,body:{error:`structured host does not support the ${d} control`}}}if("compact"===a.action){let a=(0,m.s_)(e.engine);if(!a.supported||u.structuredHost?.kind!=="codex-app-server")return{status:409,body:{error:a.reason??`the ${e.engine} structured host does not expose a compact control`,code:"unsupported-capability",capability:a}}}if(v&&!u.structuredHost?.process&&("dead"===u.status||"unhosted"===u.status))return{status:200,body:{ok:!0,structured:!0,target:e.id,outcome:"delivered"}};let y=void 0===b.client?(0,l.sS)():b.client;if(!y)return{status:503,body:{error:"structured runtime host is unavailable"}};let z=a.operationId??(b.operationId??m.Lu)();try{let c="reconfigure"===a.action?function(a,b){let c="string"==typeof b.model?b.model.trim():"",d="claude"===a?(0,h.OV)(c):(0,h.g9)(c)?c:null,e=h.cC[a].some(a=>a.id===d);if(!d||!e)return{error:`model is not supported by ${a}`};let f="string"==typeof b.effort?b.effort.trim():"";if(!(0,g.ve)(a,d)?.includes(f))return{error:`effort is not supported by ${a} model ${d}`};if("claude"===a&&void 0!==b.fast&&null!==b.fast)return{error:"speed is only supported by codex"};if("codex"===a&&"boolean"!=typeof b.fast)return{error:"speed must be selected for codex"};let i=void 0===b.accountId||null===b.accountId||""===b.accountId?void 0:"string"==typeof b.accountId?b.accountId.trim():"";return void 0===i||/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/.test(i)?{value:{model:d,effort:f,fast:"codex"===a?b.fast:null,...i?{accountId:i}:{}}}:{error:"account is invalid"}}(e.engine,a.reconfiguration??{}):null;if(c&&!c.value)return{status:400,body:{error:c.error??"invalid configuration"}};if(c?.value?.accountId&&!(b.accountExists??((a,b)=>("claude"===a?(0,i.Fn)():(0,j.Sq)()).some(a=>a.id===b)))(e.engine,c.value.accountId))return{status:400,body:{error:`account is not available for ${e.engine}`}};let d={engine:e.engine,sessionId:s.id},f="kill"===a.action?{kind:"kill",operationId:z,idempotencyKey:z,conversationId:e.id,sessionKey:d}:"compact"===a.action?{kind:"compact",operationId:z,idempotencyKey:z,conversationId:e.id,sessionKey:d}:"reconfigure"===a.action?{kind:"reconfigure",operationId:z,idempotencyKey:z,conversationId:e.id,sessionKey:d,...c.value,previousProfile:{model:s.launchProfile.model,effort:s.launchProfile.effort,fast:s.launchProfile.fast}}:{kind:"interrupt",operationId:z,idempotencyKey:z,conversationId:e.id,turnId:u.structuredHost?.activeTurnRef??null},k=await y.command(f);return(b.kick??o.l)(),{status:"delivered"===k.receipt.status?200:202,body:{ok:!0,structured:!0,target:e.id,operationId:z,receipt:k.receipt}}}catch(c){if(("kill"===a.action||"reconfigure"===a.action||"compact"===a.action)&&(0,l.o7)(c)){let a=await y.operationStatus(z).catch(()=>null);if(a)return(b.kick??o.l)(),{status:"delivered"===a.receipt.status?200:202,body:{ok:!0,structured:!0,target:e.id,operationId:a.operationId,receipt:a.receipt}}}return{status:503,body:{error:c instanceof Error?c.message:String(c)}}}}let s=["interrupt","kill","resume","compact","dialog-key"],t={registry:d.agentRegistry,structuredEnabled:()=>(0,f.cM)(),dispatchStructuredControl:r,interruptConversation:e.F5,killConversation:e.yv,resumeConversation:e.X$,compactConversation:e.LJ,answerDialogKey:e.m3};function u(a,b){return{status:b,body:{error:a}}}function v(a){if(a.ok)return{status:200,body:a};let{status:b,...c}=a;return{status:b,body:c}}async function w(a,b=t){if(!s.includes(a.action))return u("unsupported conversation action",400);if(a.conversationId&&!a.conversationId.startsWith("conversation_"))return u("invalid conversation id",400);let c=b.registry(),d=a.conversationId?c.conversation(a.conversationId):null,e=a.transcriptPath?c.conversationForPath(a.transcriptPath):null;if(a.conversationId&&!d)return u("viewer conversation is unknown",404);if(d&&a.transcriptPath&&(!new Set([...d.generations.map(a=>a.path),...d.continuityPaths]).has(a.transcriptPath)||e?.id!==d.id))return u("conversation identity does not own transcript path",409);let f=d??e,g=d?.generations.at(-1)?.path??a.transcriptPath;if(b.structuredEnabled()){let c=await b.dispatchStructuredControl({path:g,conversationId:f?.id??a.conversationId,action:a.action,operationId:a.operationId});if(c)return c}if(!g)return u("conversationId or transcriptPath is required",400);if("interrupt"===a.action)return v(await b.interruptConversation(g));if("kill"===a.action){let a=await b.killConversation(g);return a.ok&&!a.target?v({ok:!1,outcome:"failed",error:"kill resolved no registered pane",status:409}):v(a)}return"resume"===a.action?v(await b.resumeConversation(g)):"compact"===a.action?v(await b.compactConversation(g)):v(await b.answerDialogKey(g,a.key??"",a.label,a.question))}}};
1
+ "use strict";exports.id=3336,exports.ids=[3336],exports.modules={13336:(a,b,c)=>{c.d(b,{applyConversationAction:()=>w});var d=c(29381),e=c(25052),f=c(16196),g=c(22619),h=c(51888),i=c(68465),j=c(82940),k=c(88623),l=c(93994),m=c(75040),n=c(96755),o=c(5242),p=c(15615);let q=new Set(["interrupt","kill","reconfigure","compact"]);async function r(a,b={}){if(!a.action||!(b.enabled??(()=>(0,f.cM)()))())return null;let c=b.registry??(0,d.agentRegistry)(),e=a.path?c.conversationForPath(a.path):a.conversationId.startsWith("conversation_")?c.conversation(a.conversationId):null,s=e?.generations.at(-1);if(!e||!s)return null;let t=c.readOnlySnapshot(),u=t.entries[(0,k.pp)({engine:e.engine,sessionId:s.id})];if(!u)return null;let v="kill"===a.action&&!u.host,w="reconfigure"===a.action&&!u.host&&Object.values(t.receipts).some(a=>"structured"===a.transport&&"completed"===a.state&&c.canonicalConversationId(a.conversationId)===e.id),x="reconfigure"===a.action&&!u.host&&(e.reconfigure?.status==="applying"||w);if(!u.structuredHost&&!v&&!x)return null;if(!q.has(a.action)){if("resume"===a.action){if("dead"===u.status||"unhosted"===u.status)return null;try{if((b.hostProcessAlive??p.structuredHostProcessAlive)(u.structuredHost?.process??null)){if(!await (b.republish??n.A)({engine:e.engine,sessionId:s.id}))return{status:503,body:{error:"structured recovery ownership is unavailable"}};return{status:200,body:{ok:!0,structured:!0,target:e.id,outcome:"resumed",spawned:!1}}}let d=await (b.recover??p.recoverDeadStructuredConversation)({path:a.path||s.path,conversationId:e.id},{registry:c});if(!d)return{status:503,body:{error:"structured recovery ownership is unavailable"}};return{status:200,body:{ok:!0,structured:!0,target:e.id,outcome:"resumed",spawned:d.spawned}}}catch(a){return{status:503,body:{error:a instanceof Error?a.message:String(a)}}}}let d=["dialog-key","kill","reconfigure"].includes(a.action)?a.action:"requested";return{status:409,body:{error:`structured host does not support the ${d} control`}}}if("compact"===a.action){let a=(0,m.s_)(e.engine),b=u.structuredHost?.kind;if(!a.supported||"codex-app-server"!==b&&"claude-broker"!==b)return{status:409,body:{error:a.reason??`the ${e.engine} structured host does not expose a compact control`,code:"unsupported-capability",capability:a}}}if(v&&!u.structuredHost?.process&&("dead"===u.status||"unhosted"===u.status))return{status:200,body:{ok:!0,structured:!0,target:e.id,outcome:"delivered"}};let y=void 0===b.client?(0,l.sS)():b.client;if(!y)return{status:503,body:{error:"structured runtime host is unavailable"}};let z=a.operationId??(b.operationId??m.Lu)();try{let c="reconfigure"===a.action?function(a,b){let c="string"==typeof b.model?b.model.trim():"",d="claude"===a?(0,h.OV)(c):(0,h.g9)(c)?c:null,e=h.cC[a].some(a=>a.id===d);if(!d||!e)return{error:`model is not supported by ${a}`};let f="string"==typeof b.effort?b.effort.trim():"";if(!(0,g.ve)(a,d)?.includes(f))return{error:`effort is not supported by ${a} model ${d}`};if("claude"===a&&void 0!==b.fast&&null!==b.fast)return{error:"speed is only supported by codex"};if("codex"===a&&"boolean"!=typeof b.fast)return{error:"speed must be selected for codex"};let i=void 0===b.accountId||null===b.accountId||""===b.accountId?void 0:"string"==typeof b.accountId?b.accountId.trim():"";return void 0===i||/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/.test(i)?{value:{model:d,effort:f,fast:"codex"===a?b.fast:null,...i?{accountId:i}:{}}}:{error:"account is invalid"}}(e.engine,a.reconfiguration??{}):null;if(c&&!c.value)return{status:400,body:{error:c.error??"invalid configuration"}};if(c?.value?.accountId&&!(b.accountExists??((a,b)=>("claude"===a?(0,i.Fn)():(0,j.Sq)()).some(a=>a.id===b)))(e.engine,c.value.accountId))return{status:400,body:{error:`account is not available for ${e.engine}`}};let d={engine:e.engine,sessionId:s.id},f="kill"===a.action?{kind:"kill",operationId:z,idempotencyKey:z,conversationId:e.id,sessionKey:d}:"compact"===a.action?{kind:"compact",operationId:z,idempotencyKey:z,conversationId:e.id,sessionKey:d}:"reconfigure"===a.action?{kind:"reconfigure",operationId:z,idempotencyKey:z,conversationId:e.id,sessionKey:d,...c.value,previousProfile:{model:s.launchProfile.model,effort:s.launchProfile.effort,fast:s.launchProfile.fast}}:{kind:"interrupt",operationId:z,idempotencyKey:z,conversationId:e.id,turnId:u.structuredHost?.activeTurnRef??null},k=await y.command(f);return(b.kick??o.l)(),{status:"delivered"===k.receipt.status?200:202,body:{ok:!0,structured:!0,target:e.id,operationId:z,receipt:k.receipt}}}catch(c){if(("kill"===a.action||"reconfigure"===a.action||"compact"===a.action)&&(0,l.o7)(c)){let a=await y.operationStatus(z).catch(()=>null);if(a)return(b.kick??o.l)(),{status:"delivered"===a.receipt.status?200:202,body:{ok:!0,structured:!0,target:e.id,operationId:a.operationId,receipt:a.receipt}}}return{status:503,body:{error:c instanceof Error?c.message:String(c)}}}}let s=["interrupt","kill","resume","compact","dialog-key"],t={registry:d.agentRegistry,structuredEnabled:()=>(0,f.cM)(),dispatchStructuredControl:r,interruptConversation:e.F5,killConversation:e.yv,resumeConversation:e.X$,compactConversation:e.LJ,answerDialogKey:e.m3};function u(a,b){return{status:b,body:{error:a}}}function v(a){if(a.ok)return{status:200,body:a};let{status:b,...c}=a;return{status:b,body:c}}async function w(a,b=t){if(!s.includes(a.action))return u("unsupported conversation action",400);if(a.conversationId&&!a.conversationId.startsWith("conversation_"))return u("invalid conversation id",400);let c=b.registry(),d=a.conversationId?c.conversation(a.conversationId):null,e=a.transcriptPath?c.conversationForPath(a.transcriptPath):null;if(a.conversationId&&!d)return u("viewer conversation is unknown",404);if(d&&a.transcriptPath&&(!new Set([...d.generations.map(a=>a.path),...d.continuityPaths]).has(a.transcriptPath)||e?.id!==d.id))return u("conversation identity does not own transcript path",409);let f=d??e,g=d?.generations.at(-1)?.path??a.transcriptPath;if(b.structuredEnabled()){let c=await b.dispatchStructuredControl({path:g,conversationId:f?.id??a.conversationId,action:a.action,operationId:a.operationId});if(c)return c}if(!g)return u("conversationId or transcriptPath is required",400);if("interrupt"===a.action)return v(await b.interruptConversation(g));if("kill"===a.action){let a=await b.killConversation(g);return a.ok&&!a.target?v({ok:!1,outcome:"failed",error:"kill resolved no registered pane",status:409}):v(a)}return"resume"===a.action?v(await b.resumeConversation(g)):"compact"===a.action?v(await b.compactConversation(g)):v(await b.answerDialogKey(g,a.key??"",a.label,a.question))}}};
@@ -0,0 +1,2 @@
1
+ "use strict";exports.id=3386,exports.ids=[3386],exports.modules={30402:(a,b,c)=>{c.d(b,{ao:()=>p,rB:()=>s}),c(77598);var d=c(73024),e=c.n(d),f=c(91724),g=c(65154),h=c(2033);function i(){return(0,f.BQ)("reply-suggestions.json")}function j(a){return{schemaVersion:1,revision:0,updatedAt:a.toISOString(),sets:[],admissions:[]}}function k(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let{label:b,text:c}=a;return"string"==typeof b&&b.trim()&&"string"==typeof c&&c.trim()?{label:b,text:c}:null}function l(a){let b,c;if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.conversationId||!a.conversationId||"string"!=typeof a.setId||!a.setId||"string"!=typeof a.at||!Number.isFinite(Date.parse(a.at))||!Array.isArray(a.replies))return null;let d=a.replies.map(k).filter(a=>null!==a);return 0===d.length?null:{conversationId:a.conversationId,setId:a.setId,at:a.at,origin:{kind:"manager"===(c=(b=a.origin??{}).kind)||"gateway"===c||"agent"===c?c:"unidentified",conversationId:"string"==typeof b.conversationId?b.conversationId:null,role:"string"==typeof b.role?b.role:null},replies:d.slice(0,6)}}function m(a){return!a||"object"!=typeof a||Array.isArray(a)?null:"string"==typeof a.conversationId&&a.conversationId&&"string"==typeof a.key&&a.key&&"string"==typeof a.at&&Number.isFinite(Date.parse(a.at))?{conversationId:a.conversationId,key:a.key,at:a.at}:null}function n(a=i(),b=new Date){let c,d;try{c=e().readFileSync(a,"utf8")}catch{return j(b)}try{d=JSON.parse(c)}catch{return j(b)}return 1===d.schemaVersion&&Array.isArray(d.sets)?{schemaVersion:1,revision:Number.isInteger(d.revision)?d.revision:0,updatedAt:"string"==typeof d.updatedAt?d.updatedAt:b.toISOString(),sets:d.sets.map(l).filter(a=>null!==a),admissions:Array.isArray(d.admissions)?d.admissions.map(m).filter(a=>null!==a):[]}:j(b)}function o(a,b){let c=i();return(0,h.Ol)(c,"reply suggestions are busy",()=>{let d=n(c,b),e=a(d,b);return(e.sets||e.admissions)&&(0,g.f)(c,{schemaVersion:1,revision:d.revision+1,updatedAt:b.toISOString(),sets:(e.sets??d.sets).slice(-64),admissions:(e.admissions??d.admissions).slice(-128)}),e.result})}function p(a,b=i()){let c=r(a),d=n(b).sets.find(b=>b.conversationId===a)??null;if(!d||!c)return d;let e=Date.parse(d.at);return Number.isFinite(e)&&e>c.at?d:null}c(56809);let q=new Map;function r(a){let b=q.get(a);if(!b)return null;try{return!function(a,b={}){o(c=>{let d=c.sets.find(b=>b.conversationId===a)??null;if(!d)return{result:!1};if(void 0!==b.offeredAtOrBefore){let a=Date.parse(d.at);if(!Number.isFinite(a)||a>b.offeredAtOrBefore.getTime())return{result:!1}}return{sets:c.sets.filter(b=>b.conversationId!==a),result:!0}},b.now??new Date)}(a,{offeredAtOrBefore:new Date(b.at)}),q.delete(a),null}catch{return b}}function s(a,b,c=""){if(!a)return{cleared:!1,pending:!1};let d=c.trim().slice(0,128),e=r(a),f=e&&d&&e.key===d?new Date(e.at):b;try{return{cleared:o(b=>{let c=d?b.admissions.find(b=>b.conversationId===a&&b.key===d)??null:null,e=c?Date.parse(c.at):NaN,g=Number.isFinite(e)?e:f.getTime(),h=b.sets.find(b=>b.conversationId===a)??null,i=h?Date.parse(h.at):NaN,j=null!==h&&Number.isFinite(i)&&i<=g;return{...j?{sets:b.sets.filter(b=>b.conversationId!==a)}:{},...d&&!c?{admissions:[...b.admissions,{conversationId:a,key:d,at:new Date(g).toISOString()}]}:{},result:j}},new Date),pending:!1}}catch{for(let b of(q.set(a,{at:Math.max(f.getTime(),e?.at??-1/0),key:d}),q.keys())){if(q.size<=64)break;q.delete(b)}return{cleared:!1,pending:!0}}}},35961:(a,b,c)=>{c.d(b,{W:()=>g});var d=c(23211);let e=["localhost","127.0.0.1","::1"];function f(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 g(a){let b=new Set(e),c=process.env.LLV_TS_HOST;c&&b.add(f(c));let d=a.headers.get("host");if(null===d||!b.has(f(d)))return h();let g=a.headers.get("origin");if(null!==g){let a;try{a=new URL(g).host}catch{a=null}if(null===a||!b.has(f(a)))return h()}let i=a.headers.get("sec-fetch-site");return null!==i&&"same-origin"!==i&&"none"!==i?h():null}function h(){return d.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}},65154:(a,b,c)=>{c.d(b,{f:()=>j});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h);function j(a,b){g().mkdirSync(i().dirname(a),{recursive:!0});let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`),d=null;try{d=g().openSync(c,"wx",384),g().writeFileSync(d,`${JSON.stringify(b,null,2)}
2
+ `,"utf8"),g().fsyncSync(d),g().closeSync(d),d=null,g().renameSync(c,a);let e=g().openSync(i().dirname(a),"r");try{g().fsyncSync(e)}finally{g().closeSync(e)}}finally{null!==d&&g().closeSync(d),g().rmSync(c,{force:!0})}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=3558,exports.ids=[3558],exports.modules={9848:(a,b,c)=>{c.d(b,{y:()=>f});var d=c(58152),e=c(4837);function f(a,b){let c="string"==typeof b.model?b.model.trim():"",f="claude"===a?(0,e.OV)(c):(0,e.g9)(c)?c:null,g=e.cC[a].some(a=>a.id===f);if(!f||!g)return{error:`model is not supported by ${a}`};let h="string"==typeof b.effort?b.effort.trim():"";if(!(0,d.ve)(a,f)?.includes(h))return{error:`effort is not supported by ${a} model ${f}`};if("claude"===a&&void 0!==b.fast&&null!==b.fast)return{error:"speed is only supported by codex"};if("codex"===a&&"boolean"!=typeof b.fast)return{error:"speed must be selected for codex"};let i=void 0===b.accountId||null===b.accountId||""===b.accountId?void 0:"string"==typeof b.accountId?b.accountId.trim():"";return void 0===i||/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/.test(i)?{value:{model:f,effort:h,fast:"codex"===a?b.fast:null,...i?{accountId:i}:{}}}:{error:"account is invalid"}}},53558:(a,b,c)=>{c.d(b,{W:()=>h,applyConversationAction:()=>l});var d=c(29733),e=c(10167),f=c(50201),g=c(78181);let h=["interrupt","kill","resume","compact","dialog-key"],i={registry:d.agentRegistry,structuredEnabled:()=>(0,f.cM)(),dispatchStructuredControl:g.Z,interruptConversation:e.F5,killConversation:e.yv,resumeConversation:e.X$,compactConversation:e.LJ,answerDialogKey:e.m3};function j(a,b){return{status:b,body:{error:a}}}function k(a){if(a.ok)return{status:200,body:a};let{status:b,...c}=a;return{status:b,body:c}}async function l(a,b=i){if(!h.includes(a.action))return j("unsupported conversation action",400);if(a.conversationId&&!a.conversationId.startsWith("conversation_"))return j("invalid conversation id",400);let c=b.registry(),d=a.conversationId?c.conversation(a.conversationId):null,e=a.transcriptPath?c.conversationForPath(a.transcriptPath):null;if(a.conversationId&&!d)return j("viewer conversation is unknown",404);if(d&&a.transcriptPath&&(!new Set([...d.generations.map(a=>a.path),...d.continuityPaths]).has(a.transcriptPath)||e?.id!==d.id))return j("conversation identity does not own transcript path",409);let f=d??e,g=d?.generations.at(-1)?.path??a.transcriptPath;if(b.structuredEnabled()){let c=await b.dispatchStructuredControl({path:g,conversationId:f?.id??a.conversationId,action:a.action,operationId:a.operationId});if(c)return c}if(!g)return j("conversationId or transcriptPath is required",400);if("interrupt"===a.action)return k(await b.interruptConversation(g));if("kill"===a.action){let a=await b.killConversation(g);return a.ok&&!a.target?k({ok:!1,outcome:"failed",error:"kill resolved no registered pane",status:409}):k(a)}return"resume"===a.action?k(await b.resumeConversation(g)):"compact"===a.action?k(await b.compactConversation(g)):k(await b.answerDialogKey(g,a.key??"",a.label,a.question))}},78181:(a,b,c)=>{c.d(b,{Z:()=>p});var d=c(50201),e=c(29733),f=c(9848),g=c(78966),h=c(41617),i=c(48892),j=c(3127),k=c(63629),l=c(73789),m=c(38855),n=c(94292);let o=new Set(["interrupt","kill","reconfigure","compact"]);async function p(a,b={}){if(!a.action||!(b.enabled??(()=>(0,d.cM)()))())return null;let c=b.registry??(0,e.agentRegistry)(),q=a.path?c.conversationForPath(a.path):a.conversationId.startsWith("conversation_")?c.conversation(a.conversationId):null,r=q?.generations.at(-1);if(!q||!r)return null;let s=c.readOnlySnapshot(),t=s.entries[(0,i.pp)({engine:q.engine,sessionId:r.id})];if(!t)return null;let u="kill"===a.action&&!t.host,v="reconfigure"===a.action&&!t.host&&Object.values(s.receipts).some(a=>"structured"===a.transport&&"completed"===a.state&&c.canonicalConversationId(a.conversationId)===q.id),w="reconfigure"===a.action&&!t.host&&(q.reconfigure?.status==="applying"||v);if(!t.structuredHost&&!u&&!w)return null;if(!o.has(a.action)){if("resume"===a.action){if("dead"===t.status||"unhosted"===t.status)return null;try{if((b.hostProcessAlive??n.structuredHostProcessAlive)(t.structuredHost?.process??null)){if(!await (b.republish??l.A)({engine:q.engine,sessionId:r.id}))return{status:503,body:{error:"structured recovery ownership is unavailable"}};return{status:200,body:{ok:!0,structured:!0,target:q.id,outcome:"resumed",spawned:!1}}}let d=await (b.recover??n.recoverDeadStructuredConversation)({path:a.path||r.path,conversationId:q.id},{registry:c});if(!d)return{status:503,body:{error:"structured recovery ownership is unavailable"}};return{status:200,body:{ok:!0,structured:!0,target:q.id,outcome:"resumed",spawned:d.spawned}}}catch(a){return{status:503,body:{error:a instanceof Error?a.message:String(a)}}}}let d=["dialog-key","kill","reconfigure"].includes(a.action)?a.action:"requested";return{status:409,body:{error:`structured host does not support the ${d} control`}}}if("compact"===a.action){let a=(0,k.s_)(q.engine);if(!a.supported||t.structuredHost?.kind!=="codex-app-server")return{status:409,body:{error:a.reason??`the ${q.engine} structured host does not expose a compact control`,code:"unsupported-capability",capability:a}}}if(u&&!t.structuredHost?.process&&("dead"===t.status||"unhosted"===t.status))return{status:200,body:{ok:!0,structured:!0,target:q.id,outcome:"delivered"}};let x=void 0===b.client?(0,j.sS)():b.client;if(!x)return{status:503,body:{error:"structured runtime host is unavailable"}};let y=a.operationId??(b.operationId??k.Lu)();try{let c="reconfigure"===a.action?(0,f.y)(q.engine,a.reconfiguration??{}):null;if(c&&!c.value)return{status:400,body:{error:c.error??"invalid configuration"}};if(c?.value?.accountId&&!(b.accountExists??((a,b)=>("claude"===a?(0,g.Fn)():(0,h.Sq)()).some(a=>a.id===b)))(q.engine,c.value.accountId))return{status:400,body:{error:`account is not available for ${q.engine}`}};let d={engine:q.engine,sessionId:r.id},e="kill"===a.action?{kind:"kill",operationId:y,idempotencyKey:y,conversationId:q.id,sessionKey:d}:"compact"===a.action?{kind:"compact",operationId:y,idempotencyKey:y,conversationId:q.id,sessionKey:d}:"reconfigure"===a.action?{kind:"reconfigure",operationId:y,idempotencyKey:y,conversationId:q.id,sessionKey:d,...c.value,previousProfile:{model:r.launchProfile.model,effort:r.launchProfile.effort,fast:r.launchProfile.fast}}:{kind:"interrupt",operationId:y,idempotencyKey:y,conversationId:q.id,turnId:t.structuredHost?.activeTurnRef??null},i=await x.command(e);return(b.kick??m.l)(),{status:"delivered"===i.receipt.status?200:202,body:{ok:!0,structured:!0,target:q.id,operationId:y,receipt:i.receipt}}}catch(c){if(("kill"===a.action||"reconfigure"===a.action||"compact"===a.action)&&(0,j.o7)(c)){let a=await x.operationStatus(y).catch(()=>null);if(a)return(b.kick??m.l)(),{status:"delivered"===a.receipt.status?200:202,body:{ok:!0,structured:!0,target:q.id,operationId:a.operationId,receipt:a.receipt}}}return{status:503,body:{error:c instanceof Error?c.message:String(c)}}}}}};
1
+ "use strict";exports.id=3558,exports.ids=[3558],exports.modules={9848:(a,b,c)=>{c.d(b,{y:()=>f});var d=c(58152),e=c(4837);function f(a,b){let c="string"==typeof b.model?b.model.trim():"",f="claude"===a?(0,e.OV)(c):(0,e.g9)(c)?c:null,g=e.cC[a].some(a=>a.id===f);if(!f||!g)return{error:`model is not supported by ${a}`};let h="string"==typeof b.effort?b.effort.trim():"";if(!(0,d.ve)(a,f)?.includes(h))return{error:`effort is not supported by ${a} model ${f}`};if("claude"===a&&void 0!==b.fast&&null!==b.fast)return{error:"speed is only supported by codex"};if("codex"===a&&"boolean"!=typeof b.fast)return{error:"speed must be selected for codex"};let i=void 0===b.accountId||null===b.accountId||""===b.accountId?void 0:"string"==typeof b.accountId?b.accountId.trim():"";return void 0===i||/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/.test(i)?{value:{model:f,effort:h,fast:"codex"===a?b.fast:null,...i?{accountId:i}:{}}}:{error:"account is invalid"}}},53558:(a,b,c)=>{c.d(b,{W:()=>h,applyConversationAction:()=>l});var d=c(21872),e=c(10167),f=c(50201),g=c(78181);let h=["interrupt","kill","resume","compact","dialog-key"],i={registry:d.agentRegistry,structuredEnabled:()=>(0,f.cM)(),dispatchStructuredControl:g.Z,interruptConversation:e.F5,killConversation:e.yv,resumeConversation:e.X$,compactConversation:e.LJ,answerDialogKey:e.m3};function j(a,b){return{status:b,body:{error:a}}}function k(a){if(a.ok)return{status:200,body:a};let{status:b,...c}=a;return{status:b,body:c}}async function l(a,b=i){if(!h.includes(a.action))return j("unsupported conversation action",400);if(a.conversationId&&!a.conversationId.startsWith("conversation_"))return j("invalid conversation id",400);let c=b.registry(),d=a.conversationId?c.conversation(a.conversationId):null,e=a.transcriptPath?c.conversationForPath(a.transcriptPath):null;if(a.conversationId&&!d)return j("viewer conversation is unknown",404);if(d&&a.transcriptPath&&(!new Set([...d.generations.map(a=>a.path),...d.continuityPaths]).has(a.transcriptPath)||e?.id!==d.id))return j("conversation identity does not own transcript path",409);let f=d??e,g=d?.generations.at(-1)?.path??a.transcriptPath;if(b.structuredEnabled()){let c=await b.dispatchStructuredControl({path:g,conversationId:f?.id??a.conversationId,action:a.action,operationId:a.operationId});if(c)return c}if(!g)return j("conversationId or transcriptPath is required",400);if("interrupt"===a.action)return k(await b.interruptConversation(g));if("kill"===a.action){let a=await b.killConversation(g);return a.ok&&!a.target?k({ok:!1,outcome:"failed",error:"kill resolved no registered pane",status:409}):k(a)}return"resume"===a.action?k(await b.resumeConversation(g)):"compact"===a.action?k(await b.compactConversation(g)):k(await b.answerDialogKey(g,a.key??"",a.label,a.question))}},78181:(a,b,c)=>{c.d(b,{Z:()=>p});var d=c(50201),e=c(21872),f=c(9848),g=c(78966),h=c(41617),i=c(48892),j=c(3127),k=c(63629),l=c(73789),m=c(38855),n=c(94292);let o=new Set(["interrupt","kill","reconfigure","compact"]);async function p(a,b={}){if(!a.action||!(b.enabled??(()=>(0,d.cM)()))())return null;let c=b.registry??(0,e.agentRegistry)(),q=a.path?c.conversationForPath(a.path):a.conversationId.startsWith("conversation_")?c.conversation(a.conversationId):null,r=q?.generations.at(-1);if(!q||!r)return null;let s=c.readOnlySnapshot(),t=s.entries[(0,i.pp)({engine:q.engine,sessionId:r.id})];if(!t)return null;let u="kill"===a.action&&!t.host,v="reconfigure"===a.action&&!t.host&&Object.values(s.receipts).some(a=>"structured"===a.transport&&"completed"===a.state&&c.canonicalConversationId(a.conversationId)===q.id),w="reconfigure"===a.action&&!t.host&&(q.reconfigure?.status==="applying"||v);if(!t.structuredHost&&!u&&!w)return null;if(!o.has(a.action)){if("resume"===a.action){if("dead"===t.status||"unhosted"===t.status)return null;try{if((b.hostProcessAlive??n.structuredHostProcessAlive)(t.structuredHost?.process??null)){if(!await (b.republish??l.A)({engine:q.engine,sessionId:r.id}))return{status:503,body:{error:"structured recovery ownership is unavailable"}};return{status:200,body:{ok:!0,structured:!0,target:q.id,outcome:"resumed",spawned:!1}}}let d=await (b.recover??n.recoverDeadStructuredConversation)({path:a.path||r.path,conversationId:q.id},{registry:c});if(!d)return{status:503,body:{error:"structured recovery ownership is unavailable"}};return{status:200,body:{ok:!0,structured:!0,target:q.id,outcome:"resumed",spawned:d.spawned}}}catch(a){return{status:503,body:{error:a instanceof Error?a.message:String(a)}}}}let d=["dialog-key","kill","reconfigure"].includes(a.action)?a.action:"requested";return{status:409,body:{error:`structured host does not support the ${d} control`}}}if("compact"===a.action){let a=(0,k.s_)(q.engine),b=t.structuredHost?.kind;if(!a.supported||"codex-app-server"!==b&&"claude-broker"!==b)return{status:409,body:{error:a.reason??`the ${q.engine} structured host does not expose a compact control`,code:"unsupported-capability",capability:a}}}if(u&&!t.structuredHost?.process&&("dead"===t.status||"unhosted"===t.status))return{status:200,body:{ok:!0,structured:!0,target:q.id,outcome:"delivered"}};let x=void 0===b.client?(0,j.sS)():b.client;if(!x)return{status:503,body:{error:"structured runtime host is unavailable"}};let y=a.operationId??(b.operationId??k.Lu)();try{let c="reconfigure"===a.action?(0,f.y)(q.engine,a.reconfiguration??{}):null;if(c&&!c.value)return{status:400,body:{error:c.error??"invalid configuration"}};if(c?.value?.accountId&&!(b.accountExists??((a,b)=>("claude"===a?(0,g.Fn)():(0,h.Sq)()).some(a=>a.id===b)))(q.engine,c.value.accountId))return{status:400,body:{error:`account is not available for ${q.engine}`}};let d={engine:q.engine,sessionId:r.id},e="kill"===a.action?{kind:"kill",operationId:y,idempotencyKey:y,conversationId:q.id,sessionKey:d}:"compact"===a.action?{kind:"compact",operationId:y,idempotencyKey:y,conversationId:q.id,sessionKey:d}:"reconfigure"===a.action?{kind:"reconfigure",operationId:y,idempotencyKey:y,conversationId:q.id,sessionKey:d,...c.value,previousProfile:{model:r.launchProfile.model,effort:r.launchProfile.effort,fast:r.launchProfile.fast}}:{kind:"interrupt",operationId:y,idempotencyKey:y,conversationId:q.id,turnId:t.structuredHost?.activeTurnRef??null},i=await x.command(e);return(b.kick??m.l)(),{status:"delivered"===i.receipt.status?200:202,body:{ok:!0,structured:!0,target:q.id,operationId:y,receipt:i.receipt}}}catch(c){if(("kill"===a.action||"reconfigure"===a.action||"compact"===a.action)&&(0,j.o7)(c)){let a=await x.operationStatus(y).catch(()=>null);if(a)return(b.kick??m.l)(),{status:"delivered"===a.receipt.status?200:202,body:{ok:!0,structured:!0,target:q.id,operationId:a.operationId,receipt:a.receipt}}}return{status:503,body:{error:c instanceof Error?c.message:String(c)}}}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=3587,exports.ids=[3587],exports.modules={3587:(a,b,c)=>{c.d(b,{WH:()=>F,C9:()=>Q,aM:()=>X,pA:()=>U,jk:()=>T,cw:()=>V,L5:()=>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(91724),k=c(59683),l=c(89940);let m="viewMode",n="taskPanelOpen",o="path:",p=a=>`${o}${a}`,q=a=>`favorite:${a}`,r=a=>`fold:${a}`,s=a=>`tray:${a}`;function t(a,b){let c=new Set,d=a;for(;void 0!==b[d]&&!c.has(d);)c.add(d),d=b[d];return d}function u(a,b){return a.startsWith(o)?p(t(a.slice(o.length),b)):a}let v={absent:0,manual:1,pinned:2,expanded:3,hidden:4};function w(a,b){let c=new Map,d=(a,d)=>{let e=t(a,b),f=c.get(e);(void 0===f||(v[d]??0)>(v[f]??0))&&c.set(e,d)};for(let b of a.prefs.hidden)d(b,"hidden");for(let b of a.prefs.expanded)d(b,"expanded");for(let b of a.prefs.manual)d(b,(a.explicitManual??[]).includes(b)?"pinned":"manual");return c}function x(a,b){let c=new Set(a??[]),d=new Set(b??[]);return[...new Set([...c,...d])].filter(a=>c.has(a)!==d.has(a))}function y(a){return[...new Set(a)]}function z(a){return a.pathAliases??{}}function A(a,b){let c=new Set,d=a;for(;void 0!==b[d];){if(c.has(d))throw Error("board path alias cycle");c.add(d),d=b[d]}return d}function B(a,b=z(a)){let c=function(a){let b={};for(let c of Object.keys(a)){let d=A(c,a);c!==d&&(b[c]=d)}return b}(b),d=y(a.prefs.hidden.map(a=>A(a,c))),e=new Set(d),f=a=>y(a.map(a=>A(a,c)).filter(a=>!e.has(a))),g=f(a.prefs.manual),h=new Set(g);return{...a,pathAliases:c,explicitManual:f(a.explicitManual??[]).filter(a=>h.has(a)),prefs:{...a.prefs,manual:g,hidden:d,expanded:f(a.prefs.expanded),favorites:y(a.prefs.favorites??[]),foldedEngineChildIds:y(a.prefs.foldedEngineChildIds??[]),expandedEngineTrayParentIds:y(a.prefs.expandedEngineTrayParentIds??[])}}}function C(a,b){var c;let d,e,f,g=B(a);for(let a of b){if("remap-paths"===a.kind){g=function(a,b,c=!1){let d=z(a),e=b.filter(({from:a,to:b})=>A(a,d)!==A(b,d));if(0===e.length)return B(a);let f=new Set(b.map(({from:a})=>A(a,d))),g=new Set(e.map(({to:a})=>A(a,d))),h=a=>{if(c)return!0;let b=A(a,d);return!g.has(b)||f.has(b)},i=a.prefs.manual.filter(h),j=(a.explicitManual??[]).filter(h),k={...d};for(let{from:a,to:b}of e)k[a]=b;return B({...a,explicitManual:j,prefs:{...a.prefs,manual:i}},k)}(g,a.pairs,a.targetPlacementAuthoritative);continue}if("reconcile-roots"===a.kind){g=function(a,b,c){let d=z(a),e=new Set(c.map(a=>A(a,d))),f=a.prefs.manual.filter(a=>!e.has(a)),g=(a.explicitManual??[]).filter(a=>!e.has(a)),h=new Set([...f,...a.prefs.hidden,...Object.values(d).map(a=>A(a,d))]);for(let a of b.map(a=>A(a,d)))h.has(a)||(f.push(a),h.add(a));return B({...a,explicitManual:g,prefs:{...a.prefs,manual:f}})}(g,a.roots,a.removeManual);continue}if("restore"===a.kind){g=function(a,b,c){let d={...a.prefs,hidden:a.prefs.hidden.filter(a=>a!==b)},e=(a.explicitManual??[]).filter(a=>a!==b);if("auto"===c)return B({...a,explicitManual:e,prefs:d});let f={...d,manual:d.manual.filter(a=>a!==b),expanded:d.expanded.filter(a=>a!==b)};return B({...a,explicitManual:"manual"===c?[...e,b]:e,prefs:"manual"===c?{...f,manual:[...f.manual,b]}:{...f,expanded:[...f.expanded,b]}})}(g,A(a.path,z(g)),a.placement);continue}if("set-favorite"===a.kind){let b=a.favorite?y([...g.prefs.favorites,a.id]):g.prefs.favorites.filter(b=>b!==a.id);g=B({...g,prefs:{...g.prefs,favorites:b}});continue}if("set-engine-child-fold"===a.kind){let b=g.prefs.foldedEngineChildIds??[],c=a.folded?y([...b,a.id]):b.filter(b=>b!==a.id),d=A(a.path,z(g));g=B({...g,explicitManual:a.folded?(g.explicitManual??[]).filter(a=>a!==d):g.explicitManual,prefs:{...g.prefs,foldedEngineChildIds:c,manual:a.folded?g.prefs.manual.filter(a=>a!==d):g.prefs.manual,expanded:a.folded?g.prefs.expanded.filter(a=>a!==d):g.prefs.expanded}});continue}if("set-engine-tray-expanded"===a.kind){let b=g.prefs.expandedEngineTrayParentIds??[],c=a.expanded?y([...b,a.parentId]):b.filter(b=>b!==a.parentId);g=B({...g,prefs:{...g.prefs,expandedEngineTrayParentIds:c}});continue}if("set-presentation"===a.kind){g=B({...g,prefs:{...g.prefs,...void 0===a.viewMode?{}:{viewMode:a.viewMode},...void 0===a.taskPanelOpen?{}:{taskPanelOpen:a.taskPanelOpen}}});continue}let b=A(a.path,z(g));g=B({...g,explicitManual:(g.explicitManual??[]).filter(a=>a!==b),prefs:{...g.prefs,manual:g.prefs.manual.filter(a=>a!==b),expanded:g.prefs.expanded.filter(a=>a!==b),hidden:y([...g.prefs.hidden,b])}})}return d=z(c=g),e=new Set(c.prefs.hidden.map(a=>A(a,d))),f=a.prefs.hidden.filter(a=>e.has(A(a,d))),{...c,prefs:{...c.prefs,hidden:y([...f,...c.prefs.hidden])}}}let D=(0,j.BQ)("board.json"),E={manual:[],hidden:[],expanded:[],favorites:[],foldedEngineChildIds:[],expandedEngineTrayParentIds:[],viewMode:null,taskPanelOpen:!1};class F extends Error{constructor(a="board state unavailable"){super(a)}}function G(a){return Array.isArray(a)&&a.every(a=>"string"==typeof a)}function H(a){var b,c;if(!a||"object"!=typeof a||Array.isArray(a))return!1;let d=a.prefs;return 1===a.schemaVersion&&Number.isInteger(a.revision)&&a.revision>=0&&"string"==typeof a.updatedAt&&!!d&&G(d.manual)&&G(d.hidden)&&G(d.expanded)&&(void 0===d.favorites||G(d.favorites))&&(void 0===d.foldedEngineChildIds||G(d.foldedEngineChildIds))&&(void 0===d.expandedEngineTrayParentIds||G(d.expandedEngineTrayParentIds))&&(void 0===a.explicitManual||G(a.explicitManual))&&(void 0===a.pathAliases||!(!(b=a.pathAliases)||"object"!=typeof b||Array.isArray(b))&&Object.values(b).every(a=>"string"==typeof a))&&(void 0===a.keyRevisions||!(!(c=a.keyRevisions)||"object"!=typeof c||Array.isArray(c))&&Object.values(c).every(a=>Number.isInteger(a)&&a>=0))&&(void 0===a.keyRevisionFloor||Number.isInteger(a.keyRevisionFloor)&&a.keyRevisionFloor>=0)&&(null===d.viewMode||"scheme"===d.viewMode||"list"===d.viewMode)&&"boolean"==typeof d.taskPanelOpen}function I(){return{schemaVersion:1,revision:0,updatedAt:new Date(0).toISOString(),pathAliases:{},explicitManual:[],keyRevisions:{},keyRevisionFloor:0,prefs:{...E,manual:[],hidden:[],expanded:[]}}}function J(a,b,c,d=[]){return{...b,schemaVersion:1,revision:c,updatedAt:new Date().toISOString(),pathAliases:b.pathAliases??{},...function(a,b,c,d=[]){let e=b.pathAliases??{},f={};for(let b of[a,...d])for(let[a,c]of Object.entries(b.keyRevisions??{})){let b=u(a,e);f[b]=Math.max(f[b]??0,c)}for(let d of function(a,b){let c=new Set,d=b.pathAliases??{},e=w(a,d),f=w(b,d);for(let a of new Set([...e.keys(),...f.keys()]))(e.get(a)??"absent")!==(f.get(a)??"absent")&&c.add(p(a));for(let d of x(a.prefs.favorites,b.prefs.favorites))c.add(q(d));for(let d of x(a.prefs.foldedEngineChildIds,b.prefs.foldedEngineChildIds))c.add(r(d));for(let d of x(a.prefs.expandedEngineTrayParentIds,b.prefs.expandedEngineTrayParentIds))c.add(s(d));return a.prefs.viewMode!==b.prefs.viewMode&&c.add(m),a.prefs.taskPanelOpen!==b.prefs.taskPanelOpen&&c.add(n),c}(a,b))f[d]=c;let g=function(a){let b=a.pathAliases??{},c=new Set([m,n]);for(let d of w(a,b).keys())c.add(p(d));for(let b of a.prefs.favorites??[])c.add(q(b));for(let b of a.prefs.foldedEngineChildIds??[])c.add(r(b));for(let b of a.prefs.expandedEngineTrayParentIds??[])c.add(s(b));return c}(b),h={},i=[];for(let[a,b]of Object.entries(f))g.has(a)?h[a]=b:i.push([a,b]);i.sort((a,b)=>b[1]-a[1]||a[0].localeCompare(b[0]));let j=Math.max(a.keyRevisionFloor??0,...d.map(a=>a.keyRevisionFloor??0));for(let[a,b]of i.slice(0,512))h[a]=b;for(let[,a]of i.slice(512))j=Math.max(j,a);for(let[a,b]of Object.entries(h))!g.has(a)&&b<=j&&delete h[a];return{keyRevisions:h,keyRevisionFloor:j}}(a,b,c,d)}}function K(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"));if(!b||"object"!=typeof b.projects||null===b.projects||Array.isArray(b.projects))throw new F("invalid board state");if(!Object.values(b.projects).every(H))throw new F("invalid board project state");return{projects:Object.fromEntries(Object.entries(b.projects).map(([a,b])=>[a,{...b,pathAliases:b.pathAliases??{},explicitManual:b.explicitManual??b.prefs.manual,keyRevisions:function(a,b){let c={};for(let[d,e]of Object.entries(a)){let a=u(d,b);c[a]=Math.max(c[a]??0,e)}return c}(b.keyRevisions??{},b.pathAliases??{}),keyRevisionFloor:b.keyRevisionFloor??0,prefs:{...b.prefs,favorites:b.prefs.favorites??[],foldedEngineChildIds:b.prefs.foldedEngineChildIds??[],expandedEngineTrayParentIds:b.prefs.expandedEngineTrayParentIds??[]}}]))}}catch(a){if("ENOENT"===a.code)return{projects:{}};if(a instanceof F)throw a;throw new F}}function L(a,b){g().mkdirSync(i().dirname(b),{recursive:!0});let c=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`),d=null;try{d=g().openSync(c,"wx",384),g().writeFileSync(d,JSON.stringify(a,null,2)+"\n","utf8"),g().fsyncSync(d),g().closeSync(d),d=null,g().renameSync(c,b);let e=g().openSync(i().dirname(b),"r");try{g().fsyncSync(e)}finally{g().closeSync(e)}}finally{null!==d&&g().closeSync(d),g().rmSync(c,{force:!0})}}function M(a){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,a)}function N(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){let c,d="string"==typeof b.startIdentity?b.startIdentity:null;return!k.B.pidAlive(b.pid)||(null!==d?(c=k.B.processIdentity(b.pid),null!==c&&c!==d):Date.now()-g().statSync(a).mtimeMs>3e4)}return Date.now()-g().statSync(a).mtimeMs>3e4}catch{try{return Date.now()-g().statSync(a).mtimeMs>3e4}catch{return!1}}}function O(a,b){try{JSON.parse(g().readFileSync(a,"utf8")).token===b&&g().rmSync(a,{force:!0})}catch{}}function P(a,b){let c=`${a}.write-lock`,d=`${a}.write-locks`;g().mkdirSync(d,{recursive:!0,mode:448});let f={pid:process.pid,startIdentity:k.B.processIdentity(process.pid),token:e().randomUUID()},h=i().join(d,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${e().randomUUID()}.json`);g().writeFileSync(h,JSON.stringify(f),{encoding:"utf8",flag:"wx",mode:384});try{for(let a=0;a<1e3;a+=1){let a,e=[];for(let a of g().readdirSync(d).filter(a=>a.endsWith(".json")).sort()){let b=i().join(d,a);if(N(b)){g().rmSync(b,{force:!0});continue}g().existsSync(b)&&e.push(b)}if(e[0]!==h){M(5);continue}try{a=g().openSync(c,"wx",384)}catch(a){if("EEXIST"!==a.code)throw a;N(c)&&g().rmSync(c,{force:!0}),M(5);continue}try{return g().writeFileSync(a,JSON.stringify(f),"utf8"),g().fsyncSync(a),b()}finally{g().closeSync(a),O(c,f.token)}}throw new F("board state is busy")}finally{O(h,f.token)}}function Q(a,b=D){return K(b).projects[(0,l.G$)(a)]??I()}function R(a,b){return JSON.stringify({prefs:a.prefs,pathAliases:a.pathAliases??{},explicitManual:a.explicitManual??[]})===JSON.stringify({prefs:b.prefs,pathAliases:b.pathAliases??{},explicitManual:b.explicitManual??[]})}function S(a,b,c,d){return P(d,()=>{let e=K(d),f=e.projects[a]??I(),g=c(f);if(R(f,g))return{ok:!0,applied:!1,board:f};if(f.revision!==b)return{ok:!1,board:f};let h=J(f,g,f.revision+1);return e.projects[a]=h,L(e,d),{ok:!0,applied:!0,board:h}})}function T(a,b,c,d=D){return S((0,l.G$)(a),b,a=>{let b;return b=void 0===c.hidden?a.prefs.hidden:[...new Set([...a.prefs.hidden,...c.hidden])],C({...a,explicitManual:void 0===c.manual?a.explicitManual:c.manual,prefs:{...a.prefs,...c,hidden:b}},[])},d)}function U(a,b,c,d=D){return S((0,l.G$)(a),b,a=>C(a,c),d)}function V(a,b,c={}){var d,e;let f=c.filePath??null??D;return d=(0,l.G$)(a),e=a=>{if(0===b.length||b.every(({from:b,to:c})=>a.pathAliases?.[b]===c))return a;let d=c.provisionalManual?.filter(b=>a.pathAliases?.[b]===void 0&&a.prefs.manual.includes(b))??[],e=[];return d.length&&e.push({kind:"reconcile-roots",roots:[],removeManual:d}),e.push({kind:"remap-paths",pairs:b,targetPlacementAuthoritative:c.targetPlacementAuthoritative}),C(a,e)},P(f,()=>{let a=K(f),b=a.projects[d]??I(),c=e(b);if(R(b,c))return b;let g=J(b,c,b.revision+1);return a.projects[d]=g,L(a,f),g})}function W(a,b=D){0!==a.length&&P(b,()=>{let c=K(b),d=!1;for(let b of a){if(b.fromProject===b.toProject)continue;let a=c.projects[b.fromProject];if(!a)continue;let e=C(a,[]),f=C(c.projects[b.toProject]??I(),[]);for(let a of[...new Set(b.paths)]){let b=Object.entries(e.pathAliases??{}).filter(([,b])=>b===a);if(b.length>0&&(f=C({...f,pathAliases:{...f.pathAliases??{},...Object.fromEntries(b)}},[])),!(e.prefs.hidden.includes(a)||e.prefs.expanded.includes(a)||e.prefs.manual.includes(a))&&0===b.length)continue;let c=e.prefs.hidden.includes(a)?"hidden":e.prefs.expanded.includes(a)?"expanded":e.prefs.manual.includes(a)?"manual":"auto",d=f.prefs.hidden.includes(a)?"hidden":f.prefs.expanded.includes(a)?"expanded":f.prefs.manual.includes(a)?"manual":"auto",g="hidden"===c||"hidden"===d?"hidden":"auto"!==d?d:c,h=(e.explicitManual??[]).includes(a)||(f.explicitManual??[]).includes(a);e={...e,explicitManual:(e.explicitManual??[]).filter(b=>b!==a),pathAliases:Object.fromEntries(Object.entries(e.pathAliases??{}).filter(([,b])=>b!==a)),prefs:{...e.prefs,manual:e.prefs.manual.filter(b=>b!==a),hidden:e.prefs.hidden.filter(b=>b!==a),expanded:e.prefs.expanded.filter(b=>b!==a)}};let i={...f.prefs,manual:f.prefs.manual.filter(b=>b!==a),hidden:f.prefs.hidden.filter(b=>b!==a),expanded:f.prefs.expanded.filter(b=>b!==a)};f={...f,explicitManual:"manual"===g&&h?[...(f.explicitManual??[]).filter(b=>b!==a),a]:(f.explicitManual??[]).filter(b=>b!==a),prefs:"hidden"===g?{...i,hidden:[...i.hidden,a]}:"expanded"===g?{...i,expanded:[...i.expanded,a]}:"manual"===g?{...i,manual:[...i.manual,a]}:i}}R(a,e)||(c.projects[b.fromProject]=J(a,e,a.revision+1),d=!0);let g=c.projects[b.toProject]??I();R(g,f)||(c.projects[b.toProject]=J(g,f,g.revision+1),d=!0)}d&&L(c,b)})}function X(a,b=(0,j.BQ)("board.json")){return 0===a.size||P(b,()=>{let c=K(b),d=!1,e=!0,f=new Map;for(let[b,c]of a)b!==c&&f.set(c,[...f.get(c)??[],b]);for(let[a,b]of f){let f=b.flatMap(a=>c.projects[a]?[c.projects[a]]:[]);if(0===f.length)continue;let g=c.projects[a];if(!g&&1===f.length){for(let d of(c.projects[a]=f[0],b))delete c.projects[d];d=!0;continue}try{let e=g?[g,...f]:f,h=function(a){let b=a.map((a,b)=>({state:a,index:b,timestamp:Date.parse(a.updatedAt)})).sort((a,b)=>(Number.isFinite(a.timestamp)?a.timestamp:0)-(Number.isFinite(b.timestamp)?b.timestamp:0)||a.index-b.index).map(({state:a})=>a),c=b.reduce((a,b)=>({...a,...b.pathAliases??{}}),{}),d=new Map,e=null,f=!1,g=c;for(let a of b){let b=C({...a,pathAliases:c},[]);for(let a of(g=b.pathAliases??{},["manual","hidden","expanded"]))for(let c of b.prefs[a])d.delete(c),d.set(c,a);e=b.prefs.viewMode,f=b.prefs.taskPanelOpen}let h={manual:[],hidden:[],expanded:[],favorites:[...new Set(b.flatMap(a=>a.prefs.favorites??[]))],foldedEngineChildIds:[...new Set(b.flatMap(a=>a.prefs.foldedEngineChildIds??[]))],expandedEngineTrayParentIds:[...new Set(b.flatMap(a=>a.prefs.expandedEngineTrayParentIds??[]))],viewMode:e,taskPanelOpen:f};for(let[a,b]of d)h[b].push(a);let i=new Set(h.manual),j=[...new Set(b.flatMap(a=>a.explicitManual??[]))].map(a=>g[a]??a).filter(a=>i.has(a));return{...b.at(-1),pathAliases:g,explicitManual:j,prefs:h}}(e),i=J(g??I(),h,Math.max(...e.map(a=>a.revision))+1,f);for(let d of(c.projects[a]=g&&R(g,i)&&JSON.stringify({keys:g.keyRevisions??{},floor:g.keyRevisionFloor??0})===JSON.stringify({keys:i.keyRevisions??{},floor:i.keyRevisionFloor??0})?g:i,b))delete c.projects[d];d=!0}catch{e=!1;continue}}return d&&L(c,b),e})}}};
1
+ "use strict";exports.id=3587,exports.ids=[3587],exports.modules={3587:(a,b,c)=>{c.d(b,{WH:()=>H,C9:()=>S,aM:()=>Z,pA:()=>W,jk:()=>V,cw:()=>X,L5:()=>Y});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(59683),l=c(89940),m=c(33839);let n="viewMode",o="taskPanelOpen",p="idleCollapseMinutes",q="path:",r=a=>`${q}${a}`,s=a=>`favorite:${a}`,t=a=>`fold:${a}`,u=a=>`tray:${a}`;function v(a,b){let c=new Set,d=a;for(;void 0!==b[d]&&!c.has(d);)c.add(d),d=b[d];return d}function w(a,b){return a.startsWith(q)?r(v(a.slice(q.length),b)):a}let x={absent:0,manual:1,pinned:2,expanded:3,hidden:4};function y(a,b){let c=new Map,d=(a,d)=>{let e=v(a,b),f=c.get(e);(void 0===f||(x[d]??0)>(x[f]??0))&&c.set(e,d)};for(let b of a.prefs.hidden)d(b,"hidden");for(let b of a.prefs.expanded)d(b,"expanded");for(let b of a.prefs.manual)d(b,(a.explicitManual??[]).includes(b)?"pinned":"manual");return c}function z(a,b){let c=new Set(a??[]),d=new Set(b??[]);return[...new Set([...c,...d])].filter(a=>c.has(a)!==d.has(a))}function A(a){return[...new Set(a)]}function B(a){return a.pathAliases??{}}function C(a,b){let c=new Set,d=a;for(;void 0!==b[d];){if(c.has(d))throw Error("board path alias cycle");c.add(d),d=b[d]}return d}function D(a,b=B(a)){let c=function(a){let b={};for(let c of Object.keys(a)){let d=C(c,a);c!==d&&(b[c]=d)}return b}(b),d=A(a.prefs.hidden.map(a=>C(a,c))),e=new Set(d),f=a=>A(a.map(a=>C(a,c)).filter(a=>!e.has(a))),g=f(a.prefs.manual),h=new Set(g);return{...a,pathAliases:c,explicitManual:f(a.explicitManual??[]).filter(a=>h.has(a)),prefs:{...a.prefs,manual:g,hidden:d,expanded:f(a.prefs.expanded),favorites:A(a.prefs.favorites??[]),foldedEngineChildIds:A(a.prefs.foldedEngineChildIds??[]),expandedEngineTrayParentIds:A(a.prefs.expandedEngineTrayParentIds??[]),seenAt:Object.fromEntries(Object.entries(a.prefs.seenAt??{}).sort((a,b)=>b[1]-a[1]).slice(0,512)),idleCollapseMinutes:void 0===a.prefs.idleCollapseMinutes?m.i:a.prefs.idleCollapseMinutes}}}function E(a,b){var c;let d,e,f,g=D(a);for(let a of b){if("remap-paths"===a.kind){g=function(a,b,c=!1){let d=B(a),e=b.filter(({from:a,to:b})=>C(a,d)!==C(b,d));if(0===e.length)return D(a);let f=new Set(b.map(({from:a})=>C(a,d))),g=new Set(e.map(({to:a})=>C(a,d))),h=a=>{if(c)return!0;let b=C(a,d);return!g.has(b)||f.has(b)},i=a.prefs.manual.filter(h),j=(a.explicitManual??[]).filter(h),k={...d};for(let{from:a,to:b}of e)k[a]=b;return D({...a,explicitManual:j,prefs:{...a.prefs,manual:i}},k)}(g,a.pairs,a.targetPlacementAuthoritative);continue}if("reconcile-roots"===a.kind){g=function(a,b,c){let d=B(a),e=new Set(c.map(a=>C(a,d))),f=a.prefs.manual.filter(a=>!e.has(a)),g=(a.explicitManual??[]).filter(a=>!e.has(a)),h=new Set([...f,...a.prefs.hidden,...Object.values(d).map(a=>C(a,d))]);for(let a of b.map(a=>C(a,d)))h.has(a)||(f.push(a),h.add(a));return D({...a,explicitManual:g,prefs:{...a.prefs,manual:f}})}(g,a.roots,a.removeManual);continue}if("restore"===a.kind){g=function(a,b,c){let d={...a.prefs,hidden:a.prefs.hidden.filter(a=>a!==b)},e=(a.explicitManual??[]).filter(a=>a!==b);if("auto"===c)return D({...a,explicitManual:e,prefs:d});let f={...d,manual:d.manual.filter(a=>a!==b),expanded:d.expanded.filter(a=>a!==b)};return D({...a,explicitManual:"manual"===c?[...e,b]:e,prefs:"manual"===c?{...f,manual:[...f.manual,b]}:{...f,expanded:[...f.expanded,b]}})}(g,C(a.path,B(g)),a.placement);continue}if("set-favorite"===a.kind){let b=a.favorite?A([...g.prefs.favorites,a.id]):g.prefs.favorites.filter(b=>b!==a.id);g=D({...g,prefs:{...g.prefs,favorites:b}});continue}if("mark-seen"===a.kind){let b=g.prefs.seenAt??{},c=Math.max(b[a.id]??0,Math.floor(a.at));g=D({...g,prefs:{...g.prefs,seenAt:{...b,[a.id]:c}}});continue}if("set-engine-child-fold"===a.kind){let b=g.prefs.foldedEngineChildIds??[],c=a.folded?A([...b,a.id]):b.filter(b=>b!==a.id),d=C(a.path,B(g));g=D({...g,explicitManual:a.folded?(g.explicitManual??[]).filter(a=>a!==d):g.explicitManual,prefs:{...g.prefs,foldedEngineChildIds:c,manual:a.folded?g.prefs.manual.filter(a=>a!==d):g.prefs.manual,expanded:a.folded?g.prefs.expanded.filter(a=>a!==d):g.prefs.expanded}});continue}if("set-engine-tray-expanded"===a.kind){let b=g.prefs.expandedEngineTrayParentIds??[],c=a.expanded?A([...b,a.parentId]):b.filter(b=>b!==a.parentId);g=D({...g,prefs:{...g.prefs,expandedEngineTrayParentIds:c}});continue}if("set-presentation"===a.kind){g=D({...g,prefs:{...g.prefs,...void 0===a.viewMode?{}:{viewMode:a.viewMode},...void 0===a.taskPanelOpen?{}:{taskPanelOpen:a.taskPanelOpen},...void 0===a.idleCollapseMinutes?{}:{idleCollapseMinutes:a.idleCollapseMinutes}}});continue}let b=C(a.path,B(g));g=D({...g,explicitManual:(g.explicitManual??[]).filter(a=>a!==b),prefs:{...g.prefs,manual:g.prefs.manual.filter(a=>a!==b),expanded:g.prefs.expanded.filter(a=>a!==b),hidden:A([...g.prefs.hidden,b])}})}return d=B(c=g),e=new Set(c.prefs.hidden.map(a=>C(a,d))),f=a.prefs.hidden.filter(a=>e.has(C(a,d))),{...c,prefs:{...c.prefs,hidden:A([...f,...c.prefs.hidden])}}}let F=(0,j.BQ)("board.json"),G={manual:[],hidden:[],expanded:[],favorites:[],foldedEngineChildIds:[],expandedEngineTrayParentIds:[],seenAt:{},idleCollapseMinutes:m.i,viewMode:null,taskPanelOpen:!1};class H extends Error{constructor(a="board state unavailable"){super(a)}}function I(a){return Array.isArray(a)&&a.every(a=>"string"==typeof a)}function J(a){var b,c,d;if(!a||"object"!=typeof a||Array.isArray(a))return!1;let e=a.prefs;return 1===a.schemaVersion&&Number.isInteger(a.revision)&&a.revision>=0&&"string"==typeof a.updatedAt&&!!e&&I(e.manual)&&I(e.hidden)&&I(e.expanded)&&(void 0===e.favorites||I(e.favorites))&&(void 0===e.foldedEngineChildIds||I(e.foldedEngineChildIds))&&(void 0===e.expandedEngineTrayParentIds||I(e.expandedEngineTrayParentIds))&&(void 0===e.seenAt||!(!(b=e.seenAt)||"object"!=typeof b||Array.isArray(b))&&Object.values(b).every(a=>"number"==typeof a&&Number.isFinite(a)&&a>=0))&&(void 0===e.idleCollapseMinutes||null===e.idleCollapseMinutes||Number.isInteger(e.idleCollapseMinutes)&&e.idleCollapseMinutes>0&&e.idleCollapseMinutes<=m.d)&&(void 0===a.explicitManual||I(a.explicitManual))&&(void 0===a.pathAliases||!(!(c=a.pathAliases)||"object"!=typeof c||Array.isArray(c))&&Object.values(c).every(a=>"string"==typeof a))&&(void 0===a.keyRevisions||!(!(d=a.keyRevisions)||"object"!=typeof d||Array.isArray(d))&&Object.values(d).every(a=>Number.isInteger(a)&&a>=0))&&(void 0===a.keyRevisionFloor||Number.isInteger(a.keyRevisionFloor)&&a.keyRevisionFloor>=0)&&(null===e.viewMode||"scheme"===e.viewMode||"list"===e.viewMode)&&"boolean"==typeof e.taskPanelOpen}function K(){return{schemaVersion:1,revision:0,updatedAt:new Date(0).toISOString(),pathAliases:{},explicitManual:[],keyRevisions:{},keyRevisionFloor:0,prefs:{...G,manual:[],hidden:[],expanded:[]}}}function L(a,b,c,d=[]){return{...b,schemaVersion:1,revision:c,updatedAt:new Date().toISOString(),pathAliases:b.pathAliases??{},...function(a,b,c,d=[]){let e=b.pathAliases??{},f={};for(let b of[a,...d])for(let[a,c]of Object.entries(b.keyRevisions??{})){let b=w(a,e);f[b]=Math.max(f[b]??0,c)}for(let d of function(a,b){let c=new Set,d=b.pathAliases??{},e=y(a,d),f=y(b,d);for(let a of new Set([...e.keys(),...f.keys()]))(e.get(a)??"absent")!==(f.get(a)??"absent")&&c.add(r(a));for(let d of z(a.prefs.favorites,b.prefs.favorites))c.add(s(d));for(let d of z(a.prefs.foldedEngineChildIds,b.prefs.foldedEngineChildIds))c.add(t(d));for(let d of z(a.prefs.expandedEngineTrayParentIds,b.prefs.expandedEngineTrayParentIds))c.add(u(d));return a.prefs.viewMode!==b.prefs.viewMode&&c.add(n),a.prefs.taskPanelOpen!==b.prefs.taskPanelOpen&&c.add(o),(void 0===a.prefs.idleCollapseMinutes?m.i:a.prefs.idleCollapseMinutes)!==(void 0===b.prefs.idleCollapseMinutes?m.i:b.prefs.idleCollapseMinutes)&&c.add(p),c}(a,b))f[d]=c;let g=function(a){let b=a.pathAliases??{},c=new Set([n,o,p]);for(let d of y(a,b).keys())c.add(r(d));for(let b of a.prefs.favorites??[])c.add(s(b));for(let b of a.prefs.foldedEngineChildIds??[])c.add(t(b));for(let b of a.prefs.expandedEngineTrayParentIds??[])c.add(u(b));return c}(b),h={},i=[];for(let[a,b]of Object.entries(f))g.has(a)?h[a]=b:i.push([a,b]);i.sort((a,b)=>b[1]-a[1]||a[0].localeCompare(b[0]));let j=Math.max(a.keyRevisionFloor??0,...d.map(a=>a.keyRevisionFloor??0));for(let[a,b]of i.slice(0,512))h[a]=b;for(let[,a]of i.slice(512))j=Math.max(j,a);for(let[a,b]of Object.entries(h))!g.has(a)&&b<=j&&delete h[a];return{keyRevisions:h,keyRevisionFloor:j}}(a,b,c,d)}}function M(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"));if(!b||"object"!=typeof b.projects||null===b.projects||Array.isArray(b.projects))throw new H("invalid board state");if(!Object.values(b.projects).every(J))throw new H("invalid board project state");return{projects:Object.fromEntries(Object.entries(b.projects).map(([a,b])=>[a,{...b,pathAliases:b.pathAliases??{},explicitManual:b.explicitManual??b.prefs.manual,keyRevisions:function(a,b){let c={};for(let[d,e]of Object.entries(a)){let a=w(d,b);c[a]=Math.max(c[a]??0,e)}return c}(b.keyRevisions??{},b.pathAliases??{}),keyRevisionFloor:b.keyRevisionFloor??0,prefs:{...b.prefs,favorites:b.prefs.favorites??[],foldedEngineChildIds:b.prefs.foldedEngineChildIds??[],expandedEngineTrayParentIds:b.prefs.expandedEngineTrayParentIds??[],seenAt:b.prefs.seenAt??{},idleCollapseMinutes:void 0===b.prefs.idleCollapseMinutes?m.i:b.prefs.idleCollapseMinutes}}]))}}catch(a){if("ENOENT"===a.code)return{projects:{}};if(a instanceof H)throw a;throw new H}}function N(a,b){g().mkdirSync(i().dirname(b),{recursive:!0});let c=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`),d=null;try{d=g().openSync(c,"wx",384),g().writeFileSync(d,JSON.stringify(a,null,2)+"\n","utf8"),g().fsyncSync(d),g().closeSync(d),d=null,g().renameSync(c,b);let e=g().openSync(i().dirname(b),"r");try{g().fsyncSync(e)}finally{g().closeSync(e)}}finally{null!==d&&g().closeSync(d),g().rmSync(c,{force:!0})}}function O(a){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,a)}function P(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){let c,d="string"==typeof b.startIdentity?b.startIdentity:null;return!k.B.pidAlive(b.pid)||(null!==d?(c=k.B.processIdentity(b.pid),null!==c&&c!==d):Date.now()-g().statSync(a).mtimeMs>3e4)}return Date.now()-g().statSync(a).mtimeMs>3e4}catch{try{return Date.now()-g().statSync(a).mtimeMs>3e4}catch{return!1}}}function Q(a,b){try{JSON.parse(g().readFileSync(a,"utf8")).token===b&&g().rmSync(a,{force:!0})}catch{}}function R(a,b){let c=`${a}.write-lock`,d=`${a}.write-locks`;g().mkdirSync(d,{recursive:!0,mode:448});let f={pid:process.pid,startIdentity:k.B.processIdentity(process.pid),token:e().randomUUID()},h=i().join(d,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${e().randomUUID()}.json`);g().writeFileSync(h,JSON.stringify(f),{encoding:"utf8",flag:"wx",mode:384});try{for(let a=0;a<1e3;a+=1){let a,e=[];for(let a of g().readdirSync(d).filter(a=>a.endsWith(".json")).sort()){let b=i().join(d,a);if(P(b)){g().rmSync(b,{force:!0});continue}g().existsSync(b)&&e.push(b)}if(e[0]!==h){O(5);continue}try{a=g().openSync(c,"wx",384)}catch(a){if("EEXIST"!==a.code)throw a;P(c)&&g().rmSync(c,{force:!0}),O(5);continue}try{return g().writeFileSync(a,JSON.stringify(f),"utf8"),g().fsyncSync(a),b()}finally{g().closeSync(a),Q(c,f.token)}}throw new H("board state is busy")}finally{Q(h,f.token)}}function S(a,b=F){return M(b).projects[(0,l.G$)(a)]??K()}function T(a,b){return JSON.stringify({prefs:a.prefs,pathAliases:a.pathAliases??{},explicitManual:a.explicitManual??[]})===JSON.stringify({prefs:b.prefs,pathAliases:b.pathAliases??{},explicitManual:b.explicitManual??[]})}function U(a,b,c,d){return R(d,()=>{let e=M(d),f=e.projects[a]??K(),g=c(f);if(T(f,g))return{ok:!0,applied:!1,board:f};if(f.revision!==b)return{ok:!1,board:f};let h=L(f,g,f.revision+1);return e.projects[a]=h,N(e,d),{ok:!0,applied:!0,board:h}})}function V(a,b,c,d=F){return U((0,l.G$)(a),b,a=>{let b;return b=void 0===c.hidden?a.prefs.hidden:[...new Set([...a.prefs.hidden,...c.hidden])],E({...a,explicitManual:void 0===c.manual?a.explicitManual:c.manual,prefs:{...a.prefs,...c,hidden:b}},[])},d)}function W(a,b,c,d=F){return U((0,l.G$)(a),b,a=>E(a,c),d)}function X(a,b,c={}){var d,e;let f=c.filePath??null??F;return d=(0,l.G$)(a),e=a=>{if(0===b.length||b.every(({from:b,to:c})=>a.pathAliases?.[b]===c))return a;let d=c.provisionalManual?.filter(b=>a.pathAliases?.[b]===void 0&&a.prefs.manual.includes(b))??[],e=[];return d.length&&e.push({kind:"reconcile-roots",roots:[],removeManual:d}),e.push({kind:"remap-paths",pairs:b,targetPlacementAuthoritative:c.targetPlacementAuthoritative}),E(a,e)},R(f,()=>{let a=M(f),b=a.projects[d]??K(),c=e(b);if(T(b,c))return b;let g=L(b,c,b.revision+1);return a.projects[d]=g,N(a,f),g})}function Y(a,b=F){0!==a.length&&R(b,()=>{let c=M(b),d=!1;for(let b of a){if(b.fromProject===b.toProject)continue;let a=c.projects[b.fromProject];if(!a)continue;let e=E(a,[]),f=E(c.projects[b.toProject]??K(),[]);for(let a of[...new Set(b.paths)]){let b=Object.entries(e.pathAliases??{}).filter(([,b])=>b===a);if(b.length>0&&(f=E({...f,pathAliases:{...f.pathAliases??{},...Object.fromEntries(b)}},[])),!(e.prefs.hidden.includes(a)||e.prefs.expanded.includes(a)||e.prefs.manual.includes(a))&&0===b.length)continue;let c=e.prefs.hidden.includes(a)?"hidden":e.prefs.expanded.includes(a)?"expanded":e.prefs.manual.includes(a)?"manual":"auto",d=f.prefs.hidden.includes(a)?"hidden":f.prefs.expanded.includes(a)?"expanded":f.prefs.manual.includes(a)?"manual":"auto",g="hidden"===c||"hidden"===d?"hidden":"auto"!==d?d:c,h=(e.explicitManual??[]).includes(a)||(f.explicitManual??[]).includes(a);e={...e,explicitManual:(e.explicitManual??[]).filter(b=>b!==a),pathAliases:Object.fromEntries(Object.entries(e.pathAliases??{}).filter(([,b])=>b!==a)),prefs:{...e.prefs,manual:e.prefs.manual.filter(b=>b!==a),hidden:e.prefs.hidden.filter(b=>b!==a),expanded:e.prefs.expanded.filter(b=>b!==a)}};let i={...f.prefs,manual:f.prefs.manual.filter(b=>b!==a),hidden:f.prefs.hidden.filter(b=>b!==a),expanded:f.prefs.expanded.filter(b=>b!==a)};f={...f,explicitManual:"manual"===g&&h?[...(f.explicitManual??[]).filter(b=>b!==a),a]:(f.explicitManual??[]).filter(b=>b!==a),prefs:"hidden"===g?{...i,hidden:[...i.hidden,a]}:"expanded"===g?{...i,expanded:[...i.expanded,a]}:"manual"===g?{...i,manual:[...i.manual,a]}:i}}T(a,e)||(c.projects[b.fromProject]=L(a,e,a.revision+1),d=!0);let g=c.projects[b.toProject]??K();T(g,f)||(c.projects[b.toProject]=L(g,f,g.revision+1),d=!0)}d&&N(c,b)})}function Z(a,b=(0,j.BQ)("board.json")){return 0===a.size||R(b,()=>{let c=M(b),d=!1,e=!0,f=new Map;for(let[b,c]of a)b!==c&&f.set(c,[...f.get(c)??[],b]);for(let[a,b]of f){let f=b.flatMap(a=>c.projects[a]?[c.projects[a]]:[]);if(0===f.length)continue;let g=c.projects[a];if(!g&&1===f.length){for(let d of(c.projects[a]=f[0],b))delete c.projects[d];d=!0;continue}try{let e=g?[g,...f]:f,h=function(a){let b=a.map((a,b)=>({state:a,index:b,timestamp:Date.parse(a.updatedAt)})).sort((a,b)=>(Number.isFinite(a.timestamp)?a.timestamp:0)-(Number.isFinite(b.timestamp)?b.timestamp:0)||a.index-b.index).map(({state:a})=>a),c=b.reduce((a,b)=>({...a,...b.pathAliases??{}}),{}),d=new Map,e=null,f=!1,g=c;for(let a of b){let b=E({...a,pathAliases:c},[]);for(let a of(g=b.pathAliases??{},["manual","hidden","expanded"]))for(let c of b.prefs[a])d.delete(c),d.set(c,a);e=b.prefs.viewMode,f=b.prefs.taskPanelOpen}let h={manual:[],hidden:[],expanded:[],favorites:[...new Set(b.flatMap(a=>a.prefs.favorites??[]))],foldedEngineChildIds:[...new Set(b.flatMap(a=>a.prefs.foldedEngineChildIds??[]))],expandedEngineTrayParentIds:[...new Set(b.flatMap(a=>a.prefs.expandedEngineTrayParentIds??[]))],seenAt:function(a){let b={};for(let c of a)for(let[a,d]of Object.entries(c??{}))b[a]=Math.max(b[a]??0,d);return b}(b.map(a=>a.prefs.seenAt)),viewMode:e,taskPanelOpen:f};for(let[a,b]of d)h[b].push(a);let i=new Set(h.manual),j=[...new Set(b.flatMap(a=>a.explicitManual??[]))].map(a=>g[a]??a).filter(a=>i.has(a));return{...b.at(-1),pathAliases:g,explicitManual:j,prefs:h}}(e),i=L(g??K(),h,Math.max(...e.map(a=>a.revision))+1,f);for(let d of(c.projects[a]=g&&T(g,i)&&JSON.stringify({keys:g.keyRevisions??{},floor:g.keyRevisionFloor??0})===JSON.stringify({keys:i.keyRevisions??{},floor:i.keyRevisionFloor??0})?g:i,b))delete c.projects[d];d=!0}catch{e=!1;continue}}return d&&N(c,b),e})}},33839:(a,b,c)=>{c.d(b,{d:()=>e,i:()=>d});let d=120,e=43200}};