agent-log-viewer 1.1.0 → 1.2.1

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 (640) hide show
  1. package/bin/cli.mjs +4 -0
  2. package/bin/server-runtime.test.ts +63 -12
  3. package/dist/mcp-server.mjs +14033 -7722
  4. package/dist/runtime-host.mjs +17096 -7307
  5. package/dist/standalone/.next/BUILD_ID +1 -1
  6. package/dist/standalone/.next/app-path-routes-manifest.json +24 -19
  7. package/dist/standalone/.next/build-manifest.json +3 -3
  8. package/dist/standalone/.next/prerender-manifest.json +4 -4
  9. package/dist/standalone/.next/react-loadable-manifest.json +1 -1
  10. package/dist/standalone/.next/required-server-files.json +1 -1
  11. package/dist/standalone/.next/routes-manifest.json +30 -0
  12. package/dist/standalone/.next/server/account-migration-controller-worker.js +1 -1
  13. package/dist/standalone/.next/server/app/_global-error/page.js +2 -2
  14. package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  15. package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  16. package/dist/standalone/.next/server/app/_global-error.html +1 -1
  17. package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
  18. package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  19. package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.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 +1 -1
  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/_not-found/__PAGE__.segment.rsc +2 -2
  28. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  29. package/dist/standalone/.next/server/app/api/access/route.js +1 -1
  30. package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
  31. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
  32. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
  33. package/dist/standalone/.next/server/app/api/account-project-bindings/route.js +1 -1
  34. package/dist/standalone/.next/server/app/api/account-project-bindings/route.js.nft.json +1 -1
  35. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +1 -1
  36. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -1
  37. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js +1 -1
  38. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -1
  39. package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js +1 -1
  40. package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js.nft.json +1 -1
  41. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js +1 -1
  42. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -1
  43. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js +1 -1
  44. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -1
  45. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js +1 -1
  46. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -1
  47. package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -1
  48. package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -1
  49. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js +1 -1
  50. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -1
  51. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js +1 -1
  52. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -1
  53. package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js +1 -1
  54. package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js.nft.json +1 -1
  55. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js +1 -1
  56. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
  57. package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js +2 -2
  58. package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js.nft.json +1 -1
  59. package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
  60. package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
  61. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +1 -1
  62. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -1
  63. package/dist/standalone/.next/server/app/api/accounts/route.js +1 -1
  64. package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -1
  65. package/dist/standalone/.next/server/app/api/agent/route.js +1 -1
  66. package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
  67. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -1
  68. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -1
  69. package/dist/standalone/.next/server/app/api/answer/route.js +1 -2
  70. package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
  71. package/dist/standalone/.next/server/app/api/artifact/route.js +1 -1
  72. package/dist/standalone/.next/server/app/api/artifact/route.js.nft.json +1 -1
  73. package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -1
  74. package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -1
  75. package/dist/standalone/.next/server/app/api/attention/[id]/route.js +1 -1
  76. package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -1
  77. package/dist/standalone/.next/server/app/api/attention/route.js +1 -1
  78. package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -1
  79. package/dist/standalone/.next/server/app/api/board/route.js +1 -1
  80. package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -1
  81. package/dist/standalone/.next/server/app/api/bridge/route.js +1 -2
  82. package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
  83. package/dist/standalone/.next/server/app/api/conversation-host/route.js +1 -1
  84. package/dist/standalone/.next/server/app/api/conversation-host/route.js.nft.json +1 -1
  85. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js +1 -1
  86. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js.nft.json +1 -1
  87. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
  88. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
  89. package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
  90. package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
  91. package/dist/standalone/.next/server/app/api/files/route.js +3 -2
  92. package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  93. package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
  94. package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
  95. package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
  96. package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
  97. package/dist/standalone/.next/server/app/api/image/route.js +1 -1
  98. package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
  99. package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
  100. package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  101. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
  102. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
  103. package/dist/standalone/.next/server/app/api/limits/history/route.js +1 -1
  104. package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -1
  105. package/dist/standalone/.next/server/app/api/limits/route.js +1 -1
  106. package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
  107. package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -1
  108. package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -1
  109. package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -1
  110. package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -1
  111. package/dist/standalone/.next/server/app/api/log/provenance/route.js +107 -1
  112. package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -1
  113. package/dist/standalone/.next/server/app/api/log/route.js +1 -1
  114. package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
  115. package/dist/standalone/.next/server/app/api/log/suggestions/route.js +2 -4
  116. package/dist/standalone/.next/server/app/api/log/suggestions/route.js.nft.json +1 -1
  117. package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
  118. package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  119. package/dist/standalone/.next/server/app/api/logs/stream/route.js +2 -2
  120. package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  121. package/dist/standalone/.next/server/app/api/monitor/runs/route.js +3 -3
  122. package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
  123. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js +23 -0
  124. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js.nft.json +1 -0
  125. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route_client-reference-manifest.js +1 -0
  126. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js +2 -0
  127. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js.nft.json +1 -0
  128. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route_client-reference-manifest.js +1 -0
  129. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
  130. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
  131. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
  132. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
  133. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +1 -3
  134. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -1
  135. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -1
  136. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -1
  137. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js +1 -1
  138. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -1
  139. package/dist/standalone/.next/server/app/api/pipelines/route.js +1 -2
  140. package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
  141. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +2 -2
  142. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
  143. package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
  144. package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
  145. package/dist/standalone/.next/server/app/api/projects/create/route.js +2 -2
  146. package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -1
  147. package/dist/standalone/.next/server/app/api/projects/crown/route.js +1 -1
  148. package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -1
  149. package/dist/standalone/.next/server/app/api/projects/directories/route.js +1 -1
  150. package/dist/standalone/.next/server/app/api/projects/directories/route.js.nft.json +1 -1
  151. package/dist/standalone/.next/server/app/api/push/route.js +2 -2
  152. package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
  153. package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
  154. package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
  155. package/dist/standalone/.next/server/app/api/roles/route.js +2 -2
  156. package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
  157. package/dist/standalone/.next/server/app/api/runtime/answer/route.js +1 -1
  158. package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -1
  159. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js +1 -1
  160. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -1
  161. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js +1 -1
  162. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -1
  163. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js +1 -1
  164. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -1
  165. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js +1 -1
  166. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js.nft.json +1 -1
  167. package/dist/standalone/.next/server/app/api/runtime/inject/route.js +1 -0
  168. package/dist/standalone/.next/server/app/api/runtime/inject/route.js.nft.json +1 -0
  169. package/dist/standalone/.next/server/app/api/runtime/inject/route_client-reference-manifest.js +1 -0
  170. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +1 -1
  171. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -1
  172. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +1 -1
  173. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
  174. package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -1
  175. package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
  176. package/dist/standalone/.next/server/app/api/runtime/queue/route.js +1 -0
  177. package/dist/standalone/.next/server/app/api/runtime/queue/route.js.nft.json +1 -0
  178. package/dist/standalone/.next/server/app/api/runtime/queue/route_client-reference-manifest.js +1 -0
  179. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +1 -2
  180. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
  181. package/dist/standalone/.next/server/app/api/runtime/send/route.js +1 -1
  182. package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -1
  183. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js +1 -1
  184. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -1
  185. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +1 -1
  186. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -1
  187. package/dist/standalone/.next/server/app/api/runtime/steer/route.js +1 -1
  188. package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -1
  189. package/dist/standalone/.next/server/app/api/runtime/stream/route.js +2 -2
  190. package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -1
  191. package/dist/standalone/.next/server/app/api/search/transcripts/route.js +2 -2
  192. package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -1
  193. package/dist/standalone/.next/server/app/api/session/route.js +1 -1
  194. package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  195. package/dist/standalone/.next/server/app/api/session/supersedence/route.js +1 -1
  196. package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -1
  197. package/dist/standalone/.next/server/app/api/session/title/route.js +1 -1
  198. package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -1
  199. package/dist/standalone/.next/server/app/api/spawn/policy/route.js +3 -3
  200. package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -1
  201. package/dist/standalone/.next/server/app/api/spawn/route.js +1 -2
  202. package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
  203. package/dist/standalone/.next/server/app/api/spawn/validate/route.js +1 -0
  204. package/dist/standalone/.next/server/app/api/spawn/validate/route.js.nft.json +1 -0
  205. package/dist/standalone/.next/server/app/api/spawn/validate/route_client-reference-manifest.js +1 -0
  206. package/dist/standalone/.next/server/app/api/staging/route.js +2 -2
  207. package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
  208. package/dist/standalone/.next/server/app/api/task-attachments/route.js +2 -2
  209. package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
  210. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
  211. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
  212. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  213. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  214. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +1 -2
  215. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
  216. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +1 -2
  217. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
  218. package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
  219. package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
  220. package/dist/standalone/.next/server/app/api/tasks/route.js +1 -1
  221. package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  222. package/dist/standalone/.next/server/app/api/telegram/reports/route.js +1 -1
  223. package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -1
  224. package/dist/standalone/.next/server/app/api/telegram/route.js +1 -1
  225. package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -1
  226. package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
  227. package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
  228. package/dist/standalone/.next/server/app/api/tmux/route.js +1 -1
  229. package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
  230. package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
  231. package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
  232. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js +2 -2
  233. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
  234. package/dist/standalone/.next/server/app/api/transcribe/route.js +2 -2
  235. package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
  236. package/dist/standalone/.next/server/app/api/transcribe/token/route.js +2 -2
  237. package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
  238. package/dist/standalone/.next/server/app/api/tts/backend/route.js +1 -1
  239. package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -1
  240. package/dist/standalone/.next/server/app/api/tts/route.js +3 -3
  241. package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -1
  242. package/dist/standalone/.next/server/app/api/view/presence/route.js +1 -1
  243. package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -1
  244. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
  245. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
  246. package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
  247. package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  248. package/dist/standalone/.next/server/app/favicon.ico/route.js +1 -1
  249. package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  250. package/dist/standalone/.next/server/app/index.html +1 -1
  251. package/dist/standalone/.next/server/app/index.rsc +3 -3
  252. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  253. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  254. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  255. package/dist/standalone/.next/server/app/page.js +59 -30
  256. package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
  257. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  258. package/dist/standalone/.next/server/app-paths-manifest.json +24 -19
  259. package/dist/standalone/.next/server/chunks/107.js +1 -1
  260. package/dist/standalone/.next/server/chunks/1100.js +29 -10
  261. package/dist/standalone/.next/server/chunks/1406.js +399 -0
  262. package/dist/standalone/.next/server/chunks/1585.js +108 -0
  263. package/dist/standalone/.next/server/chunks/160.js +4 -4
  264. package/dist/standalone/.next/server/chunks/1617.js +2 -2
  265. package/dist/standalone/.next/server/chunks/1849.js +1 -0
  266. package/dist/standalone/.next/server/chunks/1888.js +1 -1
  267. package/dist/standalone/.next/server/chunks/193.js +1 -0
  268. package/dist/standalone/.next/server/chunks/1952.js +1 -0
  269. package/dist/standalone/.next/server/chunks/2150.js +1 -1
  270. package/dist/standalone/.next/server/chunks/2549.js +1 -1
  271. package/dist/standalone/.next/server/chunks/2555.js +1 -0
  272. package/dist/standalone/.next/server/chunks/2647.js +1 -1
  273. package/dist/standalone/.next/server/chunks/2744.js +3 -0
  274. package/dist/standalone/.next/server/chunks/2857.js +1 -0
  275. package/dist/standalone/.next/server/chunks/286.js +22 -0
  276. package/dist/standalone/.next/server/chunks/2914.js +24 -0
  277. package/dist/standalone/.next/server/chunks/3034.js +1 -0
  278. package/dist/standalone/.next/server/chunks/3086.js +1 -1
  279. package/dist/standalone/.next/server/chunks/3131.js +1 -0
  280. package/dist/standalone/.next/server/chunks/3214.js +1 -1
  281. package/dist/standalone/.next/server/chunks/3302.js +1 -2
  282. package/dist/standalone/.next/server/chunks/3407.js +1 -0
  283. package/dist/standalone/.next/server/chunks/3422.js +1 -0
  284. package/dist/standalone/.next/server/chunks/3558.js +1 -0
  285. package/dist/standalone/.next/server/chunks/3570.js +81 -0
  286. package/dist/standalone/.next/server/chunks/3587.js +1 -1
  287. package/dist/standalone/.next/server/chunks/3743.js +76 -24
  288. package/dist/standalone/.next/server/chunks/3830.js +1 -1
  289. package/dist/standalone/.next/server/chunks/3896.js +1 -0
  290. package/dist/standalone/.next/server/chunks/4037.js +1 -0
  291. package/dist/standalone/.next/server/chunks/4127.js +1 -1
  292. package/dist/standalone/.next/server/chunks/4509.js +1 -1
  293. package/dist/standalone/.next/server/chunks/4637.js +62 -0
  294. package/dist/standalone/.next/server/chunks/4651.js +1 -1
  295. package/dist/standalone/.next/server/chunks/4783.js +1 -0
  296. package/dist/standalone/.next/server/chunks/4972.js +3 -3
  297. package/dist/standalone/.next/server/chunks/{4756.js → 4995.js} +3 -5
  298. package/dist/standalone/.next/server/chunks/5408.js +1 -1
  299. package/dist/standalone/.next/server/chunks/5480.js +1 -1
  300. package/dist/standalone/.next/server/chunks/5545.js +1 -1
  301. package/dist/standalone/.next/server/chunks/568.js +1 -2
  302. package/dist/standalone/.next/server/chunks/5682.js +1 -0
  303. package/dist/standalone/.next/server/chunks/5771.js +1 -0
  304. package/dist/standalone/.next/server/chunks/5847.js +1 -0
  305. package/dist/standalone/.next/server/chunks/6023.js +1 -0
  306. package/dist/standalone/.next/server/chunks/606.js +126 -0
  307. package/dist/standalone/.next/server/chunks/6277.js +81 -0
  308. package/dist/standalone/.next/server/chunks/6289.js +2 -0
  309. package/dist/standalone/.next/server/chunks/644.js +81 -0
  310. package/dist/standalone/.next/server/chunks/6453.js +1 -0
  311. package/dist/standalone/.next/server/chunks/6522.js +1 -0
  312. package/dist/standalone/.next/server/chunks/6665.js +1 -1
  313. package/dist/standalone/.next/server/chunks/6809.js +3 -0
  314. package/dist/standalone/.next/server/chunks/6826.js +1 -1
  315. package/dist/standalone/.next/server/chunks/6926.js +1 -1
  316. package/dist/standalone/.next/server/chunks/{1920.js → 6942.js} +1 -1
  317. package/dist/standalone/.next/server/chunks/6978.js +1 -0
  318. package/dist/standalone/.next/server/chunks/7008.js +114 -9
  319. package/dist/standalone/.next/server/chunks/7192.js +1 -0
  320. package/dist/standalone/.next/server/chunks/7238.js +2 -0
  321. package/dist/standalone/.next/server/chunks/7644.js +3 -3
  322. package/dist/standalone/.next/server/chunks/7722.js +1 -1
  323. package/dist/standalone/.next/server/chunks/781.js +55 -0
  324. package/dist/standalone/.next/server/chunks/7826.js +62 -0
  325. package/dist/standalone/.next/server/chunks/8027.js +11 -1
  326. package/dist/standalone/.next/server/chunks/8444.js +1 -1
  327. package/dist/standalone/.next/server/chunks/8465.js +2 -2
  328. package/dist/standalone/.next/server/chunks/8512.js +1 -0
  329. package/dist/standalone/.next/server/chunks/8513.js +2 -0
  330. package/dist/standalone/.next/server/chunks/8617.js +1 -1
  331. package/dist/standalone/.next/server/chunks/8817.js +1 -1
  332. package/dist/standalone/.next/server/chunks/8966.js +2 -2
  333. package/dist/standalone/.next/server/chunks/8991.js +1 -1
  334. package/dist/standalone/.next/server/chunks/8996.js +1 -1
  335. package/dist/standalone/.next/server/chunks/9296.js +104 -0
  336. package/dist/standalone/.next/server/chunks/{7139.js → 9298.js} +2 -2
  337. package/dist/standalone/.next/server/chunks/9307.js +1 -1
  338. package/dist/standalone/.next/server/chunks/9360.js +199 -0
  339. package/dist/standalone/.next/server/chunks/9403.js +1 -1
  340. package/dist/standalone/.next/server/chunks/9517.js +1 -1
  341. package/dist/standalone/.next/server/chunks/9554.js +47 -0
  342. package/dist/standalone/.next/server/chunks/9676.js +1 -62
  343. package/dist/standalone/.next/server/chunks/9822.js +11 -1
  344. package/dist/standalone/.next/server/chunks/9901.js +1 -62
  345. package/dist/standalone/.next/server/chunks/9940.js +3 -3
  346. package/dist/standalone/.next/server/chunks/9998.js +1 -1
  347. package/dist/standalone/.next/server/file-scanner-worker.js +3 -3
  348. package/dist/standalone/.next/server/files-response-worker.js +6 -6
  349. package/dist/standalone/.next/server/functions-config-manifest.json +5 -0
  350. package/dist/standalone/.next/server/instrumentation.js +1 -1
  351. package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
  352. package/dist/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  353. package/dist/standalone/.next/server/middleware.js +4 -4
  354. package/dist/standalone/.next/server/pages/404.html +1 -1
  355. package/dist/standalone/.next/server/pages/500.html +1 -1
  356. package/dist/standalone/.next/server/resource-collector-worker.js +1 -1
  357. package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
  358. package/dist/standalone/.next/server/wakatime-sync-worker.js +2 -2
  359. package/dist/standalone/.next/static/836HTp-5V8cZC5YWFVOCk/_buildManifest.js +1 -0
  360. package/dist/standalone/.next/static/chunks/{3794-d1854fdd0e41dc44.js → 3794-0ef35fddac53cd9a.js} +1 -1
  361. package/dist/standalone/.next/static/chunks/7333-cf17cea2a91e7b4b.js +1 -0
  362. package/dist/standalone/.next/static/chunks/app/_global-error/page-60a25d1c4cbf0128.js +1 -0
  363. package/dist/standalone/.next/static/chunks/app/api/access/route-60a25d1c4cbf0128.js +1 -0
  364. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-60a25d1c4cbf0128.js +1 -0
  365. package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-60a25d1c4cbf0128.js +1 -0
  366. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-60a25d1c4cbf0128.js +1 -0
  367. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-60a25d1c4cbf0128.js +1 -0
  368. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-60a25d1c4cbf0128.js +1 -0
  369. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-60a25d1c4cbf0128.js +1 -0
  370. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-60a25d1c4cbf0128.js +1 -0
  371. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-60a25d1c4cbf0128.js +1 -0
  372. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-60a25d1c4cbf0128.js +1 -0
  373. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-60a25d1c4cbf0128.js +1 -0
  374. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-60a25d1c4cbf0128.js +1 -0
  375. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-60a25d1c4cbf0128.js +1 -0
  376. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-60a25d1c4cbf0128.js +1 -0
  377. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-60a25d1c4cbf0128.js +1 -0
  378. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-60a25d1c4cbf0128.js +1 -0
  379. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-60a25d1c4cbf0128.js +1 -0
  380. package/dist/standalone/.next/static/chunks/app/api/accounts/route-60a25d1c4cbf0128.js +1 -0
  381. package/dist/standalone/.next/static/chunks/app/api/agent/route-60a25d1c4cbf0128.js +1 -0
  382. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-60a25d1c4cbf0128.js +1 -0
  383. package/dist/standalone/.next/static/chunks/app/api/answer/route-60a25d1c4cbf0128.js +1 -0
  384. package/dist/standalone/.next/static/chunks/app/api/artifact/route-60a25d1c4cbf0128.js +1 -0
  385. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-60a25d1c4cbf0128.js +1 -0
  386. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-60a25d1c4cbf0128.js +1 -0
  387. package/dist/standalone/.next/static/chunks/app/api/attention/route-60a25d1c4cbf0128.js +1 -0
  388. package/dist/standalone/.next/static/chunks/app/api/board/route-60a25d1c4cbf0128.js +1 -0
  389. package/dist/standalone/.next/static/chunks/app/api/bridge/route-60a25d1c4cbf0128.js +1 -0
  390. package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-60a25d1c4cbf0128.js +1 -0
  391. package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-60a25d1c4cbf0128.js +1 -0
  392. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-60a25d1c4cbf0128.js +1 -0
  393. package/dist/standalone/.next/static/chunks/app/api/conversations/route-60a25d1c4cbf0128.js +1 -0
  394. package/dist/standalone/.next/static/chunks/app/api/files/route-60a25d1c4cbf0128.js +1 -0
  395. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-60a25d1c4cbf0128.js +1 -0
  396. package/dist/standalone/.next/static/chunks/app/api/flows/route-60a25d1c4cbf0128.js +1 -0
  397. package/dist/standalone/.next/static/chunks/app/api/image/route-60a25d1c4cbf0128.js +1 -0
  398. package/dist/standalone/.next/static/chunks/app/api/inbox/route-60a25d1c4cbf0128.js +1 -0
  399. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-60a25d1c4cbf0128.js +1 -0
  400. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-60a25d1c4cbf0128.js +1 -0
  401. package/dist/standalone/.next/static/chunks/app/api/limits/route-60a25d1c4cbf0128.js +1 -0
  402. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-60a25d1c4cbf0128.js +1 -0
  403. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-60a25d1c4cbf0128.js +1 -0
  404. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-60a25d1c4cbf0128.js +1 -0
  405. package/dist/standalone/.next/static/chunks/app/api/log/route-60a25d1c4cbf0128.js +1 -0
  406. package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-60a25d1c4cbf0128.js +1 -0
  407. package/dist/standalone/.next/static/chunks/app/api/logs/route-60a25d1c4cbf0128.js +1 -0
  408. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-60a25d1c4cbf0128.js +1 -0
  409. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-60a25d1c4cbf0128.js +1 -0
  410. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/route-60a25d1c4cbf0128.js +1 -0
  411. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/settings/route-60a25d1c4cbf0128.js +1 -0
  412. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-60a25d1c4cbf0128.js +1 -0
  413. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-60a25d1c4cbf0128.js +1 -0
  414. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-60a25d1c4cbf0128.js +1 -0
  415. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-60a25d1c4cbf0128.js +1 -0
  416. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-60a25d1c4cbf0128.js +1 -0
  417. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-60a25d1c4cbf0128.js +1 -0
  418. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-60a25d1c4cbf0128.js +1 -0
  419. package/dist/standalone/.next/static/chunks/app/api/proc/route-60a25d1c4cbf0128.js +1 -0
  420. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-60a25d1c4cbf0128.js +1 -0
  421. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-60a25d1c4cbf0128.js +1 -0
  422. package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-60a25d1c4cbf0128.js +1 -0
  423. package/dist/standalone/.next/static/chunks/app/api/push/route-60a25d1c4cbf0128.js +1 -0
  424. package/dist/standalone/.next/static/chunks/app/api/resources/route-60a25d1c4cbf0128.js +1 -0
  425. package/dist/standalone/.next/static/chunks/app/api/roles/route-60a25d1c4cbf0128.js +1 -0
  426. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-60a25d1c4cbf0128.js +1 -0
  427. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-60a25d1c4cbf0128.js +1 -0
  428. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-60a25d1c4cbf0128.js +1 -0
  429. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-60a25d1c4cbf0128.js +1 -0
  430. package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-60a25d1c4cbf0128.js +1 -0
  431. package/dist/standalone/.next/static/chunks/app/api/runtime/inject/route-60a25d1c4cbf0128.js +1 -0
  432. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-60a25d1c4cbf0128.js +1 -0
  433. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-60a25d1c4cbf0128.js +1 -0
  434. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-60a25d1c4cbf0128.js +1 -0
  435. package/dist/standalone/.next/static/chunks/app/api/runtime/queue/route-60a25d1c4cbf0128.js +1 -0
  436. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-60a25d1c4cbf0128.js +1 -0
  437. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-60a25d1c4cbf0128.js +1 -0
  438. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-60a25d1c4cbf0128.js +1 -0
  439. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-60a25d1c4cbf0128.js +1 -0
  440. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-60a25d1c4cbf0128.js +1 -0
  441. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-60a25d1c4cbf0128.js +1 -0
  442. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-60a25d1c4cbf0128.js +1 -0
  443. package/dist/standalone/.next/static/chunks/app/api/session/route-60a25d1c4cbf0128.js +1 -0
  444. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-60a25d1c4cbf0128.js +1 -0
  445. package/dist/standalone/.next/static/chunks/app/api/session/title/route-60a25d1c4cbf0128.js +1 -0
  446. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-60a25d1c4cbf0128.js +1 -0
  447. package/dist/standalone/.next/static/chunks/app/api/spawn/route-60a25d1c4cbf0128.js +1 -0
  448. package/dist/standalone/.next/static/chunks/app/api/spawn/validate/route-60a25d1c4cbf0128.js +1 -0
  449. package/dist/standalone/.next/static/chunks/app/api/staging/route-60a25d1c4cbf0128.js +1 -0
  450. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-60a25d1c4cbf0128.js +1 -0
  451. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-60a25d1c4cbf0128.js +1 -0
  452. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-60a25d1c4cbf0128.js +1 -0
  453. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-60a25d1c4cbf0128.js +1 -0
  454. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-60a25d1c4cbf0128.js +1 -0
  455. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-60a25d1c4cbf0128.js +1 -0
  456. package/dist/standalone/.next/static/chunks/app/api/tasks/route-60a25d1c4cbf0128.js +1 -0
  457. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-60a25d1c4cbf0128.js +1 -0
  458. package/dist/standalone/.next/static/chunks/app/api/telegram/route-60a25d1c4cbf0128.js +1 -0
  459. package/dist/standalone/.next/static/chunks/app/api/timeline/route-60a25d1c4cbf0128.js +1 -0
  460. package/dist/standalone/.next/static/chunks/app/api/tmux/route-60a25d1c4cbf0128.js +1 -0
  461. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-60a25d1c4cbf0128.js +1 -0
  462. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-60a25d1c4cbf0128.js +1 -0
  463. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-60a25d1c4cbf0128.js +1 -0
  464. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-60a25d1c4cbf0128.js +1 -0
  465. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-60a25d1c4cbf0128.js +1 -0
  466. package/dist/standalone/.next/static/chunks/app/api/tts/route-60a25d1c4cbf0128.js +1 -0
  467. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-60a25d1c4cbf0128.js +1 -0
  468. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-60a25d1c4cbf0128.js +1 -0
  469. package/dist/standalone/.next/static/chunks/app/api/workflows/route-60a25d1c4cbf0128.js +1 -0
  470. package/dist/standalone/.next/static/chunks/app/page-1cde2db61f461960.js +125 -0
  471. package/dist/standalone/.next/static/chunks/{main-8691b7dc3557ef3f.js → main-7e65147ff5ce0866.js} +1 -1
  472. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-60a25d1c4cbf0128.js +1 -0
  473. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-60a25d1c4cbf0128.js +1 -0
  474. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-60a25d1c4cbf0128.js +1 -0
  475. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-60a25d1c4cbf0128.js +1 -0
  476. package/dist/standalone/.next/static/css/b25c03e915fd256b.css +1 -0
  477. package/dist/standalone/AGENTS.md +30 -0
  478. package/dist/standalone/node_modules/@next/env/package.json +1 -1
  479. package/dist/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  480. package/dist/standalone/node_modules/next/dist/build/webpack-config.js +3 -3
  481. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +1 -1
  482. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +1 -1
  483. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +1 -1
  484. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +1 -1
  485. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +1 -1
  486. package/dist/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +5 -5
  487. package/dist/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +5 -5
  488. package/dist/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  489. package/dist/standalone/node_modules/next/dist/server/config.js +1 -1
  490. package/dist/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  491. package/dist/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  492. package/dist/standalone/node_modules/next/dist/server/image-optimizer.js +2 -2
  493. package/dist/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  494. package/dist/standalone/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +17 -4
  495. package/dist/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  496. package/dist/standalone/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +1 -1
  497. package/dist/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  498. package/dist/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  499. package/dist/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  500. package/dist/standalone/node_modules/next/package.json +10 -10
  501. package/dist/standalone/package.json +5 -5
  502. package/dist/standalone/server.bun.js +1 -1
  503. package/dist/standalone/src/lib/viewerInstrumentation.ts +824 -0
  504. package/package.json +5 -5
  505. package/dist/standalone/.next/server/chunks/112.js +0 -1
  506. package/dist/standalone/.next/server/chunks/2190.js +0 -1
  507. package/dist/standalone/.next/server/chunks/2318.js +0 -2
  508. package/dist/standalone/.next/server/chunks/2371.js +0 -1
  509. package/dist/standalone/.next/server/chunks/2500.js +0 -55
  510. package/dist/standalone/.next/server/chunks/2799.js +0 -1
  511. package/dist/standalone/.next/server/chunks/2870.js +0 -104
  512. package/dist/standalone/.next/server/chunks/3598.js +0 -81
  513. package/dist/standalone/.next/server/chunks/3740.js +0 -126
  514. package/dist/standalone/.next/server/chunks/3953.js +0 -1
  515. package/dist/standalone/.next/server/chunks/411.js +0 -1
  516. package/dist/standalone/.next/server/chunks/4191.js +0 -1
  517. package/dist/standalone/.next/server/chunks/461.js +0 -1
  518. package/dist/standalone/.next/server/chunks/4968.js +0 -2
  519. package/dist/standalone/.next/server/chunks/6333.js +0 -47
  520. package/dist/standalone/.next/server/chunks/6839.js +0 -81
  521. package/dist/standalone/.next/server/chunks/7045.js +0 -319
  522. package/dist/standalone/.next/server/chunks/7159.js +0 -1
  523. package/dist/standalone/.next/server/chunks/8176.js +0 -1
  524. package/dist/standalone/.next/server/chunks/8263.js +0 -81
  525. package/dist/standalone/.next/server/chunks/8392.js +0 -126
  526. package/dist/standalone/.next/server/chunks/9120.js +0 -78
  527. package/dist/standalone/.next/server/chunks/9507.js +0 -1
  528. package/dist/standalone/.next/static/6jhPk8sOUI3wRf_j1l5vY/_buildManifest.js +0 -1
  529. package/dist/standalone/.next/static/chunks/3021-9ced2d55bf2cbf77.js +0 -1
  530. package/dist/standalone/.next/static/chunks/app/_global-error/page-3e358516d279299e.js +0 -1
  531. package/dist/standalone/.next/static/chunks/app/api/access/route-3e358516d279299e.js +0 -1
  532. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-3e358516d279299e.js +0 -1
  533. package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-3e358516d279299e.js +0 -1
  534. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-3e358516d279299e.js +0 -1
  535. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-3e358516d279299e.js +0 -1
  536. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-3e358516d279299e.js +0 -1
  537. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-3e358516d279299e.js +0 -1
  538. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-3e358516d279299e.js +0 -1
  539. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-3e358516d279299e.js +0 -1
  540. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-3e358516d279299e.js +0 -1
  541. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-3e358516d279299e.js +0 -1
  542. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-3e358516d279299e.js +0 -1
  543. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-3e358516d279299e.js +0 -1
  544. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-3e358516d279299e.js +0 -1
  545. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-3e358516d279299e.js +0 -1
  546. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-3e358516d279299e.js +0 -1
  547. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-3e358516d279299e.js +0 -1
  548. package/dist/standalone/.next/static/chunks/app/api/accounts/route-3e358516d279299e.js +0 -1
  549. package/dist/standalone/.next/static/chunks/app/api/agent/route-3e358516d279299e.js +0 -1
  550. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-3e358516d279299e.js +0 -1
  551. package/dist/standalone/.next/static/chunks/app/api/answer/route-3e358516d279299e.js +0 -1
  552. package/dist/standalone/.next/static/chunks/app/api/artifact/route-3e358516d279299e.js +0 -1
  553. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-3e358516d279299e.js +0 -1
  554. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-3e358516d279299e.js +0 -1
  555. package/dist/standalone/.next/static/chunks/app/api/attention/route-3e358516d279299e.js +0 -1
  556. package/dist/standalone/.next/static/chunks/app/api/board/route-3e358516d279299e.js +0 -1
  557. package/dist/standalone/.next/static/chunks/app/api/bridge/route-3e358516d279299e.js +0 -1
  558. package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-3e358516d279299e.js +0 -1
  559. package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-3e358516d279299e.js +0 -1
  560. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-3e358516d279299e.js +0 -1
  561. package/dist/standalone/.next/static/chunks/app/api/conversations/route-3e358516d279299e.js +0 -1
  562. package/dist/standalone/.next/static/chunks/app/api/files/route-3e358516d279299e.js +0 -1
  563. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-3e358516d279299e.js +0 -1
  564. package/dist/standalone/.next/static/chunks/app/api/flows/route-3e358516d279299e.js +0 -1
  565. package/dist/standalone/.next/static/chunks/app/api/image/route-3e358516d279299e.js +0 -1
  566. package/dist/standalone/.next/static/chunks/app/api/inbox/route-3e358516d279299e.js +0 -1
  567. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-3e358516d279299e.js +0 -1
  568. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-3e358516d279299e.js +0 -1
  569. package/dist/standalone/.next/static/chunks/app/api/limits/route-3e358516d279299e.js +0 -1
  570. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-3e358516d279299e.js +0 -1
  571. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-3e358516d279299e.js +0 -1
  572. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-3e358516d279299e.js +0 -1
  573. package/dist/standalone/.next/static/chunks/app/api/log/route-3e358516d279299e.js +0 -1
  574. package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-3e358516d279299e.js +0 -1
  575. package/dist/standalone/.next/static/chunks/app/api/logs/route-3e358516d279299e.js +0 -1
  576. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-3e358516d279299e.js +0 -1
  577. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-3e358516d279299e.js +0 -1
  578. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-3e358516d279299e.js +0 -1
  579. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-3e358516d279299e.js +0 -1
  580. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-3e358516d279299e.js +0 -1
  581. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-3e358516d279299e.js +0 -1
  582. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-3e358516d279299e.js +0 -1
  583. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-3e358516d279299e.js +0 -1
  584. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-3e358516d279299e.js +0 -1
  585. package/dist/standalone/.next/static/chunks/app/api/proc/route-3e358516d279299e.js +0 -1
  586. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-3e358516d279299e.js +0 -1
  587. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-3e358516d279299e.js +0 -1
  588. package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-3e358516d279299e.js +0 -1
  589. package/dist/standalone/.next/static/chunks/app/api/push/route-3e358516d279299e.js +0 -1
  590. package/dist/standalone/.next/static/chunks/app/api/resources/route-3e358516d279299e.js +0 -1
  591. package/dist/standalone/.next/static/chunks/app/api/roles/route-3e358516d279299e.js +0 -1
  592. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-3e358516d279299e.js +0 -1
  593. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-3e358516d279299e.js +0 -1
  594. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-3e358516d279299e.js +0 -1
  595. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-3e358516d279299e.js +0 -1
  596. package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-3e358516d279299e.js +0 -1
  597. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-3e358516d279299e.js +0 -1
  598. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-3e358516d279299e.js +0 -1
  599. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-3e358516d279299e.js +0 -1
  600. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-3e358516d279299e.js +0 -1
  601. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-3e358516d279299e.js +0 -1
  602. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-3e358516d279299e.js +0 -1
  603. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-3e358516d279299e.js +0 -1
  604. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-3e358516d279299e.js +0 -1
  605. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-3e358516d279299e.js +0 -1
  606. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-3e358516d279299e.js +0 -1
  607. package/dist/standalone/.next/static/chunks/app/api/session/route-3e358516d279299e.js +0 -1
  608. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-3e358516d279299e.js +0 -1
  609. package/dist/standalone/.next/static/chunks/app/api/session/title/route-3e358516d279299e.js +0 -1
  610. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-3e358516d279299e.js +0 -1
  611. package/dist/standalone/.next/static/chunks/app/api/spawn/route-3e358516d279299e.js +0 -1
  612. package/dist/standalone/.next/static/chunks/app/api/staging/route-3e358516d279299e.js +0 -1
  613. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-3e358516d279299e.js +0 -1
  614. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-3e358516d279299e.js +0 -1
  615. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-3e358516d279299e.js +0 -1
  616. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-3e358516d279299e.js +0 -1
  617. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-3e358516d279299e.js +0 -1
  618. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-3e358516d279299e.js +0 -1
  619. package/dist/standalone/.next/static/chunks/app/api/tasks/route-3e358516d279299e.js +0 -1
  620. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-3e358516d279299e.js +0 -1
  621. package/dist/standalone/.next/static/chunks/app/api/telegram/route-3e358516d279299e.js +0 -1
  622. package/dist/standalone/.next/static/chunks/app/api/timeline/route-3e358516d279299e.js +0 -1
  623. package/dist/standalone/.next/static/chunks/app/api/tmux/route-3e358516d279299e.js +0 -1
  624. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-3e358516d279299e.js +0 -1
  625. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-3e358516d279299e.js +0 -1
  626. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-3e358516d279299e.js +0 -1
  627. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-3e358516d279299e.js +0 -1
  628. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-3e358516d279299e.js +0 -1
  629. package/dist/standalone/.next/static/chunks/app/api/tts/route-3e358516d279299e.js +0 -1
  630. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-3e358516d279299e.js +0 -1
  631. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-3e358516d279299e.js +0 -1
  632. package/dist/standalone/.next/static/chunks/app/api/workflows/route-3e358516d279299e.js +0 -1
  633. package/dist/standalone/.next/static/chunks/app/page-dbe7cb010b4941d6.js +0 -96
  634. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-3e358516d279299e.js +0 -1
  635. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-3e358516d279299e.js +0 -1
  636. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-3e358516d279299e.js +0 -1
  637. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-3e358516d279299e.js +0 -1
  638. package/dist/standalone/.next/static/css/282596e2aaee1aa4.css +0 -1
  639. package/dist/standalone/src/lib/inboxFiles.ts +0 -203
  640. /package/dist/standalone/.next/static/{6jhPk8sOUI3wRf_j1l5vY → 836HTp-5V8cZC5YWFVOCk}/_ssgManifest.js +0 -0
