agent-log-viewer 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) hide show
  1. package/dist/mcp-server.mjs +2225 -1385
  2. package/dist/runtime-host.mjs +1690 -972
  3. package/dist/standalone/.next/BUILD_ID +1 -1
  4. package/dist/standalone/.next/app-path-routes-manifest.json +26 -24
  5. package/dist/standalone/.next/build-manifest.json +2 -2
  6. package/dist/standalone/.next/prerender-manifest.json +4 -4
  7. package/dist/standalone/.next/required-server-files.json +1 -0
  8. package/dist/standalone/.next/routes-manifest.json +12 -0
  9. package/dist/standalone/.next/server/account-migration-controller-worker.js +1 -1
  10. package/dist/standalone/.next/server/app/_global-error/page.js +2 -2
  11. package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  12. package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  13. package/dist/standalone/.next/server/app/_global-error.html +1 -1
  14. package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
  15. package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  16. package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  17. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/dist/standalone/.next/server/app/_not-found/page.js +1 -1
  19. package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  22. package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
  23. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  24. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  25. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/dist/standalone/.next/server/app/api/access/route.js +1 -1
  27. package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
  28. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
  29. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
  30. package/dist/standalone/.next/server/app/api/account-project-bindings/route.js +1 -1
  31. package/dist/standalone/.next/server/app/api/account-project-bindings/route.js.nft.json +1 -1
  32. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +1 -1
  33. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -1
  34. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js +1 -1
  35. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -1
  36. package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js +1 -1
  37. package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js.nft.json +1 -1
  38. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js +1 -1
  39. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -1
  40. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js +1 -1
  41. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -1
  42. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js +1 -1
  43. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -1
  44. package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -1
  45. package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -1
  46. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js +1 -1
  47. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -1
  48. package/dist/standalone/.next/server/app/api/accounts/cli/route.js +1 -0
  49. package/dist/standalone/.next/server/app/api/accounts/cli/route.js.nft.json +1 -0
  50. package/dist/standalone/.next/server/app/api/accounts/cli/route_client-reference-manifest.js +1 -0
  51. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js +1 -1
  52. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -1
  53. package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js +1 -1
  54. package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js.nft.json +1 -1
  55. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js +1 -1
  56. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
  57. package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js +2 -2
  58. package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js.nft.json +1 -1
  59. package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
  60. package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
  61. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +1 -1
  62. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -1
  63. package/dist/standalone/.next/server/app/api/accounts/route.js +1 -1
  64. package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -1
  65. package/dist/standalone/.next/server/app/api/agent/route.js +1 -1
  66. package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
  67. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -1
  68. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -1
  69. package/dist/standalone/.next/server/app/api/answer/route.js +1 -1
  70. package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
  71. package/dist/standalone/.next/server/app/api/artifact/route.js +1 -1
  72. package/dist/standalone/.next/server/app/api/artifact/route.js.nft.json +1 -1
  73. package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -1
  74. package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -1
  75. package/dist/standalone/.next/server/app/api/attention/[id]/route.js +1 -1
  76. package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -1
  77. package/dist/standalone/.next/server/app/api/attention/route.js +1 -1
  78. package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -1
  79. package/dist/standalone/.next/server/app/api/board/route.js +1 -1
  80. package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -1
  81. package/dist/standalone/.next/server/app/api/bridge/route.js +1 -1
  82. package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
  83. package/dist/standalone/.next/server/app/api/conversation-host/route.js +1 -1
  84. package/dist/standalone/.next/server/app/api/conversation-host/route.js.nft.json +1 -1
  85. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js +1 -1
  86. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js.nft.json +1 -1
  87. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
  88. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
  89. package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
  90. package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
  91. package/dist/standalone/.next/server/app/api/files/route.js +6 -3
  92. package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  93. package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
  94. package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
  95. package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
  96. package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
  97. package/dist/standalone/.next/server/app/api/image/route.js +1 -1
  98. package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
  99. package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
  100. package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  101. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
  102. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
  103. package/dist/standalone/.next/server/app/api/limits/history/route.js +1 -1
  104. package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -1
  105. package/dist/standalone/.next/server/app/api/limits/route.js +1 -1
  106. package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
  107. package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -1
  108. package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -1
  109. package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -1
  110. package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -1
  111. package/dist/standalone/.next/server/app/api/log/provenance/route.js +14 -12
  112. package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -1
  113. package/dist/standalone/.next/server/app/api/log/route.js +1 -1
  114. package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
  115. package/dist/standalone/.next/server/app/api/log/suggestions/route.js +2 -2
  116. package/dist/standalone/.next/server/app/api/log/suggestions/route.js.nft.json +1 -1
  117. package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
  118. package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  119. package/dist/standalone/.next/server/app/api/logs/stream/route.js +2 -2
  120. package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  121. package/dist/standalone/.next/server/app/api/monitor/runs/route.js +1 -1
  122. package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
  123. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js +6 -5
  124. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js.nft.json +1 -1
  125. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js +2 -2
  126. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js.nft.json +1 -1
  127. package/dist/standalone/.next/server/app/api/onboarding/route.js +1 -0
  128. package/dist/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -0
  129. package/dist/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -0
  130. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
  131. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
  132. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
  133. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
  134. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +1 -1
  135. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -1
  136. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -1
  137. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -1
  138. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js +1 -1
  139. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -1
  140. package/dist/standalone/.next/server/app/api/pipelines/route.js +1 -1
  141. package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
  142. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +1 -2
  143. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
  144. package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
  145. package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
  146. package/dist/standalone/.next/server/app/api/projects/create/route.js +2 -2
  147. package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -1
  148. package/dist/standalone/.next/server/app/api/projects/crown/route.js +1 -1
  149. package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -1
  150. package/dist/standalone/.next/server/app/api/projects/directories/route.js +1 -1
  151. package/dist/standalone/.next/server/app/api/projects/directories/route.js.nft.json +1 -1
  152. package/dist/standalone/.next/server/app/api/push/route.js +2 -2
  153. package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
  154. package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
  155. package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
  156. package/dist/standalone/.next/server/app/api/roles/route.js +3 -3
  157. package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
  158. package/dist/standalone/.next/server/app/api/runtime/answer/route.js +1 -1
  159. package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -1
  160. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js +1 -1
  161. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -1
  162. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js +1 -1
  163. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -1
  164. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js +1 -1
  165. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -1
  166. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js +1 -1
  167. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js.nft.json +1 -1
  168. package/dist/standalone/.next/server/app/api/runtime/inject/route.js +1 -1
  169. package/dist/standalone/.next/server/app/api/runtime/inject/route.js.nft.json +1 -1
  170. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +1 -1
  171. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -1
  172. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +1 -1
  173. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
  174. package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -1
  175. package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
  176. package/dist/standalone/.next/server/app/api/runtime/queue/route.js +1 -1
  177. package/dist/standalone/.next/server/app/api/runtime/queue/route.js.nft.json +1 -1
  178. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +1 -1
  179. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
  180. package/dist/standalone/.next/server/app/api/runtime/send/route.js +1 -1
  181. package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -1
  182. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js +1 -1
  183. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -1
  184. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +1 -1
  185. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -1
  186. package/dist/standalone/.next/server/app/api/runtime/steer/route.js +1 -1
  187. package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -1
  188. package/dist/standalone/.next/server/app/api/runtime/stream/route.js +2 -2
  189. package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -1
  190. package/dist/standalone/.next/server/app/api/search/transcripts/route.js +1 -1
  191. package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -1
  192. package/dist/standalone/.next/server/app/api/session/route.js +1 -1
  193. package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  194. package/dist/standalone/.next/server/app/api/session/supersedence/route.js +1 -1
  195. package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -1
  196. package/dist/standalone/.next/server/app/api/session/title/route.js +1 -1
  197. package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -1
  198. package/dist/standalone/.next/server/app/api/spawn/policy/route.js +2 -2
  199. package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -1
  200. package/dist/standalone/.next/server/app/api/spawn/route.js +1 -1
  201. package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
  202. package/dist/standalone/.next/server/app/api/spawn/validate/route.js +1 -1
  203. package/dist/standalone/.next/server/app/api/spawn/validate/route.js.nft.json +1 -1
  204. package/dist/standalone/.next/server/app/api/staging/route.js +2 -2
  205. package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
  206. package/dist/standalone/.next/server/app/api/task-attachments/route.js +2 -2
  207. package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
  208. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
  209. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
  210. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  211. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  212. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +1 -1
  213. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
  214. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +1 -1
  215. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
  216. package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
  217. package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
  218. package/dist/standalone/.next/server/app/api/tasks/route.js +1 -1
  219. package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  220. package/dist/standalone/.next/server/app/api/telegram/reports/route.js +1 -1
  221. package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -1
  222. package/dist/standalone/.next/server/app/api/telegram/route.js +1 -1
  223. package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -1
  224. package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
  225. package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
  226. package/dist/standalone/.next/server/app/api/tmux/route.js +1 -1
  227. package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
  228. package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
  229. package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
  230. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js +2 -2
  231. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
  232. package/dist/standalone/.next/server/app/api/transcribe/route.js +2 -2
  233. package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
  234. package/dist/standalone/.next/server/app/api/transcribe/token/route.js +2 -2
  235. package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
  236. package/dist/standalone/.next/server/app/api/tts/backend/route.js +1 -1
  237. package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -1
  238. package/dist/standalone/.next/server/app/api/tts/route.js +2 -2
  239. package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -1
  240. package/dist/standalone/.next/server/app/api/view/presence/route.js +2 -1
  241. package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -1
  242. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
  243. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
  244. package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
  245. package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  246. package/dist/standalone/.next/server/app/favicon.ico/route.js +1 -1
  247. package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  248. package/dist/standalone/.next/server/app/index.html +1 -1
  249. package/dist/standalone/.next/server/app/index.rsc +3 -3
  250. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  251. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  252. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  253. package/dist/standalone/.next/server/app/page.js +20 -20
  254. package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
  255. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  256. package/dist/standalone/.next/server/app-paths-manifest.json +26 -24
  257. package/dist/standalone/.next/server/chunks/107.js +1 -1
  258. package/dist/standalone/.next/server/chunks/1106.js +5 -0
  259. package/dist/standalone/.next/server/chunks/112.js +1 -0
  260. package/dist/standalone/.next/server/chunks/1406.js +35 -168
  261. package/dist/standalone/.next/server/chunks/1585.js +3 -3
  262. package/dist/standalone/.next/server/chunks/160.js +18 -18
  263. package/dist/standalone/.next/server/chunks/1617.js +1 -1
  264. package/dist/standalone/.next/server/chunks/1849.js +1 -1
  265. package/dist/standalone/.next/server/chunks/1952.js +1 -1
  266. package/dist/standalone/.next/server/chunks/2499.js +1 -0
  267. package/dist/standalone/.next/server/chunks/2555.js +1 -1
  268. package/dist/standalone/.next/server/chunks/2589.js +127 -0
  269. package/dist/standalone/.next/server/chunks/261.js +1 -0
  270. package/dist/standalone/.next/server/chunks/2744.js +1 -1
  271. package/dist/standalone/.next/server/chunks/286.js +2 -2
  272. package/dist/standalone/.next/server/chunks/2914.js +20 -21
  273. package/dist/standalone/.next/server/chunks/2916.js +1 -0
  274. package/dist/standalone/.next/server/chunks/3086.js +1 -1
  275. package/dist/standalone/.next/server/chunks/3407.js +1 -1
  276. package/dist/standalone/.next/server/chunks/3509.js +1 -0
  277. package/dist/standalone/.next/server/chunks/3570.js +1 -1
  278. package/dist/standalone/.next/server/chunks/3696.js +5 -0
  279. package/dist/standalone/.next/server/chunks/3743.js +9 -9
  280. package/dist/standalone/.next/server/chunks/3784.js +5 -0
  281. package/dist/standalone/.next/server/chunks/3830.js +1 -1
  282. package/dist/standalone/.next/server/chunks/3957.js +1 -0
  283. package/dist/standalone/.next/server/chunks/4037.js +1 -1
  284. package/dist/standalone/.next/server/chunks/4651.js +1 -1
  285. package/dist/standalone/.next/server/chunks/4972.js +38 -16
  286. package/dist/standalone/.next/server/chunks/53.js +1 -0
  287. package/dist/standalone/.next/server/chunks/5408.js +1 -1
  288. package/dist/standalone/.next/server/chunks/5465.js +156 -0
  289. package/dist/standalone/.next/server/chunks/5545.js +1 -1
  290. package/dist/standalone/.next/server/chunks/568.js +1 -1
  291. package/dist/standalone/.next/server/chunks/6023.js +1 -1
  292. package/dist/standalone/.next/server/chunks/6211.js +1 -0
  293. package/dist/standalone/.next/server/chunks/6289.js +1 -2
  294. package/dist/standalone/.next/server/chunks/6418.js +1 -0
  295. package/dist/standalone/.next/server/chunks/6453.js +1 -1
  296. package/dist/standalone/.next/server/chunks/6522.js +1 -1
  297. package/dist/standalone/.next/server/chunks/6796.js +1 -1
  298. package/dist/standalone/.next/server/chunks/6826.js +3 -3
  299. package/dist/standalone/.next/server/chunks/6942.js +3 -3
  300. package/dist/standalone/.next/server/chunks/6978.js +1 -1
  301. package/dist/standalone/.next/server/chunks/7008.js +21 -19
  302. package/dist/standalone/.next/server/chunks/7192.js +1 -1
  303. package/dist/standalone/.next/server/chunks/7238.js +2 -2
  304. package/dist/standalone/.next/server/chunks/7294.js +1 -0
  305. package/dist/standalone/.next/server/chunks/7722.js +1 -1
  306. package/dist/standalone/.next/server/chunks/781.js +17 -17
  307. package/dist/standalone/.next/server/chunks/8027.js +1 -1
  308. package/dist/standalone/.next/server/chunks/8330.js +1 -0
  309. package/dist/standalone/.next/server/chunks/8444.js +1 -1
  310. package/dist/standalone/.next/server/chunks/8512.js +1 -1
  311. package/dist/standalone/.next/server/chunks/8513.js +2 -2
  312. package/dist/standalone/.next/server/chunks/8617.js +1 -1
  313. package/dist/standalone/.next/server/chunks/8817.js +2 -2
  314. package/dist/standalone/.next/server/chunks/8966.js +1 -1
  315. package/dist/standalone/.next/server/chunks/8985.js +1 -1
  316. package/dist/standalone/.next/server/chunks/8996.js +1 -1
  317. package/dist/standalone/.next/server/chunks/9006.js +1 -0
  318. package/dist/standalone/.next/server/chunks/9060.js +4 -0
  319. package/dist/standalone/.next/server/chunks/9296.js +20 -21
  320. package/dist/standalone/.next/server/chunks/9298.js +1 -2
  321. package/dist/standalone/.next/server/chunks/9307.js +1 -1
  322. package/dist/standalone/.next/server/chunks/9360.js +12 -12
  323. package/dist/standalone/.next/server/chunks/9517.js +1 -1
  324. package/dist/standalone/.next/server/chunks/9611.js +1 -0
  325. package/dist/standalone/.next/server/chunks/9822.js +1 -1
  326. package/dist/standalone/.next/server/chunks/9839.js +5 -0
  327. package/dist/standalone/.next/server/chunks/9867.js +1 -0
  328. package/dist/standalone/.next/server/chunks/9940.js +37 -15
  329. package/dist/standalone/.next/server/chunks/9998.js +1 -1
  330. package/dist/standalone/.next/server/file-scanner-worker.js +1 -1
  331. package/dist/standalone/.next/server/files-response-worker.js +2 -2
  332. package/dist/standalone/.next/server/functions-config-manifest.json +2 -0
  333. package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
  334. package/dist/standalone/.next/server/middleware.js +3 -3
  335. package/dist/standalone/.next/server/pages/404.html +1 -1
  336. package/dist/standalone/.next/server/pages/500.html +1 -1
  337. package/dist/standalone/.next/server/resource-collector-worker.js +1 -1
  338. package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
  339. package/dist/standalone/.next/server/state-backup-worker.js +3 -0
  340. package/dist/standalone/.next/server/wakatime-sync-worker.js +1 -1
  341. package/dist/standalone/.next/static/chunks/9591-0fd6a5a4172de16d.js +1 -0
  342. package/dist/standalone/.next/static/chunks/app/_global-error/page-151390fbd8c93c25.js +1 -0
  343. package/dist/standalone/.next/static/chunks/app/api/access/route-151390fbd8c93c25.js +1 -0
  344. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-151390fbd8c93c25.js +1 -0
  345. package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-151390fbd8c93c25.js +1 -0
  346. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-151390fbd8c93c25.js +1 -0
  347. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-151390fbd8c93c25.js +1 -0
  348. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-151390fbd8c93c25.js +1 -0
  349. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-151390fbd8c93c25.js +1 -0
  350. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-151390fbd8c93c25.js +1 -0
  351. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-151390fbd8c93c25.js +1 -0
  352. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-151390fbd8c93c25.js +1 -0
  353. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-151390fbd8c93c25.js +1 -0
  354. package/dist/standalone/.next/static/chunks/app/api/accounts/cli/route-151390fbd8c93c25.js +1 -0
  355. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-151390fbd8c93c25.js +1 -0
  356. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-151390fbd8c93c25.js +1 -0
  357. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-151390fbd8c93c25.js +1 -0
  358. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-151390fbd8c93c25.js +1 -0
  359. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-151390fbd8c93c25.js +1 -0
  360. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-151390fbd8c93c25.js +1 -0
  361. package/dist/standalone/.next/static/chunks/app/api/accounts/route-151390fbd8c93c25.js +1 -0
  362. package/dist/standalone/.next/static/chunks/app/api/agent/route-151390fbd8c93c25.js +1 -0
  363. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-151390fbd8c93c25.js +1 -0
  364. package/dist/standalone/.next/static/chunks/app/api/answer/route-151390fbd8c93c25.js +1 -0
  365. package/dist/standalone/.next/static/chunks/app/api/artifact/route-151390fbd8c93c25.js +1 -0
  366. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-151390fbd8c93c25.js +1 -0
  367. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-151390fbd8c93c25.js +1 -0
  368. package/dist/standalone/.next/static/chunks/app/api/attention/route-151390fbd8c93c25.js +1 -0
  369. package/dist/standalone/.next/static/chunks/app/api/board/route-151390fbd8c93c25.js +1 -0
  370. package/dist/standalone/.next/static/chunks/app/api/bridge/route-151390fbd8c93c25.js +1 -0
  371. package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-151390fbd8c93c25.js +1 -0
  372. package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-151390fbd8c93c25.js +1 -0
  373. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-151390fbd8c93c25.js +1 -0
  374. package/dist/standalone/.next/static/chunks/app/api/conversations/route-151390fbd8c93c25.js +1 -0
  375. package/dist/standalone/.next/static/chunks/app/api/files/route-151390fbd8c93c25.js +1 -0
  376. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-151390fbd8c93c25.js +1 -0
  377. package/dist/standalone/.next/static/chunks/app/api/flows/route-151390fbd8c93c25.js +1 -0
  378. package/dist/standalone/.next/static/chunks/app/api/image/route-151390fbd8c93c25.js +1 -0
  379. package/dist/standalone/.next/static/chunks/app/api/inbox/route-151390fbd8c93c25.js +1 -0
  380. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-151390fbd8c93c25.js +1 -0
  381. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-151390fbd8c93c25.js +1 -0
  382. package/dist/standalone/.next/static/chunks/app/api/limits/route-151390fbd8c93c25.js +1 -0
  383. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-151390fbd8c93c25.js +1 -0
  384. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-151390fbd8c93c25.js +1 -0
  385. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-151390fbd8c93c25.js +1 -0
  386. package/dist/standalone/.next/static/chunks/app/api/log/route-151390fbd8c93c25.js +1 -0
  387. package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-151390fbd8c93c25.js +1 -0
  388. package/dist/standalone/.next/static/chunks/app/api/logs/route-151390fbd8c93c25.js +1 -0
  389. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-151390fbd8c93c25.js +1 -0
  390. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-151390fbd8c93c25.js +1 -0
  391. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/route-151390fbd8c93c25.js +1 -0
  392. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/settings/route-151390fbd8c93c25.js +1 -0
  393. package/dist/standalone/.next/static/chunks/app/api/onboarding/route-151390fbd8c93c25.js +1 -0
  394. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-151390fbd8c93c25.js +1 -0
  395. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-151390fbd8c93c25.js +1 -0
  396. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-151390fbd8c93c25.js +1 -0
  397. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-151390fbd8c93c25.js +1 -0
  398. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-151390fbd8c93c25.js +1 -0
  399. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-151390fbd8c93c25.js +1 -0
  400. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-151390fbd8c93c25.js +1 -0
  401. package/dist/standalone/.next/static/chunks/app/api/proc/route-151390fbd8c93c25.js +1 -0
  402. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-151390fbd8c93c25.js +1 -0
  403. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-151390fbd8c93c25.js +1 -0
  404. package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-151390fbd8c93c25.js +1 -0
  405. package/dist/standalone/.next/static/chunks/app/api/push/route-151390fbd8c93c25.js +1 -0
  406. package/dist/standalone/.next/static/chunks/app/api/resources/route-151390fbd8c93c25.js +1 -0
  407. package/dist/standalone/.next/static/chunks/app/api/roles/route-151390fbd8c93c25.js +1 -0
  408. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-151390fbd8c93c25.js +1 -0
  409. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-151390fbd8c93c25.js +1 -0
  410. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-151390fbd8c93c25.js +1 -0
  411. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-151390fbd8c93c25.js +1 -0
  412. package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-151390fbd8c93c25.js +1 -0
  413. package/dist/standalone/.next/static/chunks/app/api/runtime/inject/route-151390fbd8c93c25.js +1 -0
  414. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-151390fbd8c93c25.js +1 -0
  415. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-151390fbd8c93c25.js +1 -0
  416. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-151390fbd8c93c25.js +1 -0
  417. package/dist/standalone/.next/static/chunks/app/api/runtime/queue/route-151390fbd8c93c25.js +1 -0
  418. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-151390fbd8c93c25.js +1 -0
  419. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-151390fbd8c93c25.js +1 -0
  420. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-151390fbd8c93c25.js +1 -0
  421. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-151390fbd8c93c25.js +1 -0
  422. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-151390fbd8c93c25.js +1 -0
  423. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-151390fbd8c93c25.js +1 -0
  424. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-151390fbd8c93c25.js +1 -0
  425. package/dist/standalone/.next/static/chunks/app/api/session/route-151390fbd8c93c25.js +1 -0
  426. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-151390fbd8c93c25.js +1 -0
  427. package/dist/standalone/.next/static/chunks/app/api/session/title/route-151390fbd8c93c25.js +1 -0
  428. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-151390fbd8c93c25.js +1 -0
  429. package/dist/standalone/.next/static/chunks/app/api/spawn/route-151390fbd8c93c25.js +1 -0
  430. package/dist/standalone/.next/static/chunks/app/api/spawn/validate/route-151390fbd8c93c25.js +1 -0
  431. package/dist/standalone/.next/static/chunks/app/api/staging/route-151390fbd8c93c25.js +1 -0
  432. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-151390fbd8c93c25.js +1 -0
  433. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-151390fbd8c93c25.js +1 -0
  434. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-151390fbd8c93c25.js +1 -0
  435. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-151390fbd8c93c25.js +1 -0
  436. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-151390fbd8c93c25.js +1 -0
  437. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-151390fbd8c93c25.js +1 -0
  438. package/dist/standalone/.next/static/chunks/app/api/tasks/route-151390fbd8c93c25.js +1 -0
  439. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-151390fbd8c93c25.js +1 -0
  440. package/dist/standalone/.next/static/chunks/app/api/telegram/route-151390fbd8c93c25.js +1 -0
  441. package/dist/standalone/.next/static/chunks/app/api/timeline/route-151390fbd8c93c25.js +1 -0
  442. package/dist/standalone/.next/static/chunks/app/api/tmux/route-151390fbd8c93c25.js +1 -0
  443. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-151390fbd8c93c25.js +1 -0
  444. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-151390fbd8c93c25.js +1 -0
  445. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-151390fbd8c93c25.js +1 -0
  446. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-151390fbd8c93c25.js +1 -0
  447. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-151390fbd8c93c25.js +1 -0
  448. package/dist/standalone/.next/static/chunks/app/api/tts/route-151390fbd8c93c25.js +1 -0
  449. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-151390fbd8c93c25.js +1 -0
  450. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-151390fbd8c93c25.js +1 -0
  451. package/dist/standalone/.next/static/chunks/app/api/workflows/route-151390fbd8c93c25.js +1 -0
  452. package/dist/standalone/.next/static/chunks/app/page-a2e19d755e17b569.js +125 -0
  453. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-151390fbd8c93c25.js +1 -0
  454. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-151390fbd8c93c25.js +1 -0
  455. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-151390fbd8c93c25.js +1 -0
  456. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-151390fbd8c93c25.js +1 -0
  457. package/dist/standalone/.next/static/css/9b32c3f7f468cbcc.css +1 -0
  458. package/dist/standalone/.next/static/fQ2a5S10vvpyAqE0L_wUj/_buildManifest.js +1 -0
  459. package/dist/standalone/package.json +1 -1
  460. package/dist/standalone/server.bun.js +1 -1
  461. package/dist/standalone/src/lib/viewerInstrumentation.ts +44 -1
  462. package/package.json +1 -1
  463. package/dist/standalone/.next/server/chunks/1888.js +0 -1
  464. package/dist/standalone/.next/server/chunks/4127.js +0 -1
  465. package/dist/standalone/.next/server/chunks/606.js +0 -126
  466. package/dist/standalone/.next/static/836HTp-5V8cZC5YWFVOCk/_buildManifest.js +0 -1
  467. package/dist/standalone/.next/static/chunks/7333-cf17cea2a91e7b4b.js +0 -1
  468. package/dist/standalone/.next/static/chunks/app/_global-error/page-60a25d1c4cbf0128.js +0 -1
  469. package/dist/standalone/.next/static/chunks/app/api/access/route-60a25d1c4cbf0128.js +0 -1
  470. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-60a25d1c4cbf0128.js +0 -1
  471. package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-60a25d1c4cbf0128.js +0 -1
  472. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-60a25d1c4cbf0128.js +0 -1
  473. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-60a25d1c4cbf0128.js +0 -1
  474. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-60a25d1c4cbf0128.js +0 -1
  475. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-60a25d1c4cbf0128.js +0 -1
  476. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-60a25d1c4cbf0128.js +0 -1
  477. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-60a25d1c4cbf0128.js +0 -1
  478. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-60a25d1c4cbf0128.js +0 -1
  479. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-60a25d1c4cbf0128.js +0 -1
  480. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-60a25d1c4cbf0128.js +0 -1
  481. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-60a25d1c4cbf0128.js +0 -1
  482. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-60a25d1c4cbf0128.js +0 -1
  483. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-60a25d1c4cbf0128.js +0 -1
  484. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-60a25d1c4cbf0128.js +0 -1
  485. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-60a25d1c4cbf0128.js +0 -1
  486. package/dist/standalone/.next/static/chunks/app/api/accounts/route-60a25d1c4cbf0128.js +0 -1
  487. package/dist/standalone/.next/static/chunks/app/api/agent/route-60a25d1c4cbf0128.js +0 -1
  488. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-60a25d1c4cbf0128.js +0 -1
  489. package/dist/standalone/.next/static/chunks/app/api/answer/route-60a25d1c4cbf0128.js +0 -1
  490. package/dist/standalone/.next/static/chunks/app/api/artifact/route-60a25d1c4cbf0128.js +0 -1
  491. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-60a25d1c4cbf0128.js +0 -1
  492. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-60a25d1c4cbf0128.js +0 -1
  493. package/dist/standalone/.next/static/chunks/app/api/attention/route-60a25d1c4cbf0128.js +0 -1
  494. package/dist/standalone/.next/static/chunks/app/api/board/route-60a25d1c4cbf0128.js +0 -1
  495. package/dist/standalone/.next/static/chunks/app/api/bridge/route-60a25d1c4cbf0128.js +0 -1
  496. package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-60a25d1c4cbf0128.js +0 -1
  497. package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-60a25d1c4cbf0128.js +0 -1
  498. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-60a25d1c4cbf0128.js +0 -1
  499. package/dist/standalone/.next/static/chunks/app/api/conversations/route-60a25d1c4cbf0128.js +0 -1
  500. package/dist/standalone/.next/static/chunks/app/api/files/route-60a25d1c4cbf0128.js +0 -1
  501. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-60a25d1c4cbf0128.js +0 -1
  502. package/dist/standalone/.next/static/chunks/app/api/flows/route-60a25d1c4cbf0128.js +0 -1
  503. package/dist/standalone/.next/static/chunks/app/api/image/route-60a25d1c4cbf0128.js +0 -1
  504. package/dist/standalone/.next/static/chunks/app/api/inbox/route-60a25d1c4cbf0128.js +0 -1
  505. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-60a25d1c4cbf0128.js +0 -1
  506. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-60a25d1c4cbf0128.js +0 -1
  507. package/dist/standalone/.next/static/chunks/app/api/limits/route-60a25d1c4cbf0128.js +0 -1
  508. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-60a25d1c4cbf0128.js +0 -1
  509. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-60a25d1c4cbf0128.js +0 -1
  510. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-60a25d1c4cbf0128.js +0 -1
  511. package/dist/standalone/.next/static/chunks/app/api/log/route-60a25d1c4cbf0128.js +0 -1
  512. package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-60a25d1c4cbf0128.js +0 -1
  513. package/dist/standalone/.next/static/chunks/app/api/logs/route-60a25d1c4cbf0128.js +0 -1
  514. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-60a25d1c4cbf0128.js +0 -1
  515. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-60a25d1c4cbf0128.js +0 -1
  516. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/route-60a25d1c4cbf0128.js +0 -1
  517. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/settings/route-60a25d1c4cbf0128.js +0 -1
  518. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-60a25d1c4cbf0128.js +0 -1
  519. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-60a25d1c4cbf0128.js +0 -1
  520. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-60a25d1c4cbf0128.js +0 -1
  521. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-60a25d1c4cbf0128.js +0 -1
  522. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-60a25d1c4cbf0128.js +0 -1
  523. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-60a25d1c4cbf0128.js +0 -1
  524. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-60a25d1c4cbf0128.js +0 -1
  525. package/dist/standalone/.next/static/chunks/app/api/proc/route-60a25d1c4cbf0128.js +0 -1
  526. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-60a25d1c4cbf0128.js +0 -1
  527. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-60a25d1c4cbf0128.js +0 -1
  528. package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-60a25d1c4cbf0128.js +0 -1
  529. package/dist/standalone/.next/static/chunks/app/api/push/route-60a25d1c4cbf0128.js +0 -1
  530. package/dist/standalone/.next/static/chunks/app/api/resources/route-60a25d1c4cbf0128.js +0 -1
  531. package/dist/standalone/.next/static/chunks/app/api/roles/route-60a25d1c4cbf0128.js +0 -1
  532. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-60a25d1c4cbf0128.js +0 -1
  533. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-60a25d1c4cbf0128.js +0 -1
  534. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-60a25d1c4cbf0128.js +0 -1
  535. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-60a25d1c4cbf0128.js +0 -1
  536. package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-60a25d1c4cbf0128.js +0 -1
  537. package/dist/standalone/.next/static/chunks/app/api/runtime/inject/route-60a25d1c4cbf0128.js +0 -1
  538. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-60a25d1c4cbf0128.js +0 -1
  539. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-60a25d1c4cbf0128.js +0 -1
  540. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-60a25d1c4cbf0128.js +0 -1
  541. package/dist/standalone/.next/static/chunks/app/api/runtime/queue/route-60a25d1c4cbf0128.js +0 -1
  542. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-60a25d1c4cbf0128.js +0 -1
  543. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-60a25d1c4cbf0128.js +0 -1
  544. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-60a25d1c4cbf0128.js +0 -1
  545. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-60a25d1c4cbf0128.js +0 -1
  546. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-60a25d1c4cbf0128.js +0 -1
  547. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-60a25d1c4cbf0128.js +0 -1
  548. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-60a25d1c4cbf0128.js +0 -1
  549. package/dist/standalone/.next/static/chunks/app/api/session/route-60a25d1c4cbf0128.js +0 -1
  550. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-60a25d1c4cbf0128.js +0 -1
  551. package/dist/standalone/.next/static/chunks/app/api/session/title/route-60a25d1c4cbf0128.js +0 -1
  552. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-60a25d1c4cbf0128.js +0 -1
  553. package/dist/standalone/.next/static/chunks/app/api/spawn/route-60a25d1c4cbf0128.js +0 -1
  554. package/dist/standalone/.next/static/chunks/app/api/spawn/validate/route-60a25d1c4cbf0128.js +0 -1
  555. package/dist/standalone/.next/static/chunks/app/api/staging/route-60a25d1c4cbf0128.js +0 -1
  556. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-60a25d1c4cbf0128.js +0 -1
  557. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-60a25d1c4cbf0128.js +0 -1
  558. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-60a25d1c4cbf0128.js +0 -1
  559. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-60a25d1c4cbf0128.js +0 -1
  560. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-60a25d1c4cbf0128.js +0 -1
  561. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-60a25d1c4cbf0128.js +0 -1
  562. package/dist/standalone/.next/static/chunks/app/api/tasks/route-60a25d1c4cbf0128.js +0 -1
  563. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-60a25d1c4cbf0128.js +0 -1
  564. package/dist/standalone/.next/static/chunks/app/api/telegram/route-60a25d1c4cbf0128.js +0 -1
  565. package/dist/standalone/.next/static/chunks/app/api/timeline/route-60a25d1c4cbf0128.js +0 -1
  566. package/dist/standalone/.next/static/chunks/app/api/tmux/route-60a25d1c4cbf0128.js +0 -1
  567. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-60a25d1c4cbf0128.js +0 -1
  568. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-60a25d1c4cbf0128.js +0 -1
  569. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-60a25d1c4cbf0128.js +0 -1
  570. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-60a25d1c4cbf0128.js +0 -1
  571. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-60a25d1c4cbf0128.js +0 -1
  572. package/dist/standalone/.next/static/chunks/app/api/tts/route-60a25d1c4cbf0128.js +0 -1
  573. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-60a25d1c4cbf0128.js +0 -1
  574. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-60a25d1c4cbf0128.js +0 -1
  575. package/dist/standalone/.next/static/chunks/app/api/workflows/route-60a25d1c4cbf0128.js +0 -1
  576. package/dist/standalone/.next/static/chunks/app/page-1cde2db61f461960.js +0 -125
  577. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-60a25d1c4cbf0128.js +0 -1
  578. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-60a25d1c4cbf0128.js +0 -1
  579. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-60a25d1c4cbf0128.js +0 -1
  580. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-60a25d1c4cbf0128.js +0 -1
  581. package/dist/standalone/.next/static/css/b25c03e915fd256b.css +0 -1
  582. /package/dist/standalone/.next/static/{836HTp-5V8cZC5YWFVOCk → fQ2a5S10vvpyAqE0L_wUj}/_ssgManifest.js +0 -0