@@ -0,0 +1,22 @@
1
+ "use strict";exports.id=286,exports.ids=[286],exports.modules={5343:(a,b,c)=>{c.d(b,{Tc:()=>K,W6:()=>g,re:()=>Q,fK:()=>o,Ho:()=>N,K:()=>J,Cs:()=>I,WI:()=>T,hD:()=>S,l6:()=>G,aW:()=>u});var d=c(34196),e=c(76775),f=c(85745);let g=36e5,h=3e5,i=24e5,j=864e5,k=5,l=2,m=2592e5;function n(a,b,c){let d=Number(a?.trim());return Number.isFinite(d)&&d>0?d*c:b}function o(a=process.env){let b=a.LLV_SEAT_TICK_CHECK_MINUTES?.trim();return b&&0===Number(b)?null:{checkIntervalMs:n(b,h,6e4),stallAfterMs:n(a.LLV_SEAT_TICK_STALL_MINUTES,i,6e4),proposalIntervalMs:n(a.LLV_SEAT_TICK_PROPOSAL_HOURS,j,36e5),itemsPerWake:Math.floor(n(a.LLV_SEAT_TICK_ITEMS,k,1)),retryGuard:Math.floor(n(a.LLV_SEAT_TICK_RETRY_GUARD,l,1)),backlogAfterMs:n(a.LLV_SEAT_TICK_BACKLOG_DAYS,m,864e5)}}function p(a){return"terminal"!==a.state}function q(a){return"running"===a.status}function r(a){return"terminal"===a.status}function s(a){return`child:${a.conversationId}`}function t(a){return(0,d.jk)(a.type)&&!a.pipelineTerminal}function u(a){if("busy"!==a.turn)return!1;let b=a.activity;return!!b&&("waiting"===b.lifecycle?"busy"===b.turnState:"running"===b.lifecycle||"starting"===b.lifecycle)}function v(a){return"unresolvable"!==a.transcript}function w(a){let b=a.terminalAt?Date.parse(a.terminalAt):NaN;return Number.isFinite(b)?b:a.lastRecordAt?Date.parse(a.lastRecordAt):NaN}function x(a,b){let c=null===b?String(w(a)):b.slice(-32);return`${a.conversationId}@${c}`}let y=["unreadable","stale","unchanged"],z=new Set;function A(a,b){let c=0;for(let d of a.values())d===b&&(c+=1);return c}function B(a,b,c,d){let e=C(a,b);return e||(d.has(x(a,c))?"unchanged":null)}function C(a,b){let c,d;return v(a)&&Number.isFinite(w(a))?(c=w(a),d=b.designatedAt?Date.parse(b.designatedAt):NaN,Number.isFinite(c)&&Number.isFinite(d)&&(c<d-864e5||"number"==typeof a.harvestedEpoch&&a.harvestedEpoch<b.seatEpoch&&c<d))?"stale":null:"unreadable"}function D(a,b){return b?null===C(a,b):v(a)}function E(a){return a.ownLanes.filter(b=>{let c=b.updatedAt?Date.parse(b.updatedAt):NaN;return Number.isFinite(c)&&a.now-c<a.policy.backlogAfterMs})}function F(a,b,c){if(!a)return!0;let d=Date.parse(a);return!Number.isFinite(d)||b-d>=c}function G(a,b,c){return F(a,b,c)}function H(a,b,c){if(!a)return!1;let d=Date.parse(a.since);return Number.isFinite(d)&&b-d>=c}function I(a,b,c){if(!a||!H(a,b,c))return!0;let d=Date.parse(a.lastAttemptAt);return!Number.isFinite(d)||b-d>=c}function J(a,b,c){return a?{...a,gap:b,lastAttemptAt:c,attempts:a.attempts+1}:{gap:b,since:c,lastAttemptAt:c,attempts:1,reported:!1}}let K="unread";function L(a,b){if(null===a)return!0;let c=M(a),d=M(b);return c&&d?c.board!==d.board||c.pullRequests!==K&&d.pullRequests!==K&&c.pullRequests!==d.pullRequests:a!==b}function M(a){let b=a.indexOf(".");return b<=0||b===a.length-1?null:{board:a.slice(0,b),pullRequests:a.slice(b+1)}}function N(a){return a.isDefault?a.lapsed?"the recorded tick setting reached its expiry, so this project is back on the default wake interval":"this project is on the default tick settings":a.enabled?`wakes for this project are set to one every ${Math.round(a.wakeIntervalMs/6e4)} minute(s)`:"ticking is off for this project: no wake will be sent until it is turned back on"}function O(a){switch(a){case"registry-unreadable":return"the registry read failed";case"children-unindexed":return"the registry backend has no indexed lineage projection, so children cannot be paged";case"migration-pending":return"the SQLite accounting has not finished importing the legacy tick state";case"migration-blocked":return"the legacy tick state at state/seat-tick.json cannot be imported and blocks every wake until it is fixed or removed";case"discovery-incomplete":return"an owner's lineage page or the seat file's revocations could not be read to the end";case"ledger-gap":return"a child's event ledger was replaced, torn, malformed or skipped a sequence";case"ledger-pending":return"a child left its running state and its ledger has not been read yet";case"child-departed":return"a tracked child no longer projects under this seat and project";case"child-unplaced":return"a child has no conversation record or an unobserved turn with no host behind it"}}function P(a,b){let c="pull-requests"===b?a.state.pullRequestGap:a.state.childrenGap;if(!("pull-requests"===b?a.pullRequestsUnavailable:a.childrenUnavailable)||!c||c.reported||!H(c,a.now,a.settings.wakeIntervalMs))return null;let d=`${c.since.slice(0,16).replace("T"," ")} UTC (${c.gap}, ${c.attempts} attempt(s))`;return{card:{ref:(0,e.X7)(b),kind:"source-unreadable",instance:c.since,detail:"pull-requests"===b?`The open pull requests of this project's finished lanes have not been readable since ${d}`:`The seat's spawned children have not been fully accountable since ${d}: `+O(c.gap)},gap:{...c,reported:!0}}}function Q(a){let b=function(a){var b,c,d,f;let g,h,i=new Date(a.now).toISOString(),j={...a.state,lastCheckAt:i};if(!a.seat)return{verdict:{kind:"no-seat",detail:"the project has open work and no active orchestrator seat"},state:{...j,seatEpoch:null},cards:[{ref:e.Qw,kind:"no-seat",detail:"No active orchestrator seat holds this project, so the tick has nothing to wake"}]};if(u(a.seat))return{verdict:{kind:"skipped",reason:"seat-busy"},state:j,cards:[]};let k={...j,seatEpoch:a.seat.seatEpoch,eventsThrough:function(a,b){let c=b;for(let b of a){if(t(b))break;c=Math.max(c??b.seq,b.seq)}return c}(a.events,j.eventsThrough)},l=function(a){let b={now:new Date(a.now),stallAfterMs:null},c=[];for(let d of a.pipelines){if(!p(d))continue;let a=function(a,b){if("terminal"===a.state)return null;if("inert"===a.state)return`${a.kind} ${a.id} is parked`;if(null===b.stallAfterMs)return null;let c=b.stallAfterMs??1728e5,d=a.updatedAt?Date.parse(a.updatedAt):NaN;return Number.isFinite(d)&&b.now.getTime()-d>c?`${a.kind} ${a.id} is live but shows no movement past the stall threshold`:null}({kind:"pipeline",id:d.id,state:d.state,updatedAt:d.updatedAt},b);if(a){c.push({pipeline:d,reason:a});continue}let e=d.stageActivity;if(e&&("stalled"===e.lifecycle||"gone"===e.lifecycle)){let a=d.stageId?` stage ${d.stageId}`:"";c.push({pipeline:d,reason:`pipeline ${d.id}${a} runs a turn the registry reports ${e.lifecycle} (${e.reason})`})}}return c}(a),m=function(a){let b=[];for(let c of a.children){if(!q(c))continue;let a=c.activity;a&&("stalled"===a.lifecycle||"gone"===a.lifecycle)&&b.push({child:c,reason:`child ${c.conversationId} runs a turn the registry reports ${a.lifecycle} (${a.reason})`})}return b}(a),n=[...l.map(a=>a.pipeline.id),...m.map(a=>s(a.child))],o=E(a),v=new Map,w=(a,b)=>{let c=v.get(a.conversationId);(!c||y.indexOf(b)<y.indexOf(c))&&v.set(a.conversationId,b)},C=a.children.filter(r).sort((a,b)=>{let c=a=>{let b=a.terminalAt?Date.parse(a.terminalAt):NaN;return Number.isFinite(b)?b:1/0};return c(a)-c(b)||a.conversationId.localeCompare(b.conversationId)}).filter(b=>{let c=B(b,a.seat,b.outcomeId??null,z);return c&&w(b,c),null===c}),G=new Set(a.state.childrenShown??[]),H=(function(a){let b=[],c=new Map;for(let d of a){let a=c.get(d.conversationId);if(!a){b.push(d.conversationId),c.set(d.conversationId,{child:d,outcomeIds:d.outcomeId?[d.outcomeId]:[]});continue}a.child=d,d.outcomeId&&a.outcomeIds.push(d.outcomeId)}return b.map(a=>c.get(a))})(C).filter(b=>{let c=B(b.child,a.seat,b.child.outcomeId??null,G);return c&&w(b.child,c),null===c}),I=m.filter(b=>{let c=B(b.child,a.seat,null,G);return c&&w(b.child,c),null===c}),J=a.children.filter(q).filter(b=>{let c=B(b,a.seat,null,z);return c&&w(b,c),null===c});for(let a of[...H.map(a=>a.child),...I.map(a=>a.child),...J])v.delete(a.conversationId);let K={stale:A(v,"stale"),unreadable:A(v,"unreadable"),unchanged:A(v,"unchanged")},M=l.filter(b=>a.state.stalledSeen.includes(b.pipeline.id)),N=I.filter(b=>a.state.stalledSeen.includes(s(b.child))),Q=a.children.filter(a=>"unknown"===a.status).length,S=a.tasks.filter(b=>(function(a,b,c){if("assigned"!==a.status||a.owned)return!1;let d=a.updatedAt?Date.parse(a.updatedAt):NaN;return Number.isFinite(d)&&b-d<c})(b,a.now,a.policy.backlogAfterMs)),T=a.tasks.filter(a=>"assigned"===a.status&&!a.owned).length-S.length,U=a.pipelines.some(p)||a.tasks.some(a=>"inbox"===a.status||"assigned"===a.status)||a.pullRequests.length>0||E(a).length>0||a.children.some(b=>q(b)&&D(b,a.seat))||a.children.some(b=>r(b)&&D(b,a.seat)),V=(b=a.state.lastWakeAt,F(b,a.now,a.settings.wakeIntervalMs)),W={...k,stalledSeen:n};if(!a.settings.enabled)return{verdict:{kind:"quiet",detail:a.settings.reason?`ticking is off for this project: ${a.settings.reason}`:"ticking is off for this project"},state:R(W,i),cards:[]};let X=a.events.filter(t),Y=[];if(V){if(o.length>0){let a=o[0],b=o.length>1?` and ${o.length-1} more`:"";Y.push({kind:"own-lane-settled",detail:`a lane you launched is ${a.settled}${b}`})}if(X.length>0){let a=X[0],b=X.length>1?` and ${X.length-1} more`:"";Y.push({kind:"lane-event",detail:`${a.type} since the last delivered wake${b}`})}if(H.length>0){let a=H[0],b=H.length>1?` and ${H.length-1} more`:"";Y.push({kind:"child-terminal",detail:`a spawned child ${a.child.outcome??"finished"} and its outcome is unharvested${b}`})}if(a.pullRequests.length>0){let b=a.pullRequests[0],c=a.pullRequests.length>1?` and ${a.pullRequests.length-1} more`:"";Y.push({kind:"unmerged-pr",detail:`pull request #${b.number}${c} left open by a lane that finished`})}if((M.length>0||N.length>0)&&Y.push({kind:"stalled",detail:(M[0]??N[0]).reason}),S.length>0){let a=T>0?`, and ${T} older than the backlog bound the wake no longer names`:"";Y.push({kind:"unstarted-task",detail:`${S.length} assigned board task(s) nothing has started${a}`})}let b=a.pipelines.some(p)||J.length>0||a.signals.length>0;U&&b&&0===Y.length&&Y.push({kind:"interval",detail:"the wake interval elapsed while work is open"})}let Z=[],$=[],_=0;for(let b of Y){if(c=a.state,d=b.kind,f=a.changeFingerprint,(L(c.lastWakeFingerprint,f)?0:c.wakesWithoutChange[d]??0)>=a.policy.retryGuard){_+=1,Z.push({ref:(0,e.jK)(b.kind),kind:"retry-guard",detail:`Wakes for "${b.kind}" stopped producing any board or pipeline change; the tick has stopped re-sending it until state moves`});continue}$.push(b)}let aa=(g=[],(h=a.pullRequestsUnavailable)&&g.push({source:"pull-requests",gap:h,detail:`the open pull requests of this project's finished lanes could not be read (${h}), so a pull request a finished lane left unmerged cannot be named in this wake`}),a.childrenUnavailable&&g.push({source:"children",gap:a.childrenUnavailable,detail:`the seat's spawned children could not be read (${a.childrenUnavailable}): ${O(a.childrenUnavailable)}, so a running or finished worker cannot be named in this wake`}),g),ab=P(a,"pull-requests");ab&&Z.push(ab.card);let ac=P(a,"children");ac&&Z.push(ac.card);let ad=ab?.gap??null,ae=ac?.gap??null;if($.length>0){let b=function(a){let{input:b}=a,c=[];for(let a of b.pullRequests)c.push({kind:"pull-request",id:`#${a.number}`,label:`${a.title} — open pull request from ${a.pipelineTitle}, unmerged since that lane finished`});let d=new Set(b.pullRequests.map(a=>a.pipelineId));for(let b of a.ownLanes)d.has(b.id)||c.push({kind:"provisioned"===b.settled?"provisioning":"pipeline",id:b.id,label:function(a){if("provisioned"===a.settled)return`${a.title} — lane you launched: provisioned, first stage running`;if("provisioning-failed"===a.settled)return`${a.title} — lane you launched: provisioning failed, it never ran a stage: ${a.detail||"no reason recorded"}`;let b="completed"===a.settled?"completed, and nobody has closed it out":"failed"===a.settled?"a stage failed":"parked on a decision";return`${a.title} — lane you launched: ${b}`}(b)});for(let b of a.laneEvents)c.push({kind:"event",id:b.pipelineId??b.type,label:`${b.type}: ${b.summary}`});for(let b of a.harvest)c.push({kind:"child",id:b.child.conversationId,outcomeId:b.child.outcomeId,outcomeIds:b.outcomeIds,stateTokens:[x(b.child,b.child.outcomeId??null),x(b.child,null)],label:`${b.child.title} — spawned child ${b.child.outcome??"finished"}, outcome unharvested`});let e=new Set(a.ownLanes.map(a=>a.id));for(let b of a.stalled)e.has(b.pipeline.id)||c.push({kind:"pipeline",id:b.pipeline.id,label:`${b.pipeline.title} — ${b.reason}`});for(let b of a.stalledChildren)c.some(a=>"child"===a.kind&&a.id===b.child.conversationId)||c.push({kind:"child",id:b.child.conversationId,stateTokens:[x(b.child,null)],label:`${b.child.title} — ${b.reason}`});for(let b of a.unstarted)c.push({kind:"task",id:b.id,label:`${b.title} — assigned, nothing started it`});for(let a of b.pipelines)p(a)&&(c.some(b=>b.id===a.id)||c.push({kind:"pipeline",id:a.id,label:`${a.title} — open`}));for(let b of a.runningChildren)c.some(a=>a.id===b.conversationId)||c.push({kind:"child",id:b.outcomeId??b.conversationId,label:`${b.title} — spawned child running`});for(let a of b.signals)c.push({kind:"signal",id:a.id,label:a.label});return c}({input:a,ownLanes:o,stalled:M,stalledChildren:N,harvest:H,runningChildren:J,laneEvents:X,unstarted:S});return{verdict:{kind:"wake",reasons:$,items:b.slice(0,a.policy.itemsPerWake),deferred:Math.max(0,b.length-a.policy.itemsPerWake),skippedChildren:K,gaps:aa},state:W,cards:Z,reportedSourceGap:ad,reportedChildrenGap:ae}}if(aa.length>0){let a=aa[0],b="children"===a.source?"the seat's spawned children":"the open pull requests of this project's finished lanes",c="children"===a.source?`: ${O(a.gap)}`:"";return{verdict:{kind:"error",detail:`${b} could not be read (${a.gap})${c}, so nothing owed is not established`},state:W,cards:Z,reportedSourceGap:ad,reportedChildrenGap:ae}}if(_>0)return{verdict:{kind:"quiet",detail:"every wake reason is held by the retry guard"},state:R(W,i),cards:Z};let af=Q>0?`; ${Q} spawned child(ren) in an unknown state`:"";if(!U){let b={...R(W,i),idleSince:a.state.idleSince??i};return V&&F(a.state.lastProposalAt,a.now,a.policy.proposalIntervalMs)?{verdict:{kind:"proactive",detail:`no open lane, no unblocked task, and the proposal slot is due${af}`},state:b,cards:[]}:{verdict:{kind:"quiet",detail:`the board is done and the proposal slot is not due${af}`},state:b,cards:[]}}return{verdict:{kind:"quiet",detail:`nothing owed${af}`},state:{...R(W,i),idleSince:null},cards:[]}}(a);return{...b,cards:[...b.cards,...function(a){let b=a.settings;if(!b.configured)return[];let c={reason:b.reason,until:b.until,setBy:b.setBy,updatedAt:b.updatedAt};return[{ref:e.Gx,kind:"tick-settings",state:b.isDefault?"resolved":"open",settings:c,detail:N(b)}]}(a)]}}function R(a,b){return{...a,quietSince:a.quietSince??b}}function S(a,b){let{fingerprint:c,eventsThrough:d}=b;if("proactive"===a.kind)return{proposal:!0,reasons:[],fingerprint:c,eventsThrough:d,children:[],announcedLanes:[],shownChildren:[]};if("wake"!==a.kind)return null;let e=new Set(b.terminalChildren??[]),f=[...new Set(a.items.flatMap(a=>a.stateTokens??[]))],g=a.items.filter(a=>"child"===a.kind).flatMap(a=>a.outcomeIds?.length?a.outcomeIds:[a.outcomeId??a.id]).filter(a=>e.has(a)),h=a.items.filter(a=>"provisioning"===a.kind).map(a=>a.id);return{proposal:!1,reasons:a.reasons.map(a=>a.kind),fingerprint:c,eventsThrough:d,children:g,announcedLanes:h,shownChildren:f}}function T(a,b,c){var d,e,g,h,i,j;let k,l,m=new Date(c).toISOString(),n=Math.max(a.eventsThrough??0,b.eventsThrough);if(b.proposal)return{...a,lastWakeAt:m,lastProposalAt:m,lastWakeReasons:[],lastWakeFingerprint:b.fingerprint,quietSince:null,eventsThrough:n,outstandingWake:null,releasedWake:null};let o=b.reasons,p=!L(a.lastWakeFingerprint,b.fingerprint),q={};for(let b of f.MQ)o.includes(b)&&(q[b]=p?(a.wakesWithoutChange[b]??0)+1:0);return{...a,lastWakeAt:m,lastWakeReasons:o,lastWakeFingerprint:b.fingerprint,wakesWithoutChange:q,quietSince:null,idleSince:null,eventsThrough:n,outstandingWake:null,releasedWake:null,harvestedChildren:(d=a.harvestedChildren,e=b.children,[...new Set([...d.filter(a=>!e.includes(a)),...e])]),childrenShown:(g=a.childrenShown??[],h=b.shownChildren??[],k=a=>a.slice(0,a.lastIndexOf("@")),l=new Set(h.map(k)),[...g.filter(a=>!l.has(k(a))),...h].slice(-f.kZ)),announcedLanes:(i=a.announcedLanes??[],j=b.announcedLanes??[],[...new Set([...i.filter(a=>!j.includes(a)),...j])].slice(-f.GN))}}},18398:(a,b,c)=>{c.d(b,{Ch:()=>s,Fm:()=>x,Hy:()=>v,Y$:()=>w,to:()=>C,yO:()=>B});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(2033),l=c(85745);function m(){return process.env.LLV_MONITOR_AUDIT_FILE?.trim()||(0,j.BQ)(i().join("conversation-monitor","runs.ndjson"))}let n=["completed","in-flight","stalled","untracked","awaiting-confirmation"],o=["clean","failed","skipped"],p=["already-tracked","card-budget","dry-run"];function q(a,b){return"string"==typeof a?a.slice(0,b):null}function r(a){return"number"==typeof a&&Number.isFinite(a)&&a>=0?Math.floor(a):0}function s(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=q(a.runId,100),c=o.find(b=>b===a.outcome);if(1!==a.schemaVersion||!b||!c)return null;let d=a.window??{},e=a.scope??{},f=a.orchestrator??{},g=a.scanned??{},h=a.found??{},i=h.byState??{},j=Object.fromEntries(n.map(a=>[a,r(i[a])])),k=Array.isArray(a.created)?a.created:[],l=Array.isArray(a.skipped)?a.skipped:[];return{schemaVersion:1,runId:b,startedAt:q(a.startedAt,40)??"",finishedAt:q(a.finishedAt,40)??"",outcome:c,detail:q(a.detail,800),window:{from:q(d.from,40)??"",to:q(d.to,40)??"",hours:r(d.hours)},scope:{project:q(e.project,200)},orchestrator:{resolution:q(f.resolution,40)??"unavailable",conversationId:q(f.conversationId,100),delivered:!0===f.delivered},scanned:{conversations:r(g.conversations),operatorMessages:r(g.operatorMessages)},found:{total:r(h.total),byState:j,fingerprints:(Array.isArray(h.fingerprints)?h.fingerprints:[]).filter(a=>"string"==typeof a&&/^[A-Za-z0-9_-]{4,64}$/.test(a)).slice(0,500)},created:k.flatMap(a=>{let b=a??{},c=q(b.fingerprint,64),d=q(b.taskId,100);return c&&d?[{fingerprint:c,taskId:d,state:q(b.state,40)??"untracked"}]:[]}).slice(0,500),skipped:l.flatMap(a=>{let b=a??{},c=q(b.fingerprint,64),d=p.find(a=>a===b.reason);return c&&d?[{fingerprint:c,reason:d}]:[]}).slice(0,500)}}function t(a,b){g().mkdirSync(i().dirname(b.filePath),{recursive:!0,mode:448}),(0,k.Ol)(b.filePath,b.busyMessage,()=>{g().appendFileSync(b.filePath,`${JSON.stringify(a)}
2
+ `,{encoding:"utf8",mode:384}),function(a,b){let c;try{c=g().readFileSync(a,"utf8").split("\n").filter(a=>a.trim())}catch{return}if(c.length<=b)return;let d=`${a}.${process.pid}.${e().randomUUID()}.tmp`;g().writeFileSync(d,`${c.slice(-b).join("\n")}
3
+ `,{encoding:"utf8",mode:384}),g().renameSync(d,a)}(b.filePath,b.retention)})}function u(a,b){let c;try{c=g().readFileSync(b.filePath,"utf8")}catch{return[]}let d=[];for(let a of c.split("\n"))if(a.trim())try{let c=b.sanitize(JSON.parse(a));c&&d.push(c)}catch{continue}return d.slice(-Math.max(0,a))}function v(a,b=m()){t(a,{filePath:b,retention:200,busyMessage:"the monitor journal is busy"})}function w(a,b=m()){return u(a,{filePath:b,sanitize:s})}let x=500,y=["quiet","wake","proactive","no-seat","skipped","error","refused","revoked","landed","dropped","uncertain","retired"];function z(){return process.env.LLV_SEAT_TICK_AUDIT_FILE?.trim()||(0,j.BQ)(i().join("seat-tick","runs.ndjson"))}function A(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=q(a.project,200)??"",c=y.find(b=>b===a.verdict);if(1!==a.schemaVersion||!c||!b&&"refused"!==c)return null;let d=a.delivery??null,e=d?q(d.clientMessageId,200):null,f=d?q(d.outcome,60):null;return{schemaVersion:1,at:q(a.at,40)??"",project:b,seatEpoch:"number"==typeof a.seatEpoch&&Number.isSafeInteger(a.seatEpoch)?a.seatEpoch:null,verdict:c,reasons:(Array.isArray(a.reasons)?a.reasons:[]).filter(a=>l.MQ.includes(a)),items:r(a.items),deferred:r(a.deferred),eventsThrough:r(a.eventsThrough),delivery:e&&f?{clientMessageId:e,outcome:f}:null,detail:q(a.detail,800)}}function B(a,b=z()){t(a,{filePath:b,retention:x,busyMessage:"the seat tick journal is busy"})}function C(a,b=z()){return u(a,{filePath:b,sanitize:A})}},45811:(a,b,c)=>{c.d(b,{Qw:()=>q,g2:()=>r,yY:()=>u});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(13117),i=c(5343),j=c(85745),k=c(71715);let l="seat-tick-v3",m=new Map,n=a=>{let b=g().statSync(a);return`${b.dev}:${b.ino}`},o=a=>e().createHash("sha256").update(JSON.stringify(a)).digest("hex"),p=(a,b,c="")=>`${a}/${encodeURIComponent(b)}/${encodeURIComponent(c)}`,q=8,r=4;function s(a){if(!a||"object"!=typeof a)return null;let b=a=>"string"==typeof a&&a.length>0,c=a=>Number.isSafeInteger(a)&&Number(a)>=0,d=a=>null===a||"string"==typeof a,e=a=>a&&b(a.conversationId)&&"string"==typeof a.title&&["running","terminal","unknown"].includes(a.status)&&(null===a.outcome||["finished","failed"].includes(a.outcome));if(1!==a.schemaVersion||!b(a.key)||"string"!=typeof a.project||"string"!=typeof a.kind||!a.key.startsWith(p(a.kind,a.project)))return null;switch(a.kind){case"project":{let e=a.state;if(!c(a.revision)||!c(a.sequence)||!["ready","pending","unknown"].includes(a.migration)||!e||"object"!=typeof e||!d(a.gap)||null!==e.seatEpoch&&!c(e.seatEpoch))return null;for(let a of["lastCheckAt","lastWakeAt","quietSince","idleSince","lastProposalAt"]){let b=e[a];if(null!==b&&("string"!=typeof b||!Number.isFinite(Date.parse(b))))return null}if(null!==e.eventsThrough&&!c(e.eventsThrough)||!Array.isArray(e.harvestedChildren)||0!==e.harvestedChildren.length||!Array.isArray(e.lastWakeReasons)||!Array.isArray(e.stalledSeen)||!e.wakesWithoutChange||"object"!=typeof e.wakesWithoutChange||void 0!==e.childrenShown&&(!Array.isArray(e.childrenShown)||!e.childrenShown.every(b))||void 0!==e.announcedLanes&&(!Array.isArray(e.announcedLanes)||!e.announcedLanes.every(b)))return null;let f=a=>!!a&&!!b(a.clientMessageId)&&!!b(a.conversationId)&&!!c(a.seatEpoch)&&!!d(a.operationId)&&!!a.commit&&"boolean"==typeof a.commit.proposal&&!!b(a.commit.fingerprint)&&!!c(a.commit.eventsThrough)&&!!Array.isArray(a.commit.reasons)&&!!Array.isArray(a.commit.children)&&!!a.commit.children.every(b)&&(void 0===a.commit.shownChildren||!!Array.isArray(a.commit.shownChildren)&&!!a.commit.shownChildren.every(b))&&(void 0===a.commit.announcedLanes||!!Array.isArray(a.commit.announcedLanes)&&!!a.commit.announcedLanes.every(b))&&(void 0===a.preparedAt||!!b(a.preparedAt))&&(void 0===a.dispatch||!!a.dispatch&&b(a.dispatch.token)&&["active","refused","returned"].includes(a.dispatch.state)),g=e.outstandingWake;if(null!==g&&!f(g)||void 0!==a.ownerScan&&(!a.ownerScan||!b(a.ownerScan.identity)||"boolean"!=typeof a.ownerScan.gap))return null;let h=e.retiredWakes;if(void 0===h)return{...a,state:{...e,retiredWakes:[]}};if(!Array.isArray(h))return null;let i=[];for(let a of h){if(!a||"object"!=typeof a||!f(a.wake)||!b(a.retiredAt))return null;let d=a.reason??"seat-superseded";if("seat-superseded"!==d&&"unresolved-age"!==d)return null;let e=a.supersededBy??null;if("seat-superseded"===d&&(!e||!b(e.conversationId)||!c(e.seatEpoch))||"unresolved-age"===d&&null!==e)return null;i.push({...a,supersededBy:e,reason:d})}return{...a,state:{...e,retiredWakes:i}}}case"owner":{if(!b(a.conversationId)||!c(a.epoch))return null;if("string"==typeof a.after&&void 0===a.pollKey)return{...a,after:null,pollKey:""};let d=a=>null===a||!!a&&"object"==typeof a&&Number.isSafeInteger(a.order)&&b(a.key);return"string"==typeof a.pollKey&&d(a.after)&&(void 0===a.bootstrap||a.bootstrap&&d(a.bootstrap.after))?a:null}case"child":return b(a.identity)&&b(a.rowKey)&&b(a.owner)&&b(a.launchId)&&e(a.input)&&c(a.generationIndex)&&d(a.runningKey)&&(void 0===a.pollKey||d(a.pollKey))&&(void 0===a.harvestedEpoch||c(a.harvestedEpoch))?{...a,pollKey:a.pollKey??null}:null;case"source":return b(a.identity)&&b(a.child)&&b(a.engine)&&b(a.generation)&&a.cursor&&c(a.cursor.offset)&&c(a.cursor.seq)&&c(a.cursor.settledThrough)&&c(a.cursor.initialSize)&&d(a.cursor.identity)&&d(a.cursor.activeTurn)&&d(a.cursor.gap)&&"boolean"==typeof a.cursor.atEnd?a:null;case"outcome":return Array.isArray(a.tuple)&&[2,3].includes(a.tuple.length)&&a.tuple.every(b)&&a.identity===o(a.tuple)&&a.key===p("outcome",a.project,a.identity)&&e(a.input)&&a.input.outcomeId===a.identity&&"terminal"===a.input.status&&["owed","acknowledged"].includes(a.status)&&b(a.child)&&b(a.readyKey)?a:null;case"poll":case"ready":case"owner-poll":case"running":return b(a.target)?a:null;case"legacy":return b(a.conversationId)&&"boolean"==typeof a.reconciled?a:null;default:return null}}function t(a,b){let c;try{c=g().openSync(a,g().constants.O_RDONLY|g().constants.O_NOFOLLOW);let d=g().fstatSync(c);if(!d.isFile())return{kind:"gap",gap:"not-a-file"};if(d.size>b)return{kind:"gap",gap:"oversized"};let e=Buffer.allocUnsafe(d.size),f=0;for(;f<d.size;){let a=g().readSync(c,e,f,d.size-f,f);if(!a)break;f+=a}try{return{kind:"parsed",value:JSON.parse(e.subarray(0,f).toString("utf8"))}}catch{return{kind:"gap",gap:"malformed"}}}catch(a){return"ENOENT"===a.code?{kind:"absent"}:{kind:"gap",gap:"unreadable"}}finally{void 0!==c&&g().closeSync(c)}}class u{constructor(a,b){this.filename=a,this.project=b;const c=m.get(a);if(c){if(n(a)!==c.identity)throw Error("seat accounting database was replaced");this.collection=c.collection;return}(0,h.t0)(a,[{collection:l,schemaVersion:1,migrationId:"monitor-v3",key:a=>a.key,loadRecords:()=>[]}]),this.collection=new h.UY(a,{collection:l,schemaVersion:1,busyMessage:"seat outcome accounting is busy",key:a=>a.key,decode:s,clone:structuredClone,strictDecode:!0}),m.set(a,{identity:n(a),collection:this.collection})}base(a,b=""){return{key:p(a,this.project,b),project:this.project,schemaVersion:1}}get(a){return this.collection.get(a)}row(){let a=this.get(p("project",this.project));if(a&&"project"!==a.kind)throw Error("invalid project accounting row");return a}page(a,b){let c=p(a,this.project);return this.collection.keyRange(c,`${c}~`,b)}pollPage(a){let b=this.collection.keyRange(`${p("poll",this.project)}0`,`${p("poll",this.project)}~`,8),c=this.page("poll",a),d=new Set(b.map(a=>a.key));return[...b,...c.filter(a=>!d.has(a.key))].slice(0,a)}ticket(a,b,c,d,e="tail"){if(!Number.isSafeInteger(++b.sequence))throw Error("accounting sequence exhausted");let f={...this.base(c,`${"head"===e?"!":""}${String(b.sequence).padStart(16,"0")}`),kind:c,target:d};return a.put(f),f.key}atHead(a,b){return a.startsWith(p(b,this.project,"!"))}trackRunning(a,b,c){"running"===c.input.status?c.runningKey||(c.runningKey=this.ticket(a,b,"running",c.key)):c.runningKey&&(a.delete(c.runningKey),c.runningKey=null)}mutate(a){return this.collection.boundedPatch(4096,b=>{let c=b.get(p("project",this.project));if(!c||"project"!==c.kind)throw Error("accounting migration has not completed");let d=a(b,c);return c.revision++,b.put(c),d})}initialize(a,b){this.collection.boundedPatch(4096,c=>{if(!c.get(p("project",this.project))){for(let b of a.harvestedChildren)c.put({...this.base("legacy",b),kind:"legacy",conversationId:b,reconciled:!1});c.put({...this.base("project"),kind:"project",revision:0,sequence:0,state:{...a,harvestedChildren:[]},migration:b?"unknown":"ready",gap:b})}})}migrateLegacy(a,b){if(this.row()?.migration==="ready")return;this.row()||this.collection.boundedPatch(2,a=>{a.get(p("project",this.project))||a.put({...this.base("project"),kind:"project",revision:0,sequence:0,state:(0,j.v0)(),migration:"pending",gap:null})});let c=this.row(),d=t(a,4194304),e=null,f=(0,j.v0)(),g=[];if("gap"===d.kind)e="malformed"===d.gap?"legacy-json-malformed":"oversized"===d.gap?"legacy-state-oversized":"legacy-state-unreadable";else if("parsed"===d.kind){let a=d.value,c=a&&"object"==typeof a&&!Array.isArray(a)?a.projects:void 0;if(!c||"object"!=typeof c||Array.isArray(c))e="legacy-projects-unreadable";else{let d="number"==typeof a.version?a.version:null,h=c[this.project];if(void 0!==h){let a=h&&"object"==typeof h&&!Array.isArray(h)?h:{};f=b(a,d);let c=a.harvestedChildren;if(void 0!==c)if(Array.isArray(c))for(let a of c){if("string"!=typeof a||!a||a.length>200){e="legacy-acknowledgments-unreadable";break}g.push(a)}else e="legacy-acknowledgments-unreadable";Object.hasOwn(a,"outstandingWake")&&null!==a.outstandingWake&&!f.outstandingWake&&(e="legacy-outstanding-unreadable")}}}let h=e?[]:[...new Set(g)];for(let a=0;a<h.length;a+=1e3){let b=h.slice(a,a+1e3);this.collection.boundedPatch(1002,a=>{let d=a.get(c.key);if(d&&"project"===d.kind&&d.revision===c.revision)for(let c of b)a.put({...this.base("legacy",c),kind:"legacy",conversationId:c,reconciled:!1})})}this.collection.boundedPatch(2,a=>{let b=a.get(c.key);if(!b||"project"!==b.kind||b.revision!==c.revision)return;let d=e?"unknown":"ready";b.migration===d&&b.gap===e&&e||a.put({...b,revision:b.revision+1,state:e?b.state:{...f,harvestedChildren:[]},migration:d,gap:e})})}readState(){let a=this.row();if(!a)throw Error("missing project accounting");return{...a.state,accounting:{filename:this.filename,revision:a.revision,gap:"ready"===a.migration?a.gap:a.gap??"legacy-migration-pending"}}}writeState(a){this.mutate((b,c)=>{if(a.accounting?.revision!==c.revision)throw Error("stale seat tick state");c.state={...a,accounting:void 0,harvestedChildren:[]}})}owner(a,b){let c=p("owner",this.project,String(b)),d=this.get(c);if(d?.kind==="owner"&&d.conversationId===a&&d.pollKey)return d;this.mutate((d,e)=>{let f=d.get(c);if(f){if("owner"!==f.kind||f.conversationId!==a)throw Error("contradictory seat ownership");f.pollKey||d.put({...f,pollKey:this.ticket(d,e,"owner-poll",c)});return}let g={...this.base("owner",String(b)),kind:"owner",conversationId:a,epoch:b,after:null,pollKey:""};g.pollKey=this.ticket(d,e,"owner-poll",c),d.put(g)});let e=this.get(c);if(!e||"owner"!==e.kind)throw Error("missing owner provenance");return e}discoverRevokedOwners(a,b){let c,d=this.row();try{let b=g().statSync(a);c=`${b.dev}:${b.ino}:${b.size}:${b.mtimeMs}`}catch(a){return"ENOENT"!==a.code}if(d.ownerScan?.identity===c)return d.ownerScan.gap;let e=t(a,0x1000000);if("absent"===e.kind)return!1;let f="gap"===e.kind,h=[];if("parsed"===e.kind){let a=e.value,c=a&&"object"==typeof a&&!Array.isArray(a)&&1===a.schemaVersion&&Array.isArray(a.revocations)?a.revocations:null;if(c)for(let a of c){let c=a??{};"string"==typeof c.project&&b(c.project)&&"string"==typeof c.conversationId&&c.conversationId.startsWith("conversation_")&&Number.isSafeInteger(c.seatEpoch)&&Number(c.seatEpoch)>=1&&"string"==typeof c.revokedAt&&Number.isFinite(Date.parse(c.revokedAt))&&h.push({conversationId:c.conversationId,epoch:Number(c.seatEpoch)})}else f=!0}let i=h.slice(0,200),j=h.length>i.length,k=!1;return this.mutate((a,b)=>{if(b.revision!==d.revision){k=!0;return}for(let c of i){let d=p("owner",this.project,String(c.epoch)),e=a.get(d);if(e){if("owner"!==e.kind||e.conversationId!==c.conversationId)throw Error("contradictory predecessor ownership");continue}let f={...this.base("owner",String(c.epoch)),kind:"owner",conversationId:c.conversationId,epoch:c.epoch,after:null,pollKey:""};f.pollKey=this.ticket(a,b,"owner-poll",d),a.put(f)}j||(b.ownerScan={identity:c,gap:f})}),f||j||k}discovery(a,b){this.mutate((c,d)=>{if(c.get(a.pollKey)){for(let{child:a,position:e}of b){let b=c.get(a.key);if(b){if("child"!==b.kind)throw Error("invalid child provenance");b.pollKey||c.put({...b,pollKey:this.ticket(c,d,"poll",a.key,e)});continue}a.pollKey=this.ticket(c,d,"poll",a.key,e),this.trackRunning(c,d,a),c.put(a)}c.delete(a.pollKey),c.put({...a,pollKey:this.ticket(c,d,"owner-poll",a.key)})}})}adoptPoll(a,b){return a.pollKey?a:(this.mutate(c=>{let d=c.get(a.key),e=c.get(b);d?.kind!=="child"||d.pollKey||e?.kind!=="poll"||e.target!==a.key||c.put({...d,pollKey:b})}),this.get(a.key))}child(a,b,c,d){let e=o([b,a,c]);return{...this.base("child",e),kind:"child",identity:e,rowKey:a,owner:b,launchId:c,input:d,generationIndex:0,runningKey:null,pollKey:null}}source(a,b,c){let d=o([b,c]),e=this.get(p("source",this.project,d));if(e){if("source"!==e.kind||e.child!==a.key||e.engine!==b||e.generation!==c)throw Error("source identity collision");return e}return{...this.base("source",d),kind:"source",identity:d,child:a.key,engine:b,generation:c,cursor:(0,k.rD)()}}ingest(a,b,c,d=!1,e="tail"){this.mutate((f,g)=>{a.pollKey&&f.get(a.pollKey)&&(b?.cursor.identity&&b.legacyBoundary?.identity!==b.cursor.identity&&(b.legacyBoundary={identity:b.cursor.identity,bytes:b.cursor.initialSize}),(d?[[a.launchId,"pre-execution-failure"]]:c.map(a=>[b.engine,b.generation,a.turnId])).forEach((e,h)=>{let i=o(e),j=p("outcome",this.project,i),k=d||"completed"!==c[h].status?"failed":"finished",l=f.get(j);if(l){if("outcome"!==l.kind||JSON.stringify(l.tuple)!==JSON.stringify(e))throw Error("outcome identity collision");l.input.outcome!==k&&f.put({...l,gap:"conflicting-terminal"});return}let m=f.get(p("legacy",this.project,a.input.conversationId)),n={...a.input,status:"terminal",outcome:k,outcomeId:i},q=p("ready",this.project,String(g.sequence+1).padStart(16,"0"));this.ticket(f,g,"ready",j),f.put({...this.base("outcome",i),kind:"outcome",identity:i,child:a.key,tuple:e,input:n,status:"owed",landingKey:null,readyKey:q,gap:m&&(d||!b?.legacyBoundary||c[h].endOffset<=b.legacyBoundary.bytes)?"legacy-delivery-ambiguous":null})}),b&&f.put(b),this.trackRunning(f,g,a),f.delete(a.pollKey),a.pollKey=this.ticket(f,g,"poll",a.key,e),f.put(a))})}promote(a){!a.pollKey||this.atHead(a.pollKey,"poll")||this.mutate((b,c)=>{b.get(a.pollKey)&&(b.delete(a.pollKey),a.pollKey=this.ticket(b,c,"poll",a.key,"head"),b.put(a))})}rotateCold(a){a.length&&this.mutate((b,c)=>{for(let d of a){let a=b.get(d.key);a?.kind==="child"&&d.pollKey&&a.pollKey===d.pollKey&&b.get(d.pollKey)&&(b.delete(d.pollKey),b.put({...a,pollKey:this.ticket(b,c,"poll",d.key)}))}})}drop(a){this.mutate(b=>{b.get(a.key)&&b.delete(a.key)})}rotateRunning(a){0!==a.length&&this.mutate((b,c)=>{for(let d of a){if("running"!==d.kind||!b.get(d.key))continue;b.delete(d.key);let a=b.get(d.target);a&&"child"===a.kind&&a.runningKey===d.key&&(a.runningKey="running"===a.input.status?this.ticket(b,c,"running",a.key):null,b.put(a))}})}ready(a){return this.page("ready",a).flatMap(a=>{if("ready"!==a.kind)throw Error("invalid ready ticket");let b=this.get(a.target);if(!b||"outcome"!==b.kind)throw Error("missing outcome");return"owed"===b.status&&b.gap&&this.defer(b),"owed"!==b.status||b.gap?[]:[b]})}defer(a){this.mutate((b,c)=>{let d=b.get(a.key);d&&"outcome"===d.kind&&"owed"===d.status&&d.readyKey===a.readyKey&&(b.delete(d.readyKey),d.readyKey=p("ready",this.project,String(c.sequence+1).padStart(16,"0")),this.ticket(b,c,"ready",d.key),b.put(d))})}prepare(a,b){return this.collection.boundedPatch(4096,c=>{let d=c.get(p("project",this.project));if(!d||"project"!==d.kind)throw Error("accounting migration has not completed");if(d.revision!==a.accounting?.revision||d.state.outstandingWake||"ready"!==d.migration)return!1;for(let a of b.commit.children){let b=c.get(p("outcome",this.project,a));if(!b||"outcome"!==b.kind||"owed"!==b.status||b.gap)return!1}return d.state={...a,accounting:void 0,harvestedChildren:[],outstandingWake:b},d.revision++,c.put(d),!0})}beginDispatch(a){return this.mutate((b,c)=>{let d=c.state.outstandingWake;if(!d||d.clientMessageId!==a.clientMessageId||d.dispatch&&"refused"!==d.dispatch.state||d.dispatch?.token!==a.dispatch?.token)return null;let f=e().randomUUID();return c.state.outstandingWake={...d,dispatch:{token:f,state:"active"}},f})}returnedDispatch(a,b,c){this.mutate((d,e)=>{let f=e.state.outstandingWake;if(f?.clientMessageId===a&&f.dispatch?.token===b&&"active"===f.dispatch.state){e.state.outstandingWake={...f,dispatch:{token:b,state:c?"refused":"returned"}};return}let g=e.state.retiredWakes??[],h=g.findIndex(c=>c.wake.clientMessageId===a&&c.wake.dispatch?.token===b&&"active"===c.wake.dispatch.state);if(h<0)return;let i=[...g];i[h]={...i[h],wake:{...i[h].wake,dispatch:{token:b,state:c?"refused":"returned"}}},e.state={...e.state,retiredWakes:i}})}cancelUndispatched(a){return this.mutate((b,c)=>{let d=c.state.outstandingWake;return!!d&&d.clientMessageId===a.clientMessageId&&!d.dispatch&&(c.state.outstandingWake=null,!0)})}settleAbsent(a){return this.mutate((b,c)=>{let d=c.state.outstandingWake;return!!d&&d.clientMessageId===a.clientMessageId&&!d.operationId&&!!d.text&&d.dispatch?.state==="refused"&&d.dispatch.token===a.dispatch?.token&&(c.state.outstandingWake=null,!0)})}retire(a,b,c,d){return this.mutate((e,f)=>{let g=f.state.outstandingWake;if(!g||g.clientMessageId!==a.clientMessageId)return{retired:!1,evicted:null};let h=f.state.retiredWakes??[],i=null;if(h.length>=j.r8){let a=h.findIndex(a=>{if(a.wake.dispatch?.state==="active")return!1;let b=Date.parse(a.wake.preparedAt??a.retiredAt);return Number.isFinite(b)&&void 0!==d&&b<=d});if(a<0)return{retired:!1,evicted:null};i=h[a].wake.clientMessageId,h=[...h.slice(0,a),...h.slice(a+1)]}return f.state={...f.state,outstandingWake:null,retiredWakes:[...h,{wake:g,retiredAt:b,supersededBy:c.supersededBy,reason:c.reason}],releasedWake:{clientMessageId:g.clientMessageId,releasedAt:b}},{retired:!0,evicted:i}})}settleRetired(a){return this.mutate((b,c)=>{let d=c.state.retiredWakes??[],e=d.filter(b=>b.wake.clientMessageId!==a);return e.length!==d.length&&(c.state={...c.state,retiredWakes:e},!0)})}settle(a,b,c){return this.mutate((d,e)=>{let f=e.state.outstandingWake;if(!f||f.clientMessageId!==a||"unsent"===c&&f.dispatch?.state==="active")return!1;if("landed"===c)for(let b of f.commit.children){let c=d.get(p("outcome",this.project,b));if(!c){if(!b.startsWith("conversation_"))throw Error("missing frozen outcome");d.put({...this.base("legacy",b),kind:"legacy",conversationId:b,reconciled:!0});continue}if("outcome"!==c.kind)throw Error("invalid frozen outcome");d.put({...c,status:"acknowledged",landingKey:a}),d.delete(c.readyKey);let e=d.get(c.child);e?.kind==="child"&&(e.harvestedEpoch??-1)<f.seatEpoch&&d.put({...e,harvestedEpoch:f.seatEpoch})}let g="landed"===c?(0,i.WI)(e.state,f.commit,Date.parse(b.lastWakeAt)):e.state;return e.state={...g,accounting:void 0,harvestedChildren:[],outstandingWake:null,releasedWake:"landed"===c?null:b.releasedWake??null},!0})}}},51529:(a,b,c)=>{c.d(b,{L0:()=>v,S9:()=>r,U2:()=>u,Vw:()=>x,w$:()=>w});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(45811),i=c(91724),j=c(85745);function k(){return process.env.LLV_SEAT_TICK_STATE_FILE?.trim()||(0,i.BQ)("seat-tick.json")}function l(a){return"string"==typeof a&&Number.isFinite(Date.parse(a))?a:null}function m(a){return(Array.isArray(a)?a:[]).filter(a=>"string"==typeof a&&a.length>0&&a.length<=200)}function n(a){var b;if(!a||"object"!=typeof a||Array.isArray(a))return null;let c="string"==typeof a.clientMessageId?a.clientMessageId:"",d="string"==typeof a.conversationId?a.conversationId:"",e=a.seatEpoch,f=!(b=a.commit)||"object"!=typeof b||Array.isArray(b)?null:"string"==typeof b.fingerprint&&b.fingerprint&&"number"==typeof b.eventsThrough&&Number.isInteger(b.eventsThrough)&&!(b.eventsThrough<0)?{proposal:!0===b.proposal,reasons:(Array.isArray(b.reasons)?b.reasons:[]).filter(a=>j.MQ.includes(a)),fingerprint:b.fingerprint.slice(0,200),eventsThrough:b.eventsThrough,children:m(b.children),shownChildren:m(b.shownChildren),announcedLanes:m(b.announcedLanes)}:null;return c&&d&&f&&"number"==typeof e&&Number.isSafeInteger(e)?{clientMessageId:c,conversationId:d,seatEpoch:e,operationId:"string"==typeof a.operationId&&a.operationId?a.operationId:null,commit:f,..."string"==typeof a.text?{text:a.text}:{},...l(a.preparedAt)?{preparedAt:a.preparedAt}:{}}:null}let o=["timed-out","command-failed","malformed-output","lanes-unreadable"];function p(a,b){var c;let d,e=(0,j.v0)();if(!a||"object"!=typeof a||Array.isArray(a))return e;let f={},g=a.wakesWithoutChange??{};for(let a of j.MQ){let b=g[a];"number"==typeof b&&Number.isInteger(b)&&b>=0&&(f[a]=b)}return{seatEpoch:"number"==typeof a.seatEpoch&&Number.isSafeInteger(a.seatEpoch)?a.seatEpoch:null,lastCheckAt:l(a.lastCheckAt),lastWakeAt:l(a.lastWakeAt),lastWakeReasons:(Array.isArray(a.lastWakeReasons)?a.lastWakeReasons:[]).filter(a=>j.MQ.includes(a)),wakesWithoutChange:f,quietSince:l(a.quietSince),idleSince:l(a.idleSince),lastProposalAt:l(a.lastProposalAt),stalledSeen:(Array.isArray(a.stalledSeen)?a.stalledSeen:[]).filter(a=>"string"==typeof a&&a.length>0&&a.length<=100).slice(0,200),lastWakeFingerprint:"string"==typeof a.lastWakeFingerprint?a.lastWakeFingerprint.slice(0,200):null,eventsThrough:"number"!=typeof(d=a.eventsThrough)||!Number.isInteger(d)||d<0||b&&0===d&&!l(a.lastWakeAt)?null:d,outstandingWake:n(a.outstandingWake),retiredWakes:(Array.isArray(c=a.retiredWakes)?c:[]).flatMap(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return[];let b=n(a.wake),c=l(a.retiredAt);if(!b||!c)return[];let d=void 0===a.reason?"seat-superseded":a.reason;if("seat-superseded"!==d&&"unresolved-age"!==d)return[];if("unresolved-age"===d)return a.supersededBy?[]:[{wake:b,retiredAt:c,supersededBy:null,reason:d}];let e=a.supersededBy;if(!e||"object"!=typeof e)return[];let f="string"==typeof e.conversationId?e.conversationId:"",g=e.seatEpoch;return f&&"number"==typeof g&&Number.isSafeInteger(g)?[{wake:b,retiredAt:c,supersededBy:{conversationId:f,seatEpoch:g},reason:d}]:[]}).slice(0,j.r8),releasedWake:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b="string"==typeof a.clientMessageId&&a.clientMessageId.length>0&&a.clientMessageId.length<=1e3?a.clientMessageId:null,c=l(a.releasedAt);return b&&c?{clientMessageId:b,releasedAt:c}:null}(a.releasedWake),pullRequestGap:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=o.find(b=>b===a.gap),c=l(a.since),d=l(a.lastAttemptAt),e=a.attempts;return b&&c&&d&&"number"==typeof e&&Number.isInteger(e)&&!(e<1)?{gap:b,since:c,lastAttemptAt:d,attempts:e,reported:!0===a.reported}:null}(a.pullRequestGap),childrenGap:null,harvestedChildren:m(a.harvestedChildren),childrenShown:m(a.childrenShown).slice(-j.kZ),announcedLanes:m(a.announcedLanes).slice(-j.GN)}}function q(a){try{let b=JSON.parse(e().readFileSync(a,"utf8"));if(!b||"object"!=typeof b||Array.isArray(b))return{version:2,projects:{}};let c=!("number"==typeof b.version&&b.version>=2),d=b.projects??{};return{version:2,projects:Object.fromEntries(Object.entries(d).map(([a,b])=>[a,p(b,c)]))}}catch{return{version:2,projects:{}}}}function r(a,b){return a.seatEpoch===b?a:{...(0,j.v0)(),seatEpoch:b,eventsThrough:a.eventsThrough,lastWakeAt:a.lastWakeAt,lastProposalAt:a.lastProposalAt,outstandingWake:a.outstandingWake,retiredWakes:a.retiredWakes??[],releasedWake:a.releasedWake??null,pullRequestGap:a.pullRequestGap,childrenGap:a.childrenGap,harvestedChildren:a.harvestedChildren,accounting:a.accounting}}function s(a){return a===k()?g().join(g().dirname(a),"state.sqlite"):`${a}.sqlite`}function t(a,b){let c=new h.yY(s(b),a);return c.migrateLegacy(b,(a,b)=>p(a,2!==b)),c}function u(a,b=k()){return t(a,b).readState()}function v(a,b=k()){let c=new h.yY(s(b),a);return c.row()?c.readState():q(b).projects[a]??(0,j.v0)()}function w(a=k()){for(let b of Object.keys(q(a).projects))t(b,a);let b=s(a);return Object.fromEntries(new h.yY(b,"").collection.snapshot().flatMap(a=>"project"===a.kind?[[a.project,{...a.state,accounting:{filename:b,revision:a.revision,gap:a.gap}}]]:[]))}function x(a,b,c=k()){let d=t(a,c);d.writeState(b.accounting?b:{...b,accounting:d.readState().accounting})}},71715:(a,b,c)=>{c.d(b,{Hw:()=>g,IV:()=>k,rD:()=>f});var d=c(73024),e=c.n(d);let f=()=>({offset:0,identity:null,seq:0,activeTurn:null,settledThrough:0,atEnd:!1,initialSize:0,gap:null}),g=256,h=Buffer.from('"turn-'),i=new Set(["completed","interrupted","error"]);function j(a){let b;try{b=JSON.parse(a.toString("utf8"))}catch{return null}if(!b||"object"!=typeof b||Array.isArray(b))return null;let c=b;return"string"!=typeof c.kind||!Number.isSafeInteger(c.seq)||c.seq<=0?null:{kind:c.kind,seq:c.seq,turnId:c.turnId,status:c.status}}function k(a,b,c,d=g){let l;if(!Number.isSafeInteger(c)||c<1||c>0x4000000)throw Error("invalid ledger budget");if(!Number.isSafeInteger(d)||d<1||d>g)throw Error("invalid ledger outcome budget");let m={...b},n=[],o=0,p=0;try{l=e().openSync(a,e().constants.O_RDONLY|e().constants.O_NOFOLLOW);let g=e().fstatSync(l);if(!g.isFile())throw Error("ledger is not a regular file");let k=`${g.dev}:${g.ino}`;(m.identity!==k||g.size<m.offset)&&(m={...f(),identity:k,initialSize:g.size,gap:b.identity?"ledger-replaced":b.gap}),"ledger-unreadable"===m.gap&&(m.gap=null);let q=Buffer.allocUnsafe(Math.min(262144,Math.max(c,1))),r=[],s=0,t=!1,u=m.offset,v=!1;for(;!v&&u<g.size&&(!(o>=c)||!(p>0)&&(0!==s||t));){let a=e().readSync(l,q,0,q.length,u);if(!a)break;o+=a,u+=a;let b=0;for(;b<a;){let c=q.indexOf(10,b);if(c<0){let c=q.subarray(b,a);t||((s+=c.length)>0x1000000?(t=!0,r=[],s=0):r.push(Buffer.from(c)));break}let e=u-a+c+1;if(t)m.gap="malformed-record",m.resync=!0,t=!1;else{let a=q.subarray(b,c),d=r.length?Buffer.concat([...r,a]):a;d.length>0x1000000?m.gap="malformed-record":function(a,b,c,d){let e;if(b.indexOf(h)>=0)e=j(b);else{let a,c,d=(a=b.subarray(Math.max(0,b.length-48)).toString("latin1").trimEnd(),(c=/"seq":(\d{1,15})\}$/.exec(a))?Number(c[1]):null);e=null!==d?{kind:"",seq:d}:j(b)}if(!e){a.gap="malformed-record",a.resync=!0;return}a.resync?delete a.resync:e.seq!==a.seq+1&&(a.gap="sequence-gap"),a.seq=e.seq,"turn-started"===e.kind?"string"==typeof e.turnId&&e.turnId?a.activeTurn=e.turnId:a.gap="invalid-turn-start":"turn-ended"===e.kind&&("string"==typeof e.turnId&&e.turnId.length>0&&i.has(String(e.status))?((null===a.activeTurn||a.activeTurn===e.turnId)&&(a.activeTurn=null,a.settledThrough=e.seq),d.push({turnId:e.turnId,status:e.status,seq:e.seq,endOffset:c})):a.gap="invalid-terminal")}(m,d,e,n)}if(r=[],s=0,m.offset=e,p++,b=c+1,n.length>=d){v=!0;break}}}m.atEnd=m.offset===g.size}catch(b){let a="ENOENT"===b.code;m.gap=a?m.identity?"ledger-missing":m.gap:"ledger-unreadable",m.atEnd=!1}finally{void 0!==l&&e().closeSync(l)}return{cursor:m,outcomes:n,bytes:o,records:p}}},76775:(a,b,c)=>{c.d(b,{GP:()=>g,Gx:()=>k,Lz:()=>o,M$:()=>i,Qw:()=>f,V2:()=>h,Vi:()=>p,X7:()=>l,_I:()=>m,aS:()=>e,jK:()=>j,xz:()=>n});var d=c(26347);let e="monitor-ref:",f="orchestrator-unresolved",g=a=>`monitor-741:${a}`;function h(a){let b=a.match(/^monitor-ref:\s*([A-Za-z0-9_-]{4,64})\s*$/m);return b?b[1]:null}function i(a,b){return(0,d.t)(`Conversation monitor cannot resolve a live orchestrator
4
+
5
+ The monitor resolves the orchestrator through the durable record, never a transcript path. ${a}.
6
+ Until a live orchestrator is adopted, monitor runs report their findings on the board only — nothing is delivered in chat.
7
+ Observed ${b.slice(0,16).replace("T"," ")} UTC.
8
+
9
+ ${e} ${f}`,5e3)}let j=a=>`seat-tick-stuck-${a}`,k="seat-tick-settings",l=a=>`seat-tick-source-${a}`,m=a=>`seat-tick-proposal-${a}`;function n(a,b,c,f){return(0,d.t)(`Seat tick stopped re-sending a wake reason
10
+
11
+ ${b}.
12
+ Project ${a}. Observed ${f.slice(0,16).replace("T"," ")} UTC.
13
+ The tick resumes this reason on its own once the board or a pipeline moves.
14
+
15
+ ${e} ${c}`,5e3)}function o(a,b,c,f){return(0,d.t)(`Seat tick cannot read one of its evidence sources
16
+
17
+ ${b}.
18
+ Wakes continue on every reason that does not depend on it, and each one names the missing evidence; an unmerged pull request left by a finished lane is what cannot be seen while this stands.
19
+ The tick keeps asking, at this project's wake interval, and reports nothing further until the source answers — this card is raised once per outage.
20
+ Project ${a}. Observed ${f.slice(0,16).replace("T"," ")} UTC.
21
+
22
+ ${e} ${c}`,5e3)}function p(a){let b=a.setBy?.project&&a.setBy.project!==a.project,c=a.setBy?`Set by ${"manager"===a.setBy.kind?"the designated seat":"gateway"===a.setBy.kind?"the operator's own session":"agent"===a.setBy.kind?"an agent session":"a caller nothing identified"}${a.setBy.conversationId?` (${a.setBy.conversationId})`:""}${b?`, whose own project is ${a.setBy.project}`:""}.`:"Set by nobody the record names.";return(0,d.t)(["This project's seat tick is not on its default settings\n",`${a.detail}.`,`Reason given: ${a.reason??"none recorded"}.`,a.until?`It returns to the default at ${a.until.slice(0,16).replace("T"," ")} UTC.`:"It stands until someone changes it back.",c,`Project ${a.project}. Recorded ${a.updatedAt?`${a.updatedAt.slice(0,16).replace("T"," ")} UTC`:"at an unrecorded time"}.`,"Change it with the seat tick settings tool; this card clears itself once the project is back on the defaults.\n",`${e} ${k}`].join("\n"),5e3)}},85745:(a,b,c)=>{c.d(b,{GN:()=>h,M:()=>e,MQ:()=>d,kZ:()=>g,r8:()=>f,v0:()=>i});let d=["lane-event","unmerged-pr","stalled","unstarted-task","interval","child-terminal","own-lane-settled"],e=["registry-unreadable","children-unindexed","migration-blocked","migration-pending","discovery-incomplete","ledger-gap","child-departed","child-unplaced","ledger-pending"],f=20,g=64,h=64;function i(){return{seatEpoch:null,lastCheckAt:null,lastWakeAt:null,lastWakeReasons:[],wakesWithoutChange:{},quietSince:null,idleSince:null,lastProposalAt:null,stalledSeen:[],lastWakeFingerprint:null,eventsThrough:null,outstandingWake:null,retiredWakes:[],releasedWake:null,pullRequestGap:null,childrenGap:null,harvestedChildren:[],childrenShown:[],announcedLanes:[]}}},86631:(a,b,c)=>{c.d(b,{Es:()=>t,Fh:()=>r,X6:()=>s,nj:()=>q,q0:()=>o,qx:()=>p,tx:()=>k});var d=c(73024),e=c.n(d),f=c(91724),g=c(65154),h=c(2033),i=c(26347);function j(){return process.env.LLV_SEAT_TICK_SETTINGS_FILE?.trim()||(0,f.BQ)("seat-tick-settings.json")}function k(a){return{project:a,enabled:!0,wakeIntervalMinutes:null,reason:null,monitorPrompt:null,until:null,updatedAt:null,setBy:null}}function l(a){return a.enabled&&null===a.wakeIntervalMinutes}function m(a){return"string"==typeof a&&Number.isFinite(Date.parse(a))?a:null}function n(a){try{let b=JSON.parse(e().readFileSync(a,"utf8"));if(!b||"object"!=typeof b||Array.isArray(b))return{version:1,projects:{}};let c=b.projects??{};return{version:1,projects:Object.fromEntries(Object.entries(c).map(([a,b])=>{var c,d,e;let f;return[a,(c=a,d=b,f=k(c),!d||"object"!=typeof d||Array.isArray(d)?f:{project:c,enabled:!1!==d.enabled,wakeIntervalMinutes:"number"!=typeof(e=d.wakeIntervalMinutes)||!Number.isFinite(e)||e<=0?null:Math.min(525600,e),reason:"string"==typeof d.reason&&d.reason.trim()?d.reason.slice(0,500):null,monitorPrompt:"string"==typeof d.monitorPrompt&&d.monitorPrompt.trim()?d.monitorPrompt.slice(0,16e3):null,until:m(d.until),updatedAt:m(d.updatedAt),setBy:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=a.kind;return"manager"!==b&&"agent"!==b&&"gateway"!==b&&"unidentified"!==b?null:{kind:b,conversationId:"string"==typeof a.conversationId&&a.conversationId?a.conversationId.slice(0,200):null,project:"string"==typeof a.project&&a.project?a.project.slice(0,200):null,seatEpoch:"number"==typeof a.seatEpoch&&Number.isSafeInteger(a.seatEpoch)?a.seatEpoch:null}}(d.setBy)})]}))}}catch{return{version:1,projects:{}}}}function o(a,b=j()){return n(b).projects[a]??k(a)}function p(a=j()){return n(a).projects}function q(a,b,c=j()){(0,h.Ol)(c,"seat tick settings are busy",()=>{let d=n(c);(0,g.f)(c,{version:1,projects:{...d.projects,[a]:{...b,project:a}}})})}function r(a,b,c){let d=a.until?Date.parse(a.until):NaN,e=Number.isFinite(d)&&d<=b&&!l(a),f=null!==a.updatedAt;return e||l(a)?{enabled:!0,wakeIntervalMs:c,reason:null,monitorPrompt:a.monitorPrompt,until:null,updatedAt:a.updatedAt,isDefault:!0,configured:f,lapsed:e,setBy:e?a.setBy:null}:{enabled:a.enabled,wakeIntervalMs:null===a.wakeIntervalMinutes?c:Math.round(6e4*a.wakeIntervalMinutes),reason:a.reason,monitorPrompt:a.monitorPrompt,until:a.until,updatedAt:a.updatedAt,isDefault:!1,configured:f,lapsed:!1,setBy:a.setBy}}function s(a,b){let c=k(a);return b.monitorPrompt?{...c,monitorPrompt:b.monitorPrompt,updatedAt:b.updatedAt,setBy:b.setBy}:c}function t(a,b,c){if(0===["enabled","wakeIntervalMinutes","reason","monitorPrompt","until"].filter(a=>Object.hasOwn(b,a)).length)return{ok:!1,error:"a tick settings change needs at least one field"};let d=Object.hasOwn(b,"enabled")?b.enabled:a.enabled;if("boolean"!=typeof d)return{ok:!1,error:"enabled must be a boolean"};let e=a.wakeIntervalMinutes;if(Object.hasOwn(b,"wakeIntervalMinutes")){let a=b.wakeIntervalMinutes;if(null===a)e=null;else{if("number"!=typeof a||!Number.isFinite(a)||a<=0)return{ok:!1,error:"wakeIntervalMinutes must be a positive number of minutes, or null for the default"};if(a>525600)return{ok:!1,error:"wakeIntervalMinutes must be at most 525600; disable the tick instead of setting a longer interval"};e=a}}let f=a.until;if(Object.hasOwn(b,"until")){let a=b.until;if(null===a)f=null;else{if("string"!=typeof a||!Number.isFinite(Date.parse(a)))return{ok:!1,error:"until must be an ISO instant, or null for a setting that stands until it is changed"};f=new Date(Date.parse(a)).toISOString()}}let g=a.reason;if(Object.hasOwn(b,"reason")){let a=b.reason;if(null===a)g=null;else{if("string"!=typeof a)return{ok:!1,error:"reason must be a string"};g=(0,i.t)(a,500)||null}}let h=a.monitorPrompt??null;if(Object.hasOwn(b,"monitorPrompt")){let a=b.monitorPrompt;if(null===a)h=null;else{if("string"!=typeof a)return{ok:!1,error:"monitorPrompt must be a string, or null to clear it"};let b=(0,i.l)(a).trim();if(a.length>16e3||b.length>16e3)return{ok:!1,error:`monitorPrompt is ${a.length} characters; the limit is 16000. Nothing was stored — shorten the note and send it again`};h=b||null}}let j={project:a.project,enabled:d,wakeIntervalMinutes:e,reason:g,monitorPrompt:h,until:f,updatedAt:c.at,setBy:c.actor};return l(j)||j.reason?l(j)?{ok:!0,settings:{...j,wakeIntervalMinutes:null,reason:null,until:null}}:{ok:!0,settings:j}:{ok:!1,error:"a reason is required when the tick is disabled or its wake interval is changed; a quiet tick with no recorded reason is indistinguishable from a broken one"}}}};
@@ -0,0 +1,24 @@
1
+ "use strict";exports.id=2914,exports.ids=[2914],exports.modules={30533:(a,b,c)=>{c.r(b),c.d(b,{STRUCTURED_HOST_RETIREMENT_CLAUSES:()=>F,STRUCTURED_HOST_RETIREMENT_INTERVAL_MS:()=>A,reconcileStructuredHostRetirement:()=>$,runStructuredHostRetirementSweep:()=>Z,startStructuredHostRetirement:()=>aa,stopStructuredHostRetirement:()=>ab,structuredHostRetirementBatch:()=>B,structuredHostRetirementGraceMs:()=>N,structuredHostRetirementIdleMs:()=>M,structuredHostRetirementJournalRecord:()=>U,structuredHostRetirementVerdict:()=>L});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(10781),i=c(48892),j=c(91724),k=c(15408),l=c(63657),m=c(70547),n=c(9302),o=c(30096),p=c(78746),q=c(37037);function r(a){return[...a].sort((a,b)=>a.seq-b.seq)}function s(a,b){return[...new Set(a.filter(a=>a.conversationId===b).flatMap(a=>a.replayedDeliveryIds))]}class t{constructor(a,b=()=>new Date().toISOString()){this.store=a,this.clock=b}loadState(){return{rows:this.store.load(),history:this.store.loadHistory?.()??[],drainingGenerations:this.store.loadDrainingGenerations?.()??[]}}mutate(a){let b=b=>{let c=new Map(b.rows.map(a=>[a.operationId,a])),d=a(c,b);return b.rows.splice(0,b.rows.length,...c.values()),d};if(this.store.transaction)return this.store.transaction(b);let c=this.loadState(),d=b(c);return this.store.save(c.rows),this.store.saveHistory?.(c.history),this.store.saveDrainingGenerations?.(c.drainingGenerations),d}rows(){return this.store.load().map(a=>structuredClone(a))}history(){return(this.store.loadHistory?.()??[]).map(a=>structuredClone(a))}row(a){let b=this.loadState(),c=[...b.rows,...b.history].find(b=>b.operationId===a);return c?structuredClone(c):null}enqueue(a){let b=this.clock();this.mutate((c,d)=>{for(let e of a){if(c.has(e.operationId)||d.history.some(a=>a.operationId===e.operationId))continue;let a=[...c.values()].find(a=>a.conversationId===e.conversationId);if(a){if("pending"===a.status||"draining"===a.status)continue;c.delete(a.operationId),d.history.push(structuredClone(a))}c.set(e.operationId,{...e,pendingDeliveries:a?function(a,b){let c=new Set(a.replayedDeliveryIds),d=r(b).filter(a=>!c.has(a.deliveryId)),e=new Set(d.map(a=>a.deliveryId));return[...r(a.pendingDeliveries).filter(a=>!c.has(a.deliveryId)).filter(a=>!e.has(a.deliveryId)),...d].map((a,b)=>({...a,seq:b+1}))}(a,e.pendingDeliveries):r(e.pendingDeliveries),status:"pending",predecessorGeneration:null,successorGeneration:null,replayedDeliveryIds:s(d.history,e.conversationId),interruptionOutcome:null,lastError:null,enqueuedAt:b,updatedAt:b})}})}beginDrain(a){let b=this.clock();this.mutate((c,d)=>{for(let e of(d.drainingGenerations.includes(a)||d.drainingGenerations.push(a),c.values()))e.hostGeneration===a&&("pending"===e.status||"claimed"===e.status)&&(e.status="draining",e.updatedAt=b)})}isAdmittingNewHosts(a){return!this.loadState().drainingGenerations.includes(a)}admitMessage(a,b){return this.mutate(c=>{let d=c.get(a);return!!d&&"terminal"!==d.status&&(!!d.pendingDeliveries.some(a=>a.deliveryId===b.deliveryId)||(d.pendingDeliveries=r([...d.pendingDeliveries,b]),d.updatedAt=this.clock(),!0))})}refreshTurnState(a,b,c){return this.mutate(d=>{let e=d.get(a);return!!e&&e.hostGeneration===b&&("pending"===e.status||"draining"===e.status)&&("terminal"!==e.turnState||"terminal"===c)&&(e.turnState=c,e.updatedAt=this.clock(),!0)})}claim(a,b){return this.mutate(c=>{var d;let e=c.get(a);if(!e)return{ok:!1,row:null,replay:[],reason:"not-found"};let f=r(e.pendingDeliveries).filter(a=>!e.replayedDeliveryIds.includes(a.deliveryId));return e.successorGeneration===b.toGeneration&&("claimed"===e.status||"terminal"===e.status)?{ok:!0,row:structuredClone(e),replay:f}:e.hostGeneration!==b.fromGeneration?{ok:!1,row:structuredClone(e),replay:[],reason:"generation-fence"}:(e.predecessorGeneration=b.fromGeneration,e.successorGeneration=b.toGeneration,e.hostGeneration=b.toGeneration,e.status="terminal"===e.turnState?"terminal":"claimed",e.interruptionOutcome="terminal"===(d=e.turnState)?"completed":"busy"===d?"interrupted":null,e.updatedAt=this.clock(),{ok:!0,row:structuredClone(e),replay:f})})}acknowledgeReplay(a,b,c){return this.mutate(d=>{let e=d.get(a);if(!e||e.successorGeneration!==b||"claimed"!==e.status&&"terminal"!==e.status)return!1;let f=new Set(e.pendingDeliveries.map(a=>a.deliveryId));return!c.some(a=>!f.has(a))&&(e.replayedDeliveryIds=[...new Set([...e.replayedDeliveryIds,...c])],e.updatedAt=this.clock(),!0)})}failCandidate(a){let b=this.clock();this.mutate((c,d)=>{let e=new Set(d.drainingGenerations);for(let f of c.values()){if(f.successorGeneration!==a)continue;let c=f.predecessorGeneration;f.hostGeneration=c??f.hostGeneration,f.status=c&&e.has(c)?"draining":"pending",f.predecessorGeneration=null,f.successorGeneration=null,f.replayedDeliveryIds=s(d.history,f.conversationId),f.interruptionOutcome=null,f.updatedAt=b}})}markRetryableFailure(a,b){this.mutate(c=>{let d=c.get(a);d&&(d.status="failed",d.lastError=b,d.updatedAt=this.clock())})}retirable(a){for(let b of this.store.load())if(b.hostGeneration===a&&("pending"===b.status||"draining"===b.status))return!1;return!0}}class u{constructor(a){this.filename=a,e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});const b=process.getBuiltinModule?.("bun:sqlite");if(!b)throw Error("SQLite handoff queue requires the Bun runtime");this.db=new b.Database(a,{create:!0,strict:!0}),this.db.exec("PRAGMA busy_timeout = 5000; PRAGMA journal_mode = WAL; PRAGMA synchronous = FULL;"),this.db.exec(`
2
+ CREATE TABLE IF NOT EXISTS handoff_rows (
3
+ operation_id TEXT PRIMARY KEY,
4
+ conversation_id TEXT,
5
+ row_order INTEGER NOT NULL,
6
+ value_json TEXT NOT NULL
7
+ );
8
+ CREATE TABLE IF NOT EXISTS handoff_history (
9
+ operation_id TEXT PRIMARY KEY,
10
+ conversation_id TEXT NOT NULL,
11
+ row_order INTEGER NOT NULL,
12
+ value_json TEXT NOT NULL
13
+ );
14
+ CREATE TABLE IF NOT EXISTS handoff_draining_generations (
15
+ generation TEXT PRIMARY KEY,
16
+ row_order INTEGER NOT NULL
17
+ );
18
+ `),this.db.exec("BEGIN IMMEDIATE");try{this.db.query("PRAGMA table_info(handoff_rows)").all().some(a=>"conversation_id"===a.name)||this.db.exec("ALTER TABLE handoff_rows ADD COLUMN conversation_id TEXT"),this.db.exec("COMMIT")}catch(a){throw this.db.exec("ROLLBACK"),a}this.migrateActiveRows(),this.db.exec(`
19
+ CREATE UNIQUE INDEX IF NOT EXISTS handoff_one_active_conversation
20
+ ON handoff_rows(conversation_id)
21
+ WHERE conversation_id IS NOT NULL;
22
+ `);try{e().chmodSync(a,384)}catch{}}load(){return this.db.query("SELECT value_json FROM handoff_rows ORDER BY row_order ASC").all().map(a=>JSON.parse(a.value_json))}loadHistory(){return this.db.query("SELECT value_json FROM handoff_history ORDER BY row_order ASC").all().map(a=>JSON.parse(a.value_json))}loadDrainingGenerations(){return this.db.query("SELECT generation FROM handoff_draining_generations ORDER BY row_order ASC").all().map(a=>a.generation)}writeRows(a){let b=this.db.query("INSERT INTO handoff_rows(operation_id, conversation_id, row_order, value_json) VALUES (?, ?, ?, ?)");this.db.exec("DELETE FROM handoff_rows"),a.forEach((a,c)=>b.run(a.operationId,a.conversationId,c,JSON.stringify(a)))}writeHistory(a){let b=this.db.query("INSERT INTO handoff_history(operation_id, conversation_id, row_order, value_json) VALUES (?, ?, ?, ?)");this.db.exec("DELETE FROM handoff_history"),a.forEach((a,c)=>b.run(a.operationId,a.conversationId,c,JSON.stringify(a)))}writeDrainingGenerations(a){let b=this.db.query("INSERT INTO handoff_draining_generations(generation, row_order) VALUES (?, ?)");this.db.exec("DELETE FROM handoff_draining_generations"),[...new Set(a)].forEach((a,c)=>b.run(a,c))}migrateActiveRows(){this.db.exec("BEGIN IMMEDIATE");try{let a=new Map,b=this.loadHistory(),c=new Map(b.map(a=>[a.operationId,a])),d=new Set(this.loadDrainingGenerations()),e=this.load();for(let a of[...b,...e])"draining"===a.status&&d.add(a.hostGeneration);for(let b of e){let d=a.get(b.conversationId);d&&c.set(d.operationId,d),a.set(b.conversationId,b)}this.writeRows([...a.values()]),this.writeHistory([...c.values()]),this.writeDrainingGenerations([...d]),this.db.exec("COMMIT")}catch(a){throw this.db.exec("ROLLBACK"),a}}save(a){this.db.exec("BEGIN IMMEDIATE");try{this.writeRows(a),this.db.exec("COMMIT")}catch(a){throw this.db.exec("ROLLBACK"),a}}saveHistory(a){this.db.exec("BEGIN IMMEDIATE");try{this.writeHistory(a),this.db.exec("COMMIT")}catch(a){throw this.db.exec("ROLLBACK"),a}}saveDrainingGenerations(a){this.db.exec("BEGIN IMMEDIATE");try{this.writeDrainingGenerations(a),this.db.exec("COMMIT")}catch(a){throw this.db.exec("ROLLBACK"),a}}transaction(a){this.db.exec("BEGIN IMMEDIATE");try{let b={rows:this.load(),history:this.loadHistory(),drainingGenerations:this.loadDrainingGenerations()},c=a(b);return this.writeRows(b.rows),this.writeHistory(b.history),this.writeDrainingGenerations(b.drainingGenerations),this.db.exec("COMMIT"),c}catch(a){throw this.db.exec("ROLLBACK"),a}}}let v=null;var w=c(37412),x=c(97810),y=c(9488),z=c(87229);let A=3e5;function B(a,b=A){return Math.max(1,Math.min(8,Math.floor(.5*b/Math.max(1,a+1e4))))}let C=new Set(["completed","failed","conflicted"]),D=new Set(["held","assigned","delivery-uncertain"]),E=new Set(["idle","dead"]),F=["seat-free","turn-settled","attention-settled","host-idle-or-dead","no-active-flags","handoff-queue-drained","no-open-operation","events-flushed","no-realtime-binding","resumable","transcript-idle","process-identity"],G=(0,p.yV)(null),H=a=>(0,p.yV)(a);function I(a){return a.seat.determined&&"revoked"===a.seat.value}function J(a){return null===a.process.startIdentity?(0,p.nZ)(`the registry stored no kernel identity for pid ${a.process.pid}`):(0,p.yV)(a.process.startIdentity)}let K={"seat-free":a=>(0,p.Le)(a.seat,a=>"live"===a?"the host holds a live orchestrator seat":null),"turn-settled":a=>null!==a.activeTurnRef?H(`turn ${a.activeTurnRef} is in flight`):(0,p.Le)(a.turnBusy,a=>a?"the conversation turn has not settled":null),"attention-settled":a=>a.pendingAttention.length>0?H(`${a.pendingAttention.length} question(s) await an operator answer`):G,"host-idle-or-dead":a=>E.has(a.status)?G:H(`the host status is ${a.status}`),"no-active-flags":a=>{let b=(0,w.S0)(a.activeFlags);return b.length>0?H(`the host is flagged ${b.join(", ")}`):G},"handoff-queue-drained":a=>(0,p.Le)(a.undeliveredHandoffEntries,a=>a>0?`${a} undelivered handoff entr(ies) name this key`:null),"no-open-operation":a=>null!==a.pendingAction?H(`a ${a.pendingAction} action is pending`):null!==a.structuredHostOperationId?H("a structured host operation is still in flight"):a.openOperations>0?H(`${a.openOperations} spawn receipt(s) are pending or non-terminal`):G,"events-flushed":a=>(0,p.Le)(a.durableEventTail,b=>a.eventCursor<b?`the flushed cursor ${a.eventCursor} is behind the session's ${b}`:null),"no-realtime-binding":a=>(0,p.Le)(a.realtimeBound,a=>a?"a realtime session is bound to this conversation":null),resumable:a=>""===a.transcriptPath?H("the host names no transcript to resume from"):(0,p.Le)(a.transcriptFile,a=>null===a?"the transcript is not present on disk":null),"transcript-idle":(a,b)=>(0,p.Le)(a.transcriptFile,c=>{if(null===c)return"the transcript is not present on disk";if(I(a))return null;let d=b.now-c.mtimeMs;return d<b.idleMs?`the transcript was written ${Math.max(0,Math.round(d/1e3))}s ago`:null}),"process-identity":a=>{let b=J(a);if(!b.determined)return b;let c="string"==typeof a.process.bootEpoch&&a.process.bootEpoch?(0,p.yV)(a.process.bootEpoch):(0,p.nZ)(`the registry stored no boot epoch for pid ${a.process.pid}`);if(!c.determined)return c;if(!a.observedStartIdentity.determined)return a.observedStartIdentity;if(!a.observedBootEpoch.determined)return a.observedBootEpoch;let d=a.observedStartIdentity.value,e=a.observedBootEpoch.value;return"alive"===(0,n.Ue)(a.process,{pidAlive:()=>!0,processIdentity:()=>d,bootEpoch:()=>e})?G:H(`pid ${a.process.pid} is no longer the recorded host`)}};function L(a,b){let c=[];for(let d of F){let e=K[d](a,b);if(!e.determined)return{retire:!1,clause:d,reason:e.why,undetermined:!0};if(null!==e.value)return{retire:!1,clause:d,reason:e.value};c.push(d)}let d=J(a);return d.determined?{retire:!0,passed:c,startIdentity:d.value}:{retire:!1,clause:"process-identity",reason:d.why,undetermined:!0}}function M(a=process.env){let b=a.LLV_HOST_RETIREMENT_IDLE_HOURS;if(void 0===b||""===b.trim())return 216e5;let c=Number(b);return!Number.isFinite(c)||c<0?(console.warn("[host retirement] LLV_HOST_RETIREMENT_IDLE_HOURS is not a duration; using 6h"),216e5):0===c?null:36e5*c}function N(a=process.env){let b=a.LLV_HOST_RETIREMENT_GRACE_MS;if(void 0===b||""===b.trim())return 5e3;let c=Number(b);return!Number.isFinite(c)||c<0?5e3:Math.min(c,6e4)}function O(a){try{let b=e().statSync(a);return(0,p.yV)(b.isFile()?{mtimeMs:b.mtimeMs}:null)}catch(b){let a=b.code;return"ENOENT"===a||"ENOTDIR"===a?(0,p.yV)(null):(0,p.nZ)(`the transcript could not be read (${a??"unknown"})`)}}function P(a){try{if((0,z.VD)().has(a))return(0,p.yV)(!0);let b=(0,x.Aj)(a);return(0,p.yV)("function"==typeof b?.currentRealtimeSessionId&&null!==b.currentRealtimeSessionId())}catch(a){return(0,p.nZ)(`the realtime binding could not be read: ${T(a)}`)}}function Q(){let a;try{let b=(0,k.activeOrchestratorSeatsOrUnknown)();if(null===b)return(0,p.nZ)("the orchestrator seat store could not be established");let c=R();a=new Set(b.flatMap(a=>a.conversationId?[c(a.conversationId)]:[]))}catch(a){return(0,p.nZ)(`the orchestrator seat store could not be read: ${T(a)}`)}return(0,p.yV)(a)}function R(){let a=(0,h.agentRegistry)();return b=>a.canonicalConversationId(b)}function S(){let a;try{a=(0,k.revokedOrchestratorSeatConversationsOrUnknown)(R())}catch(a){return(0,p.nZ)(`the orchestrator revocation record could not be read: ${T(a)}`)}return null===a?(0,p.nZ)("the orchestrator revocation record could not be established"):(0,p.yV)(a)}function T(a){return a instanceof Error?a.message:String(a)}function U(a){let{refused:b,...c}=a,d={},e={};for(let a of b)d[a.clause]=(d[a.clause]??0)+1,a.undetermined&&(e[a.clause]=(e[a.clause]??0)+1);return{...c,refusedByClause:d,undeterminedByClause:e}}function V(a){try{var b;let c;b=(0,j.BQ)("host-retirement-report.json"),e().mkdirSync(g().dirname(b),{recursive:!0,mode:448}),c=`${b}.${process.pid}.tmp`,e().writeFileSync(c,`${JSON.stringify(a,null,2)}
23
+ `,{encoding:"utf8",mode:384}),e().renameSync(c,b)}catch(a){console.error("[host retirement] report could not be written",a)}try{let b=(0,j.BQ)("host-retirement-journal.ndjson");e().mkdirSync(g().dirname(b),{recursive:!0,mode:448});try{e().statSync(b).size>4194304&&e().renameSync(b,`${b}.1`)}catch{}e().appendFileSync(b,`${JSON.stringify(U(a))}
24
+ `,{encoding:"utf8",mode:384})}catch(a){console.error("[host retirement] journal could not be appended",a)}for(let b of a.retired){let a=b.seatRevoked?", revoked seat":"";console.warn(`[host retirement] retired ${b.key} (${b.role??"no role"}, idle ${Math.round(b.idleMs/6e4)}m${a}) via ${b.via}: ${b.reclaimed.processes} process(es), ${Math.round(b.reclaimed.rssBytes/1048576)} MiB resident + ${Math.round(b.reclaimed.swapBytes/1048576)} MiB swapped reclaimed`)}for(let b of a.failed)console.warn(`[host retirement] left ${b.key} intact: ${b.error}`);let c=Object.entries(U(a).undeterminedByClause);if(c.length>0){let b=c.map(([a,b])=>`${a} (${b})`).join(", "),d=a.refused.find(a=>a.undetermined)?.reason??"";console.warn(`[host retirement] kept hosts whose clauses could not be determined: ${b} — ${d}`)}}class W{add(a){null!==a&&this.counts.set(a,(this.counts.get(a)??0)+1)}addKey(a){this.add(`key:${a}`)}addConversation(a){this.add(null===a?null:`conv:${a}`)}count(a,b){return(this.counts.get(`key:${a}`)??0)+(null===b?0:this.counts.get(`conv:${b}`)??0)}constructor(){this.counts=new Map}}function X(a){var b;let c=a.snapshot(),d=new Map;for(let a of Object.values(c.conversations))for(let b of a.generations)d.set(b.id,a);return{file:c,conversationsBySession:d,undelivered:(b=a.handoffRows(),(0,p.Le)(b,a=>{let b=new W;for(let c of a){let a=new Set(c.replayedDeliveryIds??[]);(c.pendingDeliveries??[]).some(b=>!a.has(b.deliveryId))&&("claude"===c.engine||"codex"===c.engine?b.addKey(`${c.engine}:${c.engineSessionId}`):b.addConversation(c.conversationId))}for(let a of Object.values(c.heldDeliveries??{}))D.has(a.state)&&b.addConversation(a.conversationId);return b})),openOperations:function(a){let b=new W;for(let c of Object.values(a.receipts??{}))C.has(c.state)||(null!==c.key?b.addKey((0,i.pp)(c.key)):b.addConversation(c.conversationId));return b}(c),seatConversations:a.seatConversations(),revokedConversations:a.revokedConversations()}}function Y(a,b,c){var d,e,f;let g,h=a.structuredHost,j=h.process,k=a.key,l=(0,i.pp)(k),m=b.conversationsBySession.get(k.sessionId)??null,n=m?.id??null,o=m?b.file.memberships[m.id]??[]:[],q=o.find(a=>"pipeline"===a.kind)??null,r=m?.generations.find(a=>a.id===k.sessionId)??null;return{key:k,keyId:l,conversationId:n,title:r?.launchProfile.title??null,role:m?.agentRole??q?.role??r?.launchProfile.role??null,stage:q?.stageId??q?.slot??null,cwd:a.cwd||r?.launchProfile.cwd||"",transcriptPath:a.artifactPath||"",process:j,status:a.status,activeTurnRef:h.activeTurnRef,turnBusy:null===m?(0,p.nZ)("no conversation record establishes this host's turn state"):"unknown"===m.turn.state?(0,p.nZ)("the conversation's turn state is unknown"):(0,p.yV)("busy"===m.turn.state),pendingAttention:h.pendingAttention,activeFlags:h.activeFlags,pendingAction:a.pendingAction,structuredHostOperationId:a.structuredHostOperationId??null,undeliveredHandoffEntries:(0,p.Le)(b.undelivered,a=>a.count(l,n)),openOperations:b.openOperations.count(l,n),eventCursor:h.eventCursor,durableEventTail:c.durableEventTail(k.sessionId),realtimeBound:null===n?(0,p.nZ)("the host names no conversation, so no realtime binding can be looked up"):c.realtimeBound(n),seat:null===m?(0,p.nZ)("no conversation record establishes whether this host holds a seat"):(d=m.id,e=b.seatConversations,f=b.revokedConversations,(g=o.some(a=>"orchestrator"===a.kind)?(0,p.yV)(!0):(0,p.Le)(e,a=>a.has(d))).determined?g.value?(0,p.Le)(f,a=>a.has(d)?"revoked":"live"):(0,p.yV)("none"):g),transcriptFile:a.artifactPath?c.transcriptStat(a.artifactPath):(0,p.yV)(null),observedStartIdentity:c.processIdentity(j.pid),observedBootEpoch:c.bootEpoch()}}async function Z(a={}){let b=a.now??Date.now,c=b(),d=a.idleMs??M()??216e5,e=a.graceMs??N(),f=a.batch??B(e),g={snapshot:a.snapshot??(()=>(0,h.agentRegistry)().readOnlySnapshot()),handoffRows:a.handoffRows??(()=>{try{return(0,p.yV)((v??=new t(new u((0,j.BQ)("handoff-queue.sqlite")))).rows())}catch(a){return(0,p.nZ)(`the handoff queue could not be read: ${T(a)}`)}}),seatConversations:a.orchestratorSeatConversations??Q,revokedConversations:a.revokedSeatConversations??S},i={durableEventTail:a.durableEventTail??(a=>(0,q.t2)(a)),realtimeBound:a.realtimeBound??P,transcriptStat:a.transcriptStat??O,processIdentity:a.processIdentity??(a=>{let b=l.B.processIdentity(a);return null===b?(0,p.nZ)(`no kernel identity can be observed for pid ${a}`):(0,p.yV)(b)}),bootEpoch:a.bootEpoch??(()=>{let a=(0,n.h_)();return null===a?(0,p.nZ)("the kernel boot epoch could not be read"):(0,p.yV)(a)})},k=a.processMemory??(a=>l.B.processMemory(a)),r=a.ppidMap??(()=>l.B.ppidMap()),s=a.owned??x.sy,w=a.terminate??(a=>(0,y.terminateStructuredHostTree)(a,{graceMs:e,deadlineMs:e+1e4})),z=a.record??V,A=a.publicationState??x.du,C={version:1,startedAt:new Date(c).toISOString(),finishedAt:"",idleHours:d/36e5,evaluated:0,deferred:0,standDown:null,retired:[],refused:[],failed:[],reclaimed:{rssBytes:0,swapBytes:0,processes:0}},D=A();if("ready"!==D)return C.standDown=D,C.finishedAt=new Date(b()).toISOString(),z(C),C;let E=X(g),F=Object.values(E.file.entries).filter(a=>!!a.structuredHost?.process&&("claude"===a.key.engine||"codex"===a.key.engine)&&null===a.host).slice(0,o.sb);C.evaluated=F.length;let G=[];for(let a of F){let b=Y(a,E,i),e=L(b,{now:c,idleMs:d});if(!e.retire){C.refused.push({key:b.keyId,conversationId:b.conversationId,clause:e.clause,reason:e.reason,...e.undetermined?{undetermined:!0}:{}});continue}if(G.length>=f){C.deferred+=1;continue}G.push(b)}let H=null;for(let a of G){var J;let e,f=X(g),h=f.file.entries[a.keyId]??null;if(null===h||!h.structuredHost?.process){C.refused.push({key:a.keyId,conversationId:a.conversationId,clause:"process-identity",reason:"the registry no longer records this host",changed:!0});continue}let j=Y(h,f,i),l=L(j,{now:b(),idleMs:d});if(!l.retire){C.refused.push({key:j.keyId,conversationId:j.conversationId,clause:l.clause,reason:l.reason,...l.undetermined?{undetermined:!0}:{},changed:!0});continue}let n=j.process,o=j.transcriptFile.determined?j.transcriptFile.value?.mtimeMs??null:null;H??=r();let p=k((0,m.mO)(n.pid,H)),q={rssBytes:0,swapBytes:0,processes:p.size};for(let a of p.values())q.rssBytes+=a.rssBytes,q.swapBytes+=a.swapBytes;let t={kind:"structured",pid:n.pid,startIdentity:l.startIdentity,bootEpoch:n.bootEpoch??null,engine:j.key.engine,sessionId:j.key.sessionId,conversationId:j.conversationId,seat:j.seat.determined?"live"===j.seat.value:null,turnBusy:(J=j.turnBusy).determined?J.value:null,owned:s(j.key),lastActiveAt:null===o?null:new Date(o).toISOString()};try{e=await w(t)}catch(a){C.failed.push({key:j.keyId,conversationId:j.conversationId,error:String(a),remaining:[]});continue}if(!e.ok){C.failed.push({key:j.keyId,conversationId:j.conversationId,error:e.error,remaining:e.remaining});continue}C.retired.push({key:j.keyId,engine:j.key.engine,sessionId:j.key.sessionId,conversationId:j.conversationId,title:j.title,role:j.role,stage:j.stage,cwd:j.cwd,idleMs:null===o?0:c-o,passed:l.passed,...I(j)?{seatRevoked:!0}:{},via:e.via,pids:e.pids,reclaimed:q}),C.reclaimed.rssBytes+=q.rssBytes,C.reclaimed.swapBytes+=q.swapBytes,C.reclaimed.processes+=q.processes,H=null}return C.finishedAt=new Date(b()).toISOString(),z(C),C}async function $(a={}){let b=M(a.env??process.env);if(null===b)return null;let c=a.sweep??(a=>Z({idleMs:a}));try{return await c(b)}catch(a){return console.error("[host retirement] sweep failed",a),null}}let _=globalThis;function aa(a={}){if(_.__llvStructuredHostRetirementTimer)return;let b=a.scheduleInterval??((a,b)=>setInterval(a,b)),c=a.sweep??(()=>$()),d=b(()=>{c()},a.intervalMs??A);d.unref?.(),_.__llvStructuredHostRetirementTimer=d}function ab(){let a=_.__llvStructuredHostRetirementTimer;a&&clearInterval(a),_.__llvStructuredHostRetirementTimer=void 0}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=3034,exports.ids=[3034],exports.modules={43034:(a,b,c)=>{c.d(b,{wZ:()=>s,tx:()=>t,$S:()=>l,Cl:()=>k});var d=c(68032),e=c(80338),f=c(88714),g=c(21962);function h(a){return"number"!=typeof a||!Number.isFinite(a)||a<=0?null:Math.round(1e3*a)}function i(a){return/^\d+$/.test(a)}async function j(a){let b=await a.listChats({kind:"user",limit:100}),c=new Set,d=[],e=!1;for(let a of b)!c.has(a.id)&&(c.add(a.id),(a.username??"").toLowerCase().endsWith("bot")||d.push({id:a.id,title:a.title}));for(let b=1;b<=3;b+=1){let f=await a.pageChats({page:b,pageSize:100});if(0===f.length)break;for(let a of f)!c.has(a.id)&&i(a.id)&&(c.add(a.id),d.push(a));if(f.length<100)break;3===b&&(e=!0)}return{candidates:d,truncated:e}}async function k(a,b){let c=Date.parse(b.windowStart),d=await a.feedDialogs({sinceMs:c}),e=[],f=new Set;for(let a of d.dialogs)f.has(a.id)||(f.add(a.id),e.push({id:a.id,title:a.title,lastMessageAt:a.lastMessageAt}));let g=await j(a),h=g.candidates.filter(a=>!f.has(a.id)),i=null!==d.coveredSinceMs&&d.coveredSinceMs<=c?300:150,k=0;for(let b of h){if(k>=i)break;let d=await a.lastMessageAt(b.id);k+=1;let f=d?Date.parse(d):NaN;Number.isFinite(f)&&!(f<c)&&e.push({id:b.id,title:b.title,lastMessageAt:new Date(f).toISOString()})}e.sort((a,b)=>Date.parse(b.lastMessageAt)-Date.parse(a.lastMessageAt));let l=k>=i&&h.length>k;if(l||g.truncated)throw Error("Telegram report sources cannot cover this window");return{version:1,promptVersion:b.promptVersion,windowStart:b.windowStart,windowEnd:b.windowEnd,privateDialogs:e.slice(0,25),groups:b.groups.map(a=>({...a})),probes:k,feedDialogs:f.size,truncated:e.length>25,probeBudgetExhausted:l}}async function l(a){let b=await a.listChats({kind:"group",limit:100}),c=new Set,d=[];for(let a of b)c.has(a.id)||(c.add(a.id),d.push({id:a.id,title:a.title}));for(let b=1;b<=3;b+=1){let e=await a.pageChats({page:b,pageSize:100});if(0===e.length)break;for(let a of e)c.has(a.id)||i(a.id)||(c.add(a.id),d.push(a));if(e.length<100)break}return d}function m(a){return(a?.content??[]).filter(a=>a?.type==="text").map(a=>a.text??"").join("\n")}function n(a){try{let b=JSON.parse(m(a));return Array.isArray(b?.results)?b.results:[]}catch{return[]}}async function o(a,b,d){let{Client:e}=await Promise.all([c.e(4637),c.e(9901),c.e(9434)]).then(c.bind(c,79434)),{StreamableHTTPClientTransport:g}=await Promise.all([c.e(4637),c.e(9901),c.e(5103)]).then(c.bind(c,27484)),h=new e({name:"agent-log-viewer",version:"1.0.0"}),i=new g(new URL((0,f.h3)()),{requestInit:{headers:{Authorization:`Bearer ${a.connectorToken}`}}});try{return await h.connect(i),await h.callTool({name:b,arguments:d})}finally{await h.close().catch(()=>void 0)}}let p={readSession:d.w0,callTool:o,ensureConnector:a=>(0,e.X8)(a),sleep:a=>new Promise(b=>setTimeout(b,a)),now:Date.now};function q(a,b){let c=b.readSession();if(!c)throw Error("Telegram is not connected");if(c.credentialRef!==a)throw Error("Telegram credential generation changed");return c}async function r(a,b,c,d=p){try{return await d.callTool(a,b,c)}catch{}let e=Math.max(1,d.readinessTimeoutMs??3e4),f=d.now()+e,g=250;for(;d.now()<f;){let e,h=q(a.credentialRef,d);try{e=await d.ensureConnector(h)}catch{e={ok:!1,code:"connector_failed"}}if(e.ok){let e=q(a.credentialRef,d);try{return await d.callTool(e,b,c)}catch{}}else if("connector_failed"!==e.code)break;let i=f-d.now();if(i<=0)break;await d.sleep(Math.min(g,i)),g=Math.min(2*g,2e3)}throw Error("Telegram connector is unavailable")}async function s(a,b=p){let c=Math.max(1,b.readinessTimeoutMs??9e4),d=b.now()+c,e=250;for(;b.now()<d;){let c,f;try{c=q(a,b)}catch{return{ready:!1,reason:"refused"}}try{f=await b.ensureConnector(c)}catch{f={ok:!1,code:"connector_failed"}}if(f.ok)return{ready:!0};if("connector_failed"!==f.code)return{ready:!1,reason:"refused"};let g=d-b.now();if(g<=0)break;await b.sleep(Math.min(e,g)),e=Math.min(2*e,2e3)}return{ready:!1,reason:"unavailable"}}function t(a=null,b=p){let c=a,f=async(a,d)=>{let e=b.readSession();if(!e)throw Error("Telegram is not connected");if(c??=e.credentialRef,e.credentialRef!==c)throw Error("Telegram credential generation changed");return await r(e,a,d,b)};return{async getMe(){let a=JSON.parse(m(await f("get_me",{}))),b="string"==typeof a?.name?a.name.trim():"",c=(0,g.S)(a?.id);return b||c?{name:b,username:"string"==typeof a.username&&a.username?a.username:null,id:c}:null},async feedDialogs(a){let b=null;try{let a=m(await f("incoming_feed_status",{}));b=function(a,b){if(!b)return null;let c=function(a){let b;try{b=JSON.parse(a)}catch{return null}let c=b?.enabled===!0||b?.autostart_pending===!0,d="string"==typeof b?.feed_file?b.feed_file.trim():"";return c&&d?d:null}(a);return null!==c&&c===(0,d.ZI)(b)?c:null}(a,c)}catch{}if(!b)throw Error("Telegram incoming feed is unavailable");return{dialogs:function(a,b){if(!a)return[];let c=(0,d.Cx)(a,{chunkBytes:524288,maxBytes:8388608},a=>(function(a,b){for(let c of a.split("\n")){let a;if(!c.trim())continue;try{a=JSON.parse(c)}catch{continue}let d=h(a.ts);if(null!==d&&d<b)return!0}return!1})(a,b));if(null===c)return[];if(!c.complete)throw Error("Telegram incoming feed is larger than one report read");return function(a,b){let c=new Map,d=new Map;for(let f of a.split("\n")){var e;let a;if(!f.trim())continue;try{a=JSON.parse(f)}catch{continue}let g="number"==typeof(e=a.chat_id)?Number.isSafeInteger(e)&&e>0?String(e):null:"string"!=typeof e?null:/^[1-9]\d{0,18}$/.test(e.trim())?e.trim():null;if(!g||"string"==typeof a.username&&a.username.toLowerCase().endsWith("bot"))continue;let i=h(a.ts);if(null===i||i<b)continue;let j=c.get(g);void 0!==j&&j>=i||(c.set(g,i),d.set(g,"string"==typeof a.name&&a.name?a.name.slice(0,120):g))}return[...c.entries()].sort((a,b)=>b[1]-a[1]).map(([a,b])=>({id:a,title:d.get(a)??a,lastMessageAt:new Date(b).toISOString()}))}(c.text,b)}(b,a.sinceMs),coveredSinceMs:null===c?null:(0,e.Yb)(c)}},listChats:async a=>n(await f("list_chats",{chat_type:a.kind,limit:Math.min(a.limit,100)})).map(b=>(function(a,b){let c=a.chat_id;if("number"!=typeof c&&"string"!=typeof c)return null;let d="string"==typeof a.title?a.title:"string"==typeof a.name?a.name:String(c);return{id:String(c),kind:b,title:d,username:"string"==typeof a.username?a.username:null,unread:"number"==typeof a.unread?a.unread:0}})(b,a.kind)).filter(a=>null!==a),pageChats:async a=>n(await f("get_chats",{page:a.page,page_size:Math.min(a.pageSize,100)})).map(a=>{let b=a.chat_id;return"number"!=typeof b&&"string"!=typeof b?null:{id:String(b),title:"string"==typeof a.title?a.title:String(b)}}).filter(a=>null!==a),async lastMessageAt(a){let b=n(await f("list_messages",{chat_id:Number(a),limit:1}))[0],c=b?.date;if("string"!=typeof c)return null;let d=Date.parse(c);return Number.isFinite(d)?new Date(d).toISOString():null}}}},80338:(a,b,c)=>{c.d(b,{TT:()=>I,UF:()=>J,X8:()=>H,Yb:()=>x,e4:()=>z});var d=c(31421),e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(91724),j=c(63657),k=c(2033),l=c(24962),m=c(88714),n=c(68032);let o=new Set([...new Set(["export_contacts","get_admins","get_banned_users","get_blocked_users","get_bot_info","get_chat","get_chats","get_common_chats","get_contact_chats","get_contact_ids","get_direct_chat_by_contact","get_drafts","get_folder","get_full_chat","get_full_user","get_gif_search","get_history","get_last_interaction","get_me","get_media_info","get_message_context","get_message_link","get_message_reactions","get_message_read_by","get_messages","get_participants","get_pinned_messages","get_privacy_settings","get_recent_actions","get_scheduled_messages","get_sticker_sets","get_user_photos","get_user_status","incoming_feed_status","list_accounts","list_chats","list_contact_aliases","list_contacts","list_folders","list_inline_buttons","list_messages","list_topics","resolve_username","search_contacts","search_global","search_messages","search_public_chats","wait_for_new_message","wait_for_settled_message"])].filter(a=>!m.vx.includes(a)));async function p(a,b,c){let d=f().randomBytes(32).toString("base64url"),e=new URL(a);e.pathname="/llv-telegram-proof",e.search="";try{let a=await fetch(e,{headers:{"x-llv-telegram-nonce":d},signal:c});if(!a.ok)return!1;let g=Buffer.from((await a.text()).trim(),"hex"),h=Buffer.from(f().createHmac("sha256",b).update(d).digest("hex"),"hex");return g.length===h.length&&f().timingSafeEqual(g,h)}catch{return!1}}let q={spawn(a){try{let b=(0,d.spawn)(a.command,a.args,{cwd:a.cwd,env:a.env,stdio:"ignore",detached:!0});return b.unref(),b}catch{return null}},probe:async function(a,b,d){try{if(!await p(a,b,d))return{ok:!1};let{Client:e}=await Promise.all([c.e(4637),c.e(9901),c.e(9434)]).then(c.bind(c,79434)),{StreamableHTTPClientTransport:f}=await Promise.all([c.e(4637),c.e(9901),c.e(5103)]).then(c.bind(c,27484)),g=new e({name:"agent-log-viewer",version:"1.0.0"}),h=new f(new URL(a),{requestInit:{headers:{Authorization:`Bearer ${b}`},signal:d}});try{await g.connect(h);let a=await g.listTools();return{ok:!0,serverName:g.getServerVersion()?.name??"",tools:a.tools.map(a=>({name:a.name,readOnly:a.annotations?.readOnlyHint===!0}))}}finally{await g.close().catch(()=>void 0)}}catch{return{ok:!1}}},sleep:a=>new Promise(b=>setTimeout(b,a)),now:()=>Date.now(),ownsProcess:y,recordProcess:B,stop:E,beginOperation:function(){let a=++t;return()=>a===t}};function r(){return(0,i.BQ)("telegram","connector.json")}let s=null,t=0;function u(a){return f().createHash("sha256").update(a).digest("hex")}function v(){try{if(null===(0,n._q)(!1))return null;let a=h().lstatSync(r());if(a.isSymbolicLink()||!a.isFile()||(63&a.mode)!=0||"function"==typeof process.getuid&&a.uid!==process.getuid())return null;let b=JSON.parse(h().readFileSync(r(),"utf8"));if(1!==b.version||"number"!=typeof b.pid||!Number.isInteger(b.pid)||b.pid<=1||"string"!=typeof b.identity||"string"!=typeof b.credentialRef||"string"!=typeof b.connectorTokenSha256||"string"!=typeof b.command||"string"!=typeof b.entrypoint||void 0!==b.feedFile&&"string"!=typeof b.feedFile||void 0!==b.feedSince&&"string"!=typeof b.feedSince||void 0!==b.logSinkVersion&&1!==b.logSinkVersion)return null;return b}catch{return null}}function w(a){let b=j.B.readArgv(a.pid);return b[0]===a.command&&b[1]===a.entrypoint&&a.command===(0,m.jd)()&&a.entrypoint===(0,m.Kn)()}function x(a){let b=v();if(!b||b.feedFile!==(0,n.ZI)(a)||!b.feedSince)return null;let c=Date.parse(b.feedSince);return Number.isFinite(c)?c:null}function y(a){let b=v();return!!(b&&b.credentialRef===a.credentialRef&&b.connectorTokenSha256===u(a.connectorToken)&&j.B.processIdentity(b.pid)===b.identity&&w(b))}function z(a){return y(a)}function A(a){try{a.kill("SIGKILL")}catch{}}function B(a,b,c){let d=a.pid,e=d?j.B.processIdentity(d):null;if(!d||!e||!b.args[0])return A(a),!1;s={child:a,pid:d,identity:e};let f={version:1,pid:d,identity:e,credentialRef:c.credentialRef,connectorTokenSha256:u(c.connectorToken),command:b.command,entrypoint:b.args[0],...b.env?.TELEGRAM_EVENT_FEED_FILE?{feedFile:b.env.TELEGRAM_EVENT_FEED_FILE,feedSince:new Date().toISOString()}:{},...b.env?.LLV_TELEGRAM_CONNECTOR_LOG===(0,l.cO)()&&b.env.LLV_TELEGRAM_CONNECTOR_LOG_MAX_BYTES===String(l.yb)?{logSinkVersion:1}:{}},g=`${r()}.${process.pid}.tmp`;try{let a=(0,n._q)(!0);h().writeFileSync(g,JSON.stringify(f),{mode:384});let b=h().openSync(g,"r");try{h().fsyncSync(b)}finally{h().closeSync(b)}h().renameSync(g,r());let c=h().openSync(a,"r");try{h().fsyncSync(c)}finally{h().closeSync(c)}let d=h().lstatSync(r());if(!d.isFile()||d.isSymbolicLink()||(63&d.mode)!=0)throw Error("unsafe connector record");return!0}catch{h().rmSync(g,{force:!0});try{h().rmSync(r(),{force:!0})}catch{}return s=null,A(a),!1}}function C(a){return j.B.processIdentity(a.pid)===a.identity}async function D(a,b){let c=Date.now()+b;for(;a.some(C)&&Date.now()<c;)await new Promise(a=>setTimeout(a,25));return a.every(a=>!C(a))}async function E(){t+=1;let a=new Map,b=s;b&&C(b)&&a.set(b.pid,{pid:b.pid,identity:b.identity,term:()=>{try{b.child.kill("SIGTERM")}catch{}},kill:()=>A(b.child)});let c=v(),d=!1;c&&C(c)&&!a.has(c.pid)&&(w(c)?a.set(c.pid,{pid:c.pid,identity:c.identity,term:()=>{try{process.kill(c.pid,"SIGTERM")}catch{}},kill:()=>{try{process.kill(c.pid,"SIGKILL")}catch{}}}):d=!0);let e=[...a.values()];for(let a of e)a.term();if(!await D(e,2e3)){for(let a of e.filter(C))a.kill();if(!await D(e,2e3))throw Error("Telegram connector did not terminate")}if(d)throw Error("Telegram connector ownership could not be verified");s=null;try{null!==(0,n._q)(!1)&&h().rmSync(r(),{force:!0})}catch{}}async function F(a){return(0,n._q)(!0),await (0,k.pM)((0,i.BQ)("telegram","connector-supervisor"),"Telegram connector supervisor is busy",a)}async function G(a,b,c,d=1/0){let e=new AbortController,g=Math.max(1,Math.min(c.probeTimeoutMs??5e3,d)),h=c.probe(a,b,e.signal).catch(()=>({ok:!1})),i=null,j=new Promise(a=>{i=setTimeout(()=>{e.abort(),a("timeout")},g),i.unref?.()}),k=await Promise.race([h,j]);return(i&&clearTimeout(i),"timeout"===k)?"timeout":(e.abort(),k.ok)?k.serverName!==`telegram-${f().createHash("sha256").update(b).digest("hex")}`?{ok:!1,code:"connector_failed"}:function(a,b=o){let c=a.filter(a=>!a.readOnly||!b.has(a.name)).map(a=>a.name);return{ok:a.length>0&&0===c.length,offending:c}}(k.tools).ok?{ok:!0,url:a}:{ok:!1,code:"not_read_only"}:null}async function H(a,b=q){let c=(0,m.h3)(),d={credentialRef:a.credentialRef,connectorToken:a.connectorToken},e=b.stop??E,f=b.ownsProcess??y,g=b.beginOperation?.()??(()=>!0),h=await F(async()=>{let h;if(f(d)){let d=await G(c,a.connectorToken,b);if(!g())return{ok:!1,code:"connector_failed"};if(d&&"timeout"!==d)return d.ok||await e(),d}await e(),g=b.beginOperation?.()??(()=>!0);let i=(0,m.w5)();if(!i)return{ok:!1,code:"credentials_missing"};try{h=(0,m.ue)({credentialRef:a.credentialRef,sessionString:a.sessionString,connectorToken:a.connectorToken,credentials:i})}catch{return{ok:!1,code:"connector_failed"}}if(!g())return{ok:!1,code:"connector_failed"};let j=b.spawn(h);return j?(b.recordProcess??B)(j,h,d)?"spawned":(A(j),{ok:!1,code:"connector_failed"}):{ok:!1,code:"connector_failed"}});if("spawned"!==h)return h;let i=async()=>{await F(async()=>{f(d)&&await e()})},j=b.now()+3e4;for(;b.now()<j;){let d=await G(c,a.connectorToken,b,j-b.now());if(!g())return{ok:!1,code:"connector_failed"};if("timeout"===d)break;if(d)return d.ok||await i(),d;await b.sleep(500)}return await i(),{ok:!1,code:"connector_failed"}}async function I(){await F(E)}async function J(a,b={}){let c=b.ownsProcess??y,d=b.stop??E;return await F(async()=>!!c(a)&&(await d(),!0))}}};
@@ -1 +1 @@
1
- "use strict";exports.id=3086,exports.ids=[3086],exports.modules={23086:(a,b,c)=>{c.d(b,{Ll:()=>Q,Nm:()=>P,TF:()=>w,vx:()=>R});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);function p(...a){return o.KZ(...a)}let q="files-scan-snapshot.json",r=-1/0,s=globalThis;function t(a){return"object"==typeof a&&null!==a}function u(a){if(!t(a)||!0!==a.complete||!Array.isArray(a.files)||!Array.isArray(a.projectCatalog))return!1;let b=a.files.every(a=>{var b;return!!t(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||!!t(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||t(a.pendingQuestion))&&(null===a.waitingInput||t(a.waitingInput))}),c=a.projectCatalog.every(a=>t(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 v(){try{let a=JSON.parse(g().readFileSync((0,j.BQ)(q),"utf8"));if(!t(a)||1!==a.version||10!==a.schemaVersion||!u(a.snapshot))return;return a.snapshot}catch{return}}function w(){return v()}function x(a){let b,c="create state directory",d=(0,j.BQ)(q);try{let f=(0,j.BQ)(q);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-r>=6e4){r=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 y(a){return t(a)&&"promise"in a?y(a.promise):t(a)&&"function"==typeof a.then?Promise.resolve(a):void 0}function z(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 A(a){return a instanceof Error&&"AbortError"===a.name?a:new DOMException("file scan cancelled","AbortError")}function B(a,b){return b?.aborted?Promise.reject(A(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(A()))},g=()=>{f(),d(A(b?.reason))};b?.addEventListener("abort",g,{once:!0}),a.promise.then(a=>{e&&(f(),c(a))},a=>{e&&(f(),d(a))})}))}async function C(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 D(a,b,c,d,e){let f=void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration,g="ordinary"===c||"cold"===c;return C(a,b,c,async()=>{let c=await (0,o.uh)({fresh:f,join:g,signal:e},(b,c)=>p(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&&x(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 E(a,b,c){let d=new AbortController,e=D(a,b,c,void 0,d.signal);return z(a,b,e,e,d)}function F(a,b,c){var d;let e,f,g,h,i,j,k;return d=(d,e)=>D(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)}),z(a,b,k,i,g)}function G(a,b){let c=!1,d=!1,e=new AbortController,f=new Promise(a=>setImmediate(a)).then(()=>{if(c=!0,e.signal.aborted)throw A(e.signal.reason);if(d){if(!a.snapshot)throw Error("deferred file scan canceled without a completed snapshot");return a.snapshot}return D(a,b,"ordinary",void 0,e.signal)}),g=z(a,b,f,f,e);return g.cancelBeforeStart=()=>!c&&(d=!0,!0),g}async function H(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=C(a,b,d,async()=>{let d=await (0,o.uh)({fresh:f,join:!1,exclusive:!0,signal:e.signal},(a,b)=>p(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&&x(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 z(a,b,g,g,e)}(a,b,c,d):E(a,b,d));await B(f,e)}return a.snapshot}function I(a,b){let c=a.pinnedSnapshots?.get(b);if(c)return a.pinnedSnapshots.delete(b),a.pinnedSnapshots.set(b,c),c}function J(a,b,c,d){let e=performance.now(),f=b?I(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 K(a){return a.requestedGeneration+=1,a.requestedGeneration}function L(a){a.catch(()=>void 0)}function M(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 N(){let a=(s.__llvFilesRouteScans??=new Map,s.__llvFilesRouteScans),b=a.get("");if(void 0===b){let b=v();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)(q)).mtimeMs}catch{return 0}}():0};return a.set("",c),c}let c=function(a){if(t(a)&&10===a.schemaVersion&&Number.isSafeInteger(a.snapshotGeneration)&&Number.isSafeInteger(a.requestedGeneration)){let b=y(a.refresh);return!b||a.refresh?.controller&&Number.isSafeInteger(a.refresh.subscribers)||z(a,a.refresh?.generation??0,b),a}let b=t(a)?a:{},c={schemaVersion:10,snapshot:u(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=y(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});z(c,0,a)}return c}(b);return a.delete(""),a.set("",c),c}async function O(a,b,c=Date.now(),d,e){let f=N();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 J(f,g,a,f.refresh?"stale":"hit")}let k=void 0!==e&&e<=f.requestedGeneration?e:void 0;if(void 0!==k)g&&(k=M(f,g,k));else if(void 0!==d){let a;f.forcedRevision===d&&void 0!==f.forcedGeneration?a=f.forcedGeneration:(a=K(f),f.forcedRevision=d,f.forcedGeneration=a),k=a,g&&(k=M(f,g,a));let b=H(f,k,g,"revision"),c=()=>{f.forcedGeneration===a&&(f.forcedRevision=void 0,f.forcedGeneration=void 0)};if(!f.snapshot)try{return await b,J(f,g,k,"miss")}finally{c()}b.then(c,c)}if(void 0!==k){let a=H(f,k,g,"generation"),b=!f.snapshot;return b?await a:L(a),J(f,g,k,b?"miss":void 0)}if(g){let a,b;f.pinnedSnapshots??=new Map;let d=I(f,g);if(d&&c-d.refreshedAt<1e3)return J(f,g,d.generation);a=f.pinnedGenerations?.get(g),b=f.pinnedSnapshots?.get(g)?.generation??-1;let e=H(f,k=void 0!==a&&a>b?a:M(f,g,K(f)),g,"pinned"),h=!f.snapshot;return h?await e:L(e),J(f,g,k,h?"miss":void 0)}if(!f.snapshot){k=f.refresh?.generation??K(f);let a=f.refresh??E(f,k,"cold");return await B(a),J(f,void 0,k,"miss")}return f.refresh?k=f.refresh.generation:c-Math.max(f.refreshedAt,f.ordinaryRefreshRequestedAt??0)>=3e5?(k=K(f),f.ordinaryRefreshRequestedAt=c,G(f,k)):k=f.snapshotGeneration,J(f,void 0,k)}async function P({revalidate:a=!0,signal:b}={}){let c=N();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=K(c);c.ordinaryRefreshRequestedAt=b,G(c,a)}return J(c,void 0,c.snapshotGeneration)}let d=c.refresh?.generation??K(c),e=c.refresh??E(c,d,"cold");return await B(e,b),J(c,void 0,d,"miss")}async function Q({fresh:a=!1,now:b=Date.now()}={}){if(a){let a=N(),b=a.freshObservationGeneration??K(a);return a.freshObservationGeneration=b,await H(a,b,void 0,"fresh"),J(a,void 0,b)}let c=await O(void 0,void 0,b);if(c.generation>=c.targetGeneration)return c;let d=N();return await H(d,c.targetGeneration,void 0,"current"),J(d,void 0,c.targetGeneration)}async function R(){let a,b=N();b.requestCount=(b.requestCount??0)+1;let c=b.freshObservationGeneration;if(void 0===c){let d=b.refresh;d?.cancelBeforeStart?.()?(c=K(b),b.freshObservationGeneration=c,a=F(b,c,"fresh")):d?c=d.generation:(c=K(b),b.freshObservationGeneration=c)}for(;;){let d=a??b.refresh??F(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 B(d)}}},36552:(a,b,c)=>{c.d(b,{wj:()=>w,uh:()=>v,KZ:()=>r});var d=c(47381),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
+ "use strict";exports.id=3086,exports.ids=[3086],exports.modules={4934:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{KZ:()=>h,uh:()=>k,wj:()=>l});var e=c(803),f=c(96458),g=a([e]);e=(g.then?(await g)():g)[0];let m=globalThis;function h(a,b={},c=new AbortController().signal){let d={...b,persist:a.persist,...a.fresh?{fresh:!0}:{}};if(c.aborted)return Promise.reject(i(c.reason));if(!(0,f.hq)()||null===(0,f.hn)())return(0,e.SW)(void 0,{...d,signal:c}).then(a=>{if(c.aborted)throw i(c.reason);return a});let{onResourceSnapshot:g,...j}=d;return(0,f.PC)(j,g,{signal:c})}let n=(a,b)=>h(a,{},b);function i(a){return a instanceof Error&&"AbortError"===a.name?a:new DOMException("file scan cancelled","AbortError")}function j(a,b){if(b.settled||b.subscribers>0||(b.controller.abort(i()),b.started))return;let c=a.queue.indexOf(b);c>=0&&a.queue.splice(c,1),b.settled=!0,b.reject(i())}async function k(a={},b=n){var c,d;let e=m.__llvFileScanCoordinator??={generation:0,queue:[],startScheduled:!1};if(a.signal?.aborted)throw i(a.signal.reason);let f={persist:!0===a.persist,fresh:!0===a.fresh},g=!0===a.exclusive,h=e.inflight,l=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?(j(e,l),Promise.reject(i(d.reason))):(l.subscribers+=1,new Promise((a,b)=>{let c=!0,f=()=>{c&&(c=!1,d?.removeEventListener("abort",g),l.subscribers-=1,j(e,l))},g=()=>{f(),b(i(d?.reason))};d?.addEventListener("abort",g,{once:!0}),l.promise.then(b=>{c&&(f(),a(structuredClone(b)))},a=>{c&&(f(),b(a))})}))}function l(){return k({persist:!0})}d()}catch(a){d(a)}})},23086:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ll:()=>P,Nm:()=>O,TF:()=>v,vx:()=>Q});var e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(50920),l=c(7058),m=c(94284),n=c(7343),o=c(78598),p=c(4934),q=a([p]);function r(...a){return p.KZ(...a)}p=(q.then?(await q)():q)[0];let R="files-scan-snapshot.json",S=-1/0,T=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||(b=a.authoritativeTurn,!!s(b)&&("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(h().readFileSync((0,k.BQ)(R),"utf8"));if(!s(a)||1!==a.version||11!==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,k.BQ)(R);try{let e=(0,k.BQ)(R);d=e,h().mkdirSync(j().dirname(e),{recursive:!0,mode:448}),b=j().join(j().dirname(e),`.${j().basename(e)}.${process.pid}.${f().randomUUID()}.tmp`),c="write temporary snapshot",d=b,h().writeFileSync(b,JSON.stringify({version:1,schemaVersion:11,snapshot:a})+"\n",{encoding:"utf8",mode:384}),c="rename temporary snapshot",d=e,h().renameSync(b,e)}catch(e){if(void 0!==b)try{h().unlinkSync(b)}catch{}let a=Date.now();if(a-S>=6e4){S=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,p.uh)({fresh:f,join:g,signal:e},(b,c)=>r(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(()=>{}),j=a=>{h||(h=!0,e(a))},(k=d(j,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,p.uh)({fresh:f,join:!1,exclusive:!0,signal:e.signal},(a,b)=>r(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=(T.__llvFilesRouteScans??=new Map,T.__llvFilesRouteScans),b=a.get("");if(void 0===b){let b=u();b&&function(a){for(let c of((0,n.X$)(a.files),a.files)){var b;let a;if(!0!==c.derivationComplete)continue;try{a=h().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")&&(b=c.engine,"claude"===b||"codex"===b||"openclaw"===b)){let a=c.engine;(0,l.Ul)(c.path,c.size,d,a,e,{authoritative:!1,composerReleased:"pane_at_composer"===c.activityReason}),c.authoritativeTurn?(0,l.Ul)(c.path,c.size,d,a,c.authoritativeTurn,{composerReleased:"pane_at_composer"===c.activityReason}):("claude"!==a||"terminal"!==e.state)&&(0,l.Ul)(c.path,c.size,d,a,e,{composerReleased:"pane_at_composer"===c.activityReason})}"claude-projects"===c.root&&c.path.includes(`${j().sep}subagents${j().sep}`)||(0,m.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,m.E)("effort").set(c.path,[c.size,d,c.effort??null]),Object.hasOwn(c,"plan")&&(0,m.E)("plan-v2").set(c.path,[c.size,d,c.plan]),Object.hasOwn(c,"goal")&&(0,m.E)("goal-v2").set(c.path,[c.size,d,c.goal]),Object.hasOwn(c,"ctx")&&(0,m.E)("ctx-v2").set(c.path,[c.size,d,c.ctx]),Object.hasOwn(c,"lastTurn")&&(0,m.E)("last-turn-v5").set(c.path,[c.size,d,c.lastTurn]),Object.hasOwn(c,"pendingWakeup")&&(0,m.E)("wakeup-v2").set(c.path,[c.size,d,c.pendingWakeup]),"claude-projects"===c.root&&c.path.endsWith(".jsonl")&&(0,m.E)(o.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:11,snapshot:b,snapshotGeneration:0,requestedGeneration:0,refreshedAt:0,completedAt:b?function(){try{return h().statSync((0,k.BQ)(R)).mtimeMs}catch{return 0}}():0};return a.set("",c),c}let c=function(a){if(s(a)&&11===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:11,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,k=void 0!==a&&a>b?a:L(f,g,J(f));let e=G(f,k,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 f=a??b.refresh??E(b,c,"fresh");a=void 0;let g=await f.resourcePromise;if(f.generation>=c){var d,e;return d=f.generation,e=c,{snapshot:g,generation:d,targetGeneration:e,cacheStatus:"miss",requestCount:b.requestCount??0,cloneDurationMs:0,refreshedAt:Date.now(),...b.lastScan?{lastScan:{...b.lastScan}}:{}}}await A(f)}}d()}catch(a){d(a)}})},96458:(a,b,c)=>{c.d(b,{PC:()=>q,hq:()=>p,hn:()=>o});var d=c(31421),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g);let i={setTimeout:(a,b)=>setTimeout(a,b),clearTimeout:a=>{clearTimeout(a)}};var j=c(31751),k=c(65377),l=c(8638);function m(){return new DOMException("file scan cancelled","AbortError")}function n(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function o(a=process.cwd()){let b=h().join(a,"src/lib/fileScanner.worker.ts"),c=h().join(a,".next/server/file-scanner-worker.js");return f().existsSync(b)&&f().existsSync("/usr/local/bin/bun-container")?{executable:"/usr/local/bin/bun-container",workerPath:b}:f().existsSync(c)?{executable:process.versions.bun?process.execPath:process.env.LLV_BUN_EXECUTABLE||"bun",workerPath:c}:f().existsSync(b)?{executable:process.execPath,workerPath:b}:null}function p(a=process.env){return"test"!==a.NODE_ENV&&"1"!==a.LLV_FILE_SCANNER_WORKER&&"1"!==a.LLV_FILE_SCANNER_WORKER_DISABLED}function q(a,b,c={}){if(c.signal?.aborted)return Promise.reject(m());let e=c.launch??o(c.cwd);if(!e)return Promise.reject(Error("this process has no file scanner worker artifact"));let g=(0,l.FX)(!1),h=void 0===c.launch&&f().existsSync("/usr/bin/nice"),p=(0,d.spawn)(h?"/usr/bin/nice":e.executable,[...h?["-n","10",e.executable]:[],e.workerPath],{cwd:c.cwd??process.cwd(),stdio:["pipe","pipe","pipe"],env:{...(0,k.Fd)(c.env??process.env),LLV_FILE_SCANNER_WORKER:"1"}});return new Promise((d,e)=>{let f,h,k=c.scheduler??i,o=!1,q=!1,r="",s="",t=0,u=null,v=null,w=(a,b)=>{o||(o=!0,void 0!==h&&(k.clearTimeout(h),h=void 0),q&&(c.signal?.removeEventListener("abort",z),q=!1),a?e(a):d(b))},x=a=>{if(!o&&!v){v=a;try{p.kill("SIGKILL")}catch{}(null!==p.exitCode||null!==p.signalCode)&&w(a)}},y=a=>{x(Error(a))},z=()=>x(m()),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 n(a)&&("resource"===a.type||"complete"===a.type)&&n(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;f=a,u=b}}};h=k.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(!o){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(f){let a=(0,l.pu)(g);(0,l.OQ)(f,g,u.complete),a&&(c.transcriptIndexScheduler??j.O)({complete:u.complete,sources:f.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)}}),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}))})}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=3131,exports.ids=[3131],exports.modules={23131:(a,b,c)=>{c.d(b,{runIdentityWaveMigrationAtStartup:()=>v});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(22962),i=c(78966),j=c(91724),k=c(15408),l=c(70107),m=c(30795),n=c(10781),o=c(80508),p=c(10230),q=c(90754);function r(a){let b=a&&"object"==typeof a?a.code:void 0;return"ENOENT"===b||"ENOTDIR"===b}function s(a){if("string"!=typeof a)return null;let b=a.split(/\r?\n/).find(a=>a.trim());return(0,m.St)(b,120)}function t(a,b){try{let c=e().statSync(a);if(!c.isFile())return null;let d=(0,l.fy)(a,c.size,b);return s(d.title)??s(d.firstPrompt)}catch(a){if(r(a))return null;throw a}}function u(a,b=g().join((0,i.Hy)(),"projects"),c=(0,i.o1)()){let d=g().relative(b,a);if(!d||".."===d||d.startsWith(`..${g().sep}`)||g().isAbsolute(d))return null;let f=g().join(c,d);if(f===a)return null;try{let d=e().statSync(f);if(!d.isFile())return null;let g=!1;try{g=e().realpathSync.native(b)===e().realpathSync.native(c)}catch(a){if(!r(a))throw a}let h=!1;try{let b=e().statSync(a);h=b.isFile()&&b.dev===d.dev&&b.ino===d.ino}catch(a){if(!r(a))throw a}return{sharedPath:f,identityEquivalent:g||h}}catch(a){if(r(a))return null;throw a}}function v(a={}){let b=a.env??process.env,c="1"===b.LLV_IDENTITY_WAVE_DRY_RUN,d={registry:a.registry??(c?function(a,b=process.env){return{runIdentityWaveMigration:c=>(0,q.Oy)(function(a=(0,j.BQ)("agent-registry.json"),b=process.env){let c,d=(0,o.Ej)(a,b),f="read"===d.mode||"sqlite"===d.mode,g=function(a){try{return e().readFileSync(a,"utf8")}catch(a){if("ENOENT"===a.code)return null;throw new n.Ou(`agent registry cannot be read: ${a instanceof Error?a.message:String(a)}`)}}(a);if(null===g){if(f)throw new n.Ou(`agent registry dry-run cannot preview the ${d.mode} backend: the JSON rollback mirror is absent; start the registry writer once so it refreshes the mirror`);return(0,n.l5)({version:2,entries:{},receipts:{}})}try{c=JSON.parse(g)}catch(a){throw new n.Ou(`agent registry cannot be read: ${a instanceof Error?a.message:String(a)}`)}if(f){let a=c?._sqliteRevision;if(!Number.isInteger(a)||0>Number(a))throw new n.Ou(`agent registry dry-run cannot preview the ${d.mode} backend: the JSON rollback mirror carries no SQLite revision stamp; start the registry writer once so it refreshes the mirror`)}return(0,p.$q)((0,n.l5)(c))}(a,b),{...c,dryRun:!0})}}(void 0,b):(0,n.agentRegistry)()),seats:a.seats??k.activeOrchestratorSeatsForMigration,now:a.now??(()=>new Date().toISOString()),transcriptTitle:a.transcriptTitle??t,sharedPath:a.sharedPath??u,commitExternalPathRekeys:a.commitExternalPathRekeys??k.rekeyOrchestratorSeatPaths,log:a.log??((a,b)=>console.info(a,b)),env:b},f=()=>d.registry.runIdentityWaveMigration({dryRun:c,now:d.now(),transcriptTitle:d.transcriptTitle,sharedPathForLegacy:d.sharedPath,orchestratorSeats:d.seats(),commitExternalPathRekeys:d.commitExternalPathRekeys}),g=c?f():(0,h.oV)(f);return d.log("[identity-wave] registry migration",{dryRun:g.dryRun,alreadyCompleted:g.alreadyCompleted,retitled:g.retitled,rekeyed:g.rekeyed,quarantinedRekeys:g.quarantinedRekeys,edgesStamped:g.edgesStamped}),g}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=3214,exports.ids=[3214],exports.modules={4837:(a,b,c)=>{c.d(b,{Gh:()=>l,JL:()=>i,OV:()=>n,RC:()=>k,Ze:()=>g,c7:()=>d,cC:()=>j,fC:()=>f,g9:()=>q,ll:()=>p,wi:()=>r});let d="gpt-6-astra",e="gpt-5.6-sol",f="gpt-5.6-terra",g="gpt-5.6-luna",h=new Set([d,e,f,g,"gpt-5.5","gpt-5.4","gpt-5.4-mini"]);function i(a){return!a?.trim()||h.has(a.trim())}let j={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-6-Astra",shortLabel:"6-Astra",use:"review"},{id:e,label:"GPT-5.6-Sol",shortLabel:"5.6-Sol",use:"review"},{id:f,label:"GPT-5.6-Terra",shortLabel:"5.6-Terra",use:"implement"},{id:g,label:"GPT-5.6-Luna",shortLabel:"5.6-Luna",use:"general"}]};function k(a,b){let c=b.trim(),d=j[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 l(a){return"codex"===a?d:"opus"}let m=["fable","opus","sonnet","haiku"];function n(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 m)if(b===a||RegExp(`(?:^|[-_.])${a}(?:[-_.]|$)`).test(b))return a;return null}let o=new Set(["fable","opus"]);function p(a){let b=n(a);return null===b||o.has(b)}function q(a){if("string"!=typeof a)return!1;let b=a.trim();return b.startsWith("gpt-")&&b.length<=128&&!/[\u0000-\u001f\u007f]/.test(b)}function r(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={4837:(a,b,c)=>{c.d(b,{Gh:()=>l,JL:()=>i,OV:()=>n,RC:()=>k,Ze:()=>g,aE:()=>q,c7:()=>d,cC:()=>j,fC:()=>f,g9:()=>r,u$:()=>o,wi:()=>s});let d="gpt-6-astra",e="gpt-5.6-sol",f="gpt-5.6-terra",g="gpt-5.6-luna",h=new Set([d,e,f,g,"gpt-5.5","gpt-5.4","gpt-5.4-mini"]);function i(a){return!a?.trim()||h.has(a.trim())}let j={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-6-Astra",shortLabel:"6-Astra",use:"review"},{id:e,label:"GPT-5.6-Sol",shortLabel:"5.6-Sol",use:"review"},{id:f,label:"GPT-5.6-Terra",shortLabel:"5.6-Terra",use:"implement"},{id:g,label:"GPT-5.6-Luna",shortLabel:"5.6-Luna",use:"general"}]};function k(a,b){let c=b.trim(),d=j[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 l(a){return"codex"===a?d:"opus"}let m=["fable","opus","sonnet","haiku"];function n(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 m)if(b===a||RegExp(`(?:^|[-_.])${a}(?:[-_.]|$)`).test(b))return a;return null}function o(a){return a?.trim()?n(a):l("claude")}let p={fable:"Fable",mythos:"Mythos",opus:"Opus",sonnet:"Sonnet",haiku:"Haiku"};function q(a,b){let c=b?.trim();if(c)return c;let d=a.trim().toLowerCase();return p[d]?p[d]:d?d.split(/[-_\s]+/).filter(Boolean).map(a=>a.charAt(0).toUpperCase()+a.slice(1)).join(" "):a}function r(a){if("string"!=typeof a)return!1;let b=a.trim();return b.startsWith("gpt-")&&b.length<=128&&!/[\u0000-\u001f\u007f]/.test(b)}function s(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
@@ -1,2 +1 @@
1
- "use strict";exports.id=3302,exports.ids=[3302,9937],exports.modules={33302:(a,b,c)=>{c.d(b,{NZ:()=>r,OE:()=>m,Tj:()=>u,Yd:()=>t,kg:()=>s,mn:()=>n});var d=c(77598),e=c.n(d),f=c(12500),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:u(a)}function t(a){let b=m(a);return b?{kind:"agent",conversationId:b}:{kind:"operator",conversationId:null}}function u(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
+ "use strict";exports.id=3302,exports.ids=[3302],exports.modules={33302:(a,b,c)=>{c.d(b,{NZ:()=>r,OE:()=>m,Tj:()=>u,Yd:()=>t,kg:()=>s,mn:()=>n});var d=c(77598),e=c.n(d),f=c(10781),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:u(a)}function t(a){let b=m(a);return b?{kind:"agent",conversationId:b}:{kind:"operator",conversationId:null}}function u(a){return m(a)?o:{ok:!0}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=3407,exports.ids=[3407],exports.modules={93407:(a,b,c)=>{c.d(b,{q8:()=>ad,RU:()=>ac});var d=c(31421),e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(25617),l=c(10781),m=c(64487),n=c(3587),o=c(91724),p=c(12770),q=c(73367),r=c(98590),s=c(59371),t=c(88210),u=c(63657),v=c(3127),w=c(98223),x=c(45656),y=c(36917),z=c(66024),A=c(74127),B=c(3743);let C={"flow-worker":1800,"headless-reviewer":300,probe:3600,"duplicate-resume":0,"dead-transcript":1800};function D(a,b){return Object.values(a.conversations).find(a=>a.generations.some(a=>a.path===b)||a.continuityPaths.includes(b))??null}function E(a){let b=Number(a.slice(1));return Number.isInteger(b)?b:-1}function F(a){return`${a.paneId}:${a.agentPid}:${a.agentIdentity??"unknown"}`}function G(a,b){if(!b)return null;let c=Date.parse(b);return Number.isFinite(c)?Math.max(0,Math.floor((a-c)/1e3)):null}function H(a){let b=new Map(a.files.map(a=>[a.path,a])),c=function(a){let b=new Map;for(let c of a){if(!c.primaryPath)continue;let a=`${c.engine}:${c.primaryPath}`;b.set(a,[...b.get(a)??[],c])}return b}(a.hosts),d=[...a.hosts.map(d=>{var e,f,g,h;let i,j=d.primaryPath,k=j?b.get(j):void 0,l=j?D(a.registry,j):null,m=j?function(a,b){let c=Object.values(a.entries).find(a=>a.artifactPath===b)?.launchProfile;if(c)return c;let d=D(a,b);return d?.generations.find(a=>a.path===b)?.launchProfile??d?.generations.at(-1)?.launchProfile??null}(a.registry,j):null,n=j?function(a,b){let c=[];for(let[d,e]of a.entries()){e.implementerPath===b&&c.push({flow:e,round:null,role:"implementer",order:d});let a=e.rounds.find(a=>a.reviewerPath===b);a&&c.push({flow:e,round:a,role:"reviewer",order:d})}let d=a=>!["approved","done_comment","closed"].includes(a.state),e=a=>Date.parse(a.createdAt)||0,f=c.sort((a,b)=>Number(d(b.flow))-Number(d(a.flow))||e(b.flow)-e(a.flow)||b.order-a.order)[0];return f?{flow:f.flow,round:f.round,role:f.role}:null}(a.flows,j):null,o=j?c.get(`${d.engine}:${j}`)??[]:[],p=o.length>1?[...o].sort((a,b)=>E(b.paneId)-E(a.paneId))[0]:null,q=null,r=null,s=[];if(o.length>1)q="duplicate-resume",r=0,p?.paneId===d.paneId&&s.push("newest-duplicate");else if(n)q="flow-worker",r=G(a.now,(e=n.flow).closedAt??e.rounds.at(-1)?.reviewedAt??null),new Set(["approved","closed"]).has(n.flow.state)||s.push("flow-in-progress"),a.mergedFlowIds.has(n.flow.id)||s.push("flow-not-merged");else{let c;j&&a.viewerOwnedPaths.has(j)&&(c=[m?.title,m?.project,m?.goal?.objective,d.windowName,...d.agentArgv].filter(Boolean).join(" "),/\b(?:probe|soak)\b/i.test(c))?(q="probe",r=j?(f=a.now,(g=b.get(j))?Math.max(0,Math.floor(f/1e3-g.mtime)):null):null):j&&a.missingTranscriptPaths.has(j)&&(q="dead-transcript",r=G(a.now,a.firstObservedAt[F(d)]))}j&&a.userAuthoredPaths.has(j)&&s.unshift("user-authored-message"),j&&a.authorshipUnverifiedPaths.has(j)&&s.unshift("authorship-unverified"),(k?.activity==="live"||k?.activity==="stalled"||k?.pendingQuestion||k?.waitingInput||l&&("busy"===l.turn.state||"unknown"===l.turn.state||(h=a.registry,i=l.turn.observedAt?Date.parse(l.turn.observedAt):NaN,Object.values(h.heldDeliveries).some(a=>{if(a.conversationId!==l.id)return!1;if("held"===a.state||"assigned"===a.state||"delivery-uncertain"===a.state)return!0;if("delivered"!==a.state||!a.deliveredAt)return!1;let b=Date.parse(a.deliveredAt);return Number.isFinite(b)&&(!Number.isFinite(i)||b>=i)}))))&&s.unshift("mid-turn"),l?.migration&&!["committed","rolled-back"].includes(l.migration.phase)&&s.unshift("migration-in-progress"),j&&a.manualPaths.has(j)&&s.unshift("manual-board-placement");let t=q?C[q]:null;q?null===r?s.push("observation-pending"):null!==t&&r<t&&s.push("idle-ttl"):s.push("unclassified");let u=null!==q&&0===s.length;return{targetKind:"tmux",paneId:d.paneId,panePid:d.panePid,agentPid:d.agentPid,processIdentity:d.agentIdentity,tmuxEvidence:a.tmuxEvidenceByHost?.get(F(d))??null,flowId:n?.flow.id??null,round:n?.round?.n??null,path:j,conversationId:l?.id??null,class:q,idleSeconds:r,ttlSeconds:t,protectedReasons:s,eligible:u,action:u&&!a.enabled?"dry-run":"retained"}}),...a.reviewerProcesses.map(b=>{let c=a.flows.find(a=>a.id===b.flowId),d=c?.rounds.find(a=>a.n===b.round)??null,e=d?function(a,b){if(!b.error)return G(a,b.reviewedAt);let c=[b.reviewedAt,b.relayedAt,b.relayStartedAt,b.spawnStartedAt,b.startedAt].map(a=>a?Date.parse(a):NaN).filter(Number.isFinite).sort((a,b)=>b-a)[0];return G(a,b.terminalAt??(void 0===c?null:new Date(c).toISOString()))}(a.now,d):null,f=[];c&&d&&"headless"===c.reviewerMode?d.verdict||d.error||f.push("review-verdict-pending"):f.push("unclassified"),null===e?f.push("observation-pending"):e<C["headless-reviewer"]&&f.push("idle-ttl");let g=void 0!==c&&null!==d&&"headless"===c.reviewerMode&&0===f.length;return{targetKind:"process",paneId:null,panePid:null,agentPid:b.pid,processIdentity:b.identity,tmuxEvidence:null,flowId:b.flowId,round:b.round,path:b.path,conversationId:null,class:"headless-reviewer",idleSeconds:e,ttlSeconds:C["headless-reviewer"],protectedReasons:f,eligible:g,action:g&&!a.enabled?"dry-run":"retained"}})];return{generatedAt:new Date(a.now).toISOString(),mode:a.enabled?"active":"dry-run",configFlag:"LLV_REAPER_ENABLED",eligibleCount:d.filter(a=>a.eligible).length,agents:d}}async function I(a,b){if("dry-run"===a.mode)return a;for(let c of a.agents){if(!c.eligible||null===c.class)continue;let a=!1;try{a=await b.actuate(c)}catch{a=!1}c.action=a?"reaped":"kill-failed",b.journal({at:new Date().toISOString(),targetKind:c.targetKind,paneId:c.paneId,agentPid:c.agentPid,path:c.path,class:c.class,reason:"idle-ttl-exceeded",outcome:a?"reaped":"kill-failed"})}return a}let J=()=>(0,o.BQ)("reaper-report.json"),K=()=>(0,o.BQ)("reaper-state.json");function L(a){return`${a.paneId}:${a.agentPid}:${a.agentIdentity??"unknown"}`}function M(a,b){h().mkdirSync(j().dirname(a),{recursive:!0,mode:448});let c=`${a}.${process.pid}.${f().randomUUID()}.tmp`;h().writeFileSync(c,JSON.stringify(b,null,2)+"\n",{encoding:"utf8",mode:384}),h().renameSync(c,a)}function N(a){let b=(0,d.spawnSync)("git",["status","--porcelain=v1","--untracked-files=all"],{cwd:a.cwd,encoding:"utf8",timeout:2e3});return 0!==b.status?null:0===b.stdout.trim().length}async function O(a,b,c){return new Promise(d=>{let e=setTimeout(()=>d(c),b);a.then(a=>{clearTimeout(e),d(a)},()=>{clearTimeout(e),d(c)})})}async function P(a,b,c){let d=0,e=async()=>{for(;d<a.length;){let b=d;d+=1,await c(a[b])}};await Promise.all(Array.from({length:Math.min(b,a.length)},e))}function Q(a){return JSON.stringify(Object.fromEntries(Object.entries(a).filter(([a])=>"mergeEvidence"!==a)))}async function R(a,b={}){let c=(b.now??Date.now)(),e=new Set,f=new Map(a.map(a=>[a.id,Q(a)])),g=new Set,i=a=>{g.add(a.id)},j=b.mergeProbeTimeoutMs??5e3,k=Math.max(1,b.mergeProbeConcurrency??4);return await P(a,k,async a=>{var f;let g,k=a.mergeEvidence??null,l=(b.checkoutClean??N)(a);if(!1===l||null===l&&h().existsSync(a.cwd)){(k?.mergedAt||k?.source)&&(k.mergedAt=null,k.checkedAt=null,k.source=null,i(a));return}let m=(f=k,g=[...a.rounds].reverse().find(a=>"APPROVE"===a.verdict),g?.reviewHeadSha?g.reviewHeadSha:f?.source==="github-pr"&&f.mergedAt?f.headSha:null);if(!m)return;let n=(b.resolveMergeIdentity??q.NN)(a.cwd);if(!n&&h().existsSync(a.cwd)){(k?.mergedAt||k?.source)&&(k.mergedAt=null,k.checkedAt=null,k.source=null,i(a));return}if(n){if(n.headSha!==m){(k?.mergedAt||k?.source)&&(k.mergedAt=null,k.checkedAt=null,k.source=null,i(a));return}k&&k.repository===n.repository&&k.headRef===n.headRef&&k.headSha===m||(a.mergeEvidence=k={...n,headSha:m,prNumber:null,mergedAt:null,checkedAt:null,source:null},i(a))}else k?.headSha!==m&&(a.mergeEvidence=k=k?{...k,headSha:m,prNumber:null,mergedAt:null,checkedAt:null,source:null}:null,i(a));if(k?.mergedAt)return void e.add(a.id);let o=k?.checkedAt?Date.parse(k.checkedAt):NaN;if(Number.isFinite(o)&&c-o<3e5)return;let p=null;if(k?.repository&&k.headRef){let e=b.probePullRequest?Promise.resolve(b.probePullRequest(k)):function(a,b=5e3){if(!a.repository||!a.headRef)return Promise.resolve(null);let c=a.prNumber?["pr","view",String(a.prNumber),"--repo",a.repository,"--json","number,mergedAt,headRefOid"]:["pr","list","--repo",a.repository,"--head",a.headRef,"--state","all","--json","number,mergedAt,headRefOid","--limit","1"];return new Promise(e=>{let f=(0,d.spawn)("gh",c,{stdio:["ignore","pipe","ignore"]}),g="",h=!1,i=a=>{h||(h=!0,clearTimeout(j),e(a))},j=setTimeout(()=>{f.kill("SIGKILL"),i(null)},b);f.stdout.setEncoding("utf8"),f.stdout.on("data",a=>{g.length<=1048576&&(g+=a)}),f.on("error",()=>i(null)),f.on("close",b=>{if(0!==b||g.length>1048576)return i(null);try{let b=JSON.parse(g),c=Array.isArray(b)?b[0]:b;if(!c||!Number.isInteger(c.number))return i(null);let d="string"==typeof c.mergedAt&&c.mergedAt?c.mergedAt:null,e="string"==typeof c.headRefOid&&c.headRefOid?c.headRefOid:null;if(d&&(!a.headSha||e!==a.headSha))return i(null);i({number:c.number,mergedAt:d,headRefOid:e})}catch{i(null)}})})}(k,j),f=await O(e,j,null);f?.mergedAt&&f.headRefOid===k.headSha?p={...k,prNumber:f.number,mergedAt:f.mergedAt,headSha:f.headRefOid??k.headSha,checkedAt:new Date(c).toISOString(),source:"github-pr"}:(f&&(k.prNumber=f.number),k.checkedAt=new Date(c).toISOString(),i(a))}!p&&(b.localBranchMerged??function(a,b){if(!0!==N(a))return!1;let c=(0,d.spawnSync)("git",["rev-parse","HEAD"],{cwd:a.cwd,encoding:"utf8",timeout:2e3});if(0!==c.status||c.stdout.trim()!==b)return!1;for(let c of["origin/main","origin/master","main","master"])if(0===(0,d.spawnSync)("git",["merge-base","--is-ancestor",b,c],{cwd:a.cwd,stdio:"ignore",timeout:2e3}).status)return!0;return!1})(a,m)&&(p={repository:k?.repository??null,headRef:k?.headRef??null,headSha:m,prNumber:k?.prNumber??null,mergedAt:new Date(c).toISOString(),checkedAt:new Date(c).toISOString(),source:"git-ancestor"}),p&&(a.mergeEvidence=p,e.add(a.id),i(a))}),!function(a,b,c,d){if(0===b.size||d.loadFlows&&!d.saveFlows)return;let e=d.loadFlows?d.loadFlows():d.saveFlows?a:(0,r.loadFlows)(),f=!1;for(let d of a){if(!b.has(d.id))continue;let a=e.find(a=>a.id===d.id);if(a&&Q(a)===c.get(d.id)){var g;a.mergeEvidence=(g=d.mergeEvidence)?{...g}:null,f=!0}}f&&(d.saveFlows??r.saveFlows)(e)}(a,g,f,b),e}function S(a,b){return Object.values(a.receipts).some(a=>"launch"===a.purpose&&a.artifactPath===b&&"worker"===a.launchProfile.role&&"completed"===a.state)}async function T(a,b,c,d,e,f,g){let i=new Set(Object.keys(f)),k=new Set,l=new Map,m=new Map,n=new Map;await (0,p.pV)(d,a=>{m.set(a.path,a)}),await (0,p.pV)(b,a=>{a.primaryPath&&n.set(a.primaryPath,a.engine)}),await (0,p.pV)(d,a=>{if("claude"!==a.engine&&"codex"!==a.engine||"live"===a.activity||n.has(a.path))return;let b=g[a.path];void 0!==b&&b>=a.mtime||n.set(a.path,a.engine)});let o={remaining:0x2000000};return await (0,p.pV)([...n],async([b,d])=>{var f;if(i.has(b)||k.has(b)||e.has(b))return;let g=+!!S(a,b)+function(a,b){let c=0;for(let d of a)d.kickoffDelivery?.path===b&&(c+=1),c+=d.rounds.filter(a=>a.relayDelivery?.path===b).length;return c}(c,b)+function(a,b){for(let c of a)if("headless"===c.reviewerMode){for(let a of c.rounds)if(a.reviewerPath===b&&a.sessionId&&j().basename(b).includes(a.sessionId))return 1}return 0}(c,b)+((f=m.get(b))&&("claude-projects"===f.root&&"subagent"===f.kind||"codex-sessions"===f.root&&"codex"===f.engine&&(0,z.ET)(f.path,f.size))?1:0),n=null;try{n=h().statSync(b).mtimeMs/1e3}catch{k.add(b);return}let p=await (0,A.vK)(b,d,g+1,{resume:!0,maxBytes:4194304,budget:o});p.count>g?i.add(b):p.complete?l.set(b,n):k.add(b)}),{userAuthoredPaths:i,unverifiedPaths:k,verifiedCleanAt:l}}async function U(a){let b=await (0,y.CS)();return await (0,s.VB)(a,b),b}function V(a,b=a=>u.B.processIdentity(a)){return{kind:"tmux",endpoint:(0,B.WH)(),server:{pid:a.tmuxServerPid,startIdentity:b(a.tmuxServerPid)},paneId:a.paneId,panePid:{pid:a.panePid,startIdentity:b(a.panePid)},windowName:a.windowName??"",agent:{pid:a.agentPid,startIdentity:a.agentIdentity},argv:a.agentArgv}}function W(a){let b=(0,o.BQ)("reaper-journal.ndjson");h().mkdirSync(j().dirname(b),{recursive:!0,mode:448});try{h().statSync(b).size>4194304&&h().renameSync(b,`${b}.1`)}catch{}h().appendFileSync(b,JSON.stringify(a)+"\n",{encoding:"utf8",mode:384})}async function X(a,b,c,d,e,f={}){let g=(f.loadFlows??r.loadFlows)(),i=f.processIdentity??(a=>u.B.processIdentity(a)),j=await R(g,f),k=a.readOnlySnapshot(),l=new Set(b.flatMap(a=>a.primaryPath&&!h().existsSync(a.primaryPath)?[a.primaryPath]:[])),m=await T(k,b,g,c,l,d.userAuthoredPaths,d.scannedAt),o=!1;for(let a of m.userAuthoredPaths)d.userAuthoredPaths[a]||(d.userAuthoredPaths[a]=!0,o=!0);for(let[a,b]of m.verifiedCleanAt)d.scannedAt[a]!==b&&(d.scannedAt[a]=b,o=!0);o&&M(K(),d);let p=new Set([...m.userAuthoredPaths,...b.flatMap(a=>a.primaryPath&&d.userAuthoredPaths[a.primaryPath]?[a.primaryPath]:[])]);return{now:e,registry:k,hosts:b,tmuxEvidenceByHost:new Map(b.map(a=>[L(a),V(a,i)])),reviewerProcesses:function(a,b){let c=b.pidAlive??(a=>u.B.pidAlive(a)),d=b.processIdentity??(a=>u.B.processIdentity(a)),e=[];for(let b of a)if("headless"===b.reviewerMode)for(let a of b.rounds){let f=a.reviewerPid??null,g=a.reviewerIdentity??null;f&&g&&c(f)&&d(f)===g&&e.push({flowId:b.id,round:a.n,pid:f,identity:g,path:a.reviewerPath})}return e}(g,f),viewerOwnedPaths:new Set(b.flatMap(a=>a.primaryPath&&S(k,a.primaryPath)?[a.primaryPath]:[])),authorshipUnverifiedPaths:m.unverifiedPaths,files:c,flows:g,manualPaths:function(a,b,c){let d=new Map(c.map(a=>[a.path,a])),e=new Set,f=new Map;for(let c of b){let b=c.primaryPath;if(!b)continue;let g=d.get(b)?.project||function(a,b){return Object.values(a.entries).find(a=>a.artifactPath===b)?.launchProfile??Object.values(a.conversations).flatMap(a=>a.generations).find(a=>a.path===b)?.launchProfile??null}(a,b)?.project;if(g)try{let a=f.get(g);a||(a=new Set((0,n.C9)(g).explicitManual??[]),f.set(g,a)),a.has(b)&&e.add(b)}catch{e.add(b)}}return e}(k,b,c),userAuthoredPaths:p,missingTranscriptPaths:l,mergedFlowIds:j,firstObservedAt:d.firstObservedAt,enabled:"1"===process.env.LLV_REAPER_ENABLED}}function Y(a,b){try{process.kill(-a,b)}catch{process.kill(a,b)}}async function Z(a,b={}){let c={pidAlive:a=>u.B.pidAlive(a),processIdentity:a=>u.B.processIdentity(a),signal:Y,sleep:a=>new Promise(b=>setTimeout(b,a)),maxVerifyAttempts:20,...b},d=()=>!c.pidAlive(a.pid)||c.processIdentity(a.pid)!==a.identity;if(d())return!1;for(let b of["SIGTERM","SIGKILL"]){try{c.signal(a.pid,b)}catch{if(d())return!0;break}for(let a=0;a<c.maxVerifyAttempts;a+=1){if(d())return!0;a+1<c.maxVerifyAttempts&&await c.sleep(25)}}return!1}function $(a,b){return a.kind===b.kind&&a.endpoint===b.endpoint&&a.server.pid===b.server.pid&&a.server.startIdentity===b.server.startIdentity&&a.paneId===b.paneId&&a.panePid.pid===b.panePid.pid&&a.panePid.startIdentity===b.panePid.startIdentity&&a.windowName===b.windowName&&a.agent.pid===b.agent.pid&&a.agent.startIdentity===b.agent.startIdentity&&a.argv.length===b.argv.length&&a.argv.every((a,c)=>a===b.argv[c])}function _(a,b,c){return"tmux"===b.targetKind&&null!==b.tmuxEvidence&&$(V(a,c),b.tmuxEvidence)&&a.primaryPath===b.path}function aa(a,b){return b?JSON.stringify(Object.values(a.heldDeliveries).filter(a=>a.conversationId===b).sort((a,b)=>a.id.localeCompare(b.id))):""}async function ab(a,b,c,d,e={}){if("process"===d.targetKind){if(!d.flowId||null===d.round||!d.processIdentity)return!1;let f=H(await X(a,[],b,c,(e.now??Date.now)(),e)).agents.find(a=>"process"===a.targetKind&&a.flowId===d.flowId&&a.round===d.round&&a.agentPid===d.agentPid&&a.processIdentity===d.processIdentity);return!!f?.eligible&&(e.killProcess??Z)({pid:d.agentPid,identity:d.processIdentity})}let g=d.paneId,h=d.tmuxEvidence;if(null===g||!h||null===h.server.startIdentity||null===h.panePid.startIdentity||null===h.agent.startIdentity)return!1;let i=e.readHosts??m.oe,j=e.kill??B.B$,k=e.now??Date.now,l=e.processIdentity??(a=>u.B.processIdentity(a)),n=(await i(!0)).hosts.find(a=>_(a,d,l));if(!n?.primaryPath)return!1;let o=Object.values(a.readOnlySnapshot().entries).find(a=>a.artifactPath===d.path);if(!o)return!1;let p={pid:process.pid,startIdentity:u.B.processIdentity(process.pid)};return a.withOperationLock(o.key,p,async()=>{let b=`reaper:${f().randomUUID()}`;try{a.claim(o.key,b);let f=await i(!0);if(!f.hosts.find(a=>_(a,d,l)))return!1;let g=await (e.refreshLifecycle??U)(a),m=await X(a,f.hosts,g,c,k(),e),n=H(m).agents.find(a=>"tmux"===a.targetKind&&a.paneId===d.paneId&&a.panePid===d.panePid&&a.agentPid===d.agentPid&&a.processIdentity===d.processIdentity&&a.path===d.path&&null!==a.tmuxEvidence&&null!==d.tmuxEvidence&&$(a.tmuxEvidence,d.tmuxEvidence));if(!n?.eligible||aa(a.readOnlySnapshot(),n.conversationId)!==aa(m.registry,n.conversationId))return!1;let p=await j(h),q=a.readOnlySnapshot().entries[`${o.key.engine}:${o.key.sessionId}`]?.host;return p&&q&&$(q,h)&&a.markUnhosted(o.key),p}finally{a.releaseClaim(o.key,b)}})}async function ac(a){let b=a.registry??(0,l.agentRegistry)(),c=a.now??Date.now();try{!function(a,b=Date.now(),c={},d=[]){let e=a.readOnlySnapshot(),f=(0,k.AM)({...c,now:()=>b}),g=new Set(d.flatMap(a=>(a.primaryPath?[a.primaryPath,...a.claimedPaths]:a.claimedPaths).map(b=>`${a.engine}:${b}`))),h=new Set;for(let d of(0,k.vZ)(e,{...c,now:()=>b}))"failed"===a.recordDeliveryOutcome(d,"failed","delivery-uncertain abandoned: owning migration settled with no live host or receipt (#652)").state&&h.add(d);for(let c of Object.values(e.migrationIntents)){let d=Object.values(e.conversations).filter(a=>a.migration?.intentId===c.id),i=function(a,b){let c=new Set(Object.values(a.conversations).filter(a=>a.migration?.intentId===b).map(a=>a.id));return Object.values(a.heldDeliveries).filter(a=>c.has(a.conversationId)&&["held","assigned","delivery-uncertain"].includes(a.state)).map(a=>a.id)}(e,c.id),j=new Set;for(let a of d)a.migration?.phase==="rolled-back"&&j.add(a.id);let l=i.filter(b=>{let d=e.heldDeliveries[b];return!(d&&j.has(d.conversationId)&&a.terminalizeRolledBackMigrationDelivery(b,c.id,t.Mi))||(h.add(b),!1)});if("draining"!==c.state){for(let b of j)a.clearRolledBackConversationMigration(b,c.id);continue}let m=new Set(l.map(a=>e.heldDeliveries[a]?.conversationId).filter(a=>!!a)),n=(0,t.AY)(e,c,b);if(!n)for(let b of d){if(b.migration?.phase!=="requested"||!m.has(b.id)||function(a,b,c,d){let e=b.migration;if(!e)return!1;let f=b.generations.find(a=>a.id===e.sourceGenerationId);if(!f)return!1;let g=`${b.engine}:${f.path}`;return!!(d.has(g)||(0,k.eW)(f.host?.tmuxHost?.agent,c)||Object.values(a.entries).some(a=>a.key.engine===b.engine&&a.artifactPath===f.path&&(0,k.dw)(a,c)))||Object.values(a.receipts).some(d=>d.engine===b.engine&&d.conversationId===b.id&&(0,k.LB)(a,d,c))}(e,b,f,g))continue;let c=`delivery cancelled because source conversation ${b.id} has no live owner; send again to authorize a fresh delivery`;for(let d of l)e.heldDeliveries[d]?.conversationId===b.id&&"failed"===a.terminalizeHeldDelivery(d,c).state&&h.add(d);a.rollbackConversationMigration(b.id,b.migration.revision),l=l.filter(a=>e.heldDeliveries[a]?.conversationId!==b.id)}if(!n)continue;let o=`delivery cancelled because its owning account migration made no progress for ${t.fz}ms; send again to authorize a fresh delivery`;a.setMigrationIntentState(c.id,"stopped",c.revision,o);let p=a.readOnlySnapshot();for(let a of l)p.heldDeliveries[a]?.state==="failed"&&h.add(a)}[...h]}(b,c,{},a.hosts)}catch(a){console.error("[reaper] stale undeliverable held-delivery convergence failed",a)}try{b.terminalizeFailedSpawnDeliveries()}catch(a){console.error("[reaper] failed-spawn held-delivery convergence failed",a)}try{(0,w.cf)(b)}catch(a){console.error("[reaper] dead structured-host ownership convergence failed",a)}let d=(a.actuation?.runtimeClient??v.sS)();try{await (a.actuation?.terminalizeStaleSpawns??x.LH)(b,d)}catch(a){console.error("[reaper] stale structured spawn convergence failed",a)}let e=function(a,b){let c=function(){try{let a=JSON.parse(h().readFileSync(K(),"utf8"));if(1===a.version&&a.firstObservedAt&&"object"==typeof a.firstObservedAt)return{version:1,firstObservedAt:a.firstObservedAt,userAuthoredPaths:a.userAuthoredPaths&&"object"==typeof a.userAuthoredPaths?a.userAuthoredPaths:{},scannedAt:a.scannedAt&&"object"==typeof a.scannedAt&&!Array.isArray(a.scannedAt)?a.scannedAt:{}}}catch{}return{version:1,firstObservedAt:{},userAuthoredPaths:{},scannedAt:{}}}(),d={};for(let e of a){let a=L(e);d[a]=c.firstObservedAt[a]??new Date(b).toISOString()}let e={version:1,firstObservedAt:d,userAuthoredPaths:c.userAuthoredPaths,scannedAt:c.scannedAt};return M(K(),e),e}(a.hosts,c),f=H(await X(b,a.hosts,a.files,e,c,a.actuation)),g=await I(f,{actuate:c=>ab(b,a.files,e,c,a.actuation),journal:W});return M(J(),g),g}function ad(){try{let a=JSON.parse(h().readFileSync(J(),"utf8"));return a&&Array.isArray(a.agents)?a:null}catch{return null}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=3422,exports.ids=[3422],exports.modules={23422:(a,b,c)=>{c.r(b),c.d(b,{productionTelegramConnectorBootPorts:()=>f,provisionTelegramConnectorAtStartup:()=>g});var d=c(68032),e=c(79554);let f={hasCredentialedSession:()=>{try{return null!==(0,d.w0)()}catch{return!1}},reportsEnabled:()=>(0,e.rD)().settings.enabled,provision:async()=>{let{telegramService:a}=await Promise.all([c.e(3034),c.e(849)]).then(c.bind(c,70849));await a().checkHealth()},connected:()=>{try{return"connected"===(0,d.Kd)().status}catch{return!1}},log:a=>console.error(`[telegram connector] ${a}`)};async function g(a=f){if(!a.hasCredentialedSession())return"no_session";if(!a.reportsEnabled())return"reports_disabled";try{await a.provision()}catch{return a.log("provision_failed"),"provision_failed"}return a.connected()?"provisioned":(a.log("connector_unavailable"),"unavailable")}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=3558,exports.ids=[3558],exports.modules={53558:(a,b,c)=>{c.d(b,{W:()=>i,applyConversationAction:()=>m});var d=c(10781),e=c(70548),f=c(10167),g=c(50201),h=c(78181);let i=["interrupt","kill","resume","compact","dialog-key"],j={registry:d.agentRegistry,structuredEnabled:()=>(0,g.cM)(),dispatchStructuredControl:h.Z,interruptConversation:f.F5,killConversation:f.yv,resumeConversation:f.X$,compactConversation:f.LJ,answerDialogKey:f.m3};function k(a,b){return{status:b,body:{error:a}}}function l(a){if(a.ok)return{status:200,body:a};let{status:b,...c}=a;return{status:b,body:c}}async function m(a,b=j){if(!i.includes(a.action))return k("unsupported conversation action",400);if(a.conversationId&&!a.conversationId.startsWith("conversation_"))return k("invalid conversation id",400);let c=b.registry(),d=a.conversationId?c.conversation(a.conversationId):null,f=a.transcriptPath?c.conversationForPath(a.transcriptPath):null;if(a.conversationId&&!d)return k("viewer conversation is unknown",404);if(d&&a.transcriptPath&&(!new Set([...d.generations.map(a=>a.path),...d.continuityPaths]).has(a.transcriptPath)||f?.id!==d.id))return k("conversation identity does not own transcript path",409);let g=d??f,h=g?.generations.at(-1)?.path??a.transcriptPath;if("kill"===a.action&&(0,e.TY)(c,g))return{status:409,body:{ok:!1,outcome:"failed",code:e.yD,error:e.xR}};if(b.structuredEnabled()){let c=await b.dispatchStructuredControl({path:h,conversationId:g?.id??a.conversationId,action:a.action,operationId:a.operationId});if(c)return c}if(!h)return k("conversationId or transcriptPath is required",400);if("interrupt"===a.action)return l(await b.interruptConversation(h));if("kill"===a.action){let a=await b.killConversation(h);return a.ok&&!a.target?l({ok:!1,outcome:"failed",error:"kill resolved no registered pane",status:409}):l(a)}return"resume"===a.action?l(await b.resumeConversation(h)):"compact"===a.action?l(await b.compactConversation(h)):l(await b.answerDialogKey(h,a.key??"",a.label,a.question))}}};