@@ -0,0 +1,156 @@
1
+ "use strict";exports.id=5465,exports.ids=[5465,9611],exports.modules={409:(a,b,c)=>{let d;c.d(b,{$k:()=>m,O1:()=>n,Ue:()=>l,h_:()=>i,y6:()=>k});var e=c(31421),f=c(73024),g=c.n(f),h=c(51826);function i(){if(void 0!==d)return d;if("linux"===process.platform){try{let a=g().readFileSync("/proc/sys/kernel/random/boot_id","utf8").trim(),b=g().readlinkSync("/proc/self/ns/pid");d=a&&b?`linux:${a}:pidns:${b}`:null}catch{d=null}return d}if("darwin"===process.platform){let a=(0,e.spawnSync)("sysctl",["-n","kern.boottime"],{encoding:"utf8",timeout:2e3}),b="string"==typeof a.stdout?/sec\s*=\s*(\d+)\s*,\s*usec\s*=\s*(\d+)/.exec(a.stdout):null;return d=b?`darwin:${b[1]}:${b[2]}`:null}return d="win32"===process.platform?"windows:absolute-process-creation-filetime":null}let j={pidAlive:a=>h.B.pidAlive(a),processIdentity:a=>h.B.processIdentity(a),bootEpoch:i};function k(a,b=j,c){return{pid:a,startIdentity:void 0===c?b.processIdentity(a):c,bootEpoch:b.bootEpoch()}}function l(a,b=j){if(!Number.isSafeInteger(a.pid)||a.pid<=0||!b.pidAlive(a.pid))return"dead";let c=b.processIdentity(a.pid);if(null===a.startIdentity||null===c)return"unverified";if(c!==a.startIdentity)return"dead";let d=b.bootEpoch();return"string"==typeof a.bootEpoch&&a.bootEpoch&&null!==d?d===a.bootEpoch?"alive":"dead":"unverified"}function m(a,b=j){return"dead"!==l(a,b)}function n(a,b){return a.pid===b.pid&&a.startIdentity===b.startIdentity&&(void 0===b.bootEpoch||a.bootEpoch===b.bootEpoch)}},8164:(a,b,c)=>{function d(a,b){let c=RegExp(`^${b}:\\s+(\\d+)\\s*kB`,"m").exec(a);if(!c)return null;let d=Number(c[1]);return Number.isFinite(d)?1024*d:null}function e(a){let b=d(a,"MemTotal"),c=d(a,"MemAvailable");if(null===b||null===c||b<=0)return null;let e=d(a,"SwapTotal")??0,f=d(a,"SwapFree")??e;return{ramTotal:b,ramAvailable:c,swapTotal:e,swapUsed:Math.max(0,e-f)}}function f(a){return{rssBytes:d(a,"VmRSS")??0,swapBytes:d(a,"VmSwap")??0}}function g(a){let b=Number(/page size of (\d+) bytes/.exec(a)?.[1]);if(!Number.isFinite(b)||b<=0)return null;let c=b=>{let c=RegExp(`^${b}:\\s+(\\d+)\\.?`,"m").exec(a);return c?Number(c[1]):null},d=c("Pages free"),e=c("Pages inactive");return null===d||null===e?null:(d+e+(c("Pages purgeable")??0))*b}c.d(b,{CT:()=>k,Lc:()=>g,NW:()=>e,mO:()=>l,sW:()=>f,yh:()=>j});let h=/([\d.]+)\s*([KMGT])/;function i(a){let b=h.exec(a);if(!b)return null;let c=Number(b[1]);return Number.isFinite(c)?Math.round(c*({K:1024,M:1048576,G:0x40000000,T:0x10000000000})[b[2]]):null}function j(a){let b=/total\s*=\s*(\S+)/.exec(a)?.[1],c=/used\s*=\s*(\S+)/.exec(a)?.[1];if(!b||!c)return null;let d=i(b),e=i(c);return null===d||null===e?null:{swapTotal:d,swapUsed:e}}function k(a){let b=new Map;for(let c of a.split("\n")){let a=/^\s*(\d+)\s+(\d+)\s*$/.exec(c);a&&b.set(Number(a[1]),1024*Number(a[2]))}return b}function l(a,b){let c=new Map;for(let[a,d]of b){if(a===d)continue;let b=c.get(d);b?b.push(a):c.set(d,[a])}let d=new Set([a]),e=[],f=[a];for(;f.length;){let a=f.pop();for(let b of(e.push(a),c.get(a)??[]))d.has(b)||(d.add(b),f.push(b))}return e}},20624:(a,b,c)=>{c.d(b,{Gw:()=>O,M:()=>M,N$:()=>J,UY:()=>P,Vx:()=>L,jY:()=>N,nF:()=>I,t0:()=>D,tD:()=>H});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(51826),k=c(48059),l=c(53410),m=c(38685);let n=new Int32Array(new SharedArrayBuffer(4)),o=new Set,p=0;function q(){let a=process.getBuiltinModule?.("bun:sqlite");if(!a)throw Error("SQLite state stores require the Bun runtime");return a.Database}function r(a,b){let c=a.query("SELECT schema_version, migration_id FROM state_collections WHERE collection = ?");return b.every(a=>{let b=c.get(a.collection);return b?.schema_version===a.schemaVersion&&b.migration_id===a.migrationId})}function s(a,b){if(!g().existsSync(a))return!1;let c=null;try{return c=x(a),r(c,b)}catch{return!1}finally{c?.close()}}function t(a){if(!(0,m.Ny)(i().dirname(a)))throw new l.Qm("hot state writes are fenced during release handoff")}function u(a,b=!1){if((0,m.Ny)(i().dirname(a))||o.has(i().resolve(a))&&(0,m.T2)(i().dirname(a)))return;let c=(0,m.jU)(i().dirname(a)),d=(0,m.a5)(i().dirname(a));if(!b||null===c||d?.mode!=="fencing"||d.releaseRevision!==c)throw new l.Qm("hot state migration is waiting for release promotion")}function v(a){return(0,k.PK)(a,()=>w(a))}function w(a){g().mkdirSync(i().dirname(a),{recursive:!0,mode:448});let b=new(q())(a,{create:!0,strict:!0});try{for(let a=0;a<6e3;a+=1)try{return b.exec("PRAGMA busy_timeout = 0; PRAGMA synchronous = FULL; PRAGMA journal_size_limit = 67108864; PRAGMA foreign_keys = ON;"),b}catch(a){if(!B(a))throw a;Atomics.wait(n,0,0,5)}throw new l.Qm("state database connection is busy")}catch(a){throw b.close(),a}}function x(a){return p+=1,(0,k.PK)(a,()=>{var b;let c;return b=a,(c=new(q())(b,{readonly:!0,strict:!0})).exec("PRAGMA busy_timeout = 0; PRAGMA foreign_keys = ON;"),c})}function y(a){return(0,k.PK)(a,()=>(function(a){let b=w(a);try{for(let c=0;c<6e3;c+=1)try{return b.exec("PRAGMA journal_mode = WAL; PRAGMA auto_vacuum = INCREMENTAL;"),b.exec("BEGIN IMMEDIATE"),b.exec(`
2
+ CREATE TABLE IF NOT EXISTS state_collections (
3
+ collection TEXT PRIMARY KEY,
4
+ schema_version INTEGER NOT NULL,
5
+ revision INTEGER NOT NULL,
6
+ change_floor INTEGER NOT NULL DEFAULT 0,
7
+ migration_id TEXT NOT NULL,
8
+ imported_at TEXT NOT NULL
9
+ );
10
+ CREATE TABLE IF NOT EXISTS state_rows (
11
+ collection TEXT NOT NULL,
12
+ row_key TEXT NOT NULL,
13
+ value_json TEXT NOT NULL,
14
+ row_order INTEGER NOT NULL,
15
+ row_revision INTEGER NOT NULL,
16
+ controller_active INTEGER NOT NULL CHECK(controller_active IN (0, 1)),
17
+ PRIMARY KEY(collection, row_key),
18
+ FOREIGN KEY(collection) REFERENCES state_collections(collection) ON DELETE CASCADE
19
+ );
20
+ CREATE INDEX IF NOT EXISTS state_rows_collection_order
21
+ ON state_rows(collection, row_order);
22
+ CREATE INDEX IF NOT EXISTS state_rows_controller_active
23
+ ON state_rows(collection, controller_active, row_order);
24
+ CREATE TABLE IF NOT EXISTS state_changes (
25
+ collection TEXT NOT NULL,
26
+ revision INTEGER NOT NULL,
27
+ row_key TEXT NOT NULL,
28
+ operation TEXT NOT NULL CHECK(operation IN ('upsert', 'delete')),
29
+ PRIMARY KEY(collection, revision, row_key),
30
+ FOREIGN KEY(collection) REFERENCES state_collections(collection) ON DELETE CASCADE
31
+ );
32
+ CREATE INDEX IF NOT EXISTS state_changes_collection_revision
33
+ ON state_changes(collection, revision);
34
+ CREATE TABLE IF NOT EXISTS state_leases (
35
+ collection TEXT PRIMARY KEY,
36
+ owner_token TEXT NOT NULL,
37
+ owner_pid INTEGER NOT NULL,
38
+ owner_start_identity TEXT,
39
+ acquired_at INTEGER NOT NULL
40
+ );
41
+ CREATE TABLE IF NOT EXISTS state_imports (
42
+ collection TEXT PRIMARY KEY REFERENCES state_collections(collection) ON DELETE CASCADE,
43
+ source_name TEXT NOT NULL,
44
+ source_sha256 TEXT,
45
+ source_bytes INTEGER NOT NULL,
46
+ row_count INTEGER NOT NULL,
47
+ row_digest TEXT NOT NULL,
48
+ gap TEXT,
49
+ release TEXT,
50
+ imported_at TEXT NOT NULL,
51
+ mirror_sha256 TEXT,
52
+ mirror_revision INTEGER
53
+ );
54
+ `),b.query("PRAGMA table_info(state_collections)").all().some(a=>"change_floor"===a.name)||b.exec("ALTER TABLE state_collections ADD COLUMN change_floor INTEGER NOT NULL DEFAULT 0"),b.exec("COMMIT"),z(a),b}catch(a){if(A(b),!B(a))throw a;Atomics.wait(n,0,0,5)}throw new l.Qm("state database initialization is busy")}catch(a){throw b.close(),a}})(a))}function z(a){for(let b of[a,`${a}-wal`,`${a}-shm`])try{g().chmodSync(b,384)}catch(a){if("ENOENT"!==a.code)throw a}}function A(a){try{a.exec("ROLLBACK")}catch{}}function B(a){let b=a instanceof Error?a.message:String(a);return/database is (?:locked|busy)|SQLITE_BUSY/i.test(b)}function C(a,b,c){for(let b=0;b<6e3;b+=1)try{a.exec("BEGIN IMMEDIATE");let b=c();return a.exec("COMMIT"),b}catch(b){if(A(a),!B(b))throw b;Atomics.wait(n,0,0,5)}throw new l.Qm(b)}function D(a,b,c={}){!function(a,b){let c=i().resolve(a);if(o.has(c)||s(a,b))return;let d=i().dirname(a);if(null===(0,m.X4)(d))return o.add(c);if(!(0,m.Ny)(d))throw new l.Qm("hot state migration is waiting for release promotion");o.add(c)}(a,b);let d=!c.reimportExisting&&s(a,b),e=y(a);try{for(let f=0;f<6e3;f+=1)try{if(e.exec("BEGIN IMMEDIATE"),u(a,d),c.reimportExisting&&!r(e,b)){let a=e.query("DELETE FROM state_leases WHERE collection = ?"),c=e.query("DELETE FROM state_collections WHERE collection = ?");for(let d of b)a.run(d.collection),c.run(d.collection)}for(let a of b){let b=e.query("SELECT schema_version, migration_id FROM state_collections WHERE collection = ?").get(a.collection);if(b){if(b.schema_version!==a.schemaVersion)throw Error(`unsupported ${a.collection} SQLite schema: ${b.schema_version}`);if(b.migration_id!==a.migrationId)throw Error(`unsupported ${a.collection} SQLite migration: ${b.migration_id}`);continue}!function(a,b){let c=b.loadRecords(),d=+(c.length>0);a.query(`
55
+ INSERT INTO state_collections(collection, schema_version, revision, migration_id, imported_at)
56
+ VALUES (?, ?, ?, ?, ?)
57
+ `).run(b.collection,b.schemaVersion,d,b.migrationId,new Date().toISOString());let e=a.query(`
58
+ INSERT INTO state_rows(collection, row_key, value_json, row_order, row_revision, controller_active)
59
+ VALUES (?, ?, ?, ?, ?, ?)
60
+ `),f=new Set;c.forEach((a,c)=>{let g=b.key(a);if(!g||f.has(g))throw Error(`duplicate or empty ${b.collection} migration key: ${g}`);f.add(g),e.run(b.collection,g,JSON.stringify(a),c,d,+(b.controllerActive?.(a)!==!1))})}(e,a),c.afterCollectionImport?.(a.collection)}u(a,d),e.exec("COMMIT"),z(a);return}catch(a){if(A(e),!B(a))throw a;Atomics.wait(n,0,0,5)}throw new l.Qm("state migration is busy")}finally{e.close()}}class E extends Error{constructor(a){super(a),this.name="StateImportVerificationError"}}function F(a){let b=e().createHash("sha256");for(let c of a)b.update(c).update("\n");return b.digest("hex")}function G(a,b){let c=a.query("SELECT * FROM state_imports WHERE collection = ?").get(b);return c?{collection:c.collection,sourceName:c.source_name,sourceSha256:c.source_sha256,sourceBytes:c.source_bytes,rowCount:c.row_count,rowDigest:c.row_digest,gap:c.gap,release:c.release,importedAt:c.imported_at,mirrorSha256:c.mirror_sha256,mirrorRevision:c.mirror_revision}:null}function H(a,b){if(!g().existsSync(a))return null;let c=x(a);try{return G(c,b)}catch(a){if(/no such table/i.test(a instanceof Error?a.message:String(a)))return null;throw a}finally{c.close()}}function I(a,b){let c=b.rows.map(a=>({...a,valueJson:JSON.stringify(a.value)})),d=new Set;for(let a of c){if(!a.key||d.has(a.key))throw Error(`duplicate or empty ${b.collection} import key: ${a.key}`);d.add(a.key)}let e=F(c.map(a=>a.valueJson)),f=y(a);try{let d=C(f,`${b.collection} import is busy`,()=>{t(a);let d=G(f,b.collection);if(d)return{imported:!1,record:d};if(f.query("SELECT 1 FROM state_collections WHERE collection = ?").get(b.collection))throw new E(`${b.collection} collection exists without import evidence`);let g=+(c.length>0),h=new Date().toISOString();f.query(`
61
+ INSERT INTO state_collections(collection, schema_version, revision, migration_id, imported_at)
62
+ VALUES (?, ?, ?, ?, ?)
63
+ `).run(b.collection,b.schemaVersion,g,b.migrationId,h);let i=f.query(`
64
+ INSERT INTO state_rows(collection, row_key, value_json, row_order, row_revision, controller_active)
65
+ VALUES (?, ?, ?, ?, ?, ?)
66
+ `);c.forEach((a,c)=>{i.run(b.collection,a.key,a.valueJson,c,g,+!!a.controllerActive)}),b.beforeVerify?.((a,...b)=>{f.query(a).run(...b)});let j=f.query("SELECT value_json FROM state_rows WHERE collection = ? ORDER BY row_order, row_key").all(b.collection).map(a=>a.value_json),k=F(j);if(j.length!==c.length||k!==e)throw new E(`${b.collection} import verification failed: ${j.length}/${c.length} rows, digest mismatch=${k!==e}`);return f.query(`
67
+ INSERT INTO state_imports(collection, source_name, source_sha256, source_bytes, row_count, row_digest, gap, release, imported_at)
68
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
69
+ `).run(b.collection,b.sourceName,b.sourceSha256,b.sourceBytes,c.length,k,b.gap,b.release,h),t(a),{imported:!0,record:G(f,b.collection)}});return z(a),d}finally{f.close()}}function J(a,b,c,d){let e=v(a);try{C(e,`${b} import is busy`,()=>{e.query("UPDATE state_imports SET mirror_sha256 = ?, mirror_revision = ? WHERE collection = ?").run(c,d,b)})}finally{e.close()}}function K(a){let b=[a];for(let c of[a,`${a}-wal`])try{let a=g().statSync(c,{bigint:!0});b.push(`${i().basename(c)}:${a.mtimeNs}:${a.size}`)}catch{b.push(`${i().basename(c)}:missing`)}return b.join("|")}function L(a,b){return M(a,[b]).get(b)??null}function M(a,b){let c=new Map(b.map(a=>[a,null]));if(!g().existsSync(a)||0===b.length)return c;let d=x(a);try{let a=b.map(()=>"?").join(", ");for(let e of d.query(`
70
+ SELECT collections.collection, rows.row_key, rows.value_json
71
+ FROM state_collections AS collections
72
+ LEFT JOIN state_rows AS rows ON rows.collection = collections.collection
73
+ WHERE collections.collection IN (${a})
74
+ ORDER BY collections.collection, rows.row_order, rows.row_key
75
+ `).all(...b)){let a=c.get(e.collection)??[];if(c.set(e.collection,a),null!==e.row_key&&null!==e.value_json)try{a.push(JSON.parse(e.value_json))}catch(a){throw Error(`corrupt ${e.collection} SQLite row: ${e.row_key}`,{cause:a})}}return c}catch(a){if(/no such table/i.test(a instanceof Error?a.message:String(a)))return c;throw a}finally{d.close()}}function N(a,b){return O(a,[b]).get(b)??null}function O(a,b){let c=new Map(b.map(a=>[a,null]));if(!g().existsSync(a))return c;let d=x(a);try{if(0===b.length)return c;let a=b.map(()=>"?").join(", ");for(let e of d.query(`
76
+ SELECT collection, revision FROM state_collections
77
+ WHERE collection IN (${a})
78
+ `).all(...b))c.set(e.collection,e.revision);return c}catch(a){if(/no such table/i.test(a instanceof Error?a.message:String(a)))return c;throw a}finally{d.close()}}class P{constructor(a,b){this.filename=a,this.options=b,this.cache=null,this.revisionCache=null,this.readDb=y(a);const c=this.collectionMeta();if(!c)throw Error(`SQLite state collection is not initialized: ${b.collection}`);if(c.schema_version!==b.schemaVersion)throw Error(`unsupported ${b.collection} SQLite schema: ${c.schema_version}`)}revision(){let a=K(this.filename);if(this.revisionCache?.signature===a)return this.revisionCache.revision;let b=this.collectionMeta()?.revision??0,c=K(this.filename);return c===a&&(this.revisionCache={signature:c,revision:b}),b}signature(){return`${this.filename}:${this.options.collection}:${this.revision()}`}snapshot(){return this.loadReadonly().map(a=>this.options.clone(a))}snapshotForController(){return this.loadControllerReadonly().map(a=>this.options.clone(a))}get(a){let b=this.readDb.query("SELECT value_json FROM state_rows WHERE collection = ? AND row_key = ?").get(this.options.collection,a);if(!b)return null;let c=this.decodeRow(b.value_json);return null===c?null:this.options.clone(c)}keyRange(a,b,c){if(!Number.isSafeInteger(c)||c<1||c>512)throw Error("invalid state page limit");return this.readDb.query(`
79
+ SELECT value_json FROM state_rows
80
+ WHERE collection = ? AND row_key > ? AND row_key <= ? ORDER BY row_key LIMIT ?
81
+ `).all(this.options.collection,a,b,c).map(a=>{let b=this.decodeRow(a.value_json);if(null===b)throw Error("invalid bounded state row");return this.options.clone(b)})}boundedPatch(a,b){if(!Number.isSafeInteger(a)||a<1||a>4096)throw Error("invalid state patch limit");t(this.filename);let c=this.acquireLeaseSync();try{let d=v(this.filename);try{let e=C(d,this.options.busyMessage,()=>{t(this.filename),this.assertLease(d,c);let e=this.collectionMeta(d).revision+1,f=a,g=()=>{if(--f<0)throw Error("state patch row budget exceeded")},h=new Map,i=b({get:a=>{g();let b=d.query("SELECT value_json FROM state_rows WHERE collection = ? AND row_key = ?").get(this.options.collection,a);if(!b)return null;let c=this.decodeRow(b.value_json);if(null===c)throw Error("invalid bounded state row");return this.options.clone(c)},put:a=>{g(),this.validate(a);let b=this.options.key(a);d.query(`INSERT INTO state_rows(collection,row_key,value_json,row_order,row_revision,controller_active)
82
+ VALUES (?,?,?,0,?,?) ON CONFLICT(collection,row_key) DO UPDATE SET
83
+ value_json=excluded.value_json,row_revision=excluded.row_revision,controller_active=excluded.controller_active`).run(this.options.collection,b,JSON.stringify(a),e,+(this.options.controllerActive?.(a)!==!1)),h.set(b,"upsert")},delete:a=>{g(),d.query("DELETE FROM state_rows WHERE collection = ? AND row_key = ?").run(this.options.collection,a),h.set(a,"delete")}});if(i instanceof Promise)throw Error("bounded state patches must be synchronous");if(t(this.filename),h.size){for(let[a,b]of h)d.query("INSERT INTO state_changes(collection,revision,row_key,operation) VALUES (?,?,?,?)").run(this.options.collection,e,a,b);d.query("UPDATE state_collections SET revision = ? WHERE collection = ?").run(e,this.options.collection),this.pruneChanges(d,e)}return i});return z(this.filename),this.invalidateAfterCommit(),e}finally{d.close()}}finally{this.releaseLeaseSync(c)}}loadReadonly(){this.readDb.exec("BEGIN");try{let a=this.collectionMeta();if(!a)throw Error(`SQLite state collection disappeared: ${this.options.collection}`);let b=a.revision;if(this.cache?.revision===b)return this.readDb.exec("COMMIT"),this.cache.ordered;if(!this.cache||this.cache.revision>b||this.cache.revision<a.change_floor){let a=this.loadFull(b);return this.readDb.exec("COMMIT"),a}let c=this.readDb.query(`
84
+ SELECT DISTINCT row_key FROM state_changes
85
+ WHERE collection = ? AND revision > ? AND revision <= ?
86
+ ORDER BY revision, row_key
87
+ `).all(this.options.collection,this.cache.revision,b);if(0===c.length){let a=this.loadFull(b);return this.readDb.exec("COMMIT"),a}this.options.onIncrementalReadSnapshot?.(b);let d=[...new Set(c.map(a=>a.row_key))],e=new Map;for(let a=0;a<d.length;a+=400){let b=d.slice(a,a+400),c=b.map(()=>"?").join(", "),f=[this.options.collection,...b];for(let a of this.readDb.query(`
88
+ SELECT row_key, value_json, row_order, row_revision, controller_active
89
+ FROM state_rows WHERE collection = ? AND row_key IN (${c})
90
+ `).all(...f))e.set(a.row_key,a)}let f=new Map(this.cache.records),g=!1;for(let a of d){let b=e.get(a);if(!b){f.has(a)&&(g=!0),f.delete(a);continue}let c=f.get(a);if(c&&c.order===b.row_order||(g=!0),c?.valueJson===b.value_json){f.set(a,{...c,order:b.row_order,rowRevision:b.row_revision});continue}let d=this.decodeRow(b.value_json);null===d?f.delete(a):f.set(a,{valueJson:b.value_json,value:d,order:b.row_order,rowRevision:b.row_revision})}let h=g?this.rememberCache(b,f):this.rememberCacheWithOrder(b,f,this.cache.orderedKeys);return this.readDb.exec("COMMIT"),h}catch(a){throw A(this.readDb),a}}async moveMatchingTo(a,b,c={}){if(a===this||a.filename!==this.filename)throw Error("atomic state moves require two collections in one database");t(this.filename);let d=[this,a].sort((a,b)=>a.options.collection.localeCompare(b.options.collection)),e=new Map;try{for(let a of d)e.set(a,await a.acquireLease());let f=v(this.filename);try{let d=C(f,this.options.busyMessage,()=>{t(this.filename),this.assertLease(f,e.get(this)),a.assertLease(f,e.get(a));let d=f.query(`
91
+ SELECT row_key, value_json, row_order, row_revision, controller_active
92
+ FROM state_rows WHERE collection = ? ORDER BY row_order, row_key
93
+ `).all(this.options.collection).flatMap(a=>{let c=this.decodeRow(a.value_json);return null!==c&&b(c)?[{row:a,record:c}]:[]});if(0===d.length)return 0;for(let b of d)a.validate(b.record);let g=this.collectionMeta(f).revision+1,h=a.collectionMeta(f),i=new Map(f.query(`
94
+ SELECT row_key, value_json, row_order, row_revision, controller_active
95
+ FROM state_rows WHERE collection = ?
96
+ `).all(a.options.collection).map(a=>[a.row_key,a])),j=Math.max(-1,...[...i.values()].map(a=>a.row_order))+1,k=d.map(({record:b})=>{let c=a.options.key(b),d=JSON.stringify(b),e=+(a.options.controllerActive?.(b)!==!1),f=i.get(c);return{key:c,valueJson:d,controllerActive:e,held:f,order:f?.row_order??j++}}).filter(a=>a.held?.value_json!==a.valueJson||a.held.controller_active!==a.controllerActive),l=k.length>0?h.revision+1:h.revision,m=f.query(`
97
+ INSERT INTO state_rows(collection, row_key, value_json, row_order, row_revision, controller_active)
98
+ VALUES (?, ?, ?, ?, ?, ?)
99
+ ON CONFLICT(collection, row_key) DO UPDATE SET
100
+ value_json = excluded.value_json,
101
+ row_revision = excluded.row_revision,
102
+ controller_active = excluded.controller_active
103
+ `),n=f.query(`
104
+ INSERT INTO state_changes(collection, revision, row_key, operation)
105
+ VALUES (?, ?, ?, ?)
106
+ `);for(let b of k)m.run(a.options.collection,b.key,b.valueJson,b.order,l,b.controllerActive),n.run(a.options.collection,l,b.key,"upsert");let o=f.query("DELETE FROM state_rows WHERE collection = ? AND row_key = ?");for(let{row:a}of d)o.run(this.options.collection,a.row_key),n.run(this.options.collection,g,a.row_key,"delete");return f.query("UPDATE state_collections SET revision = ? WHERE collection = ?").run(g,this.options.collection),k.length>0&&f.query("UPDATE state_collections SET revision = ? WHERE collection = ?").run(l,a.options.collection),this.pruneChanges(f,g),k.length>0&&a.pruneChanges(f,l),c.beforeCommit?.(),d.length});return d>0&&(z(this.filename),this.invalidateAfterCommit(),a.invalidateAfterCommit()),d}finally{f.close()}}finally{for(let a of[...d].reverse()){let b=e.get(a);b&&await a.releaseLease(b)}}}replaceSync(a,b={}){t(this.filename);let c=this.acquireLeaseSync();try{b.beforePersist?.(a),this.persistReplacement(c,a,!0===b.mergeOmitted,b.deleteKeys??[])}finally{this.releaseLeaseSync(c)}}patchSync(a,b={}){let c=b.fenceOwner?()=>u(this.filename,!0):()=>t(this.filename);c();let d=this.acquireLeaseSync();try{let b=a();this.persistReplacement(d,b.records,!0,b.deleteKeys??[],c,new Set(b.appendKeys??[]))}finally{this.releaseLeaseSync(d)}}rowRevisions(){return new Map(this.readDb.query("SELECT row_key, row_revision FROM state_rows WHERE collection = ?").all(this.options.collection).map(a=>[a.row_key,a.row_revision]))}withSnapshotSync(a){let b=this.acquireLeaseSync();try{return a(this.snapshot())}finally{this.releaseLeaseSync(b)}}async mutate(a,b,c=!1,d){t(this.filename);let e=await this.acquireLease(d);try{let d=c?this.loadControllerReadonly():this.loadReadonly(),f=this.track(d);return await a(f.records,a=>{this.persistSession(e,f,b,a)})}finally{await this.releaseLease(e)}}checkpointMirror(a){let b=this.acquireLeaseSync();try{let b=this.snapshot();a(b,this.revision())}finally{this.releaseLeaseSync(b)}}checkpointMirrorForDemotion(a,b=2){for(let c=0;c<b;c+=1){let b=-1;if(this.checkpointMirror((c,d)=>{b=d,a(c,d)}),this.revision()===b)return b}throw Error(`${this.options.collection} rollback checkpoint did not converge`)}async checkpointMirrorForDemotionAsync(a,b=2){for(let c=0;c<b;c+=1){let b,c=await this.acquireLease();try{let c=this.snapshot();b=this.revision(),a(c,b)}finally{await this.releaseLease(c)}if(this.revision()===b)return b}throw Error(`${this.options.collection} rollback checkpoint did not converge`)}collectionMeta(a=this.readDb){return a.query("SELECT revision, schema_version, change_floor FROM state_collections WHERE collection = ?").get(this.options.collection)??null}decodeRow(a){try{let b=this.options.decode(JSON.parse(a));if(null===b&&this.options.strictDecode)throw Error(`${this.options.collection} SQLite row is malformed`);return b}catch(a){if(this.options.strictDecode)throw this.options.decodeError?.(a)??a;return this.options.onDecodeError?.(a),null}}loadControllerReadonly(){return this.readDb.query(`
107
+ SELECT value_json FROM state_rows
108
+ WHERE collection = ? AND controller_active = 1
109
+ ORDER BY row_order, row_key
110
+ `).all(this.options.collection).flatMap(a=>{let b=this.decodeRow(a.value_json);return null===b?[]:[b]})}loadFull(a){let b=new Map;for(let a of this.readDb.query(`
111
+ SELECT row_key, value_json, row_order, row_revision
112
+ FROM state_rows WHERE collection = ? ORDER BY row_order, row_key
113
+ `).all(this.options.collection)){let c=this.decodeRow(a.value_json);null!==c&&b.set(a.row_key,{valueJson:a.value_json,value:c,order:a.row_order,rowRevision:a.row_revision})}return this.rememberCache(a,b)}rememberCache(a,b){let c=[...b.entries()].sort((a,b)=>a[1].order-b[1].order||a[0].localeCompare(b[0])),d=c.map(a=>a[0]),e=c.map(a=>a[1].value);return this.cache={revision:a,records:b,orderedKeys:d,ordered:e},this.revisionCache=null,e}rememberCacheWithOrder(a,b,c){let d=c.flatMap(a=>{let c=b.get(a);return c?[c.value]:[]});return this.cache={revision:a,records:b,orderedKeys:c,ordered:d},this.revisionCache=null,d}invalidateAfterCommit(){this.revisionCache=null}track(a){let b=new Map,c=[...a],d={records:[],rawRecords:c,materialized:b,structural:!1},e=a=>{if("string"!=typeof a||!/^(?:0|[1-9][0-9]*)$/.test(a))return null;let b=Number(a);return Number.isSafeInteger(b)?b:null};return d.records=new Proxy(c,{get:(a,c,d)=>{let f=e(c);if(null===f||f>=a.length)return Reflect.get(a,c,d);if(!b.has(f)){let c=this.options.clone(a[f]);a[f]=c,b.set(f,{originalKey:this.options.key(c),persistedJson:JSON.stringify(c),value:c})}return a[f]},set:(a,c,f)=>{d.structural=!0;let g=e(c);return null!==g&&b.delete(g),Reflect.set(a,c,f)},deleteProperty:(a,c)=>{d.structural=!0;let f=e(c);return null!==f&&b.delete(f),Reflect.deleteProperty(a,c)},defineProperty:(a,c,f)=>{d.structural=!0;let g=e(c);return null!==g&&b.delete(g),Reflect.defineProperty(a,c,f)}}),d}persistSession(a,b,c,d){if(d){if(0===d.length)return;c?.({records:b.records,dirtyRecords:d,structural:!1}),this.persistChangedRows(a,d);let e=new Set(d.map(a=>this.options.key(a)));for(let a of b.materialized.values()){let b=this.options.key(a.value);e.has(b)&&(a.originalKey=b,a.persistedJson=JSON.stringify(a.value))}return}let e=[];if(b.structural){for(let a of b.records)e.push(a);c?.({records:b.records,dirtyRecords:e,structural:!0}),this.persistReplacement(a,e,!1),b.structural=!1,b.materialized.clear(),b.rawRecords.forEach((a,c)=>b.materialized.set(c,{originalKey:this.options.key(a),persistedJson:JSON.stringify(a),value:a}));return}for(let d of b.materialized.values()){if(this.options.key(d.value)!==d.originalKey)return b.structural=!0,this.persistSession(a,b,c);JSON.stringify(d.value)!==d.persistedJson&&e.push(d.value)}if(0!==e.length)for(let d of(c?.({records:b.records,dirtyRecords:e,structural:!1}),this.persistChangedRows(a,e),b.materialized.values()))d.originalKey=this.options.key(d.value),d.persistedJson=JSON.stringify(d.value)}validate(a){if(!this.options.key(a))throw Error(`refusing to persist an empty ${this.options.collection} row key`);this.options.validate?.(a)}persistChangedRows(a,b){for(let a of b)this.validate(a);let c=v(this.filename);try{let d=C(c,this.options.busyMessage,()=>{t(this.filename),this.assertLease(c,a);let d=this.collectionMeta(c),e=c.query(`
114
+ SELECT row_key, value_json, row_order, row_revision, controller_active
115
+ FROM state_rows WHERE collection = ? AND row_key = ?
116
+ `),f=b.map(a=>{let b=this.options.key(a),c=JSON.stringify(a),d=+(this.options.controllerActive?.(a)!==!1);return{key:b,valueJson:c,controllerActive:d,row:e.get(this.options.collection,b)}}).filter(a=>a.row?.value_json!==a.valueJson||a.row.controller_active!==a.controllerActive);if(0===f.length)return null;let g=d.revision+1,h=(c.query("SELECT COALESCE(MAX(row_order), -1) AS value FROM state_rows WHERE collection = ?").get(this.options.collection)?.value??-1)+1,i=c.query(`
117
+ INSERT INTO state_rows(collection, row_key, value_json, row_order, row_revision, controller_active)
118
+ VALUES (?, ?, ?, ?, ?, ?)
119
+ ON CONFLICT(collection, row_key) DO UPDATE SET
120
+ value_json = excluded.value_json,
121
+ row_revision = excluded.row_revision,
122
+ controller_active = excluded.controller_active
123
+ `),j=c.query(`
124
+ INSERT INTO state_changes(collection, revision, row_key, operation)
125
+ VALUES (?, ?, ?, 'upsert')
126
+ `);for(let a of f){let b=a.row?.row_order??h++;i.run(this.options.collection,a.key,a.valueJson,b,g,a.controllerActive),j.run(this.options.collection,g,a.key)}return c.query("UPDATE state_collections SET revision = ? WHERE collection = ?").run(g,this.options.collection),this.pruneChanges(c,g),g});null!==d&&(z(this.filename),this.invalidateAfterCommit())}finally{c.close()}}persistReplacement(a,b,c,d=[],e=()=>t(this.filename),f=new Set){for(let a of b)this.validate(a);let g=new Set;for(let a of b){let b=this.options.key(a);if(g.has(b))throw Error(`duplicate ${this.options.collection} row key: ${b}`);g.add(b)}let h=new Set(d);if(h.size!==d.length||[...h].some(a=>!a||g.has(a)))throw Error(`invalid ${this.options.collection} row deletion`);let i=v(this.filename);try{let d=C(i,this.options.busyMessage,()=>{e(),this.assertLease(i,a);let d=this.collectionMeta(i),j=new Map(i.query(`
127
+ SELECT row_key, value_json, row_order, row_revision, controller_active
128
+ FROM state_rows WHERE collection = ?
129
+ `).all(this.options.collection).map(a=>[a.row_key,a])),k=b.map((a,b)=>({key:this.options.key(a),valueJson:JSON.stringify(a),order:b,controllerActive:+(this.options.controllerActive?.(a)!==!1)})).filter(a=>{let b=j.get(a.key);return!b||b.value_json!==a.valueJson||b.controller_active!==a.controllerActive||!c&&b.row_order!==a.order}),l=c?[...h].filter(a=>j.has(a)):[...j.keys()].filter(a=>!g.has(a));if(0===k.length&&0===l.length)return null;let m=d.revision+1,n=c?Math.max(-1,...[...j.values()].map(a=>a.row_order))+1:0,o=i.query(`
130
+ INSERT INTO state_rows(collection, row_key, value_json, row_order, row_revision, controller_active)
131
+ VALUES (?, ?, ?, ?, ?, ?)
132
+ ON CONFLICT(collection, row_key) DO UPDATE SET
133
+ value_json = excluded.value_json,
134
+ row_order = excluded.row_order,
135
+ row_revision = excluded.row_revision,
136
+ controller_active = excluded.controller_active
137
+ `),p=i.query(`
138
+ INSERT INTO state_changes(collection, revision, row_key, operation)
139
+ VALUES (?, ?, ?, ?)
140
+ `);for(let a of k){let b=j.get(a.key),d=c?(f.has(a.key)?void 0:b?.row_order)??n++:a.order;o.run(this.options.collection,a.key,a.valueJson,d,m,a.controllerActive),p.run(this.options.collection,m,a.key,"upsert")}let q=i.query("DELETE FROM state_rows WHERE collection = ? AND row_key = ?");for(let a of l)q.run(this.options.collection,a),p.run(this.options.collection,m,a,"delete");return i.query("UPDATE state_collections SET revision = ? WHERE collection = ?").run(m,this.options.collection),this.pruneChanges(i,m),m});null!==d&&(z(this.filename),this.invalidateAfterCommit())}finally{i.close()}}assertLease(a,b){let c=a.query("SELECT owner_token FROM state_leases WHERE collection = ?").get(this.options.collection);if(c?.owner_token!==b)throw new l.Qm(this.options.busyMessage)}pruneChanges(a,b){let c=b-1024;c<=0||(a.query(`
141
+ DELETE FROM state_changes WHERE rowid IN (
142
+ SELECT rowid FROM state_changes
143
+ WHERE collection = ? AND revision <= ?
144
+ ORDER BY revision, row_key LIMIT ?
145
+ )
146
+ `).run(this.options.collection,c,1e3),a.query(`
147
+ UPDATE state_collections SET change_floor = MAX(change_floor, ?)
148
+ WHERE collection = ?
149
+ `).run(c,this.options.collection))}tryAcquireLease(a,b){try{var c;a.exec("BEGIN IMMEDIATE");let d=a.query(`
150
+ SELECT owner_token, owner_pid, owner_start_identity
151
+ FROM state_leases WHERE collection = ?
152
+ `).get(this.options.collection);if(d&&Number.isInteger((c={pid:d.owner_pid,startIdentity:d.owner_start_identity}).pid)&&c.pid>0&&function(a,b){if(!j.B.pidAlive(a))return!1;if(null===b)return!0;let c=j.B.processIdentity(a);return null===c||c===b}(c.pid,c.startIdentity))return a.exec("ROLLBACK"),!1;return d&&a.query("DELETE FROM state_leases WHERE collection = ?").run(this.options.collection),a.query(`
153
+ INSERT INTO state_leases(collection, owner_token, owner_pid, owner_start_identity, acquired_at)
154
+ VALUES (?, ?, ?, ?, ?)
155
+ `).run(this.options.collection,b,process.pid,j.B.processIdentity(process.pid),Date.now()),a.exec("COMMIT"),!0}catch(b){if(A(a),B(b))return!1;throw b}}acquireLeaseSync(){let a=v(this.filename),b=e().randomUUID();try{for(let c=0;c<6e3;c+=1){if(this.tryAcquireLease(a,b))return b;Atomics.wait(n,0,0,5)}throw new l.Qm(this.options.busyMessage)}finally{a.close()}}async acquireLease(a){let b=v(this.filename),c=e().randomUUID(),d=void 0===a?null:Date.now()+Math.max(0,a);try{for(let a=0;a<6e3;a+=1){if(this.tryAcquireLease(b,c))return c;if(null!==d&&Date.now()>=d)break;await new Promise(a=>setTimeout(a,5))}throw new l.Qm(this.options.busyMessage)}finally{b.close()}}releaseLeaseSync(a){let b=v(this.filename);try{for(let c=0;c<6e3;c+=1)try{b.exec("BEGIN IMMEDIATE"),b.query("DELETE FROM state_leases WHERE collection = ? AND owner_token = ?").run(this.options.collection,a),b.exec("COMMIT");return}catch(a){if(A(b),!B(a))throw a;Atomics.wait(n,0,0,5)}throw new l.Qm(this.options.busyMessage)}finally{b.close()}}async releaseLease(a){let b=v(this.filename);try{for(let c=0;c<6e3;c+=1)try{b.exec("BEGIN IMMEDIATE"),b.query("DELETE FROM state_leases WHERE collection = ? AND owner_token = ?").run(this.options.collection,a),b.exec("COMMIT");return}catch(a){if(A(b),!B(a))throw a;await new Promise(a=>setTimeout(a,5))}throw new l.Qm(this.options.busyMessage)}finally{b.close()}}}},38685:(a,b,c)=>{c.d(b,{Ny:()=>m,T2:()=>n,X4:()=>k,a5:()=>j,jU:()=>l}),c(77598);var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f);c(53410),c(409);let h="LLV_HOT_STATE_RELEASE_REVISION";function i(a){return"string"==typeof a&&/^[0-9a-f]{40}$/.test(a)}function j(a){try{var b;let c=!(b=JSON.parse(e().readFileSync(g().join(a,"hot-state-authority.json"),"utf8")))||"object"!=typeof b||Array.isArray(b)?null:1===b.schemaVersion&&Number.isInteger(b.epoch)&&!(b.epoch<1)&&["legacy","preparing","sqlite","fencing"].includes(String(b.mode))&&(null===b.releaseRevision||i(b.releaseRevision))&&"string"==typeof b.updatedAt&&(void 0===b.activationReadyAt||"string"==typeof b.activationReadyAt)&&(void 0===b.releaseReadyAt||"string"==typeof b.releaseReadyAt)&&(void 0===b.releaseReadyAt||void 0!==b.activationReadyAt)&&(void 0===b.activationOwner||b.activationOwner&&Number.isSafeInteger(b.activationOwner.pid)&&!(b.activationOwner.pid<=0)&&(null===b.activationOwner.startIdentity||"string"==typeof b.activationOwner.startIdentity)&&(void 0===b.activationOwner.bootEpoch||null===b.activationOwner.bootEpoch||"string"==typeof b.activationOwner.bootEpoch))&&(void 0===b.checkpoint||function(a){if(!a||"object"!=typeof a||Array.isArray(a))return!1;let b=a.revisions,c=b?[b.flows,b.pipelines,b.pipelinesArchive,b.workflows]:[];return"string"==typeof a.acknowledgedAt&&4===c.length&&c.every(a=>Number.isInteger(a)&&a>=0)}(b.checkpoint))?b:null;if(!c)throw Error("hot-state authority is invalid");return c}catch(a){if("ENOENT"===a.code)return null;throw a}}function k(a,b=process.env){let c=b.LLV_VIEWER_DEPLOY_TARGET?.trim()||g().join(a,"viewer-release.json");try{var d;let a=!(d=JSON.parse(e().readFileSync(c,"utf8")))||"object"!=typeof d||Array.isArray(d)?null:"string"==typeof d.endpoint&&i(d.revision)&&(void 0===d.hotStateBackend||"sqlite-v1"===d.hotStateBackend)?d:null;if(!a)throw Error("Viewer release target cannot authorize hot state");return a}catch(a){if("ENOENT"===a.code)return null;throw a}}function l(a,b=process.env){let c=k(a,b);if(!c)return null;let d=b[h]?.trim();if(d)return i(d)&&d===c.revision?d:null;let e=b.PORT?.trim();if(!e)return null;try{return new URL(c.endpoint).port===e?c.revision:null}catch{return null}}function m(a,b=process.env){let c=k(a,b);if(!c)return!0;let d=j(a),e=l(a,b);return e?d?.mode==="sqlite"&&d.releaseRevision===e&&c.revision===e:!(b[h]?.trim()||b.PORT?.trim())&&d?.mode==="sqlite"&&d.releaseRevision===c.revision&&"string"==typeof d.activationReadyAt}function n(a,b=process.env){let c=k(a,b);if(!c)return!0;let d=l(a,b);if(!d)return!1;let e=j(a);return e?.mode==="preparing"&&e.releaseRevision===d&&c.revision===d}},49370:(a,b,c)=>{let d;c.d(b,{P3:()=>f});let e=BigInt(1e6);function f(a){if(!Number.isInteger(a)||a<=0)return null;let b=function(){if(void 0!==d)return d;if("darwin"!==process.platform)return d=null;try{let a=c(85786),b=a.dlopen("/usr/lib/libproc.dylib",{proc_pidinfo:{args:[a.FFIType.i32,a.FFIType.i32,a.FFIType.u64,a.FFIType.ptr,a.FFIType.i32],returns:a.FFIType.i32}});d=(c,d)=>Number(b.symbols.proc_pidinfo(c,3,BigInt(0),a.ptr(d),d.byteLength))}catch{d=null}return d}();if(!b)return null;let f=Buffer.alloc(136);try{var g=b(a,f);if(!Number.isInteger(a)||a<=0||g<136||f.byteLength<136||f.readUInt32LE(12)!==a)return null;let c=f.readBigUInt64LE(120),d=f.readBigUInt64LE(128);return c===BigInt(0)||d>=e?null:`${a}:${c}:${d.toString().padStart(6,"0")}`}catch{return null}}},50920:(a,b,c)=>{c.d(b,{ks:()=>n,oy:()=>t,Pn:()=>r,BQ:()=>s});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h);function j(a=process.env){return"1"===a.LLV_STAGING}let k="agent-log-viewer",l="live-log-viewer";function m(){return process.env.XDG_CONFIG_HOME||i().join(g().homedir(),".config")}function n(a){var b=m(),c=a;let d=i().join(b,k,c);if(e().existsSync(d))return d;let f=i().join(b,l,c);return e().existsSync(f)?f:d}let o=new Set,p=".migrated-from-legacy";function q(a,b){if("1"===process.env.LLV_RESOURCE_OBSERVATION_WORKER||o.has(a))return;let c=i().join(a,p),d=()=>`${new Date().toISOString()} ${b}
156
+ `;try{if(e().existsSync(c))return void o.add(a);if(!e().existsSync(b)){e().mkdirSync(a,{recursive:!0}),e().writeFileSync(c,d()),o.add(a);return}if(!e().existsSync(a)){e().mkdirSync(i().dirname(a),{recursive:!0});let c=`${a}.migrating.${process.pid}`;e().rmSync(c,{recursive:!0,force:!0});try{e().cpSync(b,c,{recursive:!0}),e().writeFileSync(i().join(c,p),d()),e().renameSync(c,a)}catch(a){throw e().rmSync(c,{recursive:!0,force:!0}),a}o.add(a);return}e().cpSync(b,a,{recursive:!0,force:!1,errorOnExist:!1}),e().writeFileSync(c,d()),o.add(a)}catch(c){console.error(`viewer state migration ${b} -> ${a} failed; will retry:`,c)}}function r(){let a=process.env.LLV_STATE_DIR;if(j()){var b=a;let c=b||i().join(m(),k,"state-staging"),d=i().resolve(c);if([i().join(m(),k,"state"),i().join(m(),l,"state"),i().join(g().homedir(),".claude","viewer-state")].some(a=>i().resolve(a)===d))throw Error(`staging mode refuses the production state dir ${d}; set LLV_STATE_DIR to a staging-only dir`);return c}if(a)return a;let c=i().join(m(),k,"state");return q(c,i().join(g().homedir(),".claude","viewer-state")),c}function s(...a){return i().join(r(),...a)}function t(){if(j())return s("inbox");let a=i().join(m(),k,"inbox");return q(a,i().join(g().homedir(),".claude","viewer-inbox")),a}},51826:(a,b,c)=>{let d,e;c.d(b,{B:()=>O});var f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(8164);let k="/proc";function l(a){try{return g().readFileSync(i().join(k,String(a),"cmdline"),"utf8").split("\0").filter(Boolean)}catch{return[]}}function m(a){try{return g().readlinkSync(i().join(k,String(a),"cwd"))}catch{return null}}function n(a){let b;try{b=g().readFileSync(i().join(k,String(a),"stat"),"utf8")}catch{return null}return b.slice(b.lastIndexOf(")")+2).trim().split(/\s+/)}function o(a){try{return(128&g().lstatSync(a).mode)!=0}catch{return!1}}function p(a){let b;try{b=g().readdirSync(k,{withFileTypes:!0})}catch{return}for(let c of b){let b;if(!c.isDirectory()||!/^\d+$/.test(c.name))continue;let d=Number(c.name),e=i().join(k,c.name,"fd");try{b=g().readdirSync(e,{withFileTypes:!0})}catch{continue}for(let c of b){let b,f=i().join(e,c.name);try{b=g().readlinkSync(f)}catch{continue}a(b,d,()=>o(f))}}}let q={name:"linux",pidAlive:function(a){return Number.isInteger(a)&&a>0&&g().existsSync(i().join(k,String(a)))},readArgv:l,readCwd:m,readPpid:function(a){let b=n(a),c=b?Number(b[1]):NaN;return Number.isInteger(c)&&c>1?c:null},processIdentity:function(a){let b=n(a),c=b?.[19];return c?`${a}:${c}`:null},processCpuMs:function(a){let b=n(a),c=Number(b?.[11]),d=Number(b?.[12]);return Number.isFinite(c)&&Number.isFinite(d)?(c+d)/100*1e3:null},readEnvVar:function(a,b){let c;try{c=g().readFileSync(i().join(k,String(a),"environ"),"utf8")}catch{return null}let d=b+"=",e=null;for(let a of c.split("\0"))a.startsWith(d)&&(e=a.slice(d.length));return e},listProcesses:function(){let a,b=[];try{a=g().readdirSync(k,{withFileTypes:!0})}catch{return b}for(let c of a){if(!c.isDirectory()||!/^\d+$/.test(c.name))continue;let a=Number(c.name);b.push({pid:a,argv:l(a),cwd:m(a),tty:function(a){let b=n(a),c=b?Number(b[4]):NaN;return Number.isInteger(c)&&c>0?c:0}(a)})}return b},systemMemory:function(){try{return(0,j.NW)(g().readFileSync(i().join(k,"meminfo"),"utf8"))}catch{return null}},processMemory:function(a){let b=new Map;for(let c of a)if(Number.isInteger(c)&&!(c<=0))try{b.set(c,(0,j.sW)(g().readFileSync(i().join(k,String(c),"status"),"utf8")))}catch{}return b},ppidMap:function(){let a,b=new Map;try{a=g().readdirSync(k,{withFileTypes:!0})}catch{return b}for(let c of a){if(!c.isDirectory()||!/^\d+$/.test(c.name))continue;let a=Number(c.name),d=n(a),e=d?Number(d[1]):NaN;Number.isInteger(e)&&e>0&&b.set(a,e)}return b},scanFdTargetsUnder:function(a,b){p(b)},scanFdTargetsFor:function(a,b){p(b)},pidWritesPath:function(a,b){let c,d;try{c=g().realpathSync(b)}catch{c=null}let e=i().join(k,String(a),"fd");try{d=g().readdirSync(e,{withFileTypes:!0})}catch{return!1}for(let a of d){let d,f=i().join(e,a.name);try{d=g().readlinkSync(f)}catch{continue}if((d===b||d===c)&&o(f))return!0}return!1},pidHoldsPath:function(a,b){let c;try{c=g().readdirSync(i().join(k,String(a),"fd"),{withFileTypes:!0})}catch{return!1}for(let d of c)try{if(g().readlinkSync(i().join(k,String(a),"fd",d.name))===b)return!0}catch{continue}return!1}};var r=c(31421),s=c(48161),t=c.n(s),u=c(49370);function v(a,b){let c=(0,r.spawnSync)(a,b,{encoding:"utf8",maxBuffer:0x1000000,timeout:1e4});return c.error||"string"!=typeof c.stdout?"":c.stdout}let w=new Map,x=1,y=/^\s*(\d+)\s+(\d+)\s+(\S+)\s+(.*)$/;function z(a,b){let c=0,d="";for(let e of a.split("\n")){if(!e)continue;let a=e[0],f=e.slice(1);if("p"===a)c=Number(f),d="";else if("f"===a)d="";else if("a"===a)d=f;else if("n"===a&&c>0&&f){let a="w"===d||"u"===d;b(f,c,()=>a)}}}let A=null;function B(){let a=Date.now();if(A&&a-A.at<5e3)return A.byPid;let b=function(a){let b=new Map;for(let c of a.split("\n")){let a=y.exec(c);if(!a)continue;let d=Number(a[1]),e=Number(a[2]),f=(a[4]??"").trim().split(/\s+/).filter(Boolean);b.set(d,{ppid:Number.isInteger(e)&&e>1?e:null,tty:function(a){if(!a||"?"===a||"??"===a||"-"===a)return 0;let b=w.get(a);return void 0===b&&(b=x,x+=1,w.set(a,b)),b}(a[3]??""),argv:f})}return b}(v("ps",["-axo","pid=,ppid=,tty=,args="])),c=function(a){let b=new Map,c=0;for(let d of a.split("\n")){if(!d)continue;let a=d[0],e=d.slice(1);"p"===a?c=Number(e):"n"===a&&c>0&&b.set(c,e)}return b}(v("lsof",["-w","-d","cwd","-Fpn"])),d=new Map;for(let[a,e]of b)d.set(a,{argv:e.argv,ppid:e.ppid,tty:e.tty,cwd:c.get(a)??null});return A={at:a,byPid:d},d}let C={name:"portable",pidAlive:function(a){if(!Number.isInteger(a)||a<=0)return!1;try{return process.kill(a,0),!0}catch(a){return"EPERM"===a.code}},readArgv:function(a){return B().get(a)?.argv??[]},readCwd:function(a){return B().get(a)?.cwd??null},readPpid:function(a){return B().get(a)?.ppid??null},processIdentity:function(a){return!Number.isInteger(a)||a<=0?null:"darwin"===process.platform?(0,u.P3)(a):null},processCpuMs:function(){return null},readEnvVar:function(){return null},listProcesses:function(){let a=[];for(let[b,c]of B())a.push({pid:b,argv:c.argv,cwd:c.cwd,tty:c.tty});return a},systemMemory:function(){let a=t().totalmem(),b=(0,j.Lc)(v("vm_stat",[]));if(!a||null===b)return null;let c=(0,j.yh)(v("sysctl",["-n","vm.swapusage"]));return{ramTotal:a,ramAvailable:Math.min(b,a),swapTotal:c?.swapTotal??0,swapUsed:c?.swapUsed??0}},processMemory:function(a){let b=new Set;for(let c of a)Number.isInteger(c)&&c>0&&b.add(c);let c=new Map;if(0===b.size)return c;for(let[a,d]of(0,j.CT)(v("ps",["-axo","pid=,rss="])))b.has(a)&&c.set(a,{rssBytes:d,swapBytes:0});return c},ppidMap:function(){let a=new Map;for(let[b,c]of B())null!==c.ppid&&a.set(b,c.ppid);return a},scanFdTargetsUnder:function(a,b){a&&g().existsSync(a)&&z(v("lsof",["-w","+D",a,"-Fpfan"]),b)},scanFdTargetsFor:function(a,b){let c=[...new Set(a.filter(Boolean))];0!==c.length&&z(v("lsof",["-w","-Fpfan","--",...c]),b)},pidWritesPath:function(a,b){let c=!1;return z(v("lsof",["-w","-a","-p",String(a),"-Fpfan","--",b]),(a,b,d)=>{d()&&(c=!0)}),c},pidHoldsPath:function(a,b){let c=!1;return z(v("lsof",["-w","-a","-p",String(a),"-Fpfan","--",b]),()=>{c=!0}),c}},D=BigInt(0),E=BigInt("125911584000000000"),F=BigInt(0);function G(a){if(!a)return null;let b=Number(a.trim());return Number.isSafeInteger(b)?b:null}function H(a){let b=a?.trim();return b&&/^\d+$/.test(b)?BigInt(b):null}let I=["ProcessId","ParentProcessId","CommandLine","WorkingSetSize","UserModeTime","KernelModeTime","Created"],J=BigInt(1e4),K=null;function L(){let a,b=Date.now();return K&&b-K.at<5e3?K:K={at:b,data:function(a){let b=new Map,c=function(a){let b=65279===a.charCodeAt(0)?a.slice(1):a,c=[],d=[],e="",f=!1,g=!1,h=()=>{d.push(e),e="",g=!1},i=()=>{h(),(d.length>1||""!==d[0])&&c.push(d),d=[]};for(let a=0;a<b.length;a+=1){let c=b[a];if(f){'"'===c?'"'===b[a+1]?(e+='"',a+=1):f=!1:e+=c;continue}if('"'===c&&!g){f=!0,g=!0;continue}if(","===c){h();continue}if("\r"!==c){if("\n"===c){i();continue}e+=c,g=!0}}return(""!==e||d.length>0)&&i(),c}(a),d=c[0];if(!d)return{rows:b,ppids:new Map};let e=new Map(I.map(a=>[a,d.indexOf(a)])),f=e.get("ProcessId")??-1;if(f<0)return{rows:b,ppids:new Map};let g=(a,b)=>{let c=e.get(b)??-1;return c<0?void 0:a[c]};for(let a of c.slice(1)){let c=G(a[f]);null===c||c<=0||b.set(c,{pid:c,rawPpid:G(g(a,"ParentProcessId")),argv:function(a){let b=[],c=a??"",d=0,e=()=>{for(;d<c.length&&(" "===c[d]||" "===c[d]);)d+=1};if(e(),d>=c.length)return b;let f="";if('"'===c[d]){for(d+=1;d<c.length&&'"'!==c[d];)f+=c[d],d+=1;d<c.length&&(d+=1)}else for(;d<c.length&&" "!==c[d]&&" "!==c[d];)f+=c[d],d+=1;for(b.push(f);e(),!(d>=c.length);){let a="",e=!1;for(;d<c.length;){if("\\"===c[d]){let b=0;for(;d<c.length&&"\\"===c[d];)b+=1,d+=1;if('"'===c[d]){if(a+="\\".repeat(b>>1),b%2==1){a+='"',d+=1;continue}}else{a+="\\".repeat(b);continue}}if('"'===c[d]){d+=1,e&&'"'===c[d]?(a+='"',d+=1):e=!e;continue}if(!e&&(" "===c[d]||" "===c[d]))break;a+=c[d],d+=1}b.push(a)}return b}(g(a,"CommandLine")??""),created:function(a){let b=H(a);return null!==b&&b>BigInt(0)?b:null}(g(a,"Created")),workingSetBytes:Math.max(0,G(g(a,"WorkingSetSize"))??0),cpuMs:function(a,b){let c=H(a),d=H(b);if(null===c&&null===d)return null;let e=((c??BigInt(0))+(d??BigInt(0)))/J;return e>BigInt(Number.MAX_SAFE_INTEGER)?null:Number(e)}(g(a,"UserModeTime"),g(a,"KernelModeTime"))})}return{rows:b,ppids:function(a){let b=new Map;for(let[c,d]of a){let e=d.rawPpid;if(null===e||e<=0||e===c)continue;let f=a.get(e);f&&(null!==f.created&&null!==d.created&&f.created>d.created||b.set(c,e))}return b}(b)}}((a=(0,r.spawnSync)("powershell.exe",["-NoProfile","-NonInteractive","-EncodedCommand",Buffer.from("$ErrorActionPreference='SilentlyContinue'\n[Console]::OutputEncoding = New-Object System.Text.UTF8Encoding $false\nGet-CimInstance Win32_Process |\n Select-Object ProcessId,ParentProcessId,CommandLine,WorkingSetSize,UserModeTime,KernelModeTime,\n @{n='Created';e={if ($_.CreationDate) { $_.CreationDate.ToFileTimeUtc() }}} |\n ConvertTo-Csv -NoTypeInformation","utf16le").toString("base64")],{encoding:"utf8",maxBuffer:0x2000000,timeout:15e3,windowsHide:!0})).error||"string"!=typeof a.stdout?"":a.stdout),cwds:new Map}}function M(a){let b=L(),e=b.cwds.get(a);if(void 0!==e)return e;let f=function(a){if(!Number.isInteger(a)||a<=0)return null;let b=function(){if(void 0!==d)return d;if("win32"!==process.platform)return d=null;try{let a=c(85786),{i32:b,u32:e,u64:f,ptr:g}=a.FFIType,h=a.dlopen("kernel32.dll",{OpenProcess:{args:[e,b,e],returns:f},CloseHandle:{args:[f],returns:b},ReadProcessMemory:{args:[f,f,g,f,g],returns:b},IsWow64Process:{args:[f,g],returns:b}}),i=a.dlopen("ntdll.dll",{NtQueryInformationProcess:{args:[f,b,g,e,g],returns:b}}),j=new Map,k=a=>{let b=j.get(a);if(void 0!==b)return b;for(let b of[1040,4112]){let c=BigInt(h.symbols.OpenProcess(b,0,a));if(c!==D)return j.set(a,c),c}return null},l=(b,c,d)=>{let e=Buffer.alloc(8),f=h.symbols.ReadProcessMemory(b,c,a.ptr(d),BigInt(d.byteLength),a.ptr(e));return 0!==f&&e.readBigUInt64LE(0)===BigInt(d.byteLength)};d={parametersAddress(b){let c=k(b);if(null===c)return null;let d=Buffer.alloc(4);if(0!==h.symbols.IsWow64Process(c,a.ptr(d))&&0!==d.readInt32LE(0))return null;let e=Buffer.alloc(48),f=Buffer.alloc(8),g=i.symbols.NtQueryInformationProcess(c,0,a.ptr(e),48,a.ptr(f));if(0!==g)return null;let j=e.readBigUInt64LE(8);if(j===BigInt(0))return null;let m=Buffer.alloc(8);if(!l(c,j+BigInt(32),m))return null;let n=m.readBigUInt64LE(0);return n===BigInt(0)?null:n},read(a,b,c){let d=k(a);if(null===d||c<=0)return null;let e=Buffer.alloc(c);return l(d,b,e)?e:null},close(a){let b=j.get(a);if(void 0!==b){j.delete(a);try{h.symbols.CloseHandle(b)}catch{}}}}}catch{d=null}return d}();if(!b)return null;try{let c=b.parametersAddress(a);if(null===c)return null;let d=b.read(a,c,80);if(!d)return null;return function(a,b){if(a.byteLength<80)return null;let c=a.readUInt16LE(56),d=a.readBigUInt64LE(64);if(0===c||c%2!=0||c>32766||d===BigInt(0))return null;let e=b(d,c);if(!e||e.byteLength<c)return null;let f=e.subarray(0,c).toString("utf16le");return 0===f.length?null:f}(d,(c,d)=>b.read(a,c,d))}catch{return null}finally{b.close(a)}}(a),g=null===f?null:function(a){let b=a.replace(/\0[\s\S]*$/,"").trim();if(!b)return null;if(/^[A-Za-z]:[\\/]$/.test(b))return b[0].toUpperCase()+":\\";let c=b.replace(/[\\/]+$/,"");return c?/^[a-z]:/.test(c)?c[0].toUpperCase()+c.slice(1):c:null}(f);return b.cwds.set(a,g),g}let N={name:"windows",pidAlive:function(a){if(!Number.isInteger(a)||a<=0)return!1;try{return process.kill(a,0),!0}catch(a){return"EPERM"===a.code}},readArgv:function(a){return L().data.rows.get(a)?.argv??[]},readCwd:function(a){return M(a)},readPpid:function(a){return L().data.ppids.get(a)??null},processIdentity:function(a){var b=a;if(!Number.isInteger(b)||b<=0)return null;let d=function(){if(void 0!==e)return e;if("win32"!==process.platform)return e=null;try{let a=c(85786),{i32:b,u32:d,u64:f,ptr:g}=a.FFIType,h=a.dlopen("kernel32.dll",{OpenProcess:{args:[d,b,d],returns:f},CloseHandle:{args:[f],returns:b},GetProcessTimes:{args:[f,g,g,g,g],returns:b},GetExitCodeProcess:{args:[f,g],returns:b}});e=(b,c)=>{let d=BigInt(h.symbols.OpenProcess(4096,0,b));if(d===F)return!1;let e=[Buffer.alloc(8),Buffer.alloc(8),Buffer.alloc(8)];try{let b=Buffer.alloc(4);if(0!==h.symbols.GetExitCodeProcess(d,a.ptr(b))&&259!==b.readUInt32LE(0))return!1;return 0!==h.symbols.GetProcessTimes(d,a.ptr(c),a.ptr(e[0]),a.ptr(e[1]),a.ptr(e[2]))}finally{h.symbols.CloseHandle(d)}}}catch{e=null}return e}();if(!d)return null;let f=Buffer.alloc(8);try{var g=d(b,f);if(!Number.isInteger(b)||b<=0||!g||f.byteLength<8)return null;let a=f.readBigUInt64LE(0);return a<E?null:`${b}:${a}`}catch{return null}},processCpuMs:function(a){return L().data.rows.get(a)?.cpuMs??null},readEnvVar:function(){return null},listProcesses:function(){var a=L().data;let b=[];for(let[c,d]of a.rows)b.push({pid:c,argv:d.argv,cwd:!function(a){for(let b of a.slice(0,2)){let a=b.split(/[\\/]/).pop()?.toLowerCase()??"";if("claude"===a||"claude.exe"===a||"codex"===a||"codex.exe"===a)return!0}return!1}(d.argv)?null:M(c),tty:1});return b},systemMemory:function(){let a=t().totalmem();return a?{ramTotal:a,ramAvailable:Math.min(t().freemem(),a),swapTotal:0,swapUsed:0}:null},processMemory:function(a){let b=L().data.rows,c=new Map;for(let d of a){if(!Number.isInteger(d)||d<=0)continue;let a=b.get(d);a&&c.set(d,{rssBytes:a.workingSetBytes,swapBytes:0})}return c},ppidMap:function(){return new Map(L().data.ppids)},scanFdTargetsUnder:function(){},scanFdTargetsFor:function(){},pidWritesPath:function(){return!1},pidHoldsPath:function(){return!1}},O=function(a=process.platform,b=process.env.VIEWER_PROC_BACKEND){return"portable"===b?C:"linux"===b?q:"windows"===b?N:"linux"===a?q:"win32"===a?N:C}()},53410:(a,b,c)=>{c.d(b,{Ol:()=>q,Qm:()=>l,aO:()=>n});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(51826);let k=new Int32Array(new SharedArrayBuffer(4));class l extends Error{constructor(a){super(a),this.name="FileTransactionBusyError"}}class m extends l{constructor(a,b){super(a),this.retryable=!0,this.name="StoreBusyBeforeAdmissionError",b&&"cause"in b&&(this.cause=b.cause)}}async function n(a){let b=!1;try{return await a(()=>{b=!0})}catch(a){if(!b&&a instanceof l&&!(a instanceof m))throw new m(a.message,{cause:a});throw a}}function o(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){let a="string"==typeof b.startIdentity?b.startIdentity:null;if(!j.B.pidAlive(b.pid))return!0;if(null!==a){let c=j.B.processIdentity(b.pid);return null!==c&&c!==a}return!1}return Date.now()-g().statSync(a).mtimeMs>3e4}catch{try{return Date.now()-g().statSync(a).mtimeMs>3e4}catch{return!1}}}function p(a,b){try{JSON.parse(g().readFileSync(a,"utf8")).token===b&&g().rmSync(a,{force:!0})}catch{}}function q(a,b,c){let d,f,h,m,n=(d=`${a}.write-lock`,f=`${a}.write-locks`,g().mkdirSync(f,{recursive:!0,mode:448}),h={pid:process.pid,startIdentity:j.B.processIdentity(process.pid),token:e().randomUUID()},m=i().join(f,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${e().randomUUID()}.json`),g().writeFileSync(m,JSON.stringify(h),{encoding:"utf8",flag:"wx",mode:384}),{lockPath:d,queuePath:f,owner:h,ticketPath:m});try{for(let a=0;a<6e3;a+=1){let a=function(a){let b;if(function(a){let b=[];for(let c of g().readdirSync(a.queuePath).filter(a=>a.endsWith(".json")).sort()){let d=i().join(a.queuePath,c);if(o(d)){g().rmSync(d,{force:!0});continue}g().existsSync(d)&&b.push(d)}return b[0]??null}(a)!==a.ticketPath)return null;try{b=g().openSync(a.lockPath,"wx",384)}catch(b){if("EEXIST"!==b.code)throw b;return o(a.lockPath)&&g().rmSync(a.lockPath,{force:!0}),null}try{return g().writeFileSync(b,JSON.stringify(a.owner),"utf8"),g().fsyncSync(b),b}catch(c){throw g().closeSync(b),g().rmSync(a.lockPath,{force:!0}),c}}(n);if(null===a){Atomics.wait(k,0,0,5);continue}try{return c()}finally{g().closeSync(a),p(n.lockPath,n.owner.token)}}throw new l(b)}finally{p(n.ticketPath,n.owner.token)}}},65465:(a,b,c)=>{c.d(b,{E2:()=>s,G$:()=>r,JC:()=>v,YX:()=>x,oh:()=>y});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(50920),k=c(20624),l=c(69611);let m=null;function n(){return(0,j.BQ)("project-aliases.json")}function o(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=Object.entries(a);return b.every(([a,b])=>!!a.trim()&&"string"==typeof b&&!!b.trim())?Object.fromEntries(b):null}function p(){let a,b=n();try{a=g().statSync(b)}catch{return(m={file:b,mtimeMs:-1,size:-1,snapshot:{aliases:{},displayNames:{}}}).snapshot}if(m&&m.file===b&&m.mtimeMs===a.mtimeMs&&m.size===a.size)return m.snapshot;try{let c=JSON.parse(g().readFileSync(b,"utf8")),d=1===c.schemaVersion?o(c.aliases):null,e=1===c.schemaVersion?o(c.displayNames):null,f=d&&e?{aliases:d,displayNames:e}:{aliases:{},displayNames:{}};return m={file:b,mtimeMs:a.mtimeMs,size:a.size,snapshot:f},f}catch{let c={aliases:{},displayNames:{}};return m={file:b,mtimeMs:a.mtimeMs,size:a.size,snapshot:c},c}}function q(a,b){let c=a,d=new Set;for(;b[c]&&!d.has(c);)d.add(c),c=b[c];return d.has(c)?a:c}function r(a){return q(a,p().aliases)}function s(){let a=p();return{aliases:{...a.aliases},displayNames:{...a.displayNames}}}function t(a){try{let b=JSON.parse(g().readFileSync((0,j.BQ)(a),"utf8"));return b&&"object"==typeof b&&!Array.isArray(b)?b:null}catch{return null}}function u(a,b,c){let d=(["flows","pipelines","workflows","tasks"].includes(b)?(0,k.Vx)((0,j.BQ)("state.sqlite"),b):null)??t(a)?.[b];if(!Array.isArray(d))return[];let e=[];for(let a of d)!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.project&&a.project.trim()&&"string"==typeof a[c]&&a[c].trim()&&e.push([a.project,a[c]]);return e}function v(){let a=function(){let a=t("worktree-map.json");if(!a)return new Map;let b=new Map;for(let[c,d]of Object.entries(a)){if(!d||"object"!=typeof d||Array.isArray(d))continue;let a=d.repo;"string"==typeof a&&a.trim()&&b.set(c,a)}return b}(),b=[...u("flows.json","flows","cwd"),...u("pipelines.json","pipelines","repoDir"),...u("workflows.json","workflows","repoDir")],c=new Map;for(let[d,e]of b){let b=(0,l.repositoryRootForPath)(e)??a.get(e),f=b?(0,l.projectIdentityFromRepositoryRoot)(b):null;if(!f)continue;let g=c.get(d)??new Map,h=g.get(f.project)??{registration:{source:d,target:f.project,displayName:f.displayName},records:0};h.records+=1,g.set(f.project,h),c.set(d,g)}let d=[],e=[];for(let[a,b]of c){if(b.has(a)){b.size>1&&e.push(a);continue}let c=[...b.values()].sort((a,b)=>b.records-a.records),f=c.reduce((a,b)=>a+b.records,0),g=c[0];2*g.records>f?d.push(g.registration):e.push(a)}let f=function(a){let b=new Map(a.map(a=>[a.source,a.target])),c=new Set,d=new Set;for(let[a,e]of[["tasks.json","tasks"],["flows.json","flows"],["pipelines.json","pipelines"],["workflows.json","workflows"]]){let f=new Map;for(let g of function(a,b){let c=(["flows","pipelines","workflows","tasks"].includes(b)?(0,k.Vx)((0,j.BQ)("state.sqlite"),b):null)??t(a)?.[b];return Array.isArray(c)?c.filter(a=>!!a&&"object"==typeof a&&!Array.isArray(a)):[]}(a,e)){if("string"!=typeof g.id||!g.id.trim()||"string"!=typeof g.project||!g.project.trim())continue;let a=r(g.project),h=b.get(a)??a,i=`${h}\0${g.id}`,j=f.get(i);j&&j!==a?(c.add(`${e} id collision`),b.has(j)&&d.add(j),b.has(a)&&d.add(a)):f.set(i,a)}}return{labels:[...c],sources:d}}(d);return e.push(...f.labels),{registrations:d.filter(a=>!f.sources.has(a.source)),conflicts:e}}function w(a){let b=p(),c={...b.aliases},d={...b.displayNames};for(let b of a){let a=b.source.trim(),e=q(b.target.trim(),c),f=b.displayName.trim();if(!a||!e||!f)return null;let g=c[a]?q(c[a],c):null;if(g&&g!==e)return null;a!==e&&(c[a]=e),d[e]=f}return{aliases:c,displayNames:d}}function x(a){return null!==w(a)}function y(a){if(0===a.length)return!0;let b=w(a);if(!b)return!1;let c=n(),d=i().join(i().dirname(c),`.${i().basename(c)}.${process.pid}.${e().randomUUID()}.tmp`);try{return g().mkdirSync(i().dirname(c),{recursive:!0,mode:448}),g().writeFileSync(d,JSON.stringify({schemaVersion:1,...b},null,2)+"\n",{encoding:"utf8",mode:384}),g().renameSync(d,c),m=null,p(),!0}catch{try{g().rmSync(d,{force:!0})}catch{}return!1}}},69611:(a,b,c)=>{c.r(b),c.d(b,{UNRESOLVED_PROJECT:()=>l,UNRESOLVED_PROJECT_NAME:()=>m,directoryProjectId:()=>q,displayNameFromProjectIdentity:()=>r,isCanonicalProjectId:()=>n,isRepositoryProjectId:()=>o,localRepositoryProjectId:()=>y,projectIdentityFromDirectory:()=>p,projectIdentityFromRemote:()=>x,projectIdentityFromRepositoryRoot:()=>A,repositoryRootForPath:()=>u});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(48161),i=c.n(h),j=c(76760),k=c.n(j);let l="project_unresolved",m="Unresolved project";function n(a){return/^(?:repo|dir)-[0-9a-f]{32}$/.test(a)}function o(a){return/^repo-[0-9a-f]{32}$/.test(a)}function p(a){let b=(()=>{try{return g().realpathSync.native(a)}catch{return k().resolve(a)}})(),c=k().basename(b);if(!c||b===k().sep)return null;let d=b===i().homedir()?`home-${c}`:c;return{project:q(b),displayName:d}}function q(a){return`dir-${e().createHash("sha256").update(`dir:${a}`).digest("hex").slice(0,32)}`}function r(a){return a===l?m:a}function s(a){try{return g().statSync(k().join(a,"HEAD")).isFile()}catch{return!1}}function t(a){let b=k().join(a,".git");try{let c=g().lstatSync(b);if(c.isDirectory())return s(b)?b:null;if(!c.isFile())return null;let d=g().readFileSync(b,"utf8").slice(0,4096),e=/^gitdir:\s*(.+?)\s*$/im.exec(d)?.[1];if(!e)return null;let f=k().resolve(a,e);return s(f)?f:null}catch{return null}}function u(a){let b=k().resolve(a);for(;;){if(t(b))return b;let a=k().dirname(b);if(a===b)return null;b=a}}function v(a,b){let c=/^[a-z][a-z0-9+.-]*:\/\//i.test(a)?null:/^(?:[^@\s]+@)?([^:/\s]+):(.+)$/.exec(a);if(c){let a=c[1].toLowerCase(),b=c[2].replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return b?`${a}/${b}`:null}try{let b=new URL(a);if("file:"===b.protocol){let a=k().resolve(b.pathname).replace(/\.git$/i,"");return`file:${a}`}let c=b.hostname.toLowerCase(),d=b.port?`:${b.port}`:"",e=b.pathname.replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return c&&e?`${c}${d}/${e}`:null}catch{let c=k().resolve(b,a).replace(/\.git$/i,"");return`file:${c}`}}function w(a){let b=a.replace(/^file:/,"").split("/").filter(Boolean).at(-1)?.trim()||null;if(!b)return null;let c=e().createHash("sha256").update(a).digest("hex").slice(0,32);return{project:`repo-${c}`,displayName:b,canonicalRemote:a}}function x(a,b){let c=a.trim();if(!c)return null;let d=v(c,b);return d?w(d):null}function y(a){return w(`local:${z(a)}`)?.project??null}function z(a){try{return g().realpathSync.native(a)}catch{return k().resolve(a)}}function A(a){let b,c=t(a);if(!c)return null;try{b=g().readFileSync(k().join(function(a){try{let b=g().readFileSync(k().join(a,"commondir"),"utf8").trim();return b?k().resolve(a,b):a}catch{return a}}(c),"config"),"utf8")}catch{return null}let d=function(a){let b=!1;for(let c of a.split(/\r?\n/)){let a=/^\s*\[\s*remote\s+"([^"]+)"\s*\]\s*$/i.exec(c);if(a){b="origin"===a[1];continue}if(/^\s*\[/.test(c)){b=!1;continue}if(!b)continue;let d=/^\s*url\s*=\s*(.*?)\s*$/i.exec(c)?.[1],e=d?.replace(/\s+[;#].*$/,"").trim();if(e)return e}return null}(b),e=d?v(d,a):`local:${z(a)}`;return e?w(e):null}}};
@@ -1 +1 @@
1
- "use strict";exports.id=5545,exports.ids=[5545],exports.modules={95545:(a,b,c)=>{c.r(b),c.d(b,{productionTelegramConnectorBootPorts:()=>f,provisionTelegramConnectorAtStartup:()=>g});var d=c(19777),e=c(773);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(8027),c.e(160),c.e(1952),c.e(8465),c.e(2549),c.e(9085)]).then(c.bind(c,99085));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")}}};
1
+ "use strict";exports.id=5545,exports.ids=[5545],exports.modules={95545:(a,b,c)=>{c.r(b),c.d(b,{productionTelegramConnectorBootPorts:()=>f,provisionTelegramConnectorAtStartup:()=>g});var d=c(19777),e=c(773);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(3696),c.e(8027),c.e(261),c.e(160),c.e(1952),c.e(8465),c.e(2549),c.e(9085)]).then(c.bind(c,99085));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")}}};
@@ -1 +1 @@
1
- "use strict";exports.id=568,exports.ids=[568,3302,3558],exports.modules={30402:(a,b,c)=>{c.d(b,{ao:()=>p,rB:()=>s}),c(77598);var d=c(73024),e=c.n(d),f=c(91724),g=c(65154),h=c(2033);function i(){return(0,f.BQ)("reply-suggestions.json")}function j(a){return{schemaVersion:1,revision:0,updatedAt:a.toISOString(),sets:[],admissions:[]}}function k(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let{label:b,text:c}=a;return"string"==typeof b&&b.trim()&&"string"==typeof c&&c.trim()?{label:b,text:c}:null}function l(a){let b,c;if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.conversationId||!a.conversationId||"string"!=typeof a.setId||!a.setId||"string"!=typeof a.at||!Number.isFinite(Date.parse(a.at))||!Array.isArray(a.replies))return null;let d=a.replies.map(k).filter(a=>null!==a);return 0===d.length?null:{conversationId:a.conversationId,setId:a.setId,at:a.at,origin:{kind:"manager"===(c=(b=a.origin??{}).kind)||"gateway"===c||"agent"===c?c:"unidentified",conversationId:"string"==typeof b.conversationId?b.conversationId:null,role:"string"==typeof b.role?b.role:null},replies:d.slice(0,6)}}function m(a){return!a||"object"!=typeof a||Array.isArray(a)?null:"string"==typeof a.conversationId&&a.conversationId&&"string"==typeof a.key&&a.key&&"string"==typeof a.at&&Number.isFinite(Date.parse(a.at))?{conversationId:a.conversationId,key:a.key,at:a.at}:null}function n(a=i(),b=new Date){let c,d;try{c=e().readFileSync(a,"utf8")}catch{return j(b)}try{d=JSON.parse(c)}catch{return j(b)}return 1===d.schemaVersion&&Array.isArray(d.sets)?{schemaVersion:1,revision:Number.isInteger(d.revision)?d.revision:0,updatedAt:"string"==typeof d.updatedAt?d.updatedAt:b.toISOString(),sets:d.sets.map(l).filter(a=>null!==a),admissions:Array.isArray(d.admissions)?d.admissions.map(m).filter(a=>null!==a):[]}:j(b)}function o(a,b){let c=i();return(0,h.Ol)(c,"reply suggestions are busy",()=>{let d=n(c,b),e=a(d,b);return(e.sets||e.admissions)&&(0,g.f)(c,{schemaVersion:1,revision:d.revision+1,updatedAt:b.toISOString(),sets:(e.sets??d.sets).slice(-64),admissions:(e.admissions??d.admissions).slice(-128)}),e.result})}function p(a,b=i()){let c=r(a),d=n(b).sets.find(b=>b.conversationId===a)??null;if(!d||!c)return d;let e=Date.parse(d.at);return Number.isFinite(e)&&e>c.at?d:null}c(56809);let q=new Map;function r(a){let b=q.get(a);if(!b)return null;try{return!function(a,b={}){o(c=>{let d=c.sets.find(b=>b.conversationId===a)??null;if(!d)return{result:!1};if(void 0!==b.offeredAtOrBefore){let a=Date.parse(d.at);if(!Number.isFinite(a)||a>b.offeredAtOrBefore.getTime())return{result:!1}}return{sets:c.sets.filter(b=>b.conversationId!==a),result:!0}},b.now??new Date)}(a,{offeredAtOrBefore:new Date(b.at)}),q.delete(a),null}catch{return b}}function s(a,b,c=""){if(!a)return{cleared:!1,pending:!1};let d=c.trim().slice(0,128),e=r(a),f=e&&d&&e.key===d?new Date(e.at):b;try{return{cleared:o(b=>{let c=d?b.admissions.find(b=>b.conversationId===a&&b.key===d)??null:null,e=c?Date.parse(c.at):NaN,g=Number.isFinite(e)?e:f.getTime(),h=b.sets.find(b=>b.conversationId===a)??null,i=h?Date.parse(h.at):NaN,j=null!==h&&Number.isFinite(i)&&i<=g;return{...j?{sets:b.sets.filter(b=>b.conversationId!==a)}:{},...d&&!c?{admissions:[...b.admissions,{conversationId:a,key:d,at:new Date(g).toISOString()}]}:{},result:j}},new Date),pending:!1}}catch{for(let b of(q.set(a,{at:Math.max(f.getTime(),e?.at??-1/0),key:d}),q.keys())){if(q.size<=64)break;q.delete(b)}return{cleared:!1,pending:!0}}}},32584:(a,b,c)=>{function d(a){return"refused"===a}function e(a){return a.ok?"accepted":!0===a.transportUncertain||a.receipt?.status==="uncertain"?"uncertain":"refused"}c.d(b,{A:()=>d,N:()=>e})},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}}},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))}},60568:(a,b,c)=>{c.d(b,{C:()=>I,k:()=>J});var d=c(23211),e=c(50201),f=c(33302),g=c(9848),h=c(36917),i=c(89333),j=c(35961),k=c(30402),l=c(84567),m=c(76760),n=c.n(m),o=c(10781),p=c(14509),q=c(48892),r=c(3743);async function s(a,b={}){let c=b.registry??(0,o.agentRegistry)(),d=c.conversationForPath(a),e=d?.generations.at(-1);if(!d||!e)throw Error("structured conversation is unavailable");let f=c.readOnlySnapshot().entries[(0,q.pp)({engine:d.engine,sessionId:e.id})];if(!f?.structuredHost||"dead"===f.status||"unhosted"===f.status)throw Error("structured conversation has no live host to attach");let g=await (b.spawn??r.jF)({command:`while [ ! -e ${(0,p.ZL)(a)} ]; do sleep 0.2; done; exec tail -n 200 -F -- ${(0,p.ZL)(a)}`,cwd:f.cwd,windowName:`view-${n().basename(a,".jsonl").slice(0,18)}`});return{target:g.paneId,display:g.display}}var t=c(32584),u=c(64487),v=c(53558),w=c(10167),x=c(66942),y=c(1849),z=c(78181),A=c(62318);let B={canonicalTranscriptTarget:u.WV,readTranscriptHosts:u.oe,applyConversationAction:v.applyConversationAction,conversationActions:v.W,deliverConversationMessage:w.Ku,reconfigureConversation:w.vE,allowedKillTarget:x.CP,consumeKillTarget:x.A9,completedFileScan:y.Nm,dispatchStructuredControl:z.Z,enqueueStructuredMessage:async(...a)=>{let{enqueueStructuredMessage:b}=await Promise.resolve().then(c.bind(c,34083));return b(...a)},captureTmuxAttachReference:r.Do,collectImagePayloads:r.Fu,killPane:r.VT,panePidOf:r.zX,resolveRequestedTmuxTarget:r.I6,resolveTmuxAttach:r.e,tmuxEndpointDescriptor:r.xv,recordDirectOperatorWakatimeActivity:A.d};async function C(a,b){let c=b??(await a.completedFileScan()).snapshot.files;return a.readTranscriptHosts(!0,c)}function D(a){if(!a.ok){let{status:b,...c}=a;return d.NextResponse.json(c,{status:b})}return d.NextResponse.json(a)}async function E(a,b,c){let d=(await a.completedFileScan()).snapshot.files;return c&&(0,i.EG)(c)?a.canonicalTranscriptTarget(await C(a,d),c):null===b?null:a.resolveRequestedTmuxTarget(b,d)}class F extends Error{}async function G(a,b,c,d){if(!(0,f.kg)(b).ok)return{byOperator:!1,conversationId:c.conversationId};let e=function(a,b){let c=b.filePath?a.find(a=>a.path===b.filePath):void 0,d=b.conversationId?a.find(a=>a.conversationId===b.conversationId):void 0;if(c&&d&&c.path!==d.path||c?.conversationId&&b.conversationId&&c.conversationId!==b.conversationId||d&&b.filePath&&d.path!==b.filePath)throw new F("operator activity target evidence conflicts");return c||d||(b.filePath||b.conversationId||!b.hasPid?void 0:a.find(a=>a.pid===b.pid))}((await a.completedFileScan()).snapshot.files,c);return a.recordDirectOperatorWakatimeActivity({...c.conversationId?{conversationId:c.conversationId}:{},...c.filePath?{path:c.filePath}:{},...d,...e?{fallbackEntry:e}:{}}),{byOperator:!0,conversationId:c.conversationId||e?.conversationId||""}}function H(a,b=200){return d.NextResponse.json(a,{status:b,headers:{"Cache-Control":"no-store"}})}async function I(a){let b=(0,j.W)(a);if(b)return b;let c=a.nextUrl.searchParams.get("pid"),e=a.nextUrl.searchParams.get("path")??"",f=a.nextUrl.searchParams.get("target")??"";if("1"===a.nextUrl.searchParams.get("attach")){let a;if(!!e==!!f)return H({error:"path or target is required",reason:"tmux-unavailable"},400);if(e){if(!(0,i.EG)(e))return H({error:"invalid transcript path",reason:"tmux-unavailable"},400);let b=(await C(B)).canonicalFor(e);if(null===b)return H({error:"unknown transcript host",reason:"tmux-unavailable"},400);a=B.captureTmuxAttachReference(b)}else{let b=B.allowedKillTarget(f);if(null===b)return H({error:"unknown resource target",reason:"tmux-unavailable"},400);a=b}let b=await B.resolveTmuxAttach(a,B.tmuxEndpointDescriptor());return b.ok?H({attach:{target:b.target,command:b.command,readOnlyCommand:b.readOnlyCommand},endpoint:b.endpoint}):"stale-pane"===b.reason?H({reason:b.reason,error:"This pane changed or closed. Refresh and try again."},409):"server-restarted"===b.reason?H({reason:b.reason,error:"The tmux server restarted. Refresh and try again."},409):H({reason:b.reason,error:"The tmux server is unavailable. Refresh and try again."},503)}let g=Number(c),h=Number.isInteger(g)&&g>0;if(!h&&!e)return d.NextResponse.json({error:"pid or path is required"},{status:400});try{return d.NextResponse.json({target:await E(B,h?g:null,e)})}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:409})}}async function J(a){let b,m,n=(0,j.W)(a);if(n)return n;try{b=await a.json()}catch{return d.NextResponse.json({error:"invalid JSON"},{status:400})}if("kill-target"===b.action){let a="string"==typeof b.target?b.target:"",c=B.allowedKillTarget(a);if(null===c)return d.NextResponse.json({error:"unknown target — refresh the resource list"},{status:400});if(await B.panePidOf(c.paneId)!==c.panePid)return B.consumeKillTarget(a),d.NextResponse.json({error:"pane has changed — refresh the resource list"},{status:409});try{return await B.killPane(c.paneId),B.consumeKillTarget(a),d.NextResponse.json({ok:!0,target:a})}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}let o=Number(b.pid),p=Number.isInteger(o)&&o>0,q="string"==typeof b.path?b.path:"",r="string"==typeof b.conversationId?b.conversationId:"";if(!p&&!q&&!r.startsWith("conversation_"))return d.NextResponse.json({error:"pid, path, or conversationId is required"},{status:400});if("attach-terminal"===b.action){if(!q||!(0,i.EG)(q))return d.NextResponse.json({error:"valid transcript path is required"},{status:400});try{let a=await s(q);return d.NextResponse.json({ok:!0,target:a.target})}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:409})}}let u="string"==typeof b.action?b.action:"";if(B.conversationActions.includes(u)){if("dialog-key"===u){let c="string"==typeof b.clientMessageId?b.clientMessageId.trim().slice(0,128):"";try{await G(B,a,{pid:o,hasPid:p,filePath:q,conversationId:r},c?{idempotencyKey:c}:{})}catch(a){if(a instanceof F)return d.NextResponse.json({error:a.message},{status:409});return d.NextResponse.json({error:"direct operator activity could not be recorded"},{status:503})}}let c=await B.applyConversationAction({conversationId:r,transcriptPath:q,action:u,..."string"==typeof b.operationId&&b.operationId.trim()?{operationId:b.operationId.trim()}:{},key:"string"==typeof b.key?b.key:"",label:b.label,question:b.question});return d.NextResponse.json(c.body,{status:c.status})}let v=(0,f.OE)(a),w=v?{kind:"agent",conversationId:v}:{kind:"operator"},x="reconfigure"===u&&(0,e.cM)()?await B.dispatchStructuredControl({path:q,conversationId:r,action:u,actor:w,..."reconfigure"===u?{reconfiguration:{model:"string"==typeof b.model?b.model:void 0,effort:"string"==typeof b.effort?b.effort:void 0,fast:"boolean"==typeof b.fast||null===b.fast?b.fast:void 0,accountId:"string"==typeof b.accountId?b.accountId:void 0}}:{}}):null;if(x)return d.NextResponse.json(x.body,{status:x.status});if("reconfigure"===b.action){let a=(await (0,h.CS)()).find(a=>a.path===q);if(!a||"claude"!==a.engine&&"codex"!==a.engine)return d.NextResponse.json({error:"conversation is unavailable"},{status:403});let c=(0,g.y)(a.engine,b);return c.value?D(await B.reconfigureConversation(q,c.value,{actor:w})):d.NextResponse.json({error:c.error??"invalid configuration"},{status:400})}let y="string"==typeof b.text?b.text:"",{images:z,error:A}=B.collectImagePayloads(b);if(A)return d.NextResponse.json({error:A.error},{status:A.status});let C=b.files,E=null==C?{files:[],error:null}:(await c.e(9403).then(c.bind(c,99403))).admitInboxFilePayload({files:C});if(E.error)return d.NextResponse.json({error:E.error.error},{status:E.error.status});if(!y.trim()&&!z.length&&!E.files.length)return d.NextResponse.json({error:"empty message"},{status:400});let H=(0,l.n)(b.origin),I="string"==typeof b.clientMessageId?b.clientMessageId.trim().slice(0,128):"",J=new Date;try{m=await G(B,a,{pid:o,hasPid:p,filePath:q,conversationId:r},I?{idempotencyKey:I}:{})}catch(a){if(a instanceof F)return d.NextResponse.json({error:a.message},{status:409});return d.NextResponse.json({error:"direct operator activity could not be recorded"},{status:503})}m.byOperator&&(0,k.rB)(m.conversationId,J,I);let K=y,L=[];if(E.files.length){let{buildFilePayload:a,inboxFileBatchToken:b}=await c.e(9403).then(c.bind(c,99403));try{let c=a(y,E.files,b(I));K=c.payload,L=c.filePaths}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:"attachments could not be saved"},{status:500})}}let M=async a=>{L.length&&(0,t.A)(a)&&((await c.e(9403).then(c.bind(c,99403))).deleteInboxFiles(L),L=[])},N=()=>L.length?{filePaths:L}:{};if((0,e.cM)()){let a=await B.enqueueStructuredMessage({path:q,...r?{conversationId:r}:{},..."string"==typeof b.clientMessageId?{clientMessageId:b.clientMessageId.slice(0,128)}:{},text:K.trim(),images:z,...H?{origin:H}:{}});if(a){await M((0,t.N)(a));let{status:b,...c}=a.ok?{...a,status:200}:a;return d.NextResponse.json({...c,...N()},{status:b})}}let O=await B.deliverConversationMessage({pid:p?o:null,path:q,...r?{conversationId:r}:{},..."string"==typeof b.clientMessageId?{clientMessageId:b.clientMessageId.slice(0,128)}:{},text:K,images:z,...H?{origin:H}:{},..."string"==typeof b.model?{resumeModel:b.model}:{},..."string"==typeof b.effort?{resumeEffort:b.effort}:{},..."boolean"==typeof b.fast?{resumeFast:b.fast}:{}});return(await M(O.ok?"accepted":"started"===O.actuation?"uncertain":"refused"),O.ok)?d.NextResponse.json({...O,...N()}):D(O)}}};
1
+ "use strict";exports.id=568,exports.ids=[568,3302,3558],exports.modules={30402:(a,b,c)=>{c.d(b,{ao:()=>p,rB:()=>s}),c(77598);var d=c(73024),e=c.n(d),f=c(91724),g=c(65154),h=c(2033);function i(){return(0,f.BQ)("reply-suggestions.json")}function j(a){return{schemaVersion:1,revision:0,updatedAt:a.toISOString(),sets:[],admissions:[]}}function k(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let{label:b,text:c}=a;return"string"==typeof b&&b.trim()&&"string"==typeof c&&c.trim()?{label:b,text:c}:null}function l(a){let b,c;if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.conversationId||!a.conversationId||"string"!=typeof a.setId||!a.setId||"string"!=typeof a.at||!Number.isFinite(Date.parse(a.at))||!Array.isArray(a.replies))return null;let d=a.replies.map(k).filter(a=>null!==a);return 0===d.length?null:{conversationId:a.conversationId,setId:a.setId,at:a.at,origin:{kind:"manager"===(c=(b=a.origin??{}).kind)||"gateway"===c||"agent"===c?c:"unidentified",conversationId:"string"==typeof b.conversationId?b.conversationId:null,role:"string"==typeof b.role?b.role:null},replies:d.slice(0,6)}}function m(a){return!a||"object"!=typeof a||Array.isArray(a)?null:"string"==typeof a.conversationId&&a.conversationId&&"string"==typeof a.key&&a.key&&"string"==typeof a.at&&Number.isFinite(Date.parse(a.at))?{conversationId:a.conversationId,key:a.key,at:a.at}:null}function n(a=i(),b=new Date){let c,d;try{c=e().readFileSync(a,"utf8")}catch{return j(b)}try{d=JSON.parse(c)}catch{return j(b)}return 1===d.schemaVersion&&Array.isArray(d.sets)?{schemaVersion:1,revision:Number.isInteger(d.revision)?d.revision:0,updatedAt:"string"==typeof d.updatedAt?d.updatedAt:b.toISOString(),sets:d.sets.map(l).filter(a=>null!==a),admissions:Array.isArray(d.admissions)?d.admissions.map(m).filter(a=>null!==a):[]}:j(b)}function o(a,b){let c=i();return(0,h.Ol)(c,"reply suggestions are busy",()=>{let d=n(c,b),e=a(d,b);return(e.sets||e.admissions)&&(0,g.fZ)(c,{schemaVersion:1,revision:d.revision+1,updatedAt:b.toISOString(),sets:(e.sets??d.sets).slice(-64),admissions:(e.admissions??d.admissions).slice(-128)}),e.result})}function p(a,b=i()){let c=r(a),d=n(b).sets.find(b=>b.conversationId===a)??null;if(!d||!c)return d;let e=Date.parse(d.at);return Number.isFinite(e)&&e>c.at?d:null}c(56809);let q=new Map;function r(a){let b=q.get(a);if(!b)return null;try{return!function(a,b={}){o(c=>{let d=c.sets.find(b=>b.conversationId===a)??null;if(!d)return{result:!1};if(void 0!==b.offeredAtOrBefore){let a=Date.parse(d.at);if(!Number.isFinite(a)||a>b.offeredAtOrBefore.getTime())return{result:!1}}return{sets:c.sets.filter(b=>b.conversationId!==a),result:!0}},b.now??new Date)}(a,{offeredAtOrBefore:new Date(b.at)}),q.delete(a),null}catch{return b}}function s(a,b,c=""){if(!a)return{cleared:!1,pending:!1};let d=c.trim().slice(0,128),e=r(a),f=e&&d&&e.key===d?new Date(e.at):b;try{return{cleared:o(b=>{let c=d?b.admissions.find(b=>b.conversationId===a&&b.key===d)??null:null,e=c?Date.parse(c.at):NaN,g=Number.isFinite(e)?e:f.getTime(),h=b.sets.find(b=>b.conversationId===a)??null,i=h?Date.parse(h.at):NaN,j=null!==h&&Number.isFinite(i)&&i<=g;return{...j?{sets:b.sets.filter(b=>b.conversationId!==a)}:{},...d&&!c?{admissions:[...b.admissions,{conversationId:a,key:d,at:new Date(g).toISOString()}]}:{},result:j}},new Date),pending:!1}}catch{for(let b of(q.set(a,{at:Math.max(f.getTime(),e?.at??-1/0),key:d}),q.keys())){if(q.size<=64)break;q.delete(b)}return{cleared:!1,pending:!0}}}},32584:(a,b,c)=>{function d(a){return"refused"===a}function e(a){return a.ok?"accepted":!0===a.transportUncertain||a.receipt?.status==="uncertain"?"uncertain":"refused"}c.d(b,{A:()=>d,N:()=>e})},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}}},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))}},60568:(a,b,c)=>{c.d(b,{C:()=>I,k:()=>J});var d=c(23211),e=c(50201),f=c(33302),g=c(9848),h=c(36917),i=c(89333),j=c(35961),k=c(30402),l=c(84567),m=c(76760),n=c.n(m),o=c(10781),p=c(14509),q=c(48892),r=c(3743);async function s(a,b={}){let c=b.registry??(0,o.agentRegistry)(),d=c.conversationForPath(a),e=d?.generations.at(-1);if(!d||!e)throw Error("structured conversation is unavailable");let f=c.readOnlySnapshot().entries[(0,q.pp)({engine:d.engine,sessionId:e.id})];if(!f?.structuredHost||"dead"===f.status||"unhosted"===f.status)throw Error("structured conversation has no live host to attach");let g=await (b.spawn??r.jF)({command:`while [ ! -e ${(0,p.ZL)(a)} ]; do sleep 0.2; done; exec tail -n 200 -F -- ${(0,p.ZL)(a)}`,cwd:f.cwd,windowName:`view-${n().basename(a,".jsonl").slice(0,18)}`});return{target:g.paneId,display:g.display}}var t=c(32584),u=c(64487),v=c(53558),w=c(10167),x=c(66942),y=c(1849),z=c(78181),A=c(62318);let B={canonicalTranscriptTarget:u.WV,readTranscriptHosts:u.oe,applyConversationAction:v.applyConversationAction,conversationActions:v.W,deliverConversationMessage:w.Ku,reconfigureConversation:w.vE,allowedKillTarget:x.CP,consumeKillTarget:x.A9,completedFileScan:y.Nm,dispatchStructuredControl:z.Z,enqueueStructuredMessage:async(...a)=>{let{enqueueStructuredMessage:b}=await Promise.resolve().then(c.bind(c,34083));return b(...a)},captureTmuxAttachReference:r.Do,collectImagePayloads:r.Fu,killPane:r.VT,panePidOf:r.zX,resolveRequestedTmuxTarget:r.I6,resolveTmuxAttach:r.e,tmuxEndpointDescriptor:r.xv,recordDirectOperatorWakatimeActivity:A.d};async function C(a,b){let c=b??(await a.completedFileScan()).snapshot.files;return a.readTranscriptHosts(!0,c)}function D(a){if(!a.ok){let{status:b,...c}=a;return d.NextResponse.json(c,{status:b})}return d.NextResponse.json(a)}async function E(a,b,c){let d=(await a.completedFileScan()).snapshot.files;return c&&(0,i.EG)(c)?a.canonicalTranscriptTarget(await C(a,d),c):null===b?null:a.resolveRequestedTmuxTarget(b,d)}class F extends Error{}async function G(a,b,c,d){if(!(0,f.kg)(b).ok)return{byOperator:!1,conversationId:c.conversationId};let e=function(a,b){let c=b.filePath?a.find(a=>a.path===b.filePath):void 0,d=b.conversationId?a.find(a=>a.conversationId===b.conversationId):void 0;if(c&&d&&c.path!==d.path||c?.conversationId&&b.conversationId&&c.conversationId!==b.conversationId||d&&b.filePath&&d.path!==b.filePath)throw new F("operator activity target evidence conflicts");return c||d||(b.filePath||b.conversationId||!b.hasPid?void 0:a.find(a=>a.pid===b.pid))}((await a.completedFileScan()).snapshot.files,c);return a.recordDirectOperatorWakatimeActivity({...c.conversationId?{conversationId:c.conversationId}:{},...c.filePath?{path:c.filePath}:{},...d,...e?{fallbackEntry:e}:{}}),{byOperator:!0,conversationId:c.conversationId||e?.conversationId||""}}function H(a,b=200){return d.NextResponse.json(a,{status:b,headers:{"Cache-Control":"no-store"}})}async function I(a){let b=(0,j.W)(a);if(b)return b;let c=a.nextUrl.searchParams.get("pid"),e=a.nextUrl.searchParams.get("path")??"",f=a.nextUrl.searchParams.get("target")??"";if("1"===a.nextUrl.searchParams.get("attach")){let a;if(!!e==!!f)return H({error:"path or target is required",reason:"tmux-unavailable"},400);if(e){if(!(0,i.EG)(e))return H({error:"invalid transcript path",reason:"tmux-unavailable"},400);let b=(await C(B)).canonicalFor(e);if(null===b)return H({error:"unknown transcript host",reason:"tmux-unavailable"},400);a=B.captureTmuxAttachReference(b)}else{let b=B.allowedKillTarget(f);if(null===b)return H({error:"unknown resource target",reason:"tmux-unavailable"},400);a=b}let b=await B.resolveTmuxAttach(a,B.tmuxEndpointDescriptor());return b.ok?H({attach:{target:b.target,command:b.command,readOnlyCommand:b.readOnlyCommand},endpoint:b.endpoint}):"stale-pane"===b.reason?H({reason:b.reason,error:"This pane changed or closed. Refresh and try again."},409):"server-restarted"===b.reason?H({reason:b.reason,error:"The tmux server restarted. Refresh and try again."},409):H({reason:b.reason,error:"The tmux server is unavailable. Refresh and try again."},503)}let g=Number(c),h=Number.isInteger(g)&&g>0;if(!h&&!e)return d.NextResponse.json({error:"pid or path is required"},{status:400});try{return d.NextResponse.json({target:await E(B,h?g:null,e)})}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:409})}}async function J(a){let b,m,n=(0,j.W)(a);if(n)return n;try{b=await a.json()}catch{return d.NextResponse.json({error:"invalid JSON"},{status:400})}if("kill-target"===b.action){let a="string"==typeof b.target?b.target:"",c=B.allowedKillTarget(a);if(null===c)return d.NextResponse.json({error:"unknown target — refresh the resource list"},{status:400});if(await B.panePidOf(c.paneId)!==c.panePid)return B.consumeKillTarget(a),d.NextResponse.json({error:"pane has changed — refresh the resource list"},{status:409});try{return await B.killPane(c.paneId),B.consumeKillTarget(a),d.NextResponse.json({ok:!0,target:a})}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}let o=Number(b.pid),p=Number.isInteger(o)&&o>0,q="string"==typeof b.path?b.path:"",r="string"==typeof b.conversationId?b.conversationId:"";if(!p&&!q&&!r.startsWith("conversation_"))return d.NextResponse.json({error:"pid, path, or conversationId is required"},{status:400});if("attach-terminal"===b.action){if(!q||!(0,i.EG)(q))return d.NextResponse.json({error:"valid transcript path is required"},{status:400});try{let a=await s(q);return d.NextResponse.json({ok:!0,target:a.target})}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:409})}}let u="string"==typeof b.action?b.action:"";if(B.conversationActions.includes(u)){if("dialog-key"===u){let c="string"==typeof b.clientMessageId?b.clientMessageId.trim().slice(0,128):"";try{await G(B,a,{pid:o,hasPid:p,filePath:q,conversationId:r},c?{idempotencyKey:c}:{})}catch(a){if(a instanceof F)return d.NextResponse.json({error:a.message},{status:409});return d.NextResponse.json({error:"direct operator activity could not be recorded"},{status:503})}}let c=await B.applyConversationAction({conversationId:r,transcriptPath:q,action:u,..."string"==typeof b.operationId&&b.operationId.trim()?{operationId:b.operationId.trim()}:{},key:"string"==typeof b.key?b.key:"",label:b.label,question:b.question});return d.NextResponse.json(c.body,{status:c.status})}let v=(0,f.OE)(a),w=v?{kind:"agent",conversationId:v}:{kind:"operator"},x="reconfigure"===u&&(0,e.cM)()?await B.dispatchStructuredControl({path:q,conversationId:r,action:u,actor:w,..."reconfigure"===u?{reconfiguration:{model:"string"==typeof b.model?b.model:void 0,effort:"string"==typeof b.effort?b.effort:void 0,fast:"boolean"==typeof b.fast||null===b.fast?b.fast:void 0,accountId:"string"==typeof b.accountId?b.accountId:void 0}}:{}}):null;if(x)return d.NextResponse.json(x.body,{status:x.status});if("reconfigure"===b.action){let a=(await (0,h.CS)()).find(a=>a.path===q);if(!a||"claude"!==a.engine&&"codex"!==a.engine)return d.NextResponse.json({error:"conversation is unavailable"},{status:403});let c=(0,g.y)(a.engine,b);return c.value?D(await B.reconfigureConversation(q,c.value,{actor:w})):d.NextResponse.json({error:c.error??"invalid configuration"},{status:400})}let y="string"==typeof b.text?b.text:"",{images:z,error:A}=B.collectImagePayloads(b);if(A)return d.NextResponse.json({error:A.error},{status:A.status});let C=b.files,E=null==C?{files:[],error:null}:(await c.e(9403).then(c.bind(c,99403))).admitInboxFilePayload({files:C});if(E.error)return d.NextResponse.json({error:E.error.error},{status:E.error.status});if(!y.trim()&&!z.length&&!E.files.length)return d.NextResponse.json({error:"empty message"},{status:400});let H=(0,l.n)(b.origin),I="string"==typeof b.clientMessageId?b.clientMessageId.trim().slice(0,128):"",J=new Date;try{m=await G(B,a,{pid:o,hasPid:p,filePath:q,conversationId:r},I?{idempotencyKey:I}:{})}catch(a){if(a instanceof F)return d.NextResponse.json({error:a.message},{status:409});return d.NextResponse.json({error:"direct operator activity could not be recorded"},{status:503})}m.byOperator&&(0,k.rB)(m.conversationId,J,I);let K=y,L=[];if(E.files.length){let{buildFilePayload:a,inboxFileBatchToken:b}=await c.e(9403).then(c.bind(c,99403));try{let c=a(y,E.files,b(I));K=c.payload,L=c.filePaths}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:"attachments could not be saved"},{status:500})}}let M=async a=>{L.length&&(0,t.A)(a)&&((await c.e(9403).then(c.bind(c,99403))).deleteInboxFiles(L),L=[])},N=()=>L.length?{filePaths:L}:{};if((0,e.cM)()){let a=await B.enqueueStructuredMessage({path:q,...r?{conversationId:r}:{},..."string"==typeof b.clientMessageId?{clientMessageId:b.clientMessageId.slice(0,128)}:{},text:K.trim(),images:z,...H?{origin:H}:{}});if(a){await M((0,t.N)(a));let{status:b,...c}=a.ok?{...a,status:200}:a;return d.NextResponse.json({...c,...N()},{status:b})}}let O=await B.deliverConversationMessage({pid:p?o:null,path:q,...r?{conversationId:r}:{},..."string"==typeof b.clientMessageId?{clientMessageId:b.clientMessageId.slice(0,128)}:{},text:K,images:z,...H?{origin:H}:{},..."string"==typeof b.model?{resumeModel:b.model}:{},..."string"==typeof b.effort?{resumeEffort:b.effort}:{},..."boolean"==typeof b.fast?{resumeFast:b.fast}:{}});return(await M(O.ok?"accepted":"started"===O.actuation?"uncertain":"refused"),O.ok)?d.NextResponse.json({...O,...N()}):D(O)}}};
@@ -1 +1 @@
1
- "use strict";exports.id=6023,exports.ids=[6023],exports.modules={6023:(a,b,c)=>{c.r(b),c.d(b,{AccountMigrationController:()=>ah,accountControllerScan:()=>ae,createMigrationDeliveryPort:()=>X.M,reconcileAccountMigrationCycle:()=>aa,startAccountMigrationController:()=>aj,syncCompatibilityRouting:()=>ab});var d=c(78966),e=c(41617),f=c(68797),g=c(22962),h=c(10781),i=c(64487),j=c(12770),k=c(31421),l=c(73024),m=c.n(l),n=c(76760),o=c.n(n),p=c(98590),q=c(26474),r=c(36917),s=c(1849),t=c(36943),u=c(23921),v=c(93407),w=c(48161),x=c.n(w),y=c(63657),z=c(70547),A=c(3743),B=c(91724);function C(a,b){if(0!==a.tty)return null;let c=a.argv,d=c.indexOf("--output-last-message");return c.includes("exec")&&c.includes("--json")&&!(d<0)&&c.some(a=>/(^|[/\\])codex(?:-[^/\\]+)?$/i.test(a))?function(a,b){if(!a||!o().isAbsolute(a))return null;let c=o().relative(o().resolve(b),o().resolve(a));if(!c||o().isAbsolute(c)||".."===c||c.startsWith(`..${o().sep}`))return null;let d=c.split(o().sep);if(2!==d.length||!d[0])return null;let e=/^round-(\d+)-last-message\.md$/.exec(d[1]);return e?{flowId:d[0],round:Number(e[1])}:null}(c[d+1],b):null}function D(a){return a.argv.some(a=>/(^|[/\\])codex(?:-[^/\\]+)?$/i.test(a))&&(a.argv.includes("exec")||a.argv.includes("app-server"))}function E(a){return a.argv.some(a=>/(^|[/\\])claude(?:-[^/\\]+)?$/i.test(a))}let F=/(?:^|[-_.])mcp(?:[-_.]|$)/i,G=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*(?:@[^\s/]+)?$/i;function H(a){if(!a||!G.test(a))return!1;let b=a.startsWith("@")?a.indexOf("@",a.indexOf("/")+1):a.indexOf("@"),c=b>0?a.slice(0,b):a;return F.test(c.split("/").at(-1)??"")}function I(a,b){for(let c=b;c<a.length;c+=1){let b=a[c];if("--"===b)break;if("--package"===b||"-p"===b)return a[c+1];if(b.startsWith("--package="))return b.slice(10);if(!b.startsWith("-"))return b}}let J=new Set(["--cache-dir","--color","--config-file","--directory","--project","--python"]);function K(a){var b;if(0!==a.tty)return!1;let c=a.argv;if((b=c[0])&&F.test(o().basename(b)))return!0;let d=o().basename(c[0]??"").toLowerCase();return"npx"===d||"bunx"===d||"uvx"===d?H(I(c,1)):"npm"===d&&("exec"===c[1]||"x"===c[1])||("pnpm"===d||"yarn"===d)&&("dlx"===c[1]||"exec"===c[1])||"bun"===d&&"x"===c[1]?H(I(c,2)):"uv"===d&&function(a){let b=1;for(;b<a.length;){let c=a[b];if("run"===c)return H(I(a,b+1));if("tool"===c&&"run"===a[b+1])return H(I(a,b+2));if(J.has(c)){b+=2;continue}if(c.startsWith("-")){b+=1;continue}break}return!1}(c)}function L(a,b){let c=new Set;for(let b of a.hosts)c.add(b.panePid),c.add(b.agentPid);for(let b of a.panePids)c.add(b);for(let d of a.flows)if("headless"===d.reviewerMode)for(let a of d.rounds){if(!a.reviewerPid||a.verdict||a.error||a.terminalAt)continue;let d=b.get(a.reviewerPid);d&&(a.reviewerIdentity&&d.identity!==a.reviewerIdentity||c.add(a.reviewerPid))}let d=new Set,e=new Map(a.processes.map(a=>[a.pid,a.ppid]));for(let a of c)for(let b of(0,z.mO)(a,e))d.add(b);return d}function M(a){let b=new Map(a.processes.map(a=>[a.pid,a])),c=L(a,b),d=new Set(a.processes.filter(b=>b.ageMs>=a.thresholdMs&&function(a,b){let c=C(a,b.flowArtifactsRoot);if(!c||!a.identity)return!1;let d=b.flows.find(a=>a.id===c.flowId),e=d?.rounds.find(a=>a.n===c.round);return d?.reviewerMode==="headless"&&e?.reviewerPid===a.pid&&e.reviewerIdentity===a.identity}(b,a)&&!c.has(b.pid)).map(a=>a.pid)),e=[];for(let f of a.processes){if(!f.identity||f.ageMs<a.thresholdMs||c.has(f.pid))continue;if(d.has(f.pid)){e.push({pid:f.pid,identity:f.identity,kind:"codex-exec"});continue}if(D(f)||E(f)||!K(f))continue;let g=function(a,b){let c=[],d=new Set([a]),e=b.get(a)?.ppid??0;for(;e>0&&!d.has(e);)c.push(e),d.add(e),e=b.get(e)?.ppid??0;return c}(f.pid,b);!(g.some(a=>d.has(a)||K(b.get(a)??{argv:[],tty:0}))||g.some(a=>D(b.get(a)??{argv:[]}))||g.some(a=>E(b.get(a)??{argv:[]})))&&(g.some(a=>1!==a&&b.has(a))||e.push({pid:f.pid,identity:f.identity,kind:"orphan-mcp"}))}return e.sort((a,b)=>a.pid-b.pid)}let N={listProcesses:()=>y.B.listProcesses(),ppidMap:()=>y.B.ppidMap(),processIdentity:a=>y.B.processIdentity(a),processAgeMs:function(a,b){if(!b)return null;let c=b.slice(b.indexOf(":")+1);if("linux"===y.B.name&&/^\d+$/.test(c))return Math.max(0,1e3*x().uptime()-10*Number(c));let d=Date.parse(c);return Number.isFinite(d)?Math.max(0,Date.now()-d):null},loadFlows:p.loadFlows,readHosts:async()=>(await (0,i.oe)(!0)).hosts,readPanePids:async()=>{let a=await (0,A.m7)(!0);return"failure"===a.kind?null:"available"===a.kind?[...a.panes.keys()]:[]},signalProcess:process.kill,setTimeout:(a,b)=>setTimeout(a,b)};function O(a){let b=new Set;for(let c of a)if("headless"===c.reviewerMode)for(let a of c.rounds)!a.reviewerPid||a.verdict||a.error||a.terminalAt||b.add(a.reviewerPid);return b}function P(a,b){let c=b.loadFlows(),d=O(c),e=b.ppidMap(),f=b.listProcesses().map(a=>({...a,ppid:e.get(a.pid)??0,identity:d.has(a.pid)?b.processIdentity(a.pid):null,ageMs:0})),g=new Map(f.map(a=>[a.pid,a]));return{protectedPids:function(a,b){let c=L(a,b),d=new Map(a.processes.map(a=>[a.pid,a.ppid]));for(let b of a.processes)if(D(b)||E(b))for(let a of(0,z.mO)(b.pid,d))c.add(a);return c}({...a,flows:c,processes:f},g),ppids:e}}function Q(a,b,c=new Set){let d=a.ppidMap();return a.listProcesses().map(e=>{let f=c.has(e.pid)||null!==C(e,b)||K(e),g=f?a.processIdentity(e.pid):null;return{...e,ppid:d.get(e.pid)??0,identity:g,ageMs:f?a.processAgeMs(e.pid,g)??0:0}})}async function R(a){let b={...N,...a.dependencies},c=a.thresholdMs??function(a=process.env){let b=Number(a.LLV_HEADLESS_REAPER_THRESHOLD_MS);return Number.isFinite(b)&&b>=6e4?b:72e5}(),d=a.flowArtifactsRoot??(0,B.BQ)("flows"),e=await b.readPanePids();if(null===e)return{candidates:0,signaled:0};let f=a.flows??b.loadFlows(),g=M({processes:Q(b,d,O(f)),flows:f,hosts:a.hosts,panePids:e,flowArtifactsRoot:d,thresholdMs:c}),h=0;for(let e of g){let[f,g,i]=await Promise.all([b.readHosts(),Promise.resolve(b.loadFlows()),b.readPanePids()]);if(null===i)continue;let j={processes:Q(b,d,O(g)),flows:g,hosts:f,panePids:i,flowArtifactsRoot:d,thresholdMs:c},k=M(j).find(a=>a.pid===e.pid&&a.identity===e.identity&&a.kind===e.kind);if(k){if("codex-exec"===k.kind){if(!function(a,b,c){if(b.processIdentity(a.pid)!==a.identity)return!1;try{b.signalProcess(-a.pid,"SIGTERM")}catch{if(b.processIdentity(a.pid)!==a.identity)return!1;try{b.signalProcess(a.pid,"SIGTERM")}catch{return!1}}let d=b.setTimeout(()=>{try{b.signalProcess(-a.pid,"SIGKILL")}catch{}},c);return d.unref?.(),!0}(k,b,a.shutdownGraceMs??3e3))continue}else if(!function(a,b,c,d){let e,f=new Map(b.processes.map(a=>[a.pid,a.identity]));try{e=P(b,c)}catch{return!1}let{ppids:g,protectedPids:h}=e,i=(0,z.mO)(a.pid,g).reverse();if(i.some(a=>h.has(a)))return!1;let j=i.map(a=>{let b=f.get(a)??null,d=c.processIdentity(a);return{pid:a,observedIdentity:b,expectedIdentity:d,eligible:!!(d&&(!b||b===d))}}),k=j.find(b=>b.pid===a.pid);if(k?.observedIdentity!==a.identity||k.expectedIdentity!==a.identity)return!1;for(let a of j)if(a.eligible&&a.expectedIdentity&&c.processIdentity(a.pid)===a.expectedIdentity)try{c.signalProcess(a.pid,"SIGTERM")}catch{}let l=c.setTimeout(()=>{let a;try{a=P(b,c).protectedPids}catch{return}for(let b of j)if(!a.has(b.pid)&&b.eligible&&b.expectedIdentity&&c.processIdentity(b.pid)===b.expectedIdentity)try{c.signalProcess(b.pid,"SIGKILL")}catch{}},d);return l.unref?.(),!0}(k,j,b,a.shutdownGraceMs??3e3))continue;h+=1}}return{candidates:g.length,signaled:h}}var S=c(54072),T=c(21153),U=c(46825),V=c(92806),W=c(59371),X=c(54606),Y=c(81533),Z=c(91596),$=c(90169);let _=(0,X.M)();async function aa(a,b,c=new Z.wh,d=_){a.compactDeliveryReservations(),await (0,j.Lh)();let e=Promise.all([b.tick("claude"),b.tick("codex")]);try{await (0,W.c0)(c,d,a)}finally{await e}}function ab(a){let b=a.readOnlySnapshot().engineRouting,c=(()=>{try{return!!(b.claude.activeAccountId&&b.claude.activeAccountId!==(0,d.No)())}catch{return!0}})(),f=(()=>{try{return!!(b.codex.activeAccountId&&b.codex.activeAccountId!==(0,e.O)())}catch{return!0}})();(c||f)&&(0,g.oV)(()=>{let b=a.readOnlySnapshot(),c=b.engineRouting.claude.activeAccountId,f=b.engineRouting.codex.activeAccountId;try{c&&c!==(0,d.No)()&&(0,d.ss)(c)}catch{}try{f&&f!==(0,e.O)()&&(0,e.b0)(f)}catch{}})}async function ac(){let a=(0,e.J0)();await Promise.all((0,e.Sq)().map(async b=>{if("managed"===b.kind){b.loginPane&&!a&&(0,e.yG)(b.id,null),(0,f.VD)().peekLogin(b).attemptState&&await (0,f.VD)().loginSnapshot(b);return}if(!b.loginPane)return;let c=await (0,A.RZ)(b.loginPane.paneId);(0,e.hg)(b.authPresent,b.loginPane,c).clear&&!a&&(0,e.yG)(b.id,null)}))}let ad={files:[],projectCatalog:[],complete:!1};function ae(a=process.env,b=s.TF,c=t.wj){return"1"!==a.LLV_ACCOUNT_CONTROLLER_INVENTORY_WORKER?c():Promise.resolve(b()??ad)}async function af(a,b){await ac();let c=await (0,i.oe)(!0,b);try{await (0,v.RU)({registry:a,hosts:c.hosts,files:b})}catch(a){console.error("[agent reaper] lifecycle reconciliation failed",a)}try{let a=await R({hosts:c.hosts,flows:(0,p.loadFlows)()});a.signaled>0&&console.warn(`[headless process reaper] terminated ${a.signaled} stale process group(s)`)}catch(a){console.error("[headless process reaper] reconciliation failed",a)}}let ag={scan:()=>ae(),reconcileInventory:W.VB,reconcileFlowOwnership:p.reconcileFlowConversationOwnershipCooperatively,reconcileWorkflowOwnership:U.reconcileWorkflowConversationOwnershipCooperatively,reconcileHandoffOwnership:q.d5,reconcileFiles:r.CR,reconcileRuntime:af,reconcileTaskStore:function(a,b){let c=(0,h.oP)(a.readOnlySnapshot());(0,T.z4)(a=>{let d=(0,S.fq)(b,a,{pathForPanePid:(a,b)=>(0,S.iI)(b,a,u.Ib),panePidAlive:u.pl,conversationIdForPath:a=>c.conversationForPath(a)?.id??null,canonicalConversationId:a=>a.startsWith("conversation_")?c.canonicalConversationId(a):null,pathForConversationId:a=>a.startsWith("conversation_")?c.conversation(a)?.generations.at(-1)?.path??null:null});return{tasks:d.dirty?d.tasks:void 0,result:void 0}})},syncRouting:ab,reconcileMigrationCycle:aa};class ah{constructor(a=(0,h.agentRegistry)(),b=new $.fi(a),c=null,d={}){this.registry=a,this.quota=b,this.cycle=c,this.running=null,this.trailingCycleRequested=!1,this.ports={...ag,...d}}tick(){return this.running?this.trailingCycleRequested=!0:this.running=this.runRequestedCycles().finally(()=>{this.running=null}),this.running}poll(){return this.running?this.running:this.tick()}async runRequestedCycles(){let a=null;do{this.trailingCycleRequested=!1;try{await (this.cycle?.()??this.run())}catch(b){a??=b}}while(this.trailingCycleRequested);if(a)throw a}async run(){let{files:a,complete:b}=await this.ports.scan();if(!b)return;await (0,j.Lh)();let c=await this.ports.reconcileInventory(this.registry,a);await (0,j.Lh)();let d=(0,h.oP)(c);await this.ports.reconcileFlowOwnership(d),await this.ports.reconcileWorkflowOwnership(d),await this.ports.reconcileHandoffOwnership(d),await (0,j.Lh)(),await this.ports.reconcileFiles(a),await (0,j.Lh)(),await this.ports.reconcileRuntime(this.registry,a),await (0,j.Lh)(),await this.ports.reconcileTaskStore(this.registry,a),await (0,j.Lh)(),await this.ports.syncRouting(this.registry),await this.ports.reconcileMigrationCycle(this.registry,this.quota)}}let ai=globalThis;async function aj(){await (0,j.Lh)();let a=(0,h.agentRegistry)(),b=new $.fi(a);if("1"===process.env.LLV_ACCOUNT_CONTROLLER_INVENTORY_WORKER)return void function(a,b){let c=ai.__llvAccountMigrationController??=new ah(a,b);if(!ai.__llvAccountMigrationTimer){let a=setInterval(()=>void c.poll().catch(a=>{console.error("[account migration controller] durable reconciliation tick failed",a)}),6e4);a.unref?.(),ai.__llvAccountMigrationTimer=a}if(!ai.__llvAccountMigrationBootstrapStarted){ai.__llvAccountMigrationBootstrapStarted=!0;let a=setTimeout(()=>{ai.__llvAccountMigrationInitialTimer=void 0,c.poll().catch(a=>{console.error("[account migration controller] initial inventory reconciliation failed",a)})},1e3);a.unref?.(),ai.__llvAccountMigrationInitialTimer=a}}(a,b);let c=ai.__llvAccountMigrationFastController??=new ah(a,b,()=>aa(a,b));(0,Y.c)(()=>c.tick()),c.tick().catch(a=>{console.error("[account migration controller] initial durable reconciliation failed",a)}),function a(){if(ai.__llvAccountMigrationInventoryWorker)return;let b=function(a=process.cwd()){let b=o().join(a,"src/lib/accountMigrationController.worker.ts"),c=o().join(a,".next/server/account-migration-controller-worker.js");return m().existsSync(b)&&m().existsSync("/usr/local/bin/bun-container")?{executable:"/usr/local/bin/bun-container",workerPath:b}:m().existsSync(c)?{executable:process.versions.bun?process.execPath:process.env.LLV_BUN_EXECUTABLE||"bun",workerPath:c}:{executable:process.execPath,workerPath:b}}(),c=m().existsSync("/usr/bin/nice"),d=(0,k.spawn)(c?"/usr/bin/nice":b.executable,[...c?["-n","10",b.executable]:[],b.workerPath],{cwd:process.cwd(),stdio:["ignore","inherit","inherit"],env:{...(0,V.Fd)(process.env),LLV_ACCOUNT_CONTROLLER_INVENTORY_WORKER:"1"}});ai.__llvAccountMigrationInventoryWorker=d,d.once("error",a=>{console.error("[account migration controller] inventory worker failed to start",a)}),d.once("exit",(b,c)=>{if(ai.__llvAccountMigrationInventoryWorker===d&&(ai.__llvAccountMigrationInventoryWorker=void 0),ai.__llvAccountMigrationInventoryWorkerRestart)return;console.error("[account migration controller] inventory worker exited",{code:b,signal:c});let e=setTimeout(()=>{ai.__llvAccountMigrationInventoryWorkerRestart=void 0,a()},1e3);e.unref?.(),ai.__llvAccountMigrationInventoryWorkerRestart=e})}()}},54072:(a,b,c)=>{c.d(b,{fq:()=>j,iI:()=>i});var d=c(76760),e=c.n(d);function f(a){return!("claude-projects"!==a.root||!a.path.endsWith(".jsonl")||a.path.includes(e().sep+"subagents"+e().sep))&&2===a.name.split(e().sep).length}function g(a,b){return h(a,new Map(b.map(a=>[a.path,a])))}function h(a,b){let c=b.get(a);if(!c?.parent||c.handoff)return null;let d=b.get(c.parent);return d&&f(c)&&f(d)?d.path:null}function i(a,b,c){if(!Number.isInteger(b)||b<=0)return null;for(let d of a){if(null===d.pid)continue;let a=new Set;for(let e=d.pid;null!==e&&!a.has(e)&&(a.add(e),!(a.size>15));e=c(e))if(e===b)return d.path}return null}function j(a,b,c={}){let d=!1,e=new Map(a.map(a=>[a.path,a])),f=c.successorForPath?c:{...c,successorForPath:a=>h(a,e)},i=b.map(b=>{let c=!1,h=b.assignments.map(b=>{let d=function(a,b,c,d){let e=a,f=!1;if(e.conversationId){let a=d.canonicalConversationId?.(e.conversationId)??e.conversationId;a!==e.conversationId&&(e={...e,conversationId:a},f=!0)}if(e.path&&!e.conversationId){let a=d.conversationIdForPath?.(e.path)??c.get(e.path)?.conversationId??null;a&&(e={...e,conversationId:a},f=!0)}let h=d.now?.()??new Date().toISOString();if(e.path){let a=(e.conversationId?d.pathForConversationId?.(e.conversationId)??null:null)??function(a,b,c){let d=c??g,e=new Set([a]),f=a,h=null;for(;;){let a=d(f,b);if(!a||e.has(a))return h;h=a,f=a,e.add(f)}}(e.path,b,d.successorForPath);if(a&&a!==e.path){let b="handoff"===e.state||"linked"===e.state?e.state:"delivered";return{assignment:{...e,path:a,state:b,error:null,at:h},dirty:!0}}return{assignment:e,dirty:f}}if(null!==e.panePid){let a=d.pathForPanePid?.(e.panePid,b)??null;if(a){let b=d.conversationIdForPath?.(a)??c.get(a)?.conversationId??null;return{assignment:{...e,path:a,...b?{conversationId:b}:{},state:"delivered",error:null,at:h},dirty:!0}}if(!(d.panePidAlive?.(e.panePid)??!0)&&"failed"!==e.state)return{assignment:{...e,state:"failed",error:"agent did not start",at:h},dirty:!0}}return{assignment:e,dirty:f}}(b,a,e,f);return d.dirty&&(c=!0),d.assignment});return c?(d=!0,{...b,assignments:h,updatedAt:f.now?.()??new Date().toISOString()}):b});return{tasks:d?i:b,dirty:d}}},54606:(a,b,c)=>{c.d(b,{M:()=>f});var d=c(10167),e=c(34083);function f(a={}){let b=a.structuredDelivery??e.deliverHeldStructuredMessage,c=a.legacyDelivery??(async({delivery:a,path:b,clientMessageId:c})=>{if("runtime-images"===a.payloadKind)return"delivery-uncertain";let e=await (0,d.Ku)({pid:null,path:b,text:a.text,images:[],clientMessageId:c,reservedDeliveryId:a.id,...a.command.origin?{origin:a.command.origin}:{}});return(0,d.$n)(e)}),g=({delivery:a,path:c,clientMessageId:d})=>b({conversationId:a.conversationId,runtimeConversationId:a.runtimeConversationId,path:c,deliveryId:a.id,clientMessageId:d,text:a.text,command:a.command,...a.runtimeImages.length?{imageRefs:a.runtimeImages}:{}});return{deliver:async a=>await g(a)??c(a),reconcileUncertain:async a=>await g(a)??"delivery-uncertain"}}},90169:(a,b,c)=>{c.d(b,{GU:()=>n,W7:()=>s,_W:()=>t,d4:()=>r,fi:()=>u,wS:()=>o});var d=c(77598),e=c.n(d),f=c(78966),g=c(14565),h=c(22962),i=c(41617),j=c(68797),k=c(10781),l=c(26784),m=c(58996);async function n(a,b,c){let d=await (0,m.Ki)({account:a,liveReader:async()=>b.rateLimits,now:()=>c});return{engine:"codex",accountId:a.id,authenticated:b.authenticated,authCheckedAt:c,limits:d.data,provenance:{source:d.source,reason:b.authenticated?d.reason:"unsupported-account-type",staleSince:null},observedAt:c,envelope:b.envelope,resetCredits:function(a){if(!a)return null;let b=(a.credits??[]).filter(a=>"available"===a.status&&null!==a.expiresAt).map(a=>a.expiresAt);return{availableCount:a.availableCount,expiresAt:b.length?Math.min(...b):null}}(b.resetCredits)}}function o(a,b){return{engine:a.engine,accountId:a.accountId,authenticated:a.authenticated,authCheckedAt:new Date(a.authCheckedAt??a.observedAt).toISOString(),limits:a.limits,provenance:a.provenance,observedAt:new Date(a.observedAt).toISOString(),bootId:b,resetCredits:a.resetCredits??null}}async function p(a,b,c={}){let d=c.authStatus??g.kR.status,e=await d(a.home).catch(()=>({loggedIn:!1,indeterminate:!0}));if(e.indeterminate)throw Error("quota-auth-indeterminate");if(!e.loggedIn)return{engine:"claude",accountId:a.id,authenticated:!1,authCheckedAt:b,limits:null,provenance:{source:"unavailable",reason:"live authentication check failed",staleSince:null},observedAt:b};let f=await (0,m.WB)(a,{now:()=>b,force:c.force});return{engine:"claude",accountId:a.id,authenticated:!0,authCheckedAt:b,limits:f.data,provenance:{source:f.provenance.source,reason:f.provenance.reason,staleSince:f.provenance.staleSince},observedAt:f.observedAt??b}}let q={list:a=>"claude"===a?(0,f.Fn)():(0,i.Sq)(),active:a=>"claude"===a?(0,f.No)():(0,i.O)(),async probe(a,b,c,d){if("claude"===a)return await p(b,c,d);try{let a=await (0,j.VD)().probeQuota(b);return await n(b,a,c)}catch(e){let d=await (0,m.Ki)({account:b,liveReader:async()=>Promise.reject(e)});if(!d.data)throw e;return{engine:a,accountId:b.id,authenticated:!1,authCheckedAt:c,limits:d.data,provenance:{source:d.source,reason:d.reason,staleSince:null},observedAt:c,envelope:null}}}},r=q,s=15e3;function t(a){return new Promise((b,c)=>{let d=setTimeout(()=>c(Error("quota-probe-timeout")),a);d.unref?.()})}class u{constructor(a=(0,k.agentRegistry)(),b=q,c=e().randomUUID(),d=()=>Date.now(),f=s){this.registry=a,this.probe=b,this.bootId=c,this.now=d,this.probeTimeoutMs=f}carryForward(a,b,c,d){let e=this.registry.readOnlySnapshot().quotaObservations[a][b];return e?.limits?{engine:a,accountId:b,authenticated:e.authenticated,authCheckedAt:Date.parse(e.authCheckedAt)||d,limits:e.limits,provenance:{source:"cache",reason:c,staleSince:e.provenance.staleSince??e.observedAt},observedAt:Date.parse(e.observedAt)||d,envelope:null,resetCredits:e.resetCredits??null}:{engine:a,accountId:b,authenticated:!1,authCheckedAt:d,limits:null,provenance:{source:"unavailable",reason:c,staleSince:null},observedAt:d,envelope:null}}async tick(a){await (0,h.Cu)(async()=>this.tickLocked(a))}async tickLocked(a){let b=this.now(),c=this.probe.list(a),d=await Promise.all(c.map(async c=>{try{let d=await Promise.race([this.probe.probe(a,c,b),t(this.probeTimeoutMs)]);if(d.authenticated&&!d.limits)return this.carryForward(a,c.id,d.provenance.reason??"quota-probe-empty",b);let e=this.registry.readOnlySnapshot().quotaObservations[a][c.id];if(d.authenticated&&e?.limits&&Date.parse(e.observedAt)>d.observedAt)return this.carryForward(a,c.id,d.provenance.reason??"quota-probe-older",b);return d}catch(e){let d=e instanceof Error&&"quota-probe-timeout"===e.message?"quota-probe-timeout":"quota-probe-failed";return this.carryForward(a,c.id,d,b)}}));if(d.forEach((b,d)=>{let e=c[d];(0,l.pq)({engine:a,accountId:b.accountId,accountKind:e.kind,envelope:b.envelope??null,probePhase:"account-rate-limits",provenance:b.provenance.source,reasonCode:b.provenance.reason})}),"claude"===a)for(let a of d)a.limits&&(0,m.Nj)(a.accountId,a.limits,a.observedAt,b);let e=d.map(b=>o({...b,engine:a},this.bootId));this.registry.recordQuotaEvaluation({engine:a,observations:e,signature:null,evidence:null,bootId:this.bootId,now:new Date(b).toISOString(),minimumGapMs:6e4})}}}};
1
+ "use strict";exports.id=6023,exports.ids=[6023],exports.modules={6023:(a,b,c)=>{c.r(b),c.d(b,{AccountMigrationController:()=>ah,accountControllerScan:()=>ae,createMigrationDeliveryPort:()=>X.M,reconcileAccountMigrationCycle:()=>aa,startAccountMigrationController:()=>aj,syncCompatibilityRouting:()=>ab});var d=c(78966),e=c(41617),f=c(68797),g=c(22962),h=c(10781),i=c(64487),j=c(12770),k=c(31421),l=c(73024),m=c.n(l),n=c(76760),o=c.n(n),p=c(98590),q=c(26474),r=c(36917),s=c(1849),t=c(36943),u=c(23921),v=c(93407),w=c(48161),x=c.n(w),y=c(63657),z=c(70547),A=c(3743),B=c(91724);function C(a,b){if(0!==a.tty)return null;let c=a.argv,d=c.indexOf("--output-last-message");return c.includes("exec")&&c.includes("--json")&&!(d<0)&&c.some(a=>/(^|[/\\])codex(?:-[^/\\]+)?$/i.test(a))?function(a,b){if(!a||!o().isAbsolute(a))return null;let c=o().relative(o().resolve(b),o().resolve(a));if(!c||o().isAbsolute(c)||".."===c||c.startsWith(`..${o().sep}`))return null;let d=c.split(o().sep);if(2!==d.length||!d[0])return null;let e=/^round-(\d+)-last-message\.md$/.exec(d[1]);return e?{flowId:d[0],round:Number(e[1])}:null}(c[d+1],b):null}function D(a){return a.argv.some(a=>/(^|[/\\])codex(?:-[^/\\]+)?$/i.test(a))&&(a.argv.includes("exec")||a.argv.includes("app-server"))}function E(a){return a.argv.some(a=>/(^|[/\\])claude(?:-[^/\\]+)?$/i.test(a))}let F=/(?:^|[-_.])mcp(?:[-_.]|$)/i,G=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*(?:@[^\s/]+)?$/i;function H(a){if(!a||!G.test(a))return!1;let b=a.startsWith("@")?a.indexOf("@",a.indexOf("/")+1):a.indexOf("@"),c=b>0?a.slice(0,b):a;return F.test(c.split("/").at(-1)??"")}function I(a,b){for(let c=b;c<a.length;c+=1){let b=a[c];if("--"===b)break;if("--package"===b||"-p"===b)return a[c+1];if(b.startsWith("--package="))return b.slice(10);if(!b.startsWith("-"))return b}}let J=new Set(["--cache-dir","--color","--config-file","--directory","--project","--python"]);function K(a){var b;if(0!==a.tty)return!1;let c=a.argv;if((b=c[0])&&F.test(o().basename(b)))return!0;let d=o().basename(c[0]??"").toLowerCase();return"npx"===d||"bunx"===d||"uvx"===d?H(I(c,1)):"npm"===d&&("exec"===c[1]||"x"===c[1])||("pnpm"===d||"yarn"===d)&&("dlx"===c[1]||"exec"===c[1])||"bun"===d&&"x"===c[1]?H(I(c,2)):"uv"===d&&function(a){let b=1;for(;b<a.length;){let c=a[b];if("run"===c)return H(I(a,b+1));if("tool"===c&&"run"===a[b+1])return H(I(a,b+2));if(J.has(c)){b+=2;continue}if(c.startsWith("-")){b+=1;continue}break}return!1}(c)}function L(a,b){let c=new Set;for(let b of a.hosts)c.add(b.panePid),c.add(b.agentPid);for(let b of a.panePids)c.add(b);for(let d of a.flows)if("headless"===d.reviewerMode)for(let a of d.rounds){if(!a.reviewerPid||a.verdict||a.error||a.terminalAt)continue;let d=b.get(a.reviewerPid);d&&(a.reviewerIdentity&&d.identity!==a.reviewerIdentity||c.add(a.reviewerPid))}let d=new Set,e=new Map(a.processes.map(a=>[a.pid,a.ppid]));for(let a of c)for(let b of(0,z.mO)(a,e))d.add(b);return d}function M(a){let b=new Map(a.processes.map(a=>[a.pid,a])),c=L(a,b),d=new Set(a.processes.filter(b=>b.ageMs>=a.thresholdMs&&function(a,b){let c=C(a,b.flowArtifactsRoot);if(!c||!a.identity)return!1;let d=b.flows.find(a=>a.id===c.flowId),e=d?.rounds.find(a=>a.n===c.round);return d?.reviewerMode==="headless"&&e?.reviewerPid===a.pid&&e.reviewerIdentity===a.identity}(b,a)&&!c.has(b.pid)).map(a=>a.pid)),e=[];for(let f of a.processes){if(!f.identity||f.ageMs<a.thresholdMs||c.has(f.pid))continue;if(d.has(f.pid)){e.push({pid:f.pid,identity:f.identity,kind:"codex-exec"});continue}if(D(f)||E(f)||!K(f))continue;let g=function(a,b){let c=[],d=new Set([a]),e=b.get(a)?.ppid??0;for(;e>0&&!d.has(e);)c.push(e),d.add(e),e=b.get(e)?.ppid??0;return c}(f.pid,b);!(g.some(a=>d.has(a)||K(b.get(a)??{argv:[],tty:0}))||g.some(a=>D(b.get(a)??{argv:[]}))||g.some(a=>E(b.get(a)??{argv:[]})))&&(g.some(a=>1!==a&&b.has(a))||e.push({pid:f.pid,identity:f.identity,kind:"orphan-mcp"}))}return e.sort((a,b)=>a.pid-b.pid)}let N={listProcesses:()=>y.B.listProcesses(),ppidMap:()=>y.B.ppidMap(),processIdentity:a=>y.B.processIdentity(a),processAgeMs:function(a,b){if(!b)return null;let c=b.slice(b.indexOf(":")+1);if("linux"===y.B.name&&/^\d+$/.test(c))return Math.max(0,1e3*x().uptime()-10*Number(c));let d=Date.parse(c);return Number.isFinite(d)?Math.max(0,Date.now()-d):null},loadFlows:p.loadFlows,readHosts:async()=>(await (0,i.oe)(!0)).hosts,readPanePids:async()=>{let a=await (0,A.m7)(!0);return"failure"===a.kind?null:"available"===a.kind?[...a.panes.keys()]:[]},signalProcess:process.kill,setTimeout:(a,b)=>setTimeout(a,b)};function O(a){let b=new Set;for(let c of a)if("headless"===c.reviewerMode)for(let a of c.rounds)!a.reviewerPid||a.verdict||a.error||a.terminalAt||b.add(a.reviewerPid);return b}function P(a,b){let c=b.loadFlows(),d=O(c),e=b.ppidMap(),f=b.listProcesses().map(a=>({...a,ppid:e.get(a.pid)??0,identity:d.has(a.pid)?b.processIdentity(a.pid):null,ageMs:0})),g=new Map(f.map(a=>[a.pid,a]));return{protectedPids:function(a,b){let c=L(a,b),d=new Map(a.processes.map(a=>[a.pid,a.ppid]));for(let b of a.processes)if(D(b)||E(b))for(let a of(0,z.mO)(b.pid,d))c.add(a);return c}({...a,flows:c,processes:f},g),ppids:e}}function Q(a,b,c=new Set){let d=a.ppidMap();return a.listProcesses().map(e=>{let f=c.has(e.pid)||null!==C(e,b)||K(e),g=f?a.processIdentity(e.pid):null;return{...e,ppid:d.get(e.pid)??0,identity:g,ageMs:f?a.processAgeMs(e.pid,g)??0:0}})}async function R(a){let b={...N,...a.dependencies},c=a.thresholdMs??function(a=process.env){let b=Number(a.LLV_HEADLESS_REAPER_THRESHOLD_MS);return Number.isFinite(b)&&b>=6e4?b:72e5}(),d=a.flowArtifactsRoot??(0,B.BQ)("flows"),e=await b.readPanePids();if(null===e)return{candidates:0,signaled:0};let f=a.flows??b.loadFlows(),g=M({processes:Q(b,d,O(f)),flows:f,hosts:a.hosts,panePids:e,flowArtifactsRoot:d,thresholdMs:c}),h=0;for(let e of g){let[f,g,i]=await Promise.all([b.readHosts(),Promise.resolve(b.loadFlows()),b.readPanePids()]);if(null===i)continue;let j={processes:Q(b,d,O(g)),flows:g,hosts:f,panePids:i,flowArtifactsRoot:d,thresholdMs:c},k=M(j).find(a=>a.pid===e.pid&&a.identity===e.identity&&a.kind===e.kind);if(k){if("codex-exec"===k.kind){if(!function(a,b,c){if(b.processIdentity(a.pid)!==a.identity)return!1;try{b.signalProcess(-a.pid,"SIGTERM")}catch{if(b.processIdentity(a.pid)!==a.identity)return!1;try{b.signalProcess(a.pid,"SIGTERM")}catch{return!1}}let d=b.setTimeout(()=>{try{b.signalProcess(-a.pid,"SIGKILL")}catch{}},c);return d.unref?.(),!0}(k,b,a.shutdownGraceMs??3e3))continue}else if(!function(a,b,c,d){let e,f=new Map(b.processes.map(a=>[a.pid,a.identity]));try{e=P(b,c)}catch{return!1}let{ppids:g,protectedPids:h}=e,i=(0,z.mO)(a.pid,g).reverse();if(i.some(a=>h.has(a)))return!1;let j=i.map(a=>{let b=f.get(a)??null,d=c.processIdentity(a);return{pid:a,observedIdentity:b,expectedIdentity:d,eligible:!!(d&&(!b||b===d))}}),k=j.find(b=>b.pid===a.pid);if(k?.observedIdentity!==a.identity||k.expectedIdentity!==a.identity)return!1;for(let a of j)if(a.eligible&&a.expectedIdentity&&c.processIdentity(a.pid)===a.expectedIdentity)try{c.signalProcess(a.pid,"SIGTERM")}catch{}let l=c.setTimeout(()=>{let a;try{a=P(b,c).protectedPids}catch{return}for(let b of j)if(!a.has(b.pid)&&b.eligible&&b.expectedIdentity&&c.processIdentity(b.pid)===b.expectedIdentity)try{c.signalProcess(b.pid,"SIGKILL")}catch{}},d);return l.unref?.(),!0}(k,j,b,a.shutdownGraceMs??3e3))continue;h+=1}}return{candidates:g.length,signaled:h}}var S=c(54072),T=c(23784),U=c(46825),V=c(92806),W=c(59371),X=c(54606),Y=c(81533),Z=c(91596),$=c(90169);let _=(0,X.M)();async function aa(a,b,c=new Z.wh,d=_){a.compactDeliveryReservations(),await (0,j.Lh)();let e=Promise.all([b.tick("claude"),b.tick("codex")]);try{await (0,W.c0)(c,d,a)}finally{await e}}function ab(a){let b=a.readOnlySnapshot().engineRouting,c=(()=>{try{return!!(b.claude.activeAccountId&&b.claude.activeAccountId!==(0,d.No)())}catch{return!0}})(),f=(()=>{try{return!!(b.codex.activeAccountId&&b.codex.activeAccountId!==(0,e.O)())}catch{return!0}})();(c||f)&&(0,g.oV)(()=>{let b=a.readOnlySnapshot(),c=b.engineRouting.claude.activeAccountId,f=b.engineRouting.codex.activeAccountId;try{c&&c!==(0,d.No)()&&(0,d.ss)(c)}catch{}try{f&&f!==(0,e.O)()&&(0,e.b0)(f)}catch{}})}async function ac(){let a=(0,e.J0)();await Promise.all((0,e.Sq)().map(async b=>{if("managed"===b.kind){b.loginPane&&!a&&(0,e.yG)(b.id,null),(0,f.VD)().peekLogin(b).attemptState&&await (0,f.VD)().loginSnapshot(b);return}if(!b.loginPane)return;let c=await (0,A.RZ)(b.loginPane.paneId);(0,e.hg)(b.authPresent,b.loginPane,c).clear&&!a&&(0,e.yG)(b.id,null)}))}let ad={files:[],projectCatalog:[],complete:!1};function ae(a=process.env,b=s.TF,c=t.wj){return"1"!==a.LLV_ACCOUNT_CONTROLLER_INVENTORY_WORKER?c():Promise.resolve(b()??ad)}async function af(a,b){await ac();let c=await (0,i.oe)(!0,b);try{await (0,v.RU)({registry:a,hosts:c.hosts,files:b})}catch(a){console.error("[agent reaper] lifecycle reconciliation failed",a)}try{let a=await R({hosts:c.hosts,flows:(0,p.loadFlows)()});a.signaled>0&&console.warn(`[headless process reaper] terminated ${a.signaled} stale process group(s)`)}catch(a){console.error("[headless process reaper] reconciliation failed",a)}}let ag={scan:()=>ae(),reconcileInventory:W.VB,reconcileFlowOwnership:p.reconcileFlowConversationOwnershipCooperatively,reconcileWorkflowOwnership:U.reconcileWorkflowConversationOwnershipCooperatively,reconcileHandoffOwnership:q.d5,reconcileFiles:r.CR,reconcileRuntime:af,reconcileTaskStore:function(a,b){let c=(0,h.oP)(a.readOnlySnapshot());(0,T.mutateTasks)(a=>{let d=(0,S.fq)(b,a,{pathForPanePid:(a,b)=>(0,S.iI)(b,a,u.Ib),panePidAlive:u.pl,conversationIdForPath:a=>c.conversationForPath(a)?.id??null,canonicalConversationId:a=>a.startsWith("conversation_")?c.canonicalConversationId(a):null,pathForConversationId:a=>a.startsWith("conversation_")?c.conversation(a)?.generations.at(-1)?.path??null:null});return{tasks:d.dirty?d.tasks:void 0,result:void 0}})},syncRouting:ab,reconcileMigrationCycle:aa};class ah{constructor(a=(0,h.agentRegistry)(),b=new $.fi(a),c=null,d={}){this.registry=a,this.quota=b,this.cycle=c,this.running=null,this.trailingCycleRequested=!1,this.ports={...ag,...d}}tick(){return this.running?this.trailingCycleRequested=!0:this.running=this.runRequestedCycles().finally(()=>{this.running=null}),this.running}poll(){return this.running?this.running:this.tick()}async runRequestedCycles(){let a=null;do{this.trailingCycleRequested=!1;try{await (this.cycle?.()??this.run())}catch(b){a??=b}}while(this.trailingCycleRequested);if(a)throw a}async run(){let{files:a,complete:b}=await this.ports.scan();if(!b)return;await (0,j.Lh)();let c=await this.ports.reconcileInventory(this.registry,a);await (0,j.Lh)();let d=(0,h.oP)(c);await this.ports.reconcileFlowOwnership(d),await this.ports.reconcileWorkflowOwnership(d),await this.ports.reconcileHandoffOwnership(d),await (0,j.Lh)(),await this.ports.reconcileFiles(a),await (0,j.Lh)(),await this.ports.reconcileRuntime(this.registry,a),await (0,j.Lh)(),await this.ports.reconcileTaskStore(this.registry,a),await (0,j.Lh)(),await this.ports.syncRouting(this.registry),await this.ports.reconcileMigrationCycle(this.registry,this.quota)}}let ai=globalThis;async function aj(){await (0,j.Lh)();let a=(0,h.agentRegistry)(),b=new $.fi(a);if("1"===process.env.LLV_ACCOUNT_CONTROLLER_INVENTORY_WORKER)return void function(a,b){let c=ai.__llvAccountMigrationController??=new ah(a,b);if(!ai.__llvAccountMigrationTimer){let a=setInterval(()=>void c.poll().catch(a=>{console.error("[account migration controller] durable reconciliation tick failed",a)}),6e4);a.unref?.(),ai.__llvAccountMigrationTimer=a}if(!ai.__llvAccountMigrationBootstrapStarted){ai.__llvAccountMigrationBootstrapStarted=!0;let a=setTimeout(()=>{ai.__llvAccountMigrationInitialTimer=void 0,c.poll().catch(a=>{console.error("[account migration controller] initial inventory reconciliation failed",a)})},1e3);a.unref?.(),ai.__llvAccountMigrationInitialTimer=a}}(a,b);let c=ai.__llvAccountMigrationFastController??=new ah(a,b,()=>aa(a,b));(0,Y.c)(()=>c.tick()),c.tick().catch(a=>{console.error("[account migration controller] initial durable reconciliation failed",a)}),function a(){if(ai.__llvAccountMigrationInventoryWorker)return;let b=function(a=process.cwd()){let b=o().join(a,"src/lib/accountMigrationController.worker.ts"),c=o().join(a,".next/server/account-migration-controller-worker.js");return m().existsSync(b)&&m().existsSync("/usr/local/bin/bun-container")?{executable:"/usr/local/bin/bun-container",workerPath:b}:m().existsSync(c)?{executable:process.versions.bun?process.execPath:process.env.LLV_BUN_EXECUTABLE||"bun",workerPath:c}:{executable:process.execPath,workerPath:b}}(),c=m().existsSync("/usr/bin/nice"),d=(0,k.spawn)(c?"/usr/bin/nice":b.executable,[...c?["-n","10",b.executable]:[],b.workerPath],{cwd:process.cwd(),stdio:["ignore","inherit","inherit"],env:{...(0,V.Fd)(process.env),LLV_ACCOUNT_CONTROLLER_INVENTORY_WORKER:"1"}});ai.__llvAccountMigrationInventoryWorker=d,d.once("error",a=>{console.error("[account migration controller] inventory worker failed to start",a)}),d.once("exit",(b,c)=>{if(ai.__llvAccountMigrationInventoryWorker===d&&(ai.__llvAccountMigrationInventoryWorker=void 0),ai.__llvAccountMigrationInventoryWorkerRestart)return;console.error("[account migration controller] inventory worker exited",{code:b,signal:c});let e=setTimeout(()=>{ai.__llvAccountMigrationInventoryWorkerRestart=void 0,a()},1e3);e.unref?.(),ai.__llvAccountMigrationInventoryWorkerRestart=e})}()}},54072:(a,b,c)=>{c.d(b,{fq:()=>j,iI:()=>i});var d=c(76760),e=c.n(d);function f(a){return!("claude-projects"!==a.root||!a.path.endsWith(".jsonl")||a.path.includes(e().sep+"subagents"+e().sep))&&2===a.name.split(e().sep).length}function g(a,b){return h(a,new Map(b.map(a=>[a.path,a])))}function h(a,b){let c=b.get(a);if(!c?.parent||c.handoff)return null;let d=b.get(c.parent);return d&&f(c)&&f(d)?d.path:null}function i(a,b,c){if(!Number.isInteger(b)||b<=0)return null;for(let d of a){if(null===d.pid)continue;let a=new Set;for(let e=d.pid;null!==e&&!a.has(e)&&(a.add(e),!(a.size>15));e=c(e))if(e===b)return d.path}return null}function j(a,b,c={}){let d=!1,e=new Map(a.map(a=>[a.path,a])),f=c.successorForPath?c:{...c,successorForPath:a=>h(a,e)},i=b.map(b=>{let c=!1,h=b.assignments.map(b=>{let d=function(a,b,c,d){let e=a,f=!1;if(e.conversationId){let a=d.canonicalConversationId?.(e.conversationId)??e.conversationId;a!==e.conversationId&&(e={...e,conversationId:a},f=!0)}if(e.path&&!e.conversationId){let a=d.conversationIdForPath?.(e.path)??c.get(e.path)?.conversationId??null;a&&(e={...e,conversationId:a},f=!0)}let h=d.now?.()??new Date().toISOString();if(e.path){let a=(e.conversationId?d.pathForConversationId?.(e.conversationId)??null:null)??function(a,b,c){let d=c??g,e=new Set([a]),f=a,h=null;for(;;){let a=d(f,b);if(!a||e.has(a))return h;h=a,f=a,e.add(f)}}(e.path,b,d.successorForPath);if(a&&a!==e.path){let b="handoff"===e.state||"linked"===e.state?e.state:"delivered";return{assignment:{...e,path:a,state:b,error:null,at:h},dirty:!0}}return{assignment:e,dirty:f}}if(null!==e.panePid){let a=d.pathForPanePid?.(e.panePid,b)??null;if(a){let b=d.conversationIdForPath?.(a)??c.get(a)?.conversationId??null;return{assignment:{...e,path:a,...b?{conversationId:b}:{},state:"delivered",error:null,at:h},dirty:!0}}if(!(d.panePidAlive?.(e.panePid)??!0)&&"failed"!==e.state)return{assignment:{...e,state:"failed",error:"agent did not start",at:h},dirty:!0}}return{assignment:e,dirty:f}}(b,a,e,f);return d.dirty&&(c=!0),d.assignment});return c?(d=!0,{...b,assignments:h,updatedAt:f.now?.()??new Date().toISOString()}):b});return{tasks:d?i:b,dirty:d}}},54606:(a,b,c)=>{c.d(b,{M:()=>f});var d=c(10167),e=c(34083);function f(a={}){let b=a.structuredDelivery??e.deliverHeldStructuredMessage,c=a.legacyDelivery??(async({delivery:a,path:b,clientMessageId:c})=>{if("runtime-images"===a.payloadKind)return"delivery-uncertain";let e=await (0,d.Ku)({pid:null,path:b,text:a.text,images:[],clientMessageId:c,reservedDeliveryId:a.id,...a.command.origin?{origin:a.command.origin}:{}});return(0,d.$n)(e)}),g=({delivery:a,path:c,clientMessageId:d})=>b({conversationId:a.conversationId,runtimeConversationId:a.runtimeConversationId,path:c,deliveryId:a.id,clientMessageId:d,text:a.text,command:a.command,...a.runtimeImages.length?{imageRefs:a.runtimeImages}:{}});return{deliver:async a=>await g(a)??c(a),reconcileUncertain:async a=>await g(a)??"delivery-uncertain"}}},90169:(a,b,c)=>{c.d(b,{GU:()=>n,W7:()=>s,_W:()=>t,d4:()=>r,fi:()=>u,wS:()=>o});var d=c(77598),e=c.n(d),f=c(78966),g=c(14565),h=c(22962),i=c(41617),j=c(68797),k=c(10781),l=c(26784),m=c(58996);async function n(a,b,c){let d=await (0,m.Ki)({account:a,liveReader:async()=>b.rateLimits,now:()=>c});return{engine:"codex",accountId:a.id,authenticated:b.authenticated,authCheckedAt:c,limits:d.data,provenance:{source:d.source,reason:b.authenticated?d.reason:"unsupported-account-type",staleSince:null},observedAt:c,envelope:b.envelope,resetCredits:function(a){if(!a)return null;let b=(a.credits??[]).filter(a=>"available"===a.status&&null!==a.expiresAt).map(a=>a.expiresAt);return{availableCount:a.availableCount,expiresAt:b.length?Math.min(...b):null}}(b.resetCredits)}}function o(a,b){return{engine:a.engine,accountId:a.accountId,authenticated:a.authenticated,authCheckedAt:new Date(a.authCheckedAt??a.observedAt).toISOString(),limits:a.limits,provenance:a.provenance,observedAt:new Date(a.observedAt).toISOString(),bootId:b,resetCredits:a.resetCredits??null}}async function p(a,b,c={}){let d=c.authStatus??g.kR.status,e=await d(a.home).catch(()=>({loggedIn:!1,indeterminate:!0}));if(e.indeterminate)throw Error("quota-auth-indeterminate");if(!e.loggedIn)return{engine:"claude",accountId:a.id,authenticated:!1,authCheckedAt:b,limits:null,provenance:{source:"unavailable",reason:"live authentication check failed",staleSince:null},observedAt:b};let f=await (0,m.WB)(a,{now:()=>b,force:c.force});return{engine:"claude",accountId:a.id,authenticated:!0,authCheckedAt:b,limits:f.data,provenance:{source:f.provenance.source,reason:f.provenance.reason,staleSince:f.provenance.staleSince},observedAt:f.observedAt??b}}let q={list:a=>"claude"===a?(0,f.Fn)():(0,i.Sq)(),active:a=>"claude"===a?(0,f.No)():(0,i.O)(),async probe(a,b,c,d){if("claude"===a)return await p(b,c,d);try{let a=await (0,j.VD)().probeQuota(b);return await n(b,a,c)}catch(e){let d=await (0,m.Ki)({account:b,liveReader:async()=>Promise.reject(e)});if(!d.data)throw e;return{engine:a,accountId:b.id,authenticated:!1,authCheckedAt:c,limits:d.data,provenance:{source:d.source,reason:d.reason,staleSince:null},observedAt:c,envelope:null}}}},r=q,s=15e3;function t(a){return new Promise((b,c)=>{let d=setTimeout(()=>c(Error("quota-probe-timeout")),a);d.unref?.()})}class u{constructor(a=(0,k.agentRegistry)(),b=q,c=e().randomUUID(),d=()=>Date.now(),f=s){this.registry=a,this.probe=b,this.bootId=c,this.now=d,this.probeTimeoutMs=f}carryForward(a,b,c,d){let e=this.registry.readOnlySnapshot().quotaObservations[a][b];return e?.limits?{engine:a,accountId:b,authenticated:e.authenticated,authCheckedAt:Date.parse(e.authCheckedAt)||d,limits:e.limits,provenance:{source:"cache",reason:c,staleSince:e.provenance.staleSince??e.observedAt},observedAt:Date.parse(e.observedAt)||d,envelope:null,resetCredits:e.resetCredits??null}:{engine:a,accountId:b,authenticated:!1,authCheckedAt:d,limits:null,provenance:{source:"unavailable",reason:c,staleSince:null},observedAt:d,envelope:null}}async tick(a){await (0,h.Cu)(async()=>this.tickLocked(a))}async tickLocked(a){let b=this.now(),c=this.probe.list(a),d=await Promise.all(c.map(async c=>{try{let d=await Promise.race([this.probe.probe(a,c,b),t(this.probeTimeoutMs)]);if(d.authenticated&&!d.limits)return this.carryForward(a,c.id,d.provenance.reason??"quota-probe-empty",b);let e=this.registry.readOnlySnapshot().quotaObservations[a][c.id];if(d.authenticated&&e?.limits&&Date.parse(e.observedAt)>d.observedAt)return this.carryForward(a,c.id,d.provenance.reason??"quota-probe-older",b);return d}catch(e){let d=e instanceof Error&&"quota-probe-timeout"===e.message?"quota-probe-timeout":"quota-probe-failed";return this.carryForward(a,c.id,d,b)}}));if(d.forEach((b,d)=>{let e=c[d];(0,l.pq)({engine:a,accountId:b.accountId,accountKind:e.kind,envelope:b.envelope??null,probePhase:"account-rate-limits",provenance:b.provenance.source,reasonCode:b.provenance.reason})}),"claude"===a)for(let a of d)a.limits&&(0,m.Nj)(a.accountId,a.limits,a.observedAt,b);let e=d.map(b=>o({...b,engine:a},this.bootId));this.registry.recordQuotaEvaluation({engine:a,observations:e,signature:null,evidence:null,bootId:this.bootId,now:new Date(b).toISOString(),minimumGapMs:6e4})}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6211,exports.ids=[6211],exports.modules={46211:(a,b,c)=>{c.r(b),c.d(b,{UNRESOLVED_PROJECT:()=>l,UNRESOLVED_PROJECT_NAME:()=>m,directoryProjectId:()=>q,displayNameFromProjectIdentity:()=>r,isCanonicalProjectId:()=>n,isRepositoryProjectId:()=>o,localRepositoryProjectId:()=>y,projectIdentityFromDirectory:()=>p,projectIdentityFromRemote:()=>x,projectIdentityFromRepositoryRoot:()=>A,repositoryRootForPath:()=>u});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(48161),i=c.n(h),j=c(76760),k=c.n(j);let l="project_unresolved",m="Unresolved project";function n(a){return/^(?:repo|dir)-[0-9a-f]{32}$/.test(a)}function o(a){return/^repo-[0-9a-f]{32}$/.test(a)}function p(a){let b=(()=>{try{return g().realpathSync.native(a)}catch{return k().resolve(a)}})(),c=k().basename(b);if(!c||b===k().sep)return null;let d=b===i().homedir()?`home-${c}`:c;return{project:q(b),displayName:d}}function q(a){return`dir-${e().createHash("sha256").update(`dir:${a}`).digest("hex").slice(0,32)}`}function r(a){return a===l?m:a}function s(a){try{return g().statSync(k().join(a,"HEAD")).isFile()}catch{return!1}}function t(a){let b=k().join(a,".git");try{let c=g().lstatSync(b);if(c.isDirectory())return s(b)?b:null;if(!c.isFile())return null;let d=g().readFileSync(b,"utf8").slice(0,4096),e=/^gitdir:\s*(.+?)\s*$/im.exec(d)?.[1];if(!e)return null;let f=k().resolve(a,e);return s(f)?f:null}catch{return null}}function u(a){let b=k().resolve(a);for(;;){if(t(b))return b;let a=k().dirname(b);if(a===b)return null;b=a}}function v(a,b){let c=/^[a-z][a-z0-9+.-]*:\/\//i.test(a)?null:/^(?:[^@\s]+@)?([^:/\s]+):(.+)$/.exec(a);if(c){let a=c[1].toLowerCase(),b=c[2].replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return b?`${a}/${b}`:null}try{let b=new URL(a);if("file:"===b.protocol){let a=k().resolve(b.pathname).replace(/\.git$/i,"");return`file:${a}`}let c=b.hostname.toLowerCase(),d=b.port?`:${b.port}`:"",e=b.pathname.replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return c&&e?`${c}${d}/${e}`:null}catch{let c=k().resolve(b,a).replace(/\.git$/i,"");return`file:${c}`}}function w(a){let b=a.replace(/^file:/,"").split("/").filter(Boolean).at(-1)?.trim()||null;if(!b)return null;let c=e().createHash("sha256").update(a).digest("hex").slice(0,32);return{project:`repo-${c}`,displayName:b,canonicalRemote:a}}function x(a,b){let c=a.trim();if(!c)return null;let d=v(c,b);return d?w(d):null}function y(a){return w(`local:${z(a)}`)?.project??null}function z(a){try{return g().realpathSync.native(a)}catch{return k().resolve(a)}}function A(a){let b,c=t(a);if(!c)return null;try{b=g().readFileSync(k().join(function(a){try{let b=g().readFileSync(k().join(a,"commondir"),"utf8").trim();return b?k().resolve(a,b):a}catch{return a}}(c),"config"),"utf8")}catch{return null}let d=function(a){let b=!1;for(let c of a.split(/\r?\n/)){let a=/^\s*\[\s*remote\s+"([^"]+)"\s*\]\s*$/i.exec(c);if(a){b="origin"===a[1];continue}if(/^\s*\[/.test(c)){b=!1;continue}if(!b)continue;let d=/^\s*url\s*=\s*(.*?)\s*$/i.exec(c)?.[1],e=d?.replace(/\s+[;#].*$/,"").trim();if(e)return e}return null}(b),e=d?v(d,a):`local:${z(a)}`;return e?w(e):null}}};
@@ -1,2 +1 @@
1
- "use strict";exports.id=6289,exports.ids=[6289],exports.modules={16289:(a,b,c)=>{c.r(b),c.d(b,{FLOW_PIPELINE_WATCHDOG_MS:()=>p,FlowPipelineController:()=>s,controllerFileScan:()=>r,flowPipelineController:()=>v,startFlowPipelineController:()=>w,startFlowPipelineControllerRuntime:()=>t,writeFlowPipelineControllerHeartbeat:()=>q});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(8872),l=c(1849),m=c(24739),n=c(48289),o=c(13896);let p=3e4;function q(a,b=(0,j.BQ)("flow-pipeline-controller-heartbeat.json")){g().mkdirSync(i().dirname(b),{recursive:!0,mode:448});let c=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`);g().writeFileSync(c,`${JSON.stringify(a,null,2)}
2
- `,{encoding:"utf8",mode:384}),g().renameSync(c,b)}async function r(){let a=await (0,l.Nm)();return{files:a.snapshot.files,complete:a.snapshot.complete}}class s{constructor(a,b={}){this.running=null,this.trailingCycleRequested=!1,this.trailingTrigger="signal",this.cycle=0,this.lastArchiveSweepAt=0,this.activePhases=new Map,this.ports={...a,scan:a.scan??(async()=>({files:[],complete:!0})),now:a.now??Date.now,scheduleTimeout:a.scheduleTimeout??((a,b)=>setTimeout(a,b)),clearTimeout:a.clearTimeout??(a=>clearTimeout(a)),publishHeartbeat:a.publishHeartbeat??(()=>void 0),log:a.log??((a,b)=>{void 0===b?console.error(a):console.error(a,b)})},this.phaseDeadlineMs=b.phaseDeadlineMs??15e3,this.maxPasses=b.maxPasses??8}tick(a="signal"){return this.running?(this.trailingCycleRequested=!0,this.trailingTrigger=a):this.running=this.runRequestedCycles(a).finally(()=>{if(this.running=null,this.trailingCycleRequested)return this.tick(this.trailingTrigger)}),this.running}poll(){return this.running??this.tick("watchdog")}recover(){return this.tick("startup")}async runRequestedCycles(a){let b=a;do this.trailingCycleRequested=!1,await this.runCycle(b),b=this.trailingTrigger;while(this.trailingCycleRequested)}async runCycle(a){let b=++this.cycle,c=0,d=[],e=!1;for(let f=1;f<=this.maxPasses;f+=1){c=f;let g=await this.runPhase("pipelines",b,f,a,()=>this.ports.tickPipelines(d)),h=1===f?await this.runPhase("scan",b,f,a,this.ports.scan):null;if(h?.state==="failed")throw h.error;h?.state==="completed"&&h.value.complete&&(d=h.value.files,e=!0);let i=e?await this.runPhase("flows",b,f,a,()=>this.ports.tickFlows(d)):null,j="failed"===g.state?g.error:i?.state==="failed"?i.error:null;if(null!==j)throw j;if(!("completed"===g.state&&g.value.changed||i?.state==="completed"&&i.value.changed||h?.state==="completed"&&h.value.complete))break}this.sweepSettledArchive();let f=[...this.activePhases.entries()].sort((a,b)=>a[1].startedAt-b[1].startedAt)[0];f?this.publish({cycle:b,pass:c,trigger:a,phase:f[0],state:"blocked",startedAt:f[1].startedAt}):this.publish({cycle:b,pass:c,trigger:a,phase:"idle",state:"idle",startedAt:this.ports.now()})}sweepSettledArchive(){let a=this.ports.now();a-this.lastArchiveSweepAt<36e5||(this.lastArchiveSweepAt=a,(0,o.archiveSettledPipelines)(a).then(a=>{a>0&&this.ports.log(`[flow pipeline controller] archived ${a} settled pipeline record(s)`)}).catch(a=>{this.ports.log("[flow pipeline controller] settled pipeline archive sweep failed",a)}))}async runPhase(a,b,c,d,e){let f=this.activePhases.get(a);if(f)return this.publish({cycle:b,pass:c,trigger:d,phase:a,state:"blocked",startedAt:f.startedAt}),{state:"blocked"};let g=this.ports.now();this.publish({cycle:b,pass:c,trigger:d,phase:a,state:"running",startedAt:g});let h=Promise.resolve().then(e),i={startedAt:g,promise:h};this.activePhases.set(a,i),h.then(()=>{this.activePhases.get(a)===i&&this.activePhases.delete(a)},()=>{this.activePhases.get(a)===i&&this.activePhases.delete(a)});let j=()=>{},k=new Promise(a=>{j=()=>a({state:"timed-out"})}),l=this.ports.scheduleTimeout(j,this.phaseDeadlineMs),m=await Promise.race([h.then(a=>({state:"completed",value:a}),a=>({state:"failed",error:a})),k]);return this.ports.clearTimeout(l),this.publish({cycle:b,pass:c,trigger:d,phase:a,state:m.state,startedAt:g}),"failed"===m.state?this.ports.log(`[flow pipeline controller] ${a} phase failed`,m.error):"timed-out"===m.state&&this.ports.log(`[flow pipeline controller] ${a} phase exceeded its deadline`),m}publish(a){let b=this.ports.now();try{this.ports.publishHeartbeat({schemaVersion:1,controller:"flow-pipeline",cycle:a.cycle,pass:a.pass,trigger:a.trigger,phase:a.phase,state:a.state,phaseStartedAt:new Date(a.startedAt).toISOString(),updatedAt:new Date(b).toISOString(),ageMs:Math.max(0,b-a.startedAt),deadlineMs:this.phaseDeadlineMs})}catch(a){this.ports.log("[flow pipeline controller] durable heartbeat publication failed",a)}}}function t(a,b,c){b.__llvFlowPipelineUnregister?.(),b.__llvFlowPipelineUnregister=c.registerTick(()=>a.tick("signal")),b.__llvFlowPipelineWatchdog||(b.__llvFlowPipelineWatchdog=c.scheduleInterval(()=>void a.poll().catch(a=>{c.log("[flow pipeline controller] watchdog reconciliation failed",a)}),p),b.__llvFlowPipelineWatchdog.unref?.()),a.recover().catch(a=>{c.log("[flow pipeline controller] startup reconciliation failed",a)})}let u=globalThis;function v(){return u.__llvFlowPipelineController??=new s({scan:r,tickPipelines:n.n6,tickFlows:k.zn,publishHeartbeat:q})}function w(){t(v(),u,{registerTick:m.n_,scheduleInterval:(a,b)=>setInterval(a,b),log:(a,b)=>console.error(a,b)})}}};
1
+ "use strict";exports.id=6289,exports.ids=[6289],exports.modules={16289:(a,b,c)=>{c.r(b),c.d(b,{FLOW_PIPELINE_WATCHDOG_MS:()=>o,FlowPipelineController:()=>r,controllerFileScan:()=>q,flowPipelineController:()=>u,startFlowPipelineController:()=>v,startFlowPipelineControllerRuntime:()=>s,writeFlowPipelineControllerHeartbeat:()=>p});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(91724),i=c(65154),j=c(8872),k=c(1849),l=c(24739),m=c(48289),n=c(13896);let o=3e4;function p(a,b=(0,h.BQ)("flow-pipeline-controller-heartbeat.json")){e().mkdirSync(g().dirname(b),{recursive:!0,mode:448}),(0,i.fZ)(b,a)}async function q(){let a=await (0,k.Nm)();return{files:a.snapshot.files,complete:a.snapshot.complete}}class r{constructor(a,b={}){this.running=null,this.trailingCycleRequested=!1,this.trailingTrigger="signal",this.cycle=0,this.lastArchiveSweepAt=0,this.activePhases=new Map,this.ports={...a,scan:a.scan??(async()=>({files:[],complete:!0})),now:a.now??Date.now,scheduleTimeout:a.scheduleTimeout??((a,b)=>setTimeout(a,b)),clearTimeout:a.clearTimeout??(a=>clearTimeout(a)),publishHeartbeat:a.publishHeartbeat??(()=>void 0),log:a.log??((a,b)=>{void 0===b?console.error(a):console.error(a,b)})},this.phaseDeadlineMs=b.phaseDeadlineMs??15e3,this.maxPasses=b.maxPasses??8}tick(a="signal"){return this.running?(this.trailingCycleRequested=!0,this.trailingTrigger=a):this.running=this.runRequestedCycles(a).finally(()=>{if(this.running=null,this.trailingCycleRequested)return this.tick(this.trailingTrigger)}),this.running}poll(){return this.running??this.tick("watchdog")}recover(){return this.tick("startup")}async runRequestedCycles(a){let b=a;do this.trailingCycleRequested=!1,await this.runCycle(b),b=this.trailingTrigger;while(this.trailingCycleRequested)}async runCycle(a){let b=++this.cycle,c=0,d=[],e=!1;for(let f=1;f<=this.maxPasses;f+=1){c=f;let g=await this.runPhase("pipelines",b,f,a,()=>this.ports.tickPipelines(d)),h=1===f?await this.runPhase("scan",b,f,a,this.ports.scan):null;if(h?.state==="failed")throw h.error;h?.state==="completed"&&h.value.complete&&(d=h.value.files,e=!0);let i=e?await this.runPhase("flows",b,f,a,()=>this.ports.tickFlows(d)):null,j="failed"===g.state?g.error:i?.state==="failed"?i.error:null;if(null!==j)throw j;if(!("completed"===g.state&&g.value.changed||i?.state==="completed"&&i.value.changed||h?.state==="completed"&&h.value.complete))break}this.sweepSettledArchive();let f=[...this.activePhases.entries()].sort((a,b)=>a[1].startedAt-b[1].startedAt)[0];f?this.publish({cycle:b,pass:c,trigger:a,phase:f[0],state:"blocked",startedAt:f[1].startedAt}):this.publish({cycle:b,pass:c,trigger:a,phase:"idle",state:"idle",startedAt:this.ports.now()})}sweepSettledArchive(){let a=this.ports.now();a-this.lastArchiveSweepAt<36e5||(this.lastArchiveSweepAt=a,(0,n.archiveSettledPipelines)(a).then(a=>{a>0&&this.ports.log(`[flow pipeline controller] archived ${a} settled pipeline record(s)`)}).catch(a=>{this.ports.log("[flow pipeline controller] settled pipeline archive sweep failed",a)}))}async runPhase(a,b,c,d,e){let f=this.activePhases.get(a);if(f)return this.publish({cycle:b,pass:c,trigger:d,phase:a,state:"blocked",startedAt:f.startedAt}),{state:"blocked"};let g=this.ports.now();this.publish({cycle:b,pass:c,trigger:d,phase:a,state:"running",startedAt:g});let h=Promise.resolve().then(e),i={startedAt:g,promise:h};this.activePhases.set(a,i),h.then(()=>{this.activePhases.get(a)===i&&this.activePhases.delete(a)},()=>{this.activePhases.get(a)===i&&this.activePhases.delete(a)});let j=()=>{},k=new Promise(a=>{j=()=>a({state:"timed-out"})}),l=this.ports.scheduleTimeout(j,this.phaseDeadlineMs),m=await Promise.race([h.then(a=>({state:"completed",value:a}),a=>({state:"failed",error:a})),k]);return this.ports.clearTimeout(l),this.publish({cycle:b,pass:c,trigger:d,phase:a,state:m.state,startedAt:g}),"failed"===m.state?this.ports.log(`[flow pipeline controller] ${a} phase failed`,m.error):"timed-out"===m.state&&this.ports.log(`[flow pipeline controller] ${a} phase exceeded its deadline`),m}publish(a){let b=this.ports.now();try{this.ports.publishHeartbeat({schemaVersion:1,controller:"flow-pipeline",cycle:a.cycle,pass:a.pass,trigger:a.trigger,phase:a.phase,state:a.state,phaseStartedAt:new Date(a.startedAt).toISOString(),updatedAt:new Date(b).toISOString(),ageMs:Math.max(0,b-a.startedAt),deadlineMs:this.phaseDeadlineMs})}catch(a){this.ports.log("[flow pipeline controller] durable heartbeat publication failed",a)}}}function s(a,b,c){b.__llvFlowPipelineUnregister?.(),b.__llvFlowPipelineUnregister=c.registerTick(()=>a.tick("signal")),b.__llvFlowPipelineWatchdog||(b.__llvFlowPipelineWatchdog=c.scheduleInterval(()=>void a.poll().catch(a=>{c.log("[flow pipeline controller] watchdog reconciliation failed",a)}),o),b.__llvFlowPipelineWatchdog.unref?.()),a.recover().catch(a=>{c.log("[flow pipeline controller] startup reconciliation failed",a)})}let t=globalThis;function u(){return t.__llvFlowPipelineController??=new r({scan:q,tickPipelines:m.n6,tickFlows:j.zn,publishHeartbeat:p})}function v(){s(u(),t,{registerTick:l.n_,scheduleInterval:(a,b)=>setInterval(a,b),log:(a,b)=>console.error(a,b)})}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6418,exports.ids=[6418],exports.modules={64037:(a,b,c)=>{c.r(b),c.d(b,{ORCHESTRATOR_SEATS_SCHEMA_VERSION:()=>m,ORCHESTRATOR_SEAT_HISTORY_CAP:()=>n,abandonStillbornOrchestratorSeat:()=>I,activeOrchestratorSeats:()=>K,activeOrchestratorSeatsForMigration:()=>N,activeOrchestratorSeatsOrUnknown:()=>L,beginOrchestratorSeatIntent:()=>E,canonicalOrchestratorProject:()=>p,completeOrchestratorSeatIntent:()=>F,confirmOrchestratorSeatMaterialization:()=>J,failOrchestratorSeatIntent:()=>H,orchestratorRevocations:()=>P,orchestratorSeatFor:()=>D,orchestratorSeatForOrUnknown:()=>M,readOrchestratorSeatFile:()=>x,rekeyOrchestratorSeatPaths:()=>O,repairOrchestratorSeatRuntimeIdentity:()=>G,revokedOrchestratorSeatConversationsOrUnknown:()=>Q});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(14071),k=c(50920),l=c(65465);let m=1,n=50,o=()=>(0,k.BQ)("orchestrator-seats.json");function p(a){return(0,l.G$)(a.trim())}function q(){return{schemaVersion:m,nextSeatEpoch:1,seats:{},pending:{},revocations:[],history:[],rollbacks:{}}}function r(a,b){g().mkdirSync(i().dirname(a),{recursive:!0});let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`);g().writeFileSync(c,JSON.stringify(b,null,2)+"\n","utf8"),g().renameSync(c,a)}function s(a){if(!a||"object"!=typeof a||Array.isArray(a)||"operator"!==a.kind&&"agent"!==a.kind)return null;let b="string"==typeof a.conversationId&&a.conversationId?a.conversationId:null,c="number"==typeof a.seatEpoch&&Number.isInteger(a.seatEpoch)&&a.seatEpoch>=1?a.seatEpoch:null;return{kind:a.kind,conversationId:b,seatEpoch:c}}function t(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.project||!a.project||"number"!=typeof a.seatEpoch||!Number.isInteger(a.seatEpoch)||a.seatEpoch<1||null!==a.conversationId&&"string"!=typeof a.conversationId||null!==a.path&&"string"!=typeof a.path||"string"!=typeof a.mandate||"pending"!==a.state&&"active"!==a.state)return null;let b=a.intent;if(!b||"string"!=typeof b.clientRequestId||!b.clientRequestId||"spawn"!==b.mode&&"existing"!==b.mode||"string"!=typeof a.designatedAt||null!==a.activatedAt&&"string"!=typeof a.activatedAt)return null;let c="string"==typeof a.engine&&a.engine.trim()?a.engine:null,d="string"==typeof a.model&&a.model.trim()?a.model:null,e="boolean"==typeof a.runtimeIdentityFrozen?a.runtimeIdentityFrozen:!!(c||d);return{project:a.project,seatEpoch:a.seatEpoch,conversationId:a.conversationId??null,path:a.path??null,engine:c,model:d,runtimeIdentityFrozen:e,mandate:a.mandate,..."string"==typeof a.roleTable?{roleTable:a.roleTable}:{},promptVersion:"number"==typeof a.promptVersion&&Number.isInteger(a.promptVersion)?a.promptVersion:null,predecessorConversationId:"string"==typeof a.predecessorConversationId?a.predecessorConversationId:null,triggeredBy:s(a.triggeredBy),state:a.state,intent:{clientRequestId:b.clientRequestId,mode:b.mode,launchId:"string"==typeof b.launchId?b.launchId:null,error:"string"==typeof b.error?b.error:null},designatedAt:a.designatedAt,activatedAt:a.activatedAt??null}}function u(a,b){return a.history.push(b),a.history.length>n&&a.history.splice(0,a.history.length-n),b}function v(a,b){let c=a[b.project];(!c||b.seatEpoch>c.seatEpoch)&&(a[b.project]=b)}function w(){let a;try{a=g().readFileSync(o(),"utf8")}catch(a){return a?.code==="ENOENT"?q():null}try{let b=JSON.parse(a);if(b.schemaVersion!==m)return null;let c=q();for(let[a,d]of(c.nextSeatEpoch="number"==typeof b.nextSeatEpoch&&Number.isInteger(b.nextSeatEpoch)&&b.nextSeatEpoch>=1?b.nextSeatEpoch:1,Object.entries(b.seats??{}))){let b=t(d);b&&b.project===a&&"active"===b.state&&b.conversationId&&v(c.seats,{...b,project:p(a)})}for(let[a,d]of Object.entries(b.pending??{})){let b=t(d);b&&b.project===a&&"pending"===b.state&&v(c.pending,{...b,project:p(a)})}for(let[a,d]of Object.entries(b.rollbacks??{})){let b=t(d);b&&b.conversationId&&(c.rollbacks[p(a)]=b)}for(let a of Array.isArray(b.revocations)?b.revocations:[])"string"==typeof a.project&&"string"==typeof a.conversationId&&"number"==typeof a.seatEpoch&&Number.isInteger(a.seatEpoch)&&"string"==typeof a.revokedAt&&c.revocations.push({project:p(a.project),conversationId:a.conversationId,seatEpoch:a.seatEpoch,revokedAt:a.revokedAt,successorConversationId:"string"==typeof a.successorConversationId?a.successorConversationId:null,triggeredBy:s(a.triggeredBy)});for(let a of Array.isArray(b.history)?b.history:[]){let b=t(a.seat);b&&("terminal_error"===a.reason||"superseded_epoch"===a.reason)&&"string"==typeof a.terminalizedAt&&c.history.push({seat:{...b,project:p(b.project)},reason:a.reason,terminalizedAt:a.terminalizedAt})}let d=Math.max(0,...Object.values(c.seats).map(a=>a.seatEpoch),...Object.values(c.pending).map(a=>a.seatEpoch),...Object.values(c.rollbacks).map(a=>a.seatEpoch),...c.revocations.map(a=>a.seatEpoch),...c.history.map(a=>a.seat.seatEpoch));return c.nextSeatEpoch<=d&&(c.nextSeatEpoch=d+1),c}catch{return null}}function x(){return w()??q()}function y(a){return void 0===a?Error("orchestrator seat evidence is malformed"):Error("orchestrator seat evidence is malformed",{cause:a})}function z(a,b){if(void 0===a)return{};if(!a||"object"!=typeof a||Array.isArray(a))throw y(Error(`${b} is invalid`));return a}function A(a,b){if(void 0===a)return[];if(!Array.isArray(a))throw y(Error(`${b} is invalid`));return a}function B(){let a,b;try{a=g().readFileSync(o(),"utf8")}catch(a){if(a&&"object"==typeof a&&"ENOENT"===a.code)return{raw:null,normalized:q()};throw a}try{b=JSON.parse(a)}catch(a){throw y(a)}if(!b||"object"!=typeof b||Array.isArray(b))throw y();let c=b;if(c.schemaVersion!==m||"number"!=typeof c.nextSeatEpoch||!Number.isInteger(c.nextSeatEpoch)||c.nextSeatEpoch<1)throw y();let d=q();for(let[a,b]of(d.nextSeatEpoch=c.nextSeatEpoch,Object.entries(z(c.seats,"seats")))){let c=t(b);if(!c||c.project!==a||"active"!==c.state||!c.conversationId)throw y();let e=p(a);if(d.seats[e])throw y();d.seats[e]={...c,project:e}}for(let[a,b]of Object.entries(z(c.pending,"pending"))){let c=t(b);if(!c||c.project!==a||"pending"!==c.state)throw y();let e=p(a);if(d.pending[e])throw y();d.pending[e]={...c,project:e}}for(let a of A(c.revocations,"revocations")){if(!a||"object"!=typeof a||"string"!=typeof a.project||!a.project||"string"!=typeof a.conversationId||!a.conversationId||"number"!=typeof a.seatEpoch||!Number.isInteger(a.seatEpoch)||a.seatEpoch<1||"string"!=typeof a.revokedAt||void 0!==a.successorConversationId&&null!==a.successorConversationId&&"string"!=typeof a.successorConversationId)throw y();d.revocations.push({project:p(a.project),conversationId:a.conversationId,seatEpoch:a.seatEpoch,revokedAt:a.revokedAt,successorConversationId:a.successorConversationId??null,triggeredBy:s(a.triggeredBy)})}for(let a of A(c.history,"history")){let b=t(a?.seat);if(!a||!b||"terminal_error"!==a.reason&&"superseded_epoch"!==a.reason||"string"!=typeof a.terminalizedAt)throw y();d.history.push({seat:{...b,project:p(b.project)},reason:a.reason,terminalizedAt:a.terminalizedAt})}return{raw:c,normalized:d}}function C(a){r(o(),a)}function D(a){let b=x(),c=p(a);return{active:b.seats[c]??null,pending:b.pending[c]??null,history:b.history.filter(a=>a.seat.project===c)}}function E(a){return(0,j.oV)(()=>{let b,c=x(),d=p(a.project),e=c.seats[d];if(e&&e.intent.clientRequestId===a.clientRequestId)return{kind:"completed",seat:e};let f=c.pending[d];if(f&&null===f.intent.error&&f.intent.clientRequestId===a.clientRequestId)return{kind:"replay",seat:f};if(f){if(!(null!==f.intent.error||void 0!==e&&f.seatEpoch<e.seatEpoch))return{kind:"in_progress",seat:f};b=u(c,{seat:f,reason:null!==f.intent.error?"terminal_error":"superseded_epoch",terminalizedAt:a.now??new Date().toISOString()}),delete c.pending[d]}let g={project:d,seatEpoch:c.nextSeatEpoch,conversationId:a.conversationId??null,path:null,engine:a.engine?.trim()||null,model:a.model?.trim()||null,runtimeIdentityFrozen:!!(a.engine?.trim()&&a.model?.trim()),mandate:a.mandate,..."string"==typeof a.roleTable?{roleTable:a.roleTable}:{},promptVersion:a.promptVersion??null,predecessorConversationId:null,triggeredBy:a.triggeredBy??null,state:"pending",intent:{clientRequestId:a.clientRequestId,mode:a.mode,launchId:null,error:null},designatedAt:a.now??new Date().toISOString(),activatedAt:null};return c.nextSeatEpoch+=1,c.pending[d]=g,C(c),{kind:"begun",seat:g,...b?{terminalized:b}:{}}})}function F(a){return(0,j.oV)(()=>{let b=x(),c=p(a.project),d=b.seats[c];if(d&&d.intent.clientRequestId===a.clientRequestId)return{kind:"replay",seat:d};let e=b.pending[c];if(!e||e.intent.clientRequestId!==a.clientRequestId)return{kind:"missing"};let f=a.now??new Date().toISOString(),g=null;d&&d.conversationId&&d.conversationId!==a.conversationId&&(g={project:c,conversationId:d.conversationId,seatEpoch:d.seatEpoch,revokedAt:f,successorConversationId:a.conversationId,triggeredBy:e.triggeredBy??null},b.revocations.push(g)),"spawn"===e.intent.mode&&null===a.path&&d?.conversationId&&d.conversationId!==a.conversationId?b.rollbacks[c]=d:delete b.rollbacks[c];let h={...e,conversationId:a.conversationId,path:a.path,engine:e.engine??(a.engine?.trim()||null),model:e.model??(a.model?.trim()||null),runtimeIdentityFrozen:!0===e.runtimeIdentityFrozen||!!(a.engine||a.model),predecessorConversationId:g?.conversationId??e.predecessorConversationId,state:"active",intent:{...e.intent,launchId:a.launchId??e.intent.launchId,error:null},activatedAt:f};return delete b.pending[c],b.seats[c]=h,C(b),{kind:"activated",seat:h,revoked:g}})}function G(a){return(0,j.oV)(()=>{let b=x(),c=p(a.project),d=b.seats[c];if(!d||d.conversationId!==a.conversationId)return null;let e=d.engine??(a.engine?.trim()||null),f=d.model??(a.model?.trim()||null);if(e===d.engine&&f===d.model)return d;let g={...d,engine:e,model:f};return b.seats[c]=g,C(b),g})}function H(a,b,c,d){return(0,j.oV)(()=>{let e=x(),f=p(a),g=e.pending[f];if(!g||g.intent.clientRequestId!==b)return null;g.intent.error=c.slice(0,500);let h=u(e,{seat:g,reason:"terminal_error",terminalizedAt:d??new Date().toISOString()});return delete e.pending[f],C(e),h})}function I(a){return(0,j.oV)(()=>{let b=x(),c=p(a.project),d=b.seats[c];if(!d||d.intent.clientRequestId!==a.clientRequestId||"active"!==d.state||"spawn"!==d.intent.mode||null!==d.path||!d.conversationId)return null;let e=a.now??new Date().toISOString(),f=b.rollbacks[c]??null,g=f?null:[...b.revocations].reverse().find(a=>a.project===c&&a.successorConversationId===d.conversationId)?.conversationId??null,h=f??(g?a.restorableSeat?.({conversationId:g,stillborn:d})??null:null),i=!!(h?.conversationId&&a.resolvable&&!a.resolvable(h.conversationId)),j=i?null:h,k=null;j?.conversationId?(k={...j,project:c,seatEpoch:b.nextSeatEpoch,state:"active",activatedAt:e},b.nextSeatEpoch+=1,b.seats[c]=k):delete b.seats[c],b.revocations.push({project:c,conversationId:d.conversationId,seatEpoch:d.seatEpoch,revokedAt:e,successorConversationId:k?.conversationId??null,triggeredBy:d.triggeredBy??null}),delete b.rollbacks[c];let l=i?`${a.error}; the predecessor ${h.conversationId} it would have been rolled back to is no longer resolvable either, so the project is left undesignated`:a.error,m=u(b,{seat:{...d,intent:{...d.intent,error:l.slice(0,500)}},reason:"terminal_error",terminalizedAt:e});return C(b),{terminalized:m,restored:k}})}function J(a){return(0,j.oV)(()=>{let b=x(),c=p(a.project),d=b.seats[c];if(!d||d.intent.clientRequestId!==a.clientRequestId||d.conversationId!==a.conversationId)return null;if(d.path===a.path&&!b.rollbacks[c])return d;let e={...d,path:a.path};return b.seats[c]=e,delete b.rollbacks[c],C(b),e})}function K(){return Object.values(x().seats)}function L(){let a=w();return null===a?null:Object.values(a.seats)}function M(a){let b=w();if(null===b)return null;let c=p(a);return{active:b.seats[c]??null,pending:b.pending[c]??null}}function N(){return Object.values(B().normalized.seats)}function O(a){0!==a.length&&(0,j.oV)(()=>{let b=B();if(!b.raw||0===Object.keys(b.normalized.seats).length)return;let c=new Map(a.map(a=>[a.legacyPath,a.sharedPath])),d=z(b.raw.seats,"seats"),e=!1;for(let a of Object.values(d)){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.path)continue;let b=c.get(a.path);b&&(a.path=b,e=!0)}e&&r(o(),b.raw)})}function P(){return x().revocations}function Q(a=a=>a){let b=w();if(null===b)return null;let c=new Map,d=b=>{if(!b.conversationId)return;let d=a(b.conversationId);c.set(d,Math.max(c.get(d)??0,b.seatEpoch))};for(let a of Object.values(b.seats))d(a);for(let a of Object.values(b.pending))null===a.intent.error&&d(a);let e=new Set;for(let d of b.revocations){let b=a(d.conversationId);d.seatEpoch>=(c.get(b)??0)&&e.add(b)}return e}}};