agent-log-viewer 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/dist/mcp-server.mjs +2078 -959
  2. package/dist/runtime-host.mjs +2615 -1363
  3. package/dist/standalone/.next/BUILD_ID +1 -1
  4. package/dist/standalone/.next/app-path-routes-manifest.json +15 -15
  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/server/app/_global-error/page.js.nft.json +1 -1
  8. package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/dist/standalone/.next/server/app/_global-error.html +1 -1
  10. package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
  11. package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  13. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  17. package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
  18. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  19. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  20. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
  22. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
  23. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
  24. package/dist/standalone/.next/server/app/api/account-project-bindings/route.js.nft.json +1 -1
  25. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -1
  26. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -1
  27. package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js.nft.json +1 -1
  28. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -1
  29. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -1
  30. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -1
  31. package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -1
  32. package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -1
  33. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -1
  34. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -1
  35. package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js.nft.json +1 -1
  36. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
  37. package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js.nft.json +1 -1
  38. package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
  39. package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
  40. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -1
  41. package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -1
  42. package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
  43. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -1
  44. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -1
  45. package/dist/standalone/.next/server/app/api/answer/route.js +1 -1
  46. package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
  47. package/dist/standalone/.next/server/app/api/artifact/route.js.nft.json +1 -1
  48. package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -1
  49. package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -1
  50. package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -1
  51. package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -1
  52. package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -1
  53. package/dist/standalone/.next/server/app/api/bridge/route.js +1 -1
  54. package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
  55. package/dist/standalone/.next/server/app/api/conversation-host/route.js +1 -1
  56. package/dist/standalone/.next/server/app/api/conversation-host/route.js.nft.json +1 -1
  57. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js +1 -1
  58. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js.nft.json +1 -1
  59. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
  60. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
  61. package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
  62. package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
  63. package/dist/standalone/.next/server/app/api/files/route.js +2 -2
  64. package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  65. package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
  66. package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
  67. package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
  68. package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
  69. package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
  70. package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  71. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
  72. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
  73. package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -1
  74. package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
  75. package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -1
  76. package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -1
  77. package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -1
  78. package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -1
  79. package/dist/standalone/.next/server/app/api/log/provenance/route.js +2 -2
  80. package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -1
  81. package/dist/standalone/.next/server/app/api/log/route.js +1 -1
  82. package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
  83. package/dist/standalone/.next/server/app/api/log/suggestions/route.js.nft.json +1 -1
  84. package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  85. package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  86. package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
  87. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js +12 -14
  88. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js.nft.json +1 -1
  89. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js +2 -2
  90. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js.nft.json +1 -1
  91. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
  92. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
  93. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
  94. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
  95. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +1 -3
  96. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -1
  97. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -1
  98. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -1
  99. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -1
  100. package/dist/standalone/.next/server/app/api/pipelines/route.js +1 -1
  101. package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
  102. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +1 -1
  103. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
  104. package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
  105. package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
  106. package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -1
  107. package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -1
  108. package/dist/standalone/.next/server/app/api/projects/directories/route.js.nft.json +1 -1
  109. package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
  110. package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
  111. package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
  112. package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
  113. package/dist/standalone/.next/server/app/api/runtime/answer/route.js +1 -1
  114. package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -1
  115. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -1
  116. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -1
  117. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -1
  118. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js +1 -1
  119. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js.nft.json +1 -1
  120. package/dist/standalone/.next/server/app/api/runtime/inject/route.js +1 -1
  121. package/dist/standalone/.next/server/app/api/runtime/inject/route.js.nft.json +1 -1
  122. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +1 -1
  123. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -1
  124. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +1 -1
  125. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
  126. package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
  127. package/dist/standalone/.next/server/app/api/runtime/queue/route.js +1 -1
  128. package/dist/standalone/.next/server/app/api/runtime/queue/route.js.nft.json +1 -1
  129. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +1 -1
  130. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
  131. package/dist/standalone/.next/server/app/api/runtime/send/route.js +1 -1
  132. package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -1
  133. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -1
  134. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +1 -1
  135. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -1
  136. package/dist/standalone/.next/server/app/api/runtime/steer/route.js +1 -1
  137. package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -1
  138. package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -1
  139. package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -1
  140. package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  141. package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -1
  142. package/dist/standalone/.next/server/app/api/session/title/route.js +1 -1
  143. package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -1
  144. package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -1
  145. package/dist/standalone/.next/server/app/api/spawn/route.js +1 -1
  146. package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
  147. package/dist/standalone/.next/server/app/api/spawn/validate/route.js +1 -1
  148. package/dist/standalone/.next/server/app/api/spawn/validate/route.js.nft.json +1 -1
  149. package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
  150. package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
  151. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
  152. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
  153. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  154. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  155. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +1 -1
  156. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
  157. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +1 -1
  158. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
  159. package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
  160. package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
  161. package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  162. package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -1
  163. package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -1
  164. package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
  165. package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
  166. package/dist/standalone/.next/server/app/api/tmux/route.js +1 -1
  167. package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
  168. package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
  169. package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
  170. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
  171. package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
  172. package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
  173. package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -1
  174. package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -1
  175. package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -1
  176. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
  177. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
  178. package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
  179. package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  180. package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  181. package/dist/standalone/.next/server/app/index.html +1 -1
  182. package/dist/standalone/.next/server/app/index.rsc +3 -3
  183. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  184. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  185. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  186. package/dist/standalone/.next/server/app/page.js +18 -18
  187. package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
  188. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  189. package/dist/standalone/.next/server/app-paths-manifest.json +15 -15
  190. package/dist/standalone/.next/server/chunks/1406.js +17 -17
  191. package/dist/standalone/.next/server/chunks/1585.js +2 -2
  192. package/dist/standalone/.next/server/chunks/160.js +2 -2
  193. package/dist/standalone/.next/server/chunks/1617.js +2 -2
  194. package/dist/standalone/.next/server/chunks/2150.js +1 -1
  195. package/dist/standalone/.next/server/chunks/2744.js +3 -0
  196. package/dist/standalone/.next/server/chunks/2857.js +1 -1
  197. package/dist/standalone/.next/server/chunks/286.js +22 -0
  198. package/dist/standalone/.next/server/chunks/2914.js +1 -1
  199. package/dist/standalone/.next/server/chunks/3086.js +1 -1
  200. package/dist/standalone/.next/server/chunks/3131.js +1 -1
  201. package/dist/standalone/.next/server/chunks/3743.js +10 -8
  202. package/dist/standalone/.next/server/chunks/4037.js +1 -0
  203. package/dist/standalone/.next/server/chunks/4972.js +1 -1
  204. package/dist/standalone/.next/server/chunks/5408.js +1 -0
  205. package/dist/standalone/.next/server/chunks/5771.js +1 -1
  206. package/dist/standalone/.next/server/chunks/606.js +126 -0
  207. package/dist/standalone/.next/server/chunks/644.js +1 -1
  208. package/dist/standalone/.next/server/chunks/6453.js +1 -1
  209. package/dist/standalone/.next/server/chunks/7008.js +8 -8
  210. package/dist/standalone/.next/server/chunks/7192.js +1 -1
  211. package/dist/standalone/.next/server/chunks/781.js +2 -2
  212. package/dist/standalone/.next/server/chunks/8027.js +1 -1
  213. package/dist/standalone/.next/server/chunks/8465.js +2 -2
  214. package/dist/standalone/.next/server/chunks/8617.js +1 -1
  215. package/dist/standalone/.next/server/chunks/8966.js +2 -2
  216. package/dist/standalone/.next/server/chunks/9296.js +1 -1
  217. package/dist/standalone/.next/server/chunks/9307.js +1 -1
  218. package/dist/standalone/.next/server/chunks/9360.js +13 -11
  219. package/dist/standalone/.next/server/chunks/9517.js +1 -1
  220. package/dist/standalone/.next/server/chunks/9940.js +1 -1
  221. package/dist/standalone/.next/server/file-scanner-worker.js +2 -2
  222. package/dist/standalone/.next/server/files-response-worker.js +1 -1
  223. package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
  224. package/dist/standalone/.next/server/pages/404.html +1 -1
  225. package/dist/standalone/.next/server/pages/500.html +1 -1
  226. package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
  227. package/dist/standalone/.next/static/chunks/7333-cf17cea2a91e7b4b.js +1 -0
  228. package/dist/standalone/.next/static/chunks/app/page-1cde2db61f461960.js +125 -0
  229. package/dist/standalone/.next/static/css/b25c03e915fd256b.css +1 -0
  230. package/dist/standalone/AGENTS.md +10 -0
  231. package/dist/standalone/package.json +1 -1
  232. package/dist/standalone/src/lib/viewerInstrumentation.ts +19 -4
  233. package/package.json +1 -1
  234. package/dist/standalone/.next/server/chunks/480.js +0 -126
  235. package/dist/standalone/.next/server/chunks/7361.js +0 -22
  236. package/dist/standalone/.next/static/chunks/6976-016b6947195a6ed2.js +0 -1
  237. package/dist/standalone/.next/static/chunks/app/page-16384e540b4c0a90.js +0 -125
  238. package/dist/standalone/.next/static/css/496211a19557b7ee.css +0 -1
  239. /package/dist/standalone/.next/static/{e4qE_aCE0s0KQnnU6IWRw → 836HTp-5V8cZC5YWFVOCk}/_buildManifest.js +0 -0
  240. /package/dist/standalone/.next/static/{e4qE_aCE0s0KQnnU6IWRw → 836HTp-5V8cZC5YWFVOCk}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";exports.id=4037,exports.ids=[4037],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,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,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}}};
@@ -131,5 +131,5 @@
131
131
  INSERT INTO state_leases(collection, owner_token, owner_pid, owner_start_identity, acquired_at)
132
132
  VALUES (?, ?, ?, ?, ?)
133
133
  `).run(this.options.collection,b,process.pid,j.B.processIdentity(process.pid),Date.now()),a.exec("COMMIT"),!0}catch(b){if(z(a),A(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(m,0,0,5)}throw new k.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 k.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(z(b),!A(a))throw a;Atomics.wait(m,0,0,5)}throw new k.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(z(b),!A(a))throw a;await new Promise(a=>setTimeout(a,5))}throw new k.Qm(this.options.busyMessage)}finally{b.close()}}}},16196:(a,b,c)=>{function d(a){return`${a} is unavailable; start agent-log-viewer through its CLI and check the CLI log for the host startup failure`}function e(a){if(void 0===a)return!1;switch(a.trim().replace(/^(["'])([\s\S]*)\1$/,"$2").trim().toLowerCase()){case"0":case"false":case"off":case"no":return!0;default:return!1}}function f(a=process.env){return!e(a.LLV_STRUCTURED_HOSTS)}function g(a=process.env){return e(a.LLV_RUNTIME_EVENTS)}function h(a=process.env){return!g(a)&&!!j(a)}function i(a=process.env){return!e(a.NEXT_PUBLIC_RUNTIME_UI)}function j(a=process.env){return a.LLV_RUNTIME_HOST_SOCKET?.trim()||null}c.d(b,{Ee:()=>i,S0:()=>j,Zn:()=>h,cM:()=>f,ji:()=>g,lN:()=>d})},21420:(a,b,c)=>{let d;c.d(b,{P3:()=>h,bL:()=>f,x_:()=>g});let e=BigInt(1e6);class f extends Error{constructor(...a){super(...a),this.name="StructuredRuntimeRequirementError"}}function g(a=process.platform,b=process.versions){if("darwin"===a&&!b.bun)throw new f("structured hosts on macOS require the Viewer server to run with Bun")}function h(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}}},27146:(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}
134
- `;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}},55686:(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(1198);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(21420);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}()},61532:(a,b,c)=>{c.d(b,{Qu:()=>j,lk:()=>g,vE:()=>h,xE:()=>i,xl:()=>k});let d=process;function e(){return{state:"pending",phase:"waiting for structured startup",completedHosts:0,totalHosts:null,updatedAt:new Date().toISOString()}}function f(a,b){if(!Number.isSafeInteger(b.completedHosts)||b.completedHosts<0)throw Error("structured host startup completed count is invalid");if(null!==b.totalHosts&&(!Number.isSafeInteger(b.totalHosts)||b.totalHosts<b.completedHosts))throw Error("structured host startup total count is invalid");let c=d.__llvStructuredHostStartupProgress,e=new Date().toISOString(),f=c?.phase!==b.phase||c.state!==a;f&&console.error("[structured hosts] startup progress",{pid:process.pid,phase:b.phase,state:a,previousPhase:c?.phase??null,previousPhaseMs:c?.phaseStartedAt?Math.max(0,Date.now()-Date.parse(c.phaseStartedAt)):null}),d.__llvStructuredHostStartupProgress={...b,state:a,updatedAt:e,phaseStartedAt:f?e:c?.phaseStartedAt??e,pid:process.pid}}function g(a){f(!0===d.__llvStructuredHostStartupFailed?"failed":"pending",a)}function h(){d.__llvStructuredHostStartupFailed=!0,f("failed",d.__llvStructuredHostStartupProgress??e())}function i(){d.__llvStructuredHostStartupFailed=!1,f("ready",{...d.__llvStructuredHostStartupProgress??e(),phase:"ready"})}function j(){d.__llvStructuredDeliveryControllerReady=!0}function k(){d.__llvStructuredDeliveryControllerReady=!1}},76190:(a,b,c)=>{c.d(b,{N:()=>d});function d(a=process.env){return"1"===a.LLV_WAKATIME_ENABLED}},76385:(a,b,c)=>{let d;c.d(b,{$k:()=>m,O1:()=>o,Ue:()=>l,gI:()=>n,h_:()=>i,y6:()=>k});var e=c(31421),f=c(73024),g=c.n(f),h=c(55686);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=j){return"dead"===l(a,b)}function o(a,b){return a.pid===b.pid&&a.startIdentity===b.startIdentity&&(void 0===b.bootEpoch||a.bootEpoch===b.bootEpoch)}},89204:(a,b,c)=>{c.d(b,{Ol:()=>t,Qm:()=>l,aO:()=>n,pM:()=>u});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(55686);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){let b=`${a}.write-lock`,c=`${a}.write-locks`;g().mkdirSync(c,{recursive:!0,mode:448});let d={pid:process.pid,startIdentity:j.B.processIdentity(process.pid),token:e().randomUUID()},f=i().join(c,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${e().randomUUID()}.json`);return g().writeFileSync(f,JSON.stringify(d),{encoding:"utf8",flag:"wx",mode:384}),{lockPath:b,queuePath:c,owner:d,ticketPath:f}}function r(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}}function s(a,b){g().closeSync(b),p(a.lockPath,a.owner.token)}function t(a,b,c){let d=q(a);try{for(let a=0;a<6e3;a+=1){let a=r(d);if(null===a){Atomics.wait(k,0,0,5);continue}try{return c()}finally{s(d,a)}}throw new l(b)}finally{p(d.ticketPath,d.owner.token)}}async function u(a,b,c){let d=q(a);try{for(let a=0;a<6e3;a+=1){let a=r(d);if(null===a){await new Promise(a=>setTimeout(a,5));continue}try{return await c()}finally{s(d,a)}}throw new l(b)}finally{p(d.ticketPath,d.owner.token)}}},93994:(a,b,c)=>{c.d(b,{Hr:()=>h,o7:()=>j,sS:()=>l});var d=c(77030),e=c.n(d),f=c(16196);let g=[];class h extends Error{constructor(a,b){super(a),this.code=b}}let i=new Set(["runtime host request timed out","runtime host is unavailable","runtime host response exceeds limit","runtime host returned invalid JSON","runtime host response id mismatch"]);function j(a){return a instanceof h&&void 0===a.code&&i.has(a.message)}class k{constructor(a,b=3e3,c=12e4,d=1e4){this.socketPath=a,this.timeoutMs=b,this.deploymentTimeoutMs=c,this.snapshotTimeoutMs=d}nativeQueueRead(a){return this.call("native-queue-read",{conversationId:a})}nativeQueueTransition(a,b){return this.call("native-queue-transition",{operationId:a,transition:b})}nativeQueueSettleCompacted(a){return this.call("native-queue-settle-compacted",{...a})}snapshot(a,b){return this.call("snapshot",b,this.snapshotTimeoutMs,a)}events(a,b){return this.call("events",{after:a},this.timeoutMs,b)}waitEvents(a,b=15e3,c){return this.call("wait",{after:a,timeoutMs:b},b+1e3,c)}append(a){return this.call("append",{event:a})}operation(a){return this.call("operation",{event:a})}command(a){return this.call("command",{command:a})}operationStatus(a,b={}){return this.call("operation-status",{operationId:a,...b.currentRetryLeaf?{currentRetryLeaf:!0}:{}})}claimDeliveryAction(a,b){return this.call("operation-delivery-action",{operationId:a,action:b})}retryOperation(a,b,c={}){return this.call("operation-retry",{operationId:a,...void 0!==b?{nextIdempotencyKey:b}:{},...void 0!==c.requireHostedConversationId?{requireHostedConversationId:c.requireHostedConversationId}:{}})}producerCursor(a,b){return this.call("producer-cursor",{producerKind:a,eventKeyPrefix:b})}effectBatch(a,b=0){let c={...a?{kinds:[...a]}:{},...0!==b?{afterEventSeq:b}:{}};return this.call("effect-batch",Object.keys(c).length>0?c:void 0)}transitionOperation(a,b,c,d={}){return this.call("operation-transition",{operationId:a,status:b,...c?{details:c}:{},...d.fromStatuses?{fromStatuses:[...d.fromStatuses]}:{},...d.awaitProjection?{awaitProjection:!0}:{}})}acknowledgeTerminalProjection(a){return this.call("operation-projection-ack",{operationIds:[...a]})}requestViewerDeployment(a){return this.call("viewer-deployment-request",a,this.deploymentTimeoutMs)}cancelViewerDeployment(a){return this.call("viewer-deployment-cancel",{deploymentId:a})}readViewerDeployment(a){return this.call("viewer-deployment-read",{deploymentId:a})}admitMcpHealthProbe(a){return this.call("mcp-health-probe-admission",{capability:a})}call(a,b,c=this.timeoutMs,d){return new Promise((f,i)=>{let j={id:crypto.randomUUID(),method:a,...b?{params:b}:{}},k=e().createConnection(this.socketPath),l=performance.now(),m="",n=!1,o=setTimeout(()=>{let b=performance.now()-l;console.error(`[runtime host] request timed out method=${a} elapsedMs=${Math.max(0,Math.round(b))}`),p(new h("runtime host request timed out"),void 0,!0,b)},c),p=(b,c,e=!1,h=performance.now()-l)=>{!n&&(n=!0,clearTimeout(o),d?.removeEventListener("abort",q),k.destroy(),"wait"!==a&&(g.push({elapsedMs:Math.max(0,Math.round(h)),timeout:e}),g.length>256&&g.splice(0,g.length-256)),b?i(b):f(c))},q=()=>p(new h("runtime host request cancelled"));if(d?.aborted)return q();d?.addEventListener("abort",q,{once:!0}),k.once("error",()=>p(new h("runtime host is unavailable"))),k.on("data",a=>{if(m+=String(a),Buffer.byteLength(m)>0x4000000)return p(new h("runtime host response exceeds limit"));let b=m.indexOf("\n");if(!(b<0))try{let a=JSON.parse(m.slice(0,b));if(a.id!==j.id)return p(new h("runtime host response id mismatch"));p(a.ok?void 0:new h(a.error??"runtime host rejected request",a.code),a.result)}catch{p(new h("runtime host returned invalid JSON"))}}),k.once("connect",()=>k.write(JSON.stringify(j)+"\n"))})}}function l(a=process.env){let b=(0,f.S0)(a);return b?new k(b):null}},94972:(a,b,c)=>{c.r(b),c.d(b,{accountControllerDelayMs:()=>v,activateViewerRuntimeWhenCurrent:()=>u,checkpointHotStateRollbackMirrorsForDemotion:()=>y,classifyStructuredHostStartupError:()=>I,completeViewerReleaseDemotion:()=>x,completeViewerRuntimeActivation:()=>K,establishHotStateCutoverBoundary:()=>t,initializeHotStateStoresAtStartup:()=>z,initializeOperatorSpawnCapabilityAtStartup:()=>B,registerViewerRuntime:()=>L,runIdentityWaveMigrationWithoutBlockingStartup:()=>D,runStructuredHostStartup:()=>J,scheduleAccountMigrationController:()=>w,startCurrentReleaseControllers:()=>A,startWakatimeIntegrationIfEnabled:()=>C,viewerReleaseOwnsTraffic:()=>r});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(27146),i=c(93994),j=c(16196),k=c(95697),l=c(14928),m=c(61532),n=c(21420),o=c(65281),p=c(76190);let q=globalThis;function r(a=process.env,b=()=>e().readFileSync((0,h.BQ)("viewer-release.json"),"utf8")){let c,d=a.PORT?.trim();if(!d)return!0;try{c=b()}catch(a){return"ENOENT"===a.code}try{let a=JSON.parse(c);if("string"!=typeof a.endpoint)return!1;return new URL(a.endpoint).port===d}catch{return!1}}function s(){return["flows.json","pipelines.json","pipelines-archive.json","workflows.json"].map(a=>{let b=(0,h.BQ)(a);try{let c=e().statSync(b,{bigint:!0});return`${a}:${c.mtimeNs}:${c.size}`}catch{return`${a}:missing`}}).join("|")}async function t(a,b={}){let d=g().dirname((0,h.BQ)("state.sqlite")),f=(0,k.jU)(d);if((null!==f||e().existsSync((0,h.BQ)("viewer-release.json")))&&null===f)throw Error("viewer release cannot publish hot-state authority");if(null===f)return(0,l.iy)((0,h.BQ)("state.sqlite")),{authority:null,reimportLegacy:!1};let i=(0,k.a5)(d);if(i?.mode==="sqlite"&&i.releaseRevision!==f)return i=(0,k.RG)(d,"sqlite",f),(0,l.iy)((0,h.BQ)("state.sqlite")),{authority:i,reimportLegacy:!1};if(i?.mode==="sqlite"&&i.releaseRevision===f)return(0,l.iy)((0,h.BQ)("state.sqlite")),{authority:i,reimportLegacy:!1};if(i?.mode==="fencing")throw Error("hot-state cutover cannot replace an active rollback fence");(i?.mode!=="preparing"||i.releaseRevision!==f)&&(i=(0,k.RG)(d,"preparing",f));let{hotStateMigrationApplied:j,hotStateMigrationDryRun:m}=await Promise.all([c.e(8027),c.e(160),c.e(1952),c.e(8817),c.e(6796),c.e(5682)]).then(c.bind(c,25682));if(j())return(0,l.iy)((0,h.BQ)("state.sqlite")),{authority:i,reimportLegacy:!1};let n=b.pollMs??250,o=b.stablePolls??3,p=b.maxPolls??12,q=b.schedule??((a,b)=>setTimeout(a,b)),r=b.legacySignature??s,u=r(),v=0;for(let b=0;b<p;b+=1){if(await new Promise(a=>q(a,n).unref?.()),!a())throw Error("viewer release lost traffic during hot-state cutover");let b=r();if(v=b===u?v+1:0,u=b,v>=o)return m(),(0,l.iy)((0,h.BQ)("state.sqlite")),{authority:i,reimportLegacy:!0}}throw Error("legacy hot-state files did not quiesce during release cutover")}async function u(a,b,c={}){let d=c.pollMs??250,e=c.schedule??((a,b)=>setTimeout(a,b)),f=c.log??console.error,g=!1,h=!1,i=!1,j=null,k=()=>{if(h)return;if(g&&!b()){h=!0,Promise.resolve(c.onDemoted?.({fenced:null!==j})).catch(a=>{f("[viewer release] demotion checkpoint failed",a)});return}let a=g?c.fenceRequest?.()??null:null;a&&"fencing"===a.mode?j===a.epoch||i||(i=!0,Promise.resolve(c.onFenceRequested?.(a)).then(()=>{j=a.epoch}).catch(a=>{f("[viewer release] hot-state fence checkpoint failed",a)}).finally(()=>{i=!1})):i||(j=null),e(k,d).unref?.()},l=async()=>{g||(g=!0,e(k,d).unref?.(),await a())};if(b())return void await l();let m=()=>{if(!g){if(!b())return void e(m,d).unref?.();l().catch(a=>f("[viewer release] deferred runtime activation failed",a))}};e(m,d).unref?.()}function v(a=process.env){let b=Number(a.LLV_ACCOUNT_CONTROLLER_DELAY_MS??0);return Number.isFinite(b)?Math.max(0,b):0}function w(a,b){let c=()=>{a().catch(a=>{console.error("[account migration controller] initial durable reconciliation failed",a)})},d=setTimeout(()=>{b>0?c():setTimeout(c,0).unref?.()},b);d.unref?.()}async function x(a,b=a=>process.exit(a),d=console.error,e=async()=>{let{releaseStructuredDeliveryHostsForDemotion:a}=await Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(6277)]).then(c.bind(c,2749));await a()}){let f=null;try{await e()}catch(a){f=a}try{await a()}catch(a){f??=a}if(f){d("[viewer release] demotion cleanup failed",f),b(1);return}b(0)}async function y(){let[a,b,d]=await Promise.all([Promise.all([c.e(8027),c.e(160),c.e(1952),c.e(8817)]).then(c.bind(c,98817)),Promise.all([c.e(8027),c.e(1888)]).then(c.bind(c,18027)),Promise.all([c.e(8027),c.e(160),c.e(1952),c.e(8817),c.e(6796)]).then(c.bind(c,96796))]),e=await a.checkpointFlowRollbackMirrorForDemotionAsync(),f=await b.checkpointPipelineRollbackMirrorsForDemotionAsync(),g=await d.checkpointWorkflowRollbackMirrorForDemotionAsync();return{flows:e,pipelines:f.pipelines,pipelinesArchive:f.pipelinesArchive,workflows:g}}async function z(a={authority:null,reimportLegacy:!1},b={}){let[d,e,f]=await Promise.all([Promise.all([c.e(8027),c.e(160),c.e(1952),c.e(8817)]).then(c.bind(c,98817)),Promise.all([c.e(8027),c.e(1888)]).then(c.bind(c,18027)),Promise.all([c.e(8027),c.e(160),c.e(1952),c.e(8817),c.e(6796)]).then(c.bind(c,96796))]);return((0,l.t0)((0,h.BQ)("state.sqlite"),[d.flowStateCollectionSeed(),...e.pipelineStateCollectionSeeds(),f.workflowStateCollectionSeed()],{reimportExisting:a.reimportLegacy,...b.afterCollectionImport?{afterCollectionImport:b.afterCollectionImport}:{}}),d.loadFlows(),e.loadPipelines(),e.loadArchivedPipelines(),f.loadWorkflows(),a.authority?.mode==="preparing")?(0,k.H0)(g().dirname((0,h.BQ)("state.sqlite")),a.authority):a.authority}async function A(a=process.env,b={loadFlowPipelineController:()=>Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(8444),c.e(9298)]).then(c.bind(c,60156)),loadAccountMigrationController:()=>Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(8444),c.e(3570)]).then(c.bind(c,37868)),loadTelegramReportScheduler:()=>Promise.all([c.e(1952),c.e(9777),c.e(2549),c.e(773),c.e(3830)]).then(c.bind(c,83830)),loadTelegramConnectorBoot:()=>Promise.all([c.e(9777),c.e(773),c.e(5545)]).then(c.bind(c,95545)),loadStructuredHostRetirement:()=>Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(9307),c.e(9296)]).then(c.bind(c,50261)),loadSeatTick:()=>Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(8444),c.e(9307),c.e(480)]).then(c.bind(c,52658))}){let{startFlowPipelineController:d}=await b.loadFlowPipelineController();d();try{let a=await b.loadTelegramConnectorBoot?.();a&&a.provisionTelegramConnectorAtStartup().catch(a=>console.error("[telegram connector] boot provisioning failed",a instanceof Error?a.name:"unknown"))}catch(a){console.error("[telegram connector] boot provisioning unavailable",a instanceof Error?a.name:"unknown")}try{let a=await b.loadTelegramReportScheduler?.();a?.ensureTelegramReportScheduler()}catch(a){console.error("[telegram report] scheduler start failed",a instanceof Error?a.name:"unknown")}try{let a=await b.loadStructuredHostRetirement?.();a?.startStructuredHostRetirement()}catch(a){console.error("[host retirement] sweep start failed",a instanceof Error?a.name:"unknown")}try{let a=await b.loadSeatTick?.();a?.startSeatTick()}catch(a){console.error("[seat tick] start failed",a instanceof Error?a.name:"unknown")}if("1"===a.LLV_ACCOUNT_CONTROLLER_DISABLED)return;let{startAccountMigrationController:e}=await b.loadAccountMigrationController();w(e,v(a))}async function B(a=process.env,b=a=>console.error(a)){let{ensureOperatorSpawnCapability:d,rotateOperatorSpawnCapability:e}=await c.e(4260).then(c.bind(c,74260));"1"===a.LLV_ROTATE_OPERATOR_SPAWN_CAPABILITY?e():d();let f=a.PORT?.trim()||"8898";b(`[viewer] Open http://127.0.0.1:${f}.`)}async function C(a=process.env,b=E,c=(a,b)=>console.error(a,b)){if((0,p.N)(a))try{await b()}catch{c("[wakatime] startup_failed",{})}}function D(a,b=console.error,c={}){let d=Math.max(1,Math.floor(c.maxAttempts??3)),e=Math.max(0,c.initialRetryMs??5e3),f=c.schedule??((a,b)=>setTimeout(a,b)),g=0,h=()=>{g+=1;try{a()}catch(c){if(g>=d)return void b("[identity-wave] registry migration failed; retry limit reached",{attempt:g,error:c});let a=e*2**(g-1);b("[identity-wave] registry migration failed; retry scheduled",{attempt:g,retryInMs:a,error:c}),f(h,a).unref?.()}};h()}async function E(){if(q.__llvWakatimeWorker)return;let a=process.cwd(),b=g().join(a,"src/lib/wakatimeSync.worker.ts"),d=g().join(a,".next/server/wakatime-sync-worker.js"),f="/usr/local/bin/bun-container",h=e().existsSync(b)&&e().existsSync(f)?{executable:f,workerPath:b}:e().existsSync(d)?{executable:process.versions.bun?process.execPath:process.env.LLV_BUN_EXECUTABLE||"bun",workerPath:d}:{executable:process.execPath,workerPath:b},{spawn:i}=await Promise.resolve().then(c.t.bind(c,31421,23)),j=e().existsSync("/usr/bin/nice"),k=i(j?"/usr/bin/nice":h.executable,[...j?["-n","10",h.executable]:[],h.workerPath],{cwd:a,stdio:["ignore","inherit","inherit"],env:{...(0,o.Fd)(process.env),LLV_WAKATIME_SYNC_WORKER:"1"}});q.__llvWakatimeWorker=k,k.once("error",a=>{console.error("[wakatime] worker_start_failed",{message:a.message})}),k.once("exit",(a,b)=>{if(q.__llvWakatimeWorker===k&&(q.__llvWakatimeWorker=void 0),q.__llvWakatimeWorkerRestart)return;console.error("[wakatime] worker_exited",{code:a,signal:b});let c=setTimeout(()=>{q.__llvWakatimeWorkerRestart=void 0,E()},1e3);c.unref?.(),q.__llvWakatimeWorkerRestart=c})}let F=new Set(["EAGAIN","EBUSY","ECONNREFUSED","ECONNRESET","EINTR","EIO","EMFILE","ENFILE","ENOENT"]),G=new Set(["SQLITE_CORRUPT","SQLITE_NOTADB"]);function H(a,b){if("object"!=typeof a||null===a||!(b in a))return"";let c=a[b];return"string"==typeof c?c:""}function I(a){let b=H(a,"name"),c=H(a,"code"),d=H(a,"message");return a instanceof n.bL||"StructuredRuntimeRequirementError"===b?{disposition:"terminal",category:"configuration",action:"Correct the structured-host configuration and restart the Viewer."}:"RegistryParityError"===b||"RegistryBackendIdentityError"===b||G.has(c)||/corrupt .* SQLite row|SQLite row is malformed|schema is unsupported/i.test(d)?{disposition:"terminal",category:"data-corruption",action:"Repair or restore the reported state data, then restart the Viewer."}:"structured-delivery-controller-unavailable"===c?{disposition:"recoverable",category:"instrumentation-order",action:"Retry after the process controller publication becomes visible."}:"ETIMEDOUT"===c||/\btimed out\b/i.test(d)?{disposition:"recoverable",category:"timeout",action:"Retry after the dependency response window."}:"FileTransactionBusyError"===b?{disposition:"recoverable",category:"registry-contention",action:"Retry after the active registry transaction releases its lock."}:F.has(c)?{disposition:"recoverable",category:"transient-io",action:"Retry after the local I/O dependency recovers."}:a instanceof i.Hr||/^runtime host (?:is unavailable|request cancelled|response exceeds limit|returned invalid JSON|response id mismatch)$/i.test(d)?{disposition:"recoverable",category:"runtime-host-unavailable",action:"Retry after the runtime host becomes available."}:{disposition:"recoverable",category:"unknown-recoverable",action:"Retry with bounded backoff while the Viewer remains unavailable for structured delivery."}}async function J(a,b=console.error,c={}){let d=c.schedule??((a,b)=>setTimeout(a,b)),e=c.maxRetryMs??1e3,f=Math.min(Math.max(c.jitterRatio??.2,0),1),g=c.random??Math.random,h=c.initialRetryMs??100,i=!1,j=0,k=null,l=null,n=c.waitUntilReady?new Promise((a,b)=>{k=a,l=b}):null,o=async()=>{j+=1;try{c.signal?.throwIfAborted(),await a(),c.signal?.throwIfAborted(),(0,m.xE)(),k?.(),j>1&&b("[structured hosts] startup adoption recovered",{attempts:j})}catch(p){if((0,m.vE)(),c.signal?.aborted)throw l?.(p),p;let a=I(p);if("terminal"===a.disposition)throw b("[structured hosts] startup adoption failed",p,{category:a.category,action:a.action}),l?.(p),p;if(i)return;let k=1+(2*Math.min(Math.max(g(),0),1)-1)*f,n=Math.min(e,Math.max(0,Math.round(h*k)));h=Math.min(2*h,e),i=!0,1===j&&b("[structured hosts] startup adoption failed; retry scheduled",p),d(()=>{i=!1,o().catch(a=>{b("[structured hosts] startup adoption retry aborted",a)})},n).unref?.()}},p=()=>{(0,m.vE)(),i&&l?.(c.signal?.reason)};if(c.signal?.addEventListener("abort",p,{once:!0}),n){try{await Promise.all([o(),n])}finally{c.signal?.removeEventListener("abort",p)}return}await o()}async function K(a){await a.initializeOperatorCapability(),await a.runIdentityMigration?.(),await a.startWakatime(),a.publishHotStateActivation(),a.startStructuredHosts?.(),await a.startControllers(),a.publishViewerReleaseReady()}async function L(){(0,o.kL)();let a=()=>r(),b=g().dirname((0,h.BQ)("state.sqlite")),d=null,e=new AbortController,f=null,i=async()=>{e.abort(Error("structured startup retired by release handover")),await f?.catch(()=>{})},l=()=>{a()&&(0,k.a5)(b)?.mode!=="fencing"||e.abort(Error("structured startup lost release authority")),e.signal.throwIfAborted()},m=async()=>{let{releaseUnpublishedStartupHostsForDemotion:a}=await Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(9307),c.e(644)]).then(c.bind(c,23886));await a();let{releaseStructuredDeliveryHostsForDemotion:b}=await Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(6277)]).then(c.bind(c,2749));await b()};await u(async()=>{let g=await t(a);d=g.authority?.releaseRevision??null;let h=await z(g),i=null;await K({initializeOperatorCapability:B,runIdentityMigration:async()=>{let{runIdentityWaveMigrationAtStartup:a}=await Promise.all([c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(9307),c.e(2150)]).then(c.bind(c,22150));D(a)},startWakatime:C,startStructuredHosts:(0,j.cM)()?()=>{(f=(async()=>{let{adoptStructuredHostsAtStartup:a}=await Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(9307),c.e(644)]).then(c.bind(c,23886));await J(()=>a({assertActive:l}),console.error,{waitUntilReady:!0,signal:e.signal})})()).catch(a=>console.error("[structured hosts] background startup aborted",a))}:null,startControllers:A,publishHotStateActivation:()=>{h&&(i=(0,k.tT)(b,h))},publishViewerReleaseReady:()=>{i&&(0,k.uB)(b,i)}})},a,{fenceRequest:()=>{let a=(0,k.jU)(b),c=(0,k.a5)(b);return null!==a&&c?.mode==="fencing"&&c.releaseRevision===a?c:null},onFenceRequested:async a=>{await i(),await m();let d=await y(),{agentRegistry:e}=await Promise.all([c.e(8027),c.e(160),c.e(1952)]).then(c.bind(c,70160));e().checkpointRollbackMirrorForDemotion(),(0,k.u_)(b,a,d)},onDemoted:async({fenced:a})=>{await i(),await x(async()=>{if(a)return;let e=(0,k.a5)(b);if(!d||e?.releaseRevision!==d||"sqlite"!==e.mode&&"fencing"!==e.mode)return;let{agentRegistry:f}=await Promise.all([c.e(8027),c.e(160),c.e(1952)]).then(c.bind(c,70160));await y(),f().checkpointRollbackMirrorForDemotion()},void 0,void 0,m)}})}},95697:(a,b,c)=>{c.d(b,{H0:()=>x,Ny:()=>r,RG:()=>v,T2:()=>s,X4:()=>p,a5:()=>o,jU:()=>q,tT:()=>y,uB:()=>z,u_:()=>w});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(89204),k=c(76385);let l="LLV_HOT_STATE_RELEASE_REVISION";function m(a){return i().join(a,"hot-state-authority.json")}function n(a){return"string"==typeof a&&/^[0-9a-f]{40}$/.test(a)}function o(a){try{var b;let c=!(b=JSON.parse(g().readFileSync(m(a),"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||n(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 p(a,b=process.env){let c=b.LLV_VIEWER_DEPLOY_TARGET?.trim()||i().join(a,"viewer-release.json");try{var d;let a=!(d=JSON.parse(g().readFileSync(c,"utf8")))||"object"!=typeof d||Array.isArray(d)?null:"string"==typeof d.endpoint&&n(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 q(a,b=process.env){let c=p(a,b);if(!c)return null;let d=b[l]?.trim();if(d)return n(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 r(a,b=process.env){let c=p(a,b);if(!c)return!0;let d=o(a),e=q(a,b);return e?d?.mode==="sqlite"&&d.releaseRevision===e&&c.revision===e:!(b[l]?.trim()||b.PORT?.trim())&&d?.mode==="sqlite"&&d.releaseRevision===c.revision&&"string"==typeof d.activationReadyAt}function s(a,b=process.env){let c=p(a,b);if(!c)return!0;let d=q(a,b);if(!d)return!1;let e=o(a);return e?.mode==="preparing"&&e.releaseRevision===d&&c.revision===d}function t(a,b){return null!==a&&JSON.stringify(a)===JSON.stringify(b)}function u(a,b,c,d,f={}){if(f.releaseReadyAt&&!f.activationReadyAt)throw Error("Viewer release readiness requires completed hot-state activation");let h={schemaVersion:1,epoch:f.epoch??(b?.epoch??0)+1,mode:c,releaseRevision:d,updatedAt:new Date().toISOString(),...f.activationReadyAt?{activationReadyAt:f.activationReadyAt}:{},...f.releaseReadyAt?{releaseReadyAt:f.releaseReadyAt}:{},...f.checkpoint?{checkpoint:f.checkpoint}:{},...f.activationOwner?{activationOwner:f.activationOwner}:"fencing"===c&&b?.releaseRevision===d&&b.activationOwner?{activationOwner:b.activationOwner}:{}};if(!Number.isInteger(h.epoch)||h.epoch<1)throw Error("hot-state authority epoch is invalid");if(b&&h.epoch<b.epoch)throw Error("hot-state authority epoch cannot regress");return!function(a,b){let c=i().dirname(a);g().mkdirSync(c,{recursive:!0,mode:448});let d=i().join(c,`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`),f=g().openSync(d,"wx",384);try{g().writeFileSync(f,`${JSON.stringify(b,null,2)}
134
+ `;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}},55686:(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(1198);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(21420);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}()},61532:(a,b,c)=>{c.d(b,{Qu:()=>j,lk:()=>g,vE:()=>h,xE:()=>i,xl:()=>k});let d=process;function e(){return{state:"pending",phase:"waiting for structured startup",completedHosts:0,totalHosts:null,updatedAt:new Date().toISOString()}}function f(a,b){if(!Number.isSafeInteger(b.completedHosts)||b.completedHosts<0)throw Error("structured host startup completed count is invalid");if(null!==b.totalHosts&&(!Number.isSafeInteger(b.totalHosts)||b.totalHosts<b.completedHosts))throw Error("structured host startup total count is invalid");let c=d.__llvStructuredHostStartupProgress,e=new Date().toISOString(),f=c?.phase!==b.phase||c.state!==a;f&&console.error("[structured hosts] startup progress",{pid:process.pid,phase:b.phase,state:a,previousPhase:c?.phase??null,previousPhaseMs:c?.phaseStartedAt?Math.max(0,Date.now()-Date.parse(c.phaseStartedAt)):null}),d.__llvStructuredHostStartupProgress={...b,state:a,updatedAt:e,phaseStartedAt:f?e:c?.phaseStartedAt??e,pid:process.pid}}function g(a){f(!0===d.__llvStructuredHostStartupFailed?"failed":"pending",a)}function h(){d.__llvStructuredHostStartupFailed=!0,f("failed",d.__llvStructuredHostStartupProgress??e())}function i(){d.__llvStructuredHostStartupFailed=!1,f("ready",{...d.__llvStructuredHostStartupProgress??e(),phase:"ready"})}function j(){d.__llvStructuredDeliveryControllerReady=!0}function k(){d.__llvStructuredDeliveryControllerReady=!1}},76190:(a,b,c)=>{c.d(b,{N:()=>d});function d(a=process.env){return"1"===a.LLV_WAKATIME_ENABLED}},76385:(a,b,c)=>{let d;c.d(b,{$k:()=>m,O1:()=>o,Ue:()=>l,gI:()=>n,h_:()=>i,y6:()=>k});var e=c(31421),f=c(73024),g=c.n(f),h=c(55686);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=j){return"dead"===l(a,b)}function o(a,b){return a.pid===b.pid&&a.startIdentity===b.startIdentity&&(void 0===b.bootEpoch||a.bootEpoch===b.bootEpoch)}},89204:(a,b,c)=>{c.d(b,{Ol:()=>t,Qm:()=>l,aO:()=>n,pM:()=>u});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(55686);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){let b=`${a}.write-lock`,c=`${a}.write-locks`;g().mkdirSync(c,{recursive:!0,mode:448});let d={pid:process.pid,startIdentity:j.B.processIdentity(process.pid),token:e().randomUUID()},f=i().join(c,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${e().randomUUID()}.json`);return g().writeFileSync(f,JSON.stringify(d),{encoding:"utf8",flag:"wx",mode:384}),{lockPath:b,queuePath:c,owner:d,ticketPath:f}}function r(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}}function s(a,b){g().closeSync(b),p(a.lockPath,a.owner.token)}function t(a,b,c){let d=q(a);try{for(let a=0;a<6e3;a+=1){let a=r(d);if(null===a){Atomics.wait(k,0,0,5);continue}try{return c()}finally{s(d,a)}}throw new l(b)}finally{p(d.ticketPath,d.owner.token)}}async function u(a,b,c){let d=q(a);try{for(let a=0;a<6e3;a+=1){let a=r(d);if(null===a){await new Promise(a=>setTimeout(a,5));continue}try{return await c()}finally{s(d,a)}}throw new l(b)}finally{p(d.ticketPath,d.owner.token)}}},93994:(a,b,c)=>{c.d(b,{Hr:()=>h,o7:()=>j,sS:()=>l});var d=c(77030),e=c.n(d),f=c(16196);let g=[];class h extends Error{constructor(a,b){super(a),this.code=b}}let i=new Set(["runtime host request timed out","runtime host is unavailable","runtime host response exceeds limit","runtime host returned invalid JSON","runtime host response id mismatch"]);function j(a){return a instanceof h&&void 0===a.code&&i.has(a.message)}class k{constructor(a,b=3e3,c=12e4,d=1e4){this.socketPath=a,this.timeoutMs=b,this.deploymentTimeoutMs=c,this.snapshotTimeoutMs=d}nativeQueueRead(a){return this.call("native-queue-read",{conversationId:a})}nativeQueueTransition(a,b){return this.call("native-queue-transition",{operationId:a,transition:b})}nativeQueueSettleCompacted(a){return this.call("native-queue-settle-compacted",{...a})}snapshot(a,b){return this.call("snapshot",b,this.snapshotTimeoutMs,a)}events(a,b){return this.call("events",{after:a},this.timeoutMs,b)}waitEvents(a,b=15e3,c){return this.call("wait",{after:a,timeoutMs:b},b+1e3,c)}append(a){return this.call("append",{event:a})}operation(a){return this.call("operation",{event:a})}command(a){return this.call("command",{command:a})}operationStatus(a,b={}){return this.call("operation-status",{operationId:a,...b.currentRetryLeaf?{currentRetryLeaf:!0}:{}})}claimDeliveryAction(a,b){return this.call("operation-delivery-action",{operationId:a,action:b})}retryOperation(a,b,c={}){return this.call("operation-retry",{operationId:a,...void 0!==b?{nextIdempotencyKey:b}:{},...void 0!==c.requireHostedConversationId?{requireHostedConversationId:c.requireHostedConversationId}:{}})}producerCursor(a,b){return this.call("producer-cursor",{producerKind:a,eventKeyPrefix:b})}effectBatch(a,b=0){let c={...a?{kinds:[...a]}:{},...0!==b?{afterEventSeq:b}:{}};return this.call("effect-batch",Object.keys(c).length>0?c:void 0)}transitionOperation(a,b,c,d={}){return this.call("operation-transition",{operationId:a,status:b,...c?{details:c}:{},...d.fromStatuses?{fromStatuses:[...d.fromStatuses]}:{},...d.awaitProjection?{awaitProjection:!0}:{}})}acknowledgeTerminalProjection(a){return this.call("operation-projection-ack",{operationIds:[...a]})}requestViewerDeployment(a){return this.call("viewer-deployment-request",a,this.deploymentTimeoutMs)}cancelViewerDeployment(a){return this.call("viewer-deployment-cancel",{deploymentId:a})}readViewerDeployment(a){return this.call("viewer-deployment-read",{deploymentId:a})}admitMcpHealthProbe(a){return this.call("mcp-health-probe-admission",{capability:a})}call(a,b,c=this.timeoutMs,d){return new Promise((f,i)=>{let j={id:crypto.randomUUID(),method:a,...b?{params:b}:{}},k=e().createConnection(this.socketPath),l=performance.now(),m="",n=!1,o=setTimeout(()=>{let b=performance.now()-l;console.error(`[runtime host] request timed out method=${a} elapsedMs=${Math.max(0,Math.round(b))}`),p(new h("runtime host request timed out"),void 0,!0,b)},c),p=(b,c,e=!1,h=performance.now()-l)=>{!n&&(n=!0,clearTimeout(o),d?.removeEventListener("abort",q),k.destroy(),"wait"!==a&&(g.push({elapsedMs:Math.max(0,Math.round(h)),timeout:e}),g.length>256&&g.splice(0,g.length-256)),b?i(b):f(c))},q=()=>p(new h("runtime host request cancelled"));if(d?.aborted)return q();d?.addEventListener("abort",q,{once:!0}),k.once("error",()=>p(new h("runtime host is unavailable"))),k.on("data",a=>{if(m+=String(a),Buffer.byteLength(m)>0x4000000)return p(new h("runtime host response exceeds limit"));let b=m.indexOf("\n");if(!(b<0))try{let a=JSON.parse(m.slice(0,b));if(a.id!==j.id)return p(new h("runtime host response id mismatch"));p(a.ok?void 0:new h(a.error??"runtime host rejected request",a.code),a.result)}catch{p(new h("runtime host returned invalid JSON"))}}),k.once("connect",()=>k.write(JSON.stringify(j)+"\n"))})}}function l(a=process.env){let b=(0,f.S0)(a);return b?new k(b):null}},94972:(a,b,c)=>{c.r(b),c.d(b,{accountControllerDelayMs:()=>y,activateViewerRuntimeWhenCurrent:()=>x,checkpointHotStateRollbackMirrorsForDemotion:()=>B,classifyStructuredHostStartupError:()=>L,completeViewerReleaseDemotion:()=>A,completeViewerRuntimeActivation:()=>N,establishHotStateCutoverBoundary:()=>w,initializeHotStateStoresAtStartup:()=>C,initializeOperatorSpawnCapabilityAtStartup:()=>E,registerViewerRuntime:()=>O,runIdentityWaveMigrationWithoutBlockingStartup:()=>G,runStructuredHostStartup:()=>M,scheduleAccountMigrationController:()=>z,startCurrentReleaseControllers:()=>D,startWakatimeIntegrationIfEnabled:()=>F,viewerReleaseBoundary:()=>u,viewerReleaseOwnsTraffic:()=>t});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(93994),l=c(16196),m=c(95697),n=c(14928),o=c(61532),p=c(21420),q=c(65281),r=c(76190);let s=globalThis;function t(a=process.env,b=()=>g().readFileSync((0,j.BQ)("viewer-release.json"),"utf8")){let c,d=a.PORT?.trim();if(!d)return!0;try{c=b()}catch(a){return"ENOENT"===a.code}try{let a=JSON.parse(c);if("string"!=typeof a.endpoint)return!1;return new URL(a.endpoint).port===d}catch{return!1}}function u(a=()=>g().readFileSync((0,j.BQ)("viewer-release.json"),"utf8")){let b;try{b=a()}catch{return`viewer-release:pid-${process.pid}`}let c=e().createHash("sha256").update(b).digest("hex").slice(0,16);return`viewer-release:${c}`}function v(){return["flows.json","pipelines.json","pipelines-archive.json","workflows.json"].map(a=>{let b=(0,j.BQ)(a);try{let c=g().statSync(b,{bigint:!0});return`${a}:${c.mtimeNs}:${c.size}`}catch{return`${a}:missing`}}).join("|")}async function w(a,b={}){let d=i().dirname((0,j.BQ)("state.sqlite")),e=(0,m.jU)(d);if((null!==e||g().existsSync((0,j.BQ)("viewer-release.json")))&&null===e)throw Error("viewer release cannot publish hot-state authority");if(null===e)return(0,n.iy)((0,j.BQ)("state.sqlite")),{authority:null,reimportLegacy:!1};let f=(0,m.a5)(d);if(f?.mode==="sqlite"&&f.releaseRevision!==e)return f=(0,m.RG)(d,"sqlite",e),(0,n.iy)((0,j.BQ)("state.sqlite")),{authority:f,reimportLegacy:!1};if(f?.mode==="sqlite"&&f.releaseRevision===e)return(0,n.iy)((0,j.BQ)("state.sqlite")),{authority:f,reimportLegacy:!1};if(f?.mode==="fencing")throw Error("hot-state cutover cannot replace an active rollback fence");(f?.mode!=="preparing"||f.releaseRevision!==e)&&(f=(0,m.RG)(d,"preparing",e));let{hotStateMigrationApplied:h,hotStateMigrationDryRun:k}=await Promise.all([c.e(8027),c.e(160),c.e(1952),c.e(8817),c.e(6796),c.e(5682)]).then(c.bind(c,25682));if(h())return(0,n.iy)((0,j.BQ)("state.sqlite")),{authority:f,reimportLegacy:!1};let l=b.pollMs??250,o=b.stablePolls??3,p=b.maxPolls??12,q=b.schedule??((a,b)=>setTimeout(a,b)),r=b.legacySignature??v,s=r(),t=0;for(let b=0;b<p;b+=1){if(await new Promise(a=>q(a,l).unref?.()),!a())throw Error("viewer release lost traffic during hot-state cutover");let b=r();if(t=b===s?t+1:0,s=b,t>=o)return k(),(0,n.iy)((0,j.BQ)("state.sqlite")),{authority:f,reimportLegacy:!0}}throw Error("legacy hot-state files did not quiesce during release cutover")}async function x(a,b,c={}){let d=c.pollMs??250,e=c.schedule??((a,b)=>setTimeout(a,b)),f=c.log??console.error,g=!1,h=!1,i=!1,j=null,k=()=>{if(h)return;if(g&&!b()){h=!0,Promise.resolve(c.onDemoted?.({fenced:null!==j})).catch(a=>{f("[viewer release] demotion checkpoint failed",a)});return}let a=g?c.fenceRequest?.()??null:null;a&&"fencing"===a.mode?j===a.epoch||i||(i=!0,Promise.resolve(c.onFenceRequested?.(a)).then(()=>{j=a.epoch}).catch(a=>{f("[viewer release] hot-state fence checkpoint failed",a)}).finally(()=>{i=!1})):i||(j=null),e(k,d).unref?.()},l=async()=>{g||(g=!0,e(k,d).unref?.(),await a())};if(b())return void await l();let m=()=>{if(!g){if(!b())return void e(m,d).unref?.();l().catch(a=>f("[viewer release] deferred runtime activation failed",a))}};e(m,d).unref?.()}function y(a=process.env){let b=Number(a.LLV_ACCOUNT_CONTROLLER_DELAY_MS??0);return Number.isFinite(b)?Math.max(0,b):0}function z(a,b){let c=()=>{a().catch(a=>{console.error("[account migration controller] initial durable reconciliation failed",a)})},d=setTimeout(()=>{b>0?c():setTimeout(c,0).unref?.()},b);d.unref?.()}async function A(a,b=a=>process.exit(a),d=console.error,e=async()=>{let{releaseStructuredDeliveryHostsForDemotion:a}=await Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(6277)]).then(c.bind(c,2749));await a()}){let f=null;try{await e()}catch(a){f=a}try{await a()}catch(a){f??=a}if(f){d("[viewer release] demotion cleanup failed",f),b(1);return}b(0)}async function B(){let[a,b,d]=await Promise.all([Promise.all([c.e(8027),c.e(160),c.e(1952),c.e(8817)]).then(c.bind(c,98817)),Promise.all([c.e(8027),c.e(1888)]).then(c.bind(c,18027)),Promise.all([c.e(8027),c.e(160),c.e(1952),c.e(8817),c.e(6796)]).then(c.bind(c,96796))]),e=await a.checkpointFlowRollbackMirrorForDemotionAsync(),f=await b.checkpointPipelineRollbackMirrorsForDemotionAsync(),g=await d.checkpointWorkflowRollbackMirrorForDemotionAsync();return{flows:e,pipelines:f.pipelines,pipelinesArchive:f.pipelinesArchive,workflows:g}}async function C(a={authority:null,reimportLegacy:!1},b={}){let[d,e,f]=await Promise.all([Promise.all([c.e(8027),c.e(160),c.e(1952),c.e(8817)]).then(c.bind(c,98817)),Promise.all([c.e(8027),c.e(1888)]).then(c.bind(c,18027)),Promise.all([c.e(8027),c.e(160),c.e(1952),c.e(8817),c.e(6796)]).then(c.bind(c,96796))]);return((0,n.t0)((0,j.BQ)("state.sqlite"),[d.flowStateCollectionSeed(),...e.pipelineStateCollectionSeeds(),f.workflowStateCollectionSeed()],{reimportExisting:a.reimportLegacy,...b.afterCollectionImport?{afterCollectionImport:b.afterCollectionImport}:{}}),d.loadFlows(),e.loadPipelines(),e.loadArchivedPipelines(),f.loadWorkflows(),a.authority?.mode==="preparing")?(0,m.H0)(i().dirname((0,j.BQ)("state.sqlite")),a.authority):a.authority}async function D(a=process.env,b={loadFlowPipelineController:()=>Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(8444),c.e(9298)]).then(c.bind(c,60156)),loadAccountMigrationController:()=>Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(8444),c.e(3570)]).then(c.bind(c,37868)),loadTelegramReportScheduler:()=>Promise.all([c.e(1952),c.e(9777),c.e(2549),c.e(773),c.e(3830)]).then(c.bind(c,83830)),loadTelegramConnectorBoot:()=>Promise.all([c.e(9777),c.e(773),c.e(5545)]).then(c.bind(c,95545)),loadStructuredHostRetirement:()=>Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(9307),c.e(9296)]).then(c.bind(c,50261)),loadSeatTick:()=>Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(9307),c.e(8444),c.e(606)]).then(c.bind(c,56592))}){let{startFlowPipelineController:d}=await b.loadFlowPipelineController();d();try{let a=await b.loadTelegramConnectorBoot?.();a&&a.provisionTelegramConnectorAtStartup().catch(a=>console.error("[telegram connector] boot provisioning failed",a instanceof Error?a.name:"unknown"))}catch(a){console.error("[telegram connector] boot provisioning unavailable",a instanceof Error?a.name:"unknown")}try{let a=await b.loadTelegramReportScheduler?.();a?.ensureTelegramReportScheduler()}catch(a){console.error("[telegram report] scheduler start failed",a instanceof Error?a.name:"unknown")}try{let a=await b.loadStructuredHostRetirement?.();a?.startStructuredHostRetirement()}catch(a){console.error("[host retirement] sweep start failed",a instanceof Error?a.name:"unknown")}try{let a=await b.loadSeatTick?.();a?.startSeatTick()}catch(a){console.error("[seat tick] start failed",a instanceof Error?a.name:"unknown")}if("1"===a.LLV_ACCOUNT_CONTROLLER_DISABLED)return;let{startAccountMigrationController:e}=await b.loadAccountMigrationController();z(e,y(a))}async function E(a=process.env,b=a=>console.error(a)){let{ensureOperatorSpawnCapability:d,rotateOperatorSpawnCapability:e}=await c.e(4260).then(c.bind(c,74260));"1"===a.LLV_ROTATE_OPERATOR_SPAWN_CAPABILITY?e():d();let f=a.PORT?.trim()||"8898";b(`[viewer] Open http://127.0.0.1:${f}.`)}async function F(a=process.env,b=H,c=(a,b)=>console.error(a,b)){if((0,r.N)(a))try{await b()}catch{c("[wakatime] startup_failed",{})}}function G(a,b=console.error,c={}){let d=Math.max(1,Math.floor(c.maxAttempts??3)),e=Math.max(0,c.initialRetryMs??5e3),f=c.schedule??((a,b)=>setTimeout(a,b)),g=0,h=()=>{g+=1;try{a()}catch(c){if(g>=d)return void b("[identity-wave] registry migration failed; retry limit reached",{attempt:g,error:c});let a=e*2**(g-1);b("[identity-wave] registry migration failed; retry scheduled",{attempt:g,retryInMs:a,error:c}),f(h,a).unref?.()}};h()}async function H(){if(s.__llvWakatimeWorker)return;let a=process.cwd(),b=i().join(a,"src/lib/wakatimeSync.worker.ts"),d=i().join(a,".next/server/wakatime-sync-worker.js"),e="/usr/local/bin/bun-container",f=g().existsSync(b)&&g().existsSync(e)?{executable:e,workerPath:b}:g().existsSync(d)?{executable:process.versions.bun?process.execPath:process.env.LLV_BUN_EXECUTABLE||"bun",workerPath:d}:{executable:process.execPath,workerPath:b},{spawn:h}=await Promise.resolve().then(c.t.bind(c,31421,23)),j=g().existsSync("/usr/bin/nice"),k=h(j?"/usr/bin/nice":f.executable,[...j?["-n","10",f.executable]:[],f.workerPath],{cwd:a,stdio:["ignore","inherit","inherit"],env:{...(0,q.Fd)(process.env),LLV_WAKATIME_SYNC_WORKER:"1"}});s.__llvWakatimeWorker=k,k.once("error",a=>{console.error("[wakatime] worker_start_failed",{message:a.message})}),k.once("exit",(a,b)=>{if(s.__llvWakatimeWorker===k&&(s.__llvWakatimeWorker=void 0),s.__llvWakatimeWorkerRestart)return;console.error("[wakatime] worker_exited",{code:a,signal:b});let c=setTimeout(()=>{s.__llvWakatimeWorkerRestart=void 0,H()},1e3);c.unref?.(),s.__llvWakatimeWorkerRestart=c})}let I=new Set(["EAGAIN","EBUSY","ECONNREFUSED","ECONNRESET","EINTR","EIO","EMFILE","ENFILE","ENOENT"]),J=new Set(["SQLITE_CORRUPT","SQLITE_NOTADB"]);function K(a,b){if("object"!=typeof a||null===a||!(b in a))return"";let c=a[b];return"string"==typeof c?c:""}function L(a){let b=K(a,"name"),c=K(a,"code"),d=K(a,"message");return a instanceof p.bL||"StructuredRuntimeRequirementError"===b?{disposition:"terminal",category:"configuration",action:"Correct the structured-host configuration and restart the Viewer."}:"RegistryParityError"===b||"RegistryBackendIdentityError"===b||J.has(c)||/corrupt .* SQLite row|SQLite row is malformed|schema is unsupported/i.test(d)?{disposition:"terminal",category:"data-corruption",action:"Repair or restore the reported state data, then restart the Viewer."}:"structured-delivery-controller-unavailable"===c?{disposition:"recoverable",category:"instrumentation-order",action:"Retry after the process controller publication becomes visible."}:"ETIMEDOUT"===c||/\btimed out\b/i.test(d)?{disposition:"recoverable",category:"timeout",action:"Retry after the dependency response window."}:"FileTransactionBusyError"===b?{disposition:"recoverable",category:"registry-contention",action:"Retry after the active registry transaction releases its lock."}:I.has(c)?{disposition:"recoverable",category:"transient-io",action:"Retry after the local I/O dependency recovers."}:a instanceof k.Hr||/^runtime host (?:is unavailable|request cancelled|response exceeds limit|returned invalid JSON|response id mismatch)$/i.test(d)?{disposition:"recoverable",category:"runtime-host-unavailable",action:"Retry after the runtime host becomes available."}:{disposition:"recoverable",category:"unknown-recoverable",action:"Retry with bounded backoff while the Viewer remains unavailable for structured delivery."}}async function M(a,b=console.error,c={}){let d=c.schedule??((a,b)=>setTimeout(a,b)),e=c.maxRetryMs??1e3,f=Math.min(Math.max(c.jitterRatio??.2,0),1),g=c.random??Math.random,h=c.initialRetryMs??100,i=!1,j=0,k=null,l=null,m=c.waitUntilReady?new Promise((a,b)=>{k=a,l=b}):null,n=async()=>{j+=1;try{c.signal?.throwIfAborted(),await a(),c.signal?.throwIfAborted(),(0,o.xE)(),k?.(),j>1&&b("[structured hosts] startup adoption recovered",{attempts:j})}catch(p){if((0,o.vE)(),c.signal?.aborted)throw l?.(p),p;let a=L(p);if("terminal"===a.disposition)throw b("[structured hosts] startup adoption failed",p,{category:a.category,action:a.action}),l?.(p),p;if(i)return;let k=1+(2*Math.min(Math.max(g(),0),1)-1)*f,m=Math.min(e,Math.max(0,Math.round(h*k)));h=Math.min(2*h,e),i=!0,1===j&&b("[structured hosts] startup adoption failed; retry scheduled",p),d(()=>{i=!1,n().catch(a=>{b("[structured hosts] startup adoption retry aborted",a)})},m).unref?.()}},p=()=>{(0,o.vE)(),i&&l?.(c.signal?.reason)};if(c.signal?.addEventListener("abort",p,{once:!0}),m){try{await Promise.all([n(),m])}finally{c.signal?.removeEventListener("abort",p)}return}await n()}async function N(a){await a.initializeOperatorCapability(),await a.runIdentityMigration?.(),await a.startWakatime(),a.publishHotStateActivation(),a.startStructuredHosts?.(),await a.startControllers(),a.publishViewerReleaseReady()}async function O(){(0,q.kL)();let a=()=>t(),b=i().dirname((0,j.BQ)("state.sqlite")),d=null,e=new AbortController,f=null,g=async()=>{e.abort(Error("structured startup retired by release handover")),await f?.catch(()=>{})},h=()=>{a()&&(0,m.a5)(b)?.mode!=="fencing"||e.abort(Error("structured startup lost release authority")),e.signal.throwIfAborted()},k=async()=>{let{releaseStructuredHostsForViewerDemotion:a}=await Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(9307),c.e(644)]).then(c.bind(c,23886));await a({boundary:u()})};await x(async()=>{let g=await w(a);d=g.authority?.releaseRevision??null;let i=await C(g),j=null;await N({initializeOperatorCapability:E,runIdentityMigration:async()=>{let{runIdentityWaveMigrationAtStartup:a}=await Promise.all([c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(9307),c.e(2150)]).then(c.bind(c,22150));G(a)},startWakatime:F,startStructuredHosts:(0,l.cM)()?()=>{(f=(async()=>{let{adoptStructuredHostsAtStartup:a}=await Promise.all([c.e(7826),c.e(8027),c.e(160),c.e(1952),c.e(8465),c.e(8817),c.e(6796),c.e(9777),c.e(9360),c.e(9307),c.e(644)]).then(c.bind(c,23886));await M(()=>a({assertActive:h}),console.error,{waitUntilReady:!0,signal:e.signal})})()).catch(a=>console.error("[structured hosts] background startup aborted",a))}:null,startControllers:D,publishHotStateActivation:()=>{i&&(j=(0,m.tT)(b,i))},publishViewerReleaseReady:()=>{j&&(0,m.uB)(b,j)}})},a,{fenceRequest:()=>{let a=(0,m.jU)(b),c=(0,m.a5)(b);return null!==a&&c?.mode==="fencing"&&c.releaseRevision===a?c:null},onFenceRequested:async a=>{await g(),await k();let d=await B(),{agentRegistry:e}=await Promise.all([c.e(8027),c.e(160),c.e(1952)]).then(c.bind(c,70160));e().checkpointRollbackMirrorForDemotion(),(0,m.u_)(b,a,d)},onDemoted:async({fenced:a})=>{await g(),await A(async()=>{if(a)return;let e=(0,m.a5)(b);if(!d||e?.releaseRevision!==d||"sqlite"!==e.mode&&"fencing"!==e.mode)return;let{agentRegistry:f}=await Promise.all([c.e(8027),c.e(160),c.e(1952)]).then(c.bind(c,70160));await B(),f().checkpointRollbackMirrorForDemotion()},void 0,void 0,k)}})}},95697:(a,b,c)=>{c.d(b,{H0:()=>x,Ny:()=>r,RG:()=>v,T2:()=>s,X4:()=>p,a5:()=>o,jU:()=>q,tT:()=>y,uB:()=>z,u_:()=>w});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(89204),k=c(76385);let l="LLV_HOT_STATE_RELEASE_REVISION";function m(a){return i().join(a,"hot-state-authority.json")}function n(a){return"string"==typeof a&&/^[0-9a-f]{40}$/.test(a)}function o(a){try{var b;let c=!(b=JSON.parse(g().readFileSync(m(a),"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||n(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 p(a,b=process.env){let c=b.LLV_VIEWER_DEPLOY_TARGET?.trim()||i().join(a,"viewer-release.json");try{var d;let a=!(d=JSON.parse(g().readFileSync(c,"utf8")))||"object"!=typeof d||Array.isArray(d)?null:"string"==typeof d.endpoint&&n(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 q(a,b=process.env){let c=p(a,b);if(!c)return null;let d=b[l]?.trim();if(d)return n(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 r(a,b=process.env){let c=p(a,b);if(!c)return!0;let d=o(a),e=q(a,b);return e?d?.mode==="sqlite"&&d.releaseRevision===e&&c.revision===e:!(b[l]?.trim()||b.PORT?.trim())&&d?.mode==="sqlite"&&d.releaseRevision===c.revision&&"string"==typeof d.activationReadyAt}function s(a,b=process.env){let c=p(a,b);if(!c)return!0;let d=q(a,b);if(!d)return!1;let e=o(a);return e?.mode==="preparing"&&e.releaseRevision===d&&c.revision===d}function t(a,b){return null!==a&&JSON.stringify(a)===JSON.stringify(b)}function u(a,b,c,d,f={}){if(f.releaseReadyAt&&!f.activationReadyAt)throw Error("Viewer release readiness requires completed hot-state activation");let h={schemaVersion:1,epoch:f.epoch??(b?.epoch??0)+1,mode:c,releaseRevision:d,updatedAt:new Date().toISOString(),...f.activationReadyAt?{activationReadyAt:f.activationReadyAt}:{},...f.releaseReadyAt?{releaseReadyAt:f.releaseReadyAt}:{},...f.checkpoint?{checkpoint:f.checkpoint}:{},...f.activationOwner?{activationOwner:f.activationOwner}:"fencing"===c&&b?.releaseRevision===d&&b.activationOwner?{activationOwner:b.activationOwner}:{}};if(!Number.isInteger(h.epoch)||h.epoch<1)throw Error("hot-state authority epoch is invalid");if(b&&h.epoch<b.epoch)throw Error("hot-state authority epoch cannot regress");return!function(a,b){let c=i().dirname(a);g().mkdirSync(c,{recursive:!0,mode:448});let d=i().join(c,`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`),f=g().openSync(d,"wx",384);try{g().writeFileSync(f,`${JSON.stringify(b,null,2)}
135
135
  `,"utf8"),g().fsyncSync(f)}finally{g().closeSync(f)}g().renameSync(d,a);let h=g().openSync(c,"r");try{g().fsyncSync(h)}finally{g().closeSync(h)}}(m(a),h),h}function v(a,b,c,d={}){if(null!==c&&!n(c))throw Error("hot-state release revision is invalid");return(0,j.Ol)(m(a),"hot-state authority is busy",()=>u(a,o(a),b,c,d))}function w(a,b,c){return(0,j.Ol)(m(a),"hot-state authority is busy",()=>{let d=o(a);if(!d||"fencing"!==d.mode||d.epoch!==b.epoch||d.releaseRevision!==b.releaseRevision||d.checkpoint)throw Error("hot-state fence request changed before checkpoint acknowledgement");if(d.activationOwner&&!(0,k.O1)((0,k.y6)(process.pid),d.activationOwner)&&"dead"!==(0,k.Ue)(d.activationOwner))throw Error("live Viewer must acknowledge its own hot-state fence");return u(a,d,"fencing",d.releaseRevision,{epoch:d.epoch,checkpoint:{acknowledgedAt:new Date().toISOString(),revisions:c}})})}function x(a,b){return(0,j.Ol)(m(a),"hot-state authority is busy",()=>{let c=o(a);if(!c||!t(c,b)||"preparing"!==c.mode)throw Error("hot-state preparation changed before completion");return u(a,c,"sqlite",c.releaseRevision,{epoch:c.epoch})})}function y(a,b){return(0,j.Ol)(m(a),"hot-state authority is busy",()=>{let c=o(a);if(!c||!t(c,b)||"sqlite"!==c.mode)throw Error("hot-state authority changed before activation completed");return u(a,c,"sqlite",c.releaseRevision,{epoch:c.epoch,activationReadyAt:new Date().toISOString(),activationOwner:(0,k.y6)(process.pid)})})}function z(a,b){return(0,j.Ol)(m(a),"hot-state authority is busy",()=>{let c=o(a);if(!c||!t(c,b)||"sqlite"!==c.mode||"string"!=typeof c.activationReadyAt)throw Error("hot-state authority changed before Viewer release startup completed");return u(a,c,"sqlite",c.releaseRevision,{epoch:c.epoch,activationReadyAt:c.activationReadyAt,...c.activationOwner?{activationOwner:c.activationOwner}:{},releaseReadyAt:new Date().toISOString()})})}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5408,exports.ids=[5408],exports.modules={15408:(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(22962),k=c(91724),l=c(89940);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,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,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}}};
@@ -1 +1 @@
1
- "use strict";exports.id=5771,exports.ids=[5771],exports.modules={95771:(a,b,c)=>{c.d(b,{adoptStructuredHostsAtStartup:()=>X,releaseUnpublishedStartupHostsForDemotion:()=>_});var d=c(77598),e=c.n(d),f=c(26926),g=c(49113),h=c(74382),i=c(10781),j=c(14509),k=c(48892),l=c(15408),m=c(9302),n=c(21241),o=c(23855),p=c(92806),q=c(13896),r=c(98223),s=c(3127),t=c(97810),u=c(38855),v=c(34083),w=c(45656),x=c(40989),y=c(94777);let z=[],A=[],B=!1,C=null;function D(a,b){let c=new Map(a.map(a=>[(0,k.pp)(a.key),a]));for(let a of b){let b=(0,k.pp)(a.key);c.has(b)||c.set(b,a)}return[...c.values()]}async function E(a,b,c=a.readOnlySnapshot(),d=new Set){let e=[];for(let a of b)!function(a,b,c=new Set){let d=(0,k.pp)(b.key),e=a.entries[d];if(!e?.structuredHost||"dead"===e.status||"unhosted"===e.status)return!1;let f=Object.values(a.conversations).find(a=>a.engine===b.key.engine&&a.generations.at(-1)?.id===b.key.sessionId);return!!(f&&!f.supersededBy&&("terminal"!==f.turn.state||c.has(d)))}(c,a,d)?await a.host.release():e.push(a);return e}let F=["runtime.send","runtime.steer","runtime.inject","runtime.interrupt","runtime.answer","runtime.spawn","runtime.reconfigure","runtime.compact"],G="recovery-continuation",H=e().randomUUID(),I=[];function J(a,b){A=a;let c=new Set(a.map(a=>(0,k.pp)(a.key)));I=b.filter(a=>c.has(a.hostKey))}async function K(a,b=(0,l.js)(),c=a.readOnlySnapshot(),d={}){let e=[];for(let f of b){if(!f.conversationId?.startsWith("conversation_"))continue;let b=a.canonicalConversationId(f.conversationId),g=c.conversations[b],h=g?.generations.at(-1);if(!g||!h||g.supersededBy)continue;let i=(0,k.pp)({engine:g.engine,sessionId:h.id}),j=c.entries[i];if(!j?.structuredHost||null!==j.host)continue;let l=await (0,x.kT)(a,b,{...d,snapshot:c});l?.state==="severed"&&"busy"===l.turn&&(console.error("[structured hosts] resuming an orchestrator seat whose turn was severed",{project:f.project,conversationId:b,evidence:l.reason}),e.push({project:f.project,conversationId:b,path:h.path,seatEpoch:f.seatEpoch,hostKey:i,severed:{kind:l.lastEvent.kind,at:l.lastEvent.at,reason:l.reason}}))}return e}function L(a,b,c,d=a.readOnlySnapshot()){let e=c.find(a=>a.project===b.project);if(!e||"active"!==e.state||e.seatEpoch!==b.seatEpoch||!e.conversationId?.startsWith("conversation_")||a.canonicalConversationId(e.conversationId)!==b.conversationId)return!1;let f=d.conversations[b.conversationId],g=f?.generations.at(-1);if(!f||!g||f.supersededBy||g.path!==b.path||(0,k.pp)({engine:f.engine,sessionId:g.id})!==b.hostKey)return!1;let h=d.entries[b.hostKey];return!!(h?.structuredHost&&null===h.host&&("live"===h.status||"idle"===h.status))}function M(a,b,c,d=a.readOnlySnapshot()){return new Set(b.filter(b=>L(a,b,c,d)).map(a=>a.hostKey))}async function N(a,b,c,d,e){for(let f of c){if(!d.has(f.hostKey)||!L(a,f,e()))continue;let c=`orchestrator-restart-recovery-${H}-${f.seatEpoch}`,g=await (0,v.enqueueStructuredMessage)({path:f.path,conversationId:f.conversationId,clientMessageId:c,text:function(a){let b=null===a.at?"an unrecorded time":new Date(a.at).toISOString();return`Viewer restarted and severed your structured host mid-turn. The severed turn is the one whose last transcript event is ${a.kind??"a record"} at ${b}, which nothing answered. You were re-hosted automatically; resume that turn.`}(f.severed),images:[]},{enabled:()=>!0,client:()=>b,registry:()=>a});if(!g?.ok)throw console.error("[structured hosts] orchestrator restart recovery delivery failed",{conversationId:f.conversationId,status:g?.status??503,error:g?.error??"structured delivery unavailable"}),new s.Hr(g?.error??"orchestrator restart recovery delivery admission failed")}}function O(a,b){return`${G}-${a}-${b}`}async function P(a,b,c,d,e,f){for(let g of c){let c=(0,k.pp)(g.key),h=d.get(c);if(!h||f.has(h))continue;let i=a.readOnlySnapshot().entries[c];if(!i)throw Error(`adopted Codex registry row disappeared: ${c}`);let j=O(g.key.sessionId,i.claimEpoch),l=e.get(c);if(l){if("failed"===l.receipt.status||"rejected"===l.receipt.status){l.receipt.retryOfOperationId||await b.retryOperation(l.operationId,`${l.receipt.idempotencyKey}-retry-1`,{requireHostedConversationId:h});continue}if(l.operationId===j||"delivered"!==l.receipt.status||l.receipt.retryOfOperationId)continue}await b.command({kind:"send",operationId:j,idempotencyKey:j,conversationId:h,text:"Continue the interrupted turn from the transcript.",policy:"queue",turnId:null})}}async function Q(a,b,c){let d=new Map;for(let e of c){let c=(0,k.pp)(e.key),f=a.readOnlySnapshot().entries[c];if(!f)continue;let g=await b.operationStatus(O(e.key.sessionId,f.claimEpoch),{currentRetryLeaf:!0});if(g){d.set(c,g);continue}if(f.claimEpoch<=0)continue;let h=await b.operationStatus(O(e.key.sessionId,f.claimEpoch-1),{currentRetryLeaf:!0});h&&d.set(c,h)}return d}async function R(a,b=()=>{},c=new Map){let d=a.readOnlySnapshot(),e=new Date().toISOString(),f=Object.values(d.conversations).flatMap(a=>{let b=a.generations.at(-1);if(!b)return[];let c=(0,k.pp)({engine:a.engine,sessionId:b.id}),e=d.entries[c];return e?.structuredHost&&"live"===e.status&&!a.supersededBy?[{conversation:a,generation:b,hostKey:c}]:[]}),h=[],i=new Set,j=0,l=Array.from({length:Math.min(16,f.length)},async()=>{for(;j<f.length;){let a=f[j++];if(!a)continue;let{conversation:b,generation:d,hostKey:k}=a,l=await (0,o.mR)(d.path);if(c.set(k,"complete"===l.integrity?(0,x.Q$)(l.records,b.engine,null).lastEventAt:null),"complete"!==l.integrity){i.add(k);continue}let m=function(a,b,c){if("claude"===b)return(0,g.j)(a,"claude");if(!c)return(0,g.j)(a,"codex",!0);let d=a.findLastIndex(a=>{let b=a.payload;if(!b||"object"!=typeof b||Array.isArray(b))return!1;let c=b.type;return"task_started"===c||"turn_started"===c||"user_message"===c});if(d<0){let b=(0,g.j)(a,"codex",!0);return"terminal"===b.state?{state:"unknown",source:"empty",terminalAt:null}:b}return(0,g.j)(a.slice(d),"codex",!0)}(l.records,b.engine,l.prefixTruncated);("busy"===m.state||"terminal"===m.state)&&h.push({engine:b.engine,path:d.path,accountId:d.accountId,launchProfile:d.launchProfile,turn:m,expectedTurnObservedAt:b.turn.observedAt,observedAt:e})}});return await Promise.all(l),b(),h.length>0&&a.reconcileConversations(h),i}function S(a,b){return b.startsWith("conversation_")?a.canonicalConversationId(b):b}async function T(a,b){if(!b)return{hostedRunningConversationIds:new Set,pendingOperationConversationIds:new Set,pendingCodexContinuationConversationIds:new Set};let c=await b.snapshot(),d=new Set(c.sessions.filter(a=>"hosted"===a.host&&("running"===a.turn||"interrupt_requested"===a.turn)).map(b=>S(a,b.conversationId))),e=new Set(c.recentOperations.filter(a=>"pending"===a.status||"queued"===a.status||"delivering"===a.status||"applying"===a.status).filter(a=>"kill"!==a.kind).map(b=>S(a,b.conversationId))),f=new Set,g=0;for(;;){let c=await b.effectBatch(F,g);for(let b of c){let c=b.payload.conversationId;if("string"==typeof c){let d=S(a,c);e.add(d),"runtime.send"===b.kind&&"string"==typeof b.payload.operationId&&b.payload.operationId.startsWith(`${G}-`)&&f.add(d)}}if(c.length<100)break;let d=Math.max(...c.map(a=>a.eventSeq));if(!Number.isSafeInteger(d)||d<=g)throw Error("structured startup operation page did not advance");g=d}return{hostedRunningConversationIds:d,pendingOperationConversationIds:e,pendingCodexContinuationConversationIds:f}}async function U(a,b,c=a.readOnlySnapshot(),d=new Map,e=l.js,f=new Set,g=new Set,h=new Set,i=new Map){let j,m=new Map(Object.values(c.conversations).flatMap(a=>{let b=a.generations.at(-1);return b?[[(0,k.pp)({engine:a.engine,sessionId:b.id}),a]]:[]})),n=new Set(Object.values(c.heldDeliveries).filter(a=>"held"===a.state||"assigned"===a.state||"delivery-uncertain"===a.state).map(b=>a.canonicalConversationId(b.conversationId)));for(let[a,b]of m){let d=c.entries[a];if(d?.status!=="live"||!d.structuredHost||b.supersededBy||i.has(a))continue;let e=await (0,x.SP)(b.engine,b.generations.at(-1).path);i.set(a,e.lastEventAt)}let o=Date.now(),p=(Number.isFinite(j=Number(process.env.LLV_HOST_ADOPTION_MAX_TURN_AGE_HOURS??6))&&j>0?j:6)*36e5,q=new Set;return c=>{let j=m.get((0,k.pp)(c.key));if(!j||j.supersededBy||h.has(a.canonicalConversationId(j.id)))return!1;let l=d.get((0,k.pp)(c.key));if(l?.some(b=>L(a,b,e())))return!0;let r=a.canonicalConversationId(j.id);if(n.has(r)||b.pendingOperationConversationIds.has(r)||"handoff"===c.pendingAction)return!0;if("terminal"===j.turn.state||g.has(r)||f.has((0,k.pp)(c.key)))return!1;let s=b.hostedRunningConversationIds.has(r),t="busy"===j.turn.state||!!c.structuredHost?.activeTurnRef||"live"===c.status&&s;if("live"!==c.status||!t)return!1;let u=(0,k.pp)(c.key),v=i.get(u)??null,w=null===v?null:Math.max(0,o-v);return null!==w&&w<=p||(q.has(u)||(console.warn("[structured hosts] refusing stale turn-claim adoption",{key:u,ageMs:w,maxAgeMs:p}),q.add(u)),!1)}}let V=new Set(["passed","failed","needs_decision","skipped"]);function W(a,b=!0){let c,d=new Set,e=new Set;try{if(!b)throw Error("pipeline admission authority is unavailable");c=(0,q.loadPipelinesForStartup)()}catch(b){for(let[c,d]of(console.error("[structured hosts] pipeline registry unreadable; deferring pipeline adoption",{error:b instanceof Error?b.message:String(b)}),Object.entries(a.readOnlySnapshot().memberships)))d.some(a=>"pipeline"===a.kind)&&e.add(a.canonicalConversationId(c));return{settled:d,deferred:e}}let f=a.readOnlySnapshot().memberships;for(let b of c){let c=b.runs.flatMap(a=>a.attempts).some(a=>a.unresolvedTermination?.survivors.some(a=>"dead"!==(0,m.Ue)(a)));if(c)for(let[c,d]of Object.entries(f))d.some(a=>"pipeline"===a.kind&&a.containerId===b.id)&&e.add(a.canonicalConversationId(c));for(let f of b.runs)for(let b of f.attempts){if(!b.conversationId?.startsWith("conversation_"))continue;let f=a.canonicalConversationId(b.conversationId);V.has(b.state)&&d.add(f),c&&e.add(f)}}return{settled:d,deferred:e}}async function X(a={}){let b=a.assertActive??(()=>{});b(),(0,n.x_)();let c=a.registry??(0,i.agentRegistry)(),d=void 0===a.client?(0,s.sS)():a.client,e=a.orchestratorSeats??l.js,g=function(a,b){let c=new Map;for(let d of[...a,...b]){let a=`${d.project}\0${d.seatEpoch}\0${d.hostKey}`,b=c.get(a);c.set(a,b?{...d,severed:b.severed}:d)}return[...c.values()]}(I,await K(c,e(),c.readOnlySnapshot(),a.liveness??{})),o=function(a){let b=new Map;for(let c of a){let a=b.get(c.hostKey)??[];a.push(c),b.set(c.hostKey,a)}return b}(g),v=null!==d;d&&!(0,t.SW)(c)&&await (0,t.S8)([],{registry:c,client:d,deferStartupWork:!0}),(0,y.lk)({phase:"refreshing transcripts",completedHosts:0,totalHosts:null});let x=new Map,F=await (a.refreshTranscriptState?a.refreshTranscriptState(c):R(c,b,x))??new Set;return b(),(0,q.withPipelineStartupAdmission)(async i=>{var l,n,q,G,H;let K,L,O,R,S;b();let V=i?(a.pipelineEvidence??W)(c):W(c,!1),X=new Set(Object.values(c.readOnlySnapshot().conversations).filter(a=>V.deferred.has(c.canonicalConversationId(a.id))).flatMap(a=>a.generations.map(b=>(0,k.pp)({engine:a.engine,sessionId:b.id})))),$=M(c,g,e()),_=await E(c,A,c.readOnlySnapshot(),$);J(_,g),c.drainDeadSupersededHeldDeliveries(),(0,r.cf)(c,a=>$.has((0,k.pp)(a.key))||X.has((0,k.pp)(a.key)));let aa=await T(c,d),ab=await U(c,aa,c.readOnlySnapshot(),o,e,F,V.settled,V.deferred,x),ac=a=>{try{b()}catch{return!1}return ab(a)},ad=Object.values(c.readOnlySnapshot().entries).filter(a=>a.structuredHost&&ac(a));if(!v&&ad.length>0){A=_,I=[...g];let a=ad.map(a=>(0,k.pp)(a.key));throw B||(B=!0,console.error("[structured hosts] deferring adoption until a delivery controller can claim it",{keys:a})),new s.Hr(`structured delivery controller is unavailable; deferred adoption of ${a.length} host(s): ${a.join(", ")}`)}let ae=ad.filter(a=>"codex"===a.key.engine).length,af=ad.length-ae,ag=ad.length,ah=0,ai=a=>{b(),(0,y.lk)({phase:a,completedHosts:ah,totalHosts:ag})};ai("adopting Codex hosts");let aj=a.resolveCodexOwner??(a=>f.accountManager.resolveTranscriptOwner("codex",a.artifactPath)),ak=a.resolveClaudeOwner??(a=>f.accountManager.resolveTranscriptOwner("claude",a.artifactPath)),al=(0,p.Fd)(process.env),am=await (a.adopt??r.Gd)(c,a=>{let b=aj(a),d=c.rotateSpawnCapabilityForPath(a.artifactPath),e=(0,w.bf)((0,w.oL)(a.launchProfile),al,d);return{cwd:a.cwd,codexHome:b?.home,fileAuthCredentials:b?.kind==="managed",model:a.launchProfile?.model??void 0,effort:a.launchProfile?.effort??void 0,allowSubagents:a.launchProfile?.allowSubagents??!1,mcpServers:a.launchProfile?.mcpServers??["viewer"],plugins:a.launchProfile?.plugins??[],...e.codex,...e.host,env:e.env}},al,ac,()=>{ah+=1,ag=Math.max(ag,ah),(0,y.lk)({phase:"adopting Codex hosts",completedHosts:ah,totalHosts:ag})});ah=Math.max(ah,ae),J(_=D(_,am),g),ai("adopting Claude hosts");let an=await (a.adoptClaude??r.Fn)(c,a=>{var b,d;let e,f,g=(b=ak(a),d=c.rotateSpawnCapabilityForPath(a.artifactPath),e=(0,w.bf)((0,w.oL)(a.launchProfile),(0,p.Fd)(b?.env??al),d),f=b?(0,w.Uk)(b):null,{cwd:a.cwd,claudeConfigDir:f?.claudeConfigDir,claudeProjectsDir:b?.transcriptRoot,spawnPolicyBaseSettingsPath:f?.spawnPolicyBaseSettingsPath??null,allowSubagents:a.launchProfile?.allowSubagents??!1,mcpServers:a.launchProfile?.mcpServers??["viewer"],mcpStatePath:f?.mcpStatePath,readOnly:(0,h.lV)(a.launchProfile),restricted:a.launchProfile?.sandbox==="restricted",env:e.env,...e.host,model:a.launchProfile?.model??void 0,effort:a.launchProfile?.effort??void 0,permissionMode:(0,j.A5)(a.launchProfile??{})});return!g.claudeConfigDir&&g.mcpServers.length>0&&console.error("[structured hosts] resuming a Claude row without the MCP grant it carries",{host:(0,k.pp)(a.key),mcpServers:g.mcpServers,reason:"no Claude account owns this transcript"}),g},al,ac,()=>{ah+=1,ag=Math.max(ag,ah),(0,y.lk)({phase:"adopting Claude hosts",completedHosts:ah,totalHosts:ag})});ah=Math.max(ah,ae+af),J(_=D(_,an),g),function(a,b,c,d,e=t.sy,f=m.$k){let g=new Set(c.map(a=>(0,k.pp)(a.key))),h=Object.values(a.readOnlySnapshot().entries).filter(a=>a.structuredHost&&d(a.key)&&b(a)&&!g.has((0,k.pp)(a.key))&&!e(a.key));if(0===h.length)return;let i=h.filter(a=>{let b=a.structuredHost?.process;return!!(b&&f(b))}),j=h.filter(a=>!i.includes(a));if(j.length>0&&console.error("[structured hosts] eligible hosts have no live engine process to hand over; leaving them to on-demand hosting",{keys:j.map(a=>(0,k.pp)(a.key))}),0===i.length)return;let l=i.map(a=>(0,k.pp)(a.key));throw console.error("[structured hosts] eligible hosts remain owned by the incumbent Viewer; retrying startup",{keys:l}),new s.Hr(`structured startup left ${l.length} eligible host(s) owned by the incumbent Viewer: ${l.join(", ")}`)}(c,ac,_,b=>"codex"===b.engine?void 0===a.adopt:void 0===a.adoptClaude,a.hostClaimed),ai("reconciling structured hosts"),$=M(c,g,e()),J(_=await E(c,_,c.readOnlySnapshot(),$),g);let ao=new Set(_.map(a=>(0,k.pp)(a.key))),ap=_.filter(a=>"codex"===a.key.engine&&!$.has((0,k.pp)(a.key))),aq=d?await Q(c,d,ap):new Map;await (0,r.K$)(c,a=>ao.has((0,k.pp)(a.key))||X.has((0,k.pp)(a.key))||F.has((0,k.pp)(a.key))||ac(a));let ar=c.readOnlySnapshot();$=M(c,g,e(),ar),J(_=await E(c,_,ar,$),g);let as=await U(c,aa,ar,o,e,F,V.settled,V.deferred,x);b();let at=new Set(_.map(a=>(0,k.pp)(a.key))),au=function(a,b,c,d,e=a.readOnlySnapshot()){return new Map(Object.values(e.conversations).flatMap(f=>{let g=f.generations.at(-1);if("codex"!==f.engine||!g)return[];let h={engine:"codex",sessionId:g.id},i=e.entries[(0,k.pp)(h)];return d.has((0,k.pp)(h))?[]:("busy"===f.turn.state||"unknown"===f.turn.state&&(i?.structuredHost?.activeTurnRef||c.has(a.canonicalConversationId(f.id))))&&i?.structuredHost&&b(i)?[[(0,k.pp)(h),f.id]]:[]}))}(c,a=>at.has((0,k.pp)(a.key))||as(a),aa.hostedRunningConversationIds,F,ar),av=_.filter(a=>"codex"===a.key.engine&&!$.has((0,k.pp)(a.key)));ai("finalizing structured delivery"),v&&(await (0,t.le)(_,ai,b),function(a,b=t.sy){let c=a.filter(a=>!b(a.key));if(0===c.length)return;let d=c.map(a=>(0,k.pp)(a.key));throw console.error("[structured hosts] adopted hosts were left unclaimed by the delivery controller",{keys:d}),new s.Hr(`structured delivery controller did not claim ${c.length} adopted host(s): ${d.join(", ")}`)}(_,a.hostClaimed)),ai("recovering orchestrator deliveries"),await N(c,d,g.filter(a=>!X.has(a.hostKey)),at,e),d&&(ai("recovering interrupted deliveries"),await P(c,d,av,au,aq,aa.pendingCodexContinuationConversationIds),ai("kicking recovered deliveries"),await (0,u.l)());let aw=Y(c,V.deferred);return(d&&0===aw.length&&(ai("recovering pending spawns"),await (0,w.Z4)(c,d,{assertActive:b})),b(),z=_,X.size>0||aw.length>0)?(A=_,I=[...g],l=a,n=c,q=[...X],G=V.deferred,H=aw.length,K=`pipeline startup evidence is unresolved; deferred ${q.length} host(s)`+(H>0?` and ${H} pending launch receipt(s)`:""),R=(O=null!==(L=C)&&L.conversationIds.size===G.size&&[...G].every(a=>L.conversationIds.has(a))&&L.fencedReceipts===H)?Math.min(2*L.delayMs,3e4):1e3,C=S={hostKeys:q,conversationIds:new Set(G),fencedReceipts:H,message:K,delayMs:R},O||console.error(`[structured hosts] ${K}; re-probing the evidence`,{hosts:q,nextProbeMs:R}),Z(l,n,S)):(A=[],I=[],C&&(console.error("[structured hosts] deferred pipeline rows admitted",{hosts:C.hostKeys}),C=null)),z})}function Y(a,b){return 0===b.size?[]:Object.values(a.readOnlySnapshot().receipts).filter(c=>"completed"!==c.state&&"failed"!==c.state&&"conflicted"!==c.state&&b.has(a.canonicalConversationId(c.conversationId)))}function Z(a,b,c){let d=a.schedule??((a,b)=>setTimeout(a,b));d(()=>{if(C===c){try{a.assertActive?.()}catch{return}$(a,b,c)}},c.delayMs).unref?.()}async function $(a,b,c){let d=!0;try{let e=(a.pipelineEvidence??W)(b);d=[...c.conversationIds].every(a=>e.deferred.has(a))&&Y(b,e.deferred).length>=c.fencedReceipts}catch(a){console.error("[structured hosts] deferred pipeline evidence probe failed",{error:a instanceof Error?a.message:String(a)})}if(d){c.delayMs=Math.min(2*c.delayMs,3e4),Z(a,b,c);return}try{await X(a)}catch(d){console.error("[structured hosts] deferred pipeline adoption pass failed; re-probing",{error:d instanceof Error?d.message:String(d)}),C===c&&(c.delayMs=Math.min(2*c.delayMs,3e4),Z(a,b,c))}}async function _(){let a=(0,i.agentRegistry)(),b=D(z,A).filter(a=>!(0,t.sy)(a.key)),c=(await Promise.allSettled(b.map(async({key:b,host:c})=>{let d=await c.health();if("active"!==d.status&&"attention"!==d.status||null===d.pid||null===d.processStartIdentity)return;let e=(0,m.y6)(d.pid,void 0,d.processStartIdentity);if(!a.markStructuredHostHandoff(b,e))throw Error("unpublished startup host changed before release handover");await c.release()}))).flatMap(a=>"rejected"===a.status?[a.reason]:[]);if(c.length)throw AggregateError(c,"unpublished startup hosts did not quiesce")}}};
1
+ "use strict";exports.id=5771,exports.ids=[5771],exports.modules={95771:(a,b,c)=>{c.d(b,{adoptStructuredHostsAtStartup:()=>X,releaseStructuredHostsForViewerDemotion:()=>aa});var d=c(26926),e=c(49113),f=c(74382),g=c(10781),h=c(14509),i=c(48892),j=c(15408),k=c(9302),l=c(21241),m=c(23855),n=c(92806),o=c(13896),p=c(98223),q=c(3127),r=c(97810),s=c(38855),t=c(34083),u=c(45656),v=c(40989),w=c(94777),x=c(27930);let y=[],z=[],A=!1,B=null;function C(a,b){let c=new Map(a.map(a=>[(0,i.pp)(a.key),a]));for(let a of b){let b=(0,i.pp)(a.key);c.has(b)||c.set(b,a)}return[...c.values()]}async function D(a,b,c=a.readOnlySnapshot(),d=new Set){let e=[];for(let a of b)!function(a,b,c=new Set){let d=(0,i.pp)(b.key),e=a.entries[d];if(!e?.structuredHost||"dead"===e.status||"unhosted"===e.status)return!1;let f=Object.values(a.conversations).find(a=>a.engine===b.key.engine&&a.generations.at(-1)?.id===b.key.sessionId);return!!(f&&!f.supersededBy&&("terminal"!==f.turn.state||c.has(d)))}(c,a,d)?await a.host.release():e.push(a);return e}let E=["runtime.send","runtime.steer","runtime.inject","runtime.interrupt","runtime.answer","runtime.spawn","runtime.reconfigure","runtime.compact"],F="recovery-continuation",G=[];function H(a,b){z=a;let c=new Set(a.map(a=>(0,i.pp)(a.key)));G=b.filter(a=>c.has(a.hostKey))}async function I(a,b=(0,j.activeOrchestratorSeats)(),c=a.readOnlySnapshot(),d={}){let e=[];for(let f of b){if(!f.conversationId?.startsWith("conversation_"))continue;let b=a.canonicalConversationId(f.conversationId),g=c.conversations[b],h=g?.generations.at(-1);if(!g||!h||g.supersededBy)continue;let j=(0,i.pp)({engine:g.engine,sessionId:h.id}),k=c.entries[j];if(!k?.structuredHost||null!==k.host)continue;let l=await (0,v.kT)(a,b,{...d,snapshot:c});l?.state==="severed"&&"busy"===l.turn&&(console.error("[structured hosts] resuming an orchestrator seat whose turn was severed",{project:f.project,conversationId:b,evidence:l.reason}),e.push({project:f.project,conversationId:b,path:h.path,seatEpoch:f.seatEpoch,hostKey:j,owner:k.structuredHost.process?{...k.structuredHost.process}:null,turnRef:k.structuredHost.activeTurnRef??null,claimEpoch:k.claimEpoch,severed:{kind:l.lastEvent.kind,at:l.lastEvent.at,reason:l.reason}}))}return e}function J(a,b,c,d=a.readOnlySnapshot()){let e=c.find(a=>a.project===b.project);if(!e||"active"!==e.state||e.seatEpoch!==b.seatEpoch||!e.conversationId?.startsWith("conversation_")||a.canonicalConversationId(e.conversationId)!==b.conversationId)return!1;let f=d.conversations[b.conversationId],g=f?.generations.at(-1);if(!f||!g||f.supersededBy||g.path!==b.path||(0,i.pp)({engine:f.engine,sessionId:g.id})!==b.hostKey)return!1;let h=d.entries[b.hostKey];return!!(h?.structuredHost&&null===h.host&&("live"===h.status||"idle"===h.status))}function K(a,b,c,d=a.readOnlySnapshot()){return new Set(b.filter(b=>J(a,b,c,d)).map(a=>a.hostKey))}function L(a,b,c,d,e,f){let g=a.readOnlySnapshot(),h=[];for(let j of c){let c=function(a,b,c,d,e,f,g=Date.now()){let h=a.canonicalConversationId(b.conversationId),j=c.conversations[h],k=j?.generations.at(-1);if(!j||!k)return"the conversation no longer exists";if(j.supersededBy)return"the conversation was superseded";if((0,i.pp)({engine:j.engine,sessionId:k.id})!==b.hostKey)return"the conversation moved to another generation";if(b.seat){let c=d.find(a=>a.project===b.seat.project);if(!c||"active"!==c.state||c.seatEpoch!==b.seat.seatEpoch||!c.conversationId?.startsWith("conversation_")||a.canonicalConversationId(c.conversationId)!==h)return"the orchestrator seat was rotated"}if(f.has(h))return"its pipeline stage is already settled";let l=Date.parse(b.recordedAt);if(g-l>864e5)return"the interruption is too old to resume unattended";if("owed"!==b.state)return null;let m=Object.values(c.heldDeliveries).some(c=>a.canonicalConversationId(c.conversationId)===h&&c.clientMessageId!==b.id&&Date.parse(c.createdAt)>l),n=(e.get(h)??[]).some(a=>a.idempotencyKey!==b.id&&a.at>l);return m||n?"a newer message already resumed the conversation":null}(a,j,g,d,e,f);if(null===c){h.push(j);continue}b.update(j.id,{state:"discharged",resolvedAt:new Date().toISOString(),resolution:c}),console.error("[structured hosts] interrupted turn needs no continuation",{conversationId:j.conversationId,obligation:j.id,reason:c})}return h}async function M(a,b,c,d,e){let f=[];for(let g of d){if(!e.has(g.hostKey))continue;let d=a.readOnlySnapshot(),h=d.entries[g.hostKey]?.structuredHost?.process??null;if(g.owner&&h&&h.pid===g.owner.pid&&h.startIdentity===g.owner.startIdentity)continue;let i=d.conversations[a.canonicalConversationId(g.conversationId)],j=i?.generations.at(-1);if(!i||!j)continue;let k=await (0,t.enqueueStructuredMessage)({path:j.path,conversationId:i.id,clientMessageId:g.id,text:(0,x.at)(g),images:[]},{enabled:()=>!0,client:()=>b,registry:()=>a});if(k?.ok){c.update(g.id,{state:"delivered"===k.outcome?"delivered":"submitted",operationId:k.operationId,attempts:g.attempts+1,..."delivered"===k.outcome?{resolvedAt:new Date().toISOString(),resolution:"delivered"}:{}});continue}let l=k?.error??"structured delivery unavailable",m=k?.status??503;if(console.error("[structured hosts] interrupted turn continuation was not admitted",{conversationId:g.conversationId,obligation:g.id,status:m,error:l}),409===m&&!k?.transportUncertain){c.update(g.id,{state:"failed",attempts:g.attempts+1,resolvedAt:new Date().toISOString(),resolution:l});continue}c.update(g.id,{attempts:g.attempts+1}),f.push(`${g.conversationId}: ${l}`)}return f}function N(a,b){return`${F}-${a}-${b}`}async function O(a,b,c,d,e,f){for(let g of c){let c=(0,i.pp)(g.key),h=d.get(c);if(!h||f.has(h))continue;let j=a.readOnlySnapshot().entries[c];if(!j)throw Error(`adopted Codex registry row disappeared: ${c}`);let k=N(g.key.sessionId,j.claimEpoch),l=e.get(c);if(l){if("failed"===l.receipt.status||"rejected"===l.receipt.status){l.receipt.retryOfOperationId||await b.retryOperation(l.operationId,`${l.receipt.idempotencyKey}-retry-1`,{requireHostedConversationId:h});continue}if(l.operationId===k||"delivered"!==l.receipt.status||l.receipt.retryOfOperationId)continue}await b.command({kind:"send",operationId:k,idempotencyKey:k,conversationId:h,text:"Continue the interrupted turn from the transcript.",policy:"queue",turnId:null})}}async function P(a,b,c){let d=new Map;for(let e of c){let c=(0,i.pp)(e.key),f=a.readOnlySnapshot().entries[c];if(!f)continue;let g=await b.operationStatus(N(e.key.sessionId,f.claimEpoch),{currentRetryLeaf:!0});if(g){d.set(c,g);continue}if(f.claimEpoch<=0)continue;let h=await b.operationStatus(N(e.key.sessionId,f.claimEpoch-1),{currentRetryLeaf:!0});h&&d.set(c,h)}return d}async function Q(a,b=()=>{},c=new Map){let d=a.readOnlySnapshot(),f=new Date().toISOString(),g=Object.values(d.conversations).flatMap(a=>{let b=a.generations.at(-1);if(!b)return[];let c=(0,i.pp)({engine:a.engine,sessionId:b.id}),e=d.entries[c];return e?.structuredHost&&"live"===e.status&&!a.supersededBy?[{conversation:a,generation:b,hostKey:c}]:[]}),h=[],j=new Set,k=0,l=Array.from({length:Math.min(16,g.length)},async()=>{for(;k<g.length;){let a=g[k++];if(!a)continue;let{conversation:b,generation:d,hostKey:i}=a,l=await (0,m.mR)(d.path);if(c.set(i,"complete"===l.integrity?(0,v.Q$)(l.records,b.engine,null).lastEventAt:null),"complete"!==l.integrity){j.add(i);continue}let n=function(a,b,c){if("claude"===b)return(0,e.j)(a,"claude");if(!c)return(0,e.j)(a,"codex",!0);let d=a.findLastIndex(a=>{let b=a.payload;if(!b||"object"!=typeof b||Array.isArray(b))return!1;let c=b.type;return"task_started"===c||"turn_started"===c||"user_message"===c});if(d<0){let b=(0,e.j)(a,"codex",!0);return"terminal"===b.state?{state:"unknown",source:"empty",terminalAt:null}:b}return(0,e.j)(a.slice(d),"codex",!0)}(l.records,b.engine,l.prefixTruncated);("busy"===n.state||"terminal"===n.state)&&h.push({engine:b.engine,path:d.path,accountId:d.accountId,launchProfile:d.launchProfile,turn:n,expectedTurnObservedAt:b.turn.observedAt,observedAt:f})}});return await Promise.all(l),b(),h.length>0&&a.reconcileConversations(h),j}function R(a,b){return b.startsWith("conversation_")?a.canonicalConversationId(b):b}function S(a,b){let c=new Map;for(let d of[...b.recentOperations,...b.sessions.flatMap(a=>a.recentReceipts??[])]){if("send"!==d.kind&&"steer"!==d.kind)continue;let b=Date.parse(d.admittedAt??d.at);if(!Number.isFinite(b))continue;let e=R(a,d.conversationId),f=c.get(e)??[];f.push({idempotencyKey:d.idempotencyKey,at:b}),c.set(e,f)}return c}async function T(a,b){if(!b)return{hostedRunningConversationIds:new Set,pendingOperationConversationIds:new Set,pendingCodexContinuationConversationIds:new Set,admittedMessages:new Map};let c=await b.snapshot(),d=new Set,e=new Set(c.sessions.filter(a=>"hosted"===a.host&&("running"===a.turn||"interrupt_requested"===a.turn)).map(b=>R(a,b.conversationId))),f=new Set,g=new Set,h=S(a,c),i=0;for(;;){let c=await b.effectBatch(E,i);for(let b of c){let c=b.payload.conversationId;if("runtime.reconfigure"===b.kind&&"string"==typeof b.payload.accountId&&"string"==typeof b.payload.operationId){d.add(b.payload.operationId);continue}if("string"==typeof c){let d=R(a,c);f.add(d),"runtime.send"===b.kind&&"string"==typeof b.payload.operationId&&b.payload.operationId.startsWith(`${F}-`)&&g.add(d)}}if(c.length<100)break;let e=Math.max(...c.map(a=>a.eventSeq));if(!Number.isSafeInteger(e)||e<=i)throw Error("structured startup operation page did not advance");i=e}for(let b of c.recentOperations)("pending"===b.status||"queued"===b.status||"delivering"===b.status||"applying"===b.status)&&"kill"!==b.kind&&("reconfigure"===b.kind&&"applying"!==b.status&&d.has(b.operationId)||f.add(R(a,b.conversationId)));return{hostedRunningConversationIds:e,pendingOperationConversationIds:f,pendingCodexContinuationConversationIds:g,admittedMessages:h}}async function U(a,b,c=a.readOnlySnapshot(),d=new Map,e=j.activeOrchestratorSeats,f=new Set,g=new Set,h=new Set,k=new Map,l=new Set){let m,n=new Map(Object.values(c.conversations).flatMap(a=>{let b=a.generations.at(-1);return b?[[(0,i.pp)({engine:a.engine,sessionId:b.id}),a]]:[]})),o=new Set(Object.values(c.heldDeliveries).filter(a=>"held"===a.state||"assigned"===a.state||"delivery-uncertain"===a.state).map(b=>a.canonicalConversationId(b.conversationId)));for(let[a,b]of n){let d=c.entries[a];if(d?.status!=="live"||!d.structuredHost||b.supersededBy||k.has(a))continue;let e=await (0,v.SP)(b.engine,b.generations.at(-1).path);k.set(a,e.lastEventAt)}let p=Date.now(),q=(Number.isFinite(m=Number(process.env.LLV_HOST_ADOPTION_MAX_TURN_AGE_HOURS??6))&&m>0?m:6)*36e5,r=new Set;return c=>{let j=n.get((0,i.pp)(c.key));if(!j||j.supersededBy||h.has(a.canonicalConversationId(j.id)))return!1;if(l.has((0,i.pp)(c.key))&&("live"===c.status||"idle"===c.status))return!0;let m=d.get((0,i.pp)(c.key));if(m?.some(b=>J(a,b,e())))return!0;let s=a.canonicalConversationId(j.id);if(o.has(s)||b.pendingOperationConversationIds.has(s)||"handoff"===c.pendingAction)return!0;if("terminal"===j.turn.state||g.has(s)||f.has((0,i.pp)(c.key)))return!1;let t=b.hostedRunningConversationIds.has(s),u="busy"===j.turn.state||!!c.structuredHost?.activeTurnRef||"live"===c.status&&t;if("live"!==c.status||!u)return!1;let v=(0,i.pp)(c.key),w=k.get(v)??null,x=null===w?null:Math.max(0,p-w);return null!==x&&x<=q||(r.has(v)||(console.warn("[structured hosts] refusing stale turn-claim adoption",{key:v,ageMs:x,maxAgeMs:q}),r.add(v)),!1)}}let V=new Set(["passed","failed","needs_decision","skipped"]);function W(a,b=!0){let c,d=new Set,e=new Set;try{if(!b)throw Error("pipeline admission authority is unavailable");c=(0,o.loadPipelinesForStartup)()}catch(b){for(let[c,d]of(console.error("[structured hosts] pipeline registry unreadable; deferring pipeline adoption",{error:b instanceof Error?b.message:String(b)}),Object.entries(a.readOnlySnapshot().memberships)))d.some(a=>"pipeline"===a.kind)&&e.add(a.canonicalConversationId(c));return{settled:d,deferred:e}}let f=a.readOnlySnapshot().memberships;for(let b of c){let c=b.runs.flatMap(a=>a.attempts).some(a=>a.unresolvedTermination?.survivors.some(a=>"dead"!==(0,k.Ue)(a)));if(c)for(let[c,d]of Object.entries(f))d.some(a=>"pipeline"===a.kind&&a.containerId===b.id)&&e.add(a.canonicalConversationId(c));for(let f of b.runs)for(let b of f.attempts){if(!b.conversationId?.startsWith("conversation_"))continue;let f=a.canonicalConversationId(b.conversationId);V.has(b.state)&&d.add(f),c&&e.add(f)}}return{settled:d,deferred:e}}async function X(a={}){let b=a.assertActive??(()=>{});b(),(0,l.x_)();let c=a.registry??(0,g.agentRegistry)(),e=void 0===a.client?(0,q.sS)():a.client,m=a.orchestratorSeats??j.activeOrchestratorSeats,t=function(a,b){let c=new Map;for(let d of[...a,...b]){let a=`${d.project}\0${d.seatEpoch}\0${d.hostKey}`,b=c.get(a);c.set(a,b?{...d,severed:b.severed}:d)}return[...c.values()]}(G,await I(c,m(),c.readOnlySnapshot(),a.liveness??{})),v=function(a){let b=new Map;for(let c of a){let a=b.get(c.hostKey)??[];a.push(c),b.set(c.hostKey,a)}return b}(t),E=a.interruptions??(0,x.pF)((0,x.pw)(c.filename));for(let a of t)E.record({conversationId:a.conversationId,engine:a.hostKey.startsWith("claude:")?"claude":"codex",hostKey:a.hostKey,path:a.path,owner:a.owner?{pid:a.owner.pid,startIdentity:a.owner.startIdentity}:null,claimEpoch:a.claimEpoch,turnRef:a.turnRef,boundary:`viewer-restart:${a.severed.at??"unrecorded"}`,reason:"viewer-restart",checkpoint:{lastEventKind:a.severed.kind,lastEventAt:a.severed.at},seat:{project:a.project,seatEpoch:a.seatEpoch}});let F=null!==e;e&&!(0,r.SW)(c)&&await (0,r.S8)([],{registry:c,client:e,deferStartupWork:!0}),(0,w.lk)({phase:"refreshing transcripts",completedHosts:0,totalHosts:null});let J=new Map,N=await (a.refreshTranscriptState?a.refreshTranscriptState(c):Q(c,b,J))??new Set;return b(),(0,o.withPipelineStartupAdmission)(async g=>{var j,l,o,I,Q;let R,V,X,$,_;b();let aa=g?(a.pipelineEvidence??W)(c):W(c,!1),ab=new Set(Object.values(c.readOnlySnapshot().conversations).filter(a=>aa.deferred.has(c.canonicalConversationId(a.id))).flatMap(a=>a.generations.map(b=>(0,i.pp)({engine:a.engine,sessionId:b.id})))),ac=K(c,t,m()),ad=function(a,b,c){let d=a.readOnlySnapshot(),e=[];for(let f of c){if("submitted"!==f.state){e.push(f);continue}let c=Object.values(d.heldDeliveries).find(b=>b.clientMessageId===f.id&&a.canonicalConversationId(b.conversationId)===a.canonicalConversationId(f.conversationId)),g=f.operationId?d.deliveryOperationOwners[f.operationId]:void 0,h=c?"delivered"===c.state||"failed"===c.state?c.state:null:g?.terminalState??"delivered";if(null===h){e.push(f);continue}let i="failed"===h?c?.error||g?.terminalReason||"the continuation delivery failed":c||g?"delivered":"delivered; its settled reservation was compacted";b.update(f.id,{state:h,resolvedAt:new Date().toISOString(),resolution:i})}return e}(c,E,E.list().filter(x.ti)),ae=new Set(ad.map(a=>a.hostKey)),af=ae,ag=()=>new Set([...ac,...af]),ah=await D(c,z,c.readOnlySnapshot(),ag());H(ah,t),c.drainDeadSupersededHeldDeliveries(),(0,p.cf)(c,a=>ac.has((0,i.pp)(a.key))||ae.has((0,i.pp)(a.key))||ab.has((0,i.pp)(a.key)));let ai=await T(c,e);af=new Set(L(c,E,ad,m(),ai.admittedMessages,aa.settled).filter(a=>"owed"===a.state).map(a=>a.hostKey));let aj=await U(c,ai,c.readOnlySnapshot(),v,m,N,aa.settled,aa.deferred,J,af),ak=a=>{try{b()}catch{return!1}return aj(a)},al=Object.values(c.readOnlySnapshot().entries).filter(a=>a.structuredHost&&ak(a));if(!F&&al.length>0){z=ah,G=[...t];let a=al.map(a=>(0,i.pp)(a.key));throw A||(A=!0,console.error("[structured hosts] deferring adoption until a delivery controller can claim it",{keys:a})),new q.Hr(`structured delivery controller is unavailable; deferred adoption of ${a.length} host(s): ${a.join(", ")}`)}let am=al.filter(a=>"codex"===a.key.engine).length,an=al.length-am,ao=al.length,ap=0,aq=a=>{b(),(0,w.lk)({phase:a,completedHosts:ap,totalHosts:ao})};aq("adopting Codex hosts");let ar=a.resolveCodexOwner??(a=>d.accountManager.resolveTranscriptOwner("codex",a.artifactPath)),as=a.resolveClaudeOwner??(a=>d.accountManager.resolveTranscriptOwner("claude",a.artifactPath)),at=(0,n.Fd)(process.env),au=await (a.adopt??p.Gd)(c,a=>{let b=ar(a),d=c.rotateSpawnCapabilityForPath(a.artifactPath),e=(0,u.bf)((0,u.oL)(a.launchProfile),at,d);return{cwd:a.cwd,codexHome:b?.home,fileAuthCredentials:b?.kind==="managed",model:a.launchProfile?.model??void 0,effort:a.launchProfile?.effort??void 0,allowSubagents:a.launchProfile?.allowSubagents??!1,mcpServers:a.launchProfile?.mcpServers??["viewer"],plugins:a.launchProfile?.plugins??[],...e.codex,...e.host,env:e.env}},at,ak,()=>{ap+=1,ao=Math.max(ao,ap),(0,w.lk)({phase:"adopting Codex hosts",completedHosts:ap,totalHosts:ao})});ap=Math.max(ap,am),H(ah=C(ah,au),t),aq("adopting Claude hosts");let av=await (a.adoptClaude??p.Fn)(c,a=>{var b,d;let e,g,j=(b=as(a),d=c.rotateSpawnCapabilityForPath(a.artifactPath),e=(0,u.bf)((0,u.oL)(a.launchProfile),(0,n.Fd)(b?.env??at),d),g=b?(0,u.Uk)(b):null,{cwd:a.cwd,claudeConfigDir:g?.claudeConfigDir,claudeProjectsDir:b?.transcriptRoot,spawnPolicyBaseSettingsPath:g?.spawnPolicyBaseSettingsPath??null,allowSubagents:a.launchProfile?.allowSubagents??!1,mcpServers:a.launchProfile?.mcpServers??["viewer"],mcpStatePath:g?.mcpStatePath,readOnly:(0,f.lV)(a.launchProfile),restricted:a.launchProfile?.sandbox==="restricted",env:e.env,...e.host,model:a.launchProfile?.model??void 0,effort:a.launchProfile?.effort??void 0,permissionMode:(0,h.A5)(a.launchProfile??{})});return!j.claudeConfigDir&&j.mcpServers.length>0&&console.error("[structured hosts] resuming a Claude row without the MCP grant it carries",{host:(0,i.pp)(a.key),mcpServers:j.mcpServers,reason:"no Claude account owns this transcript"}),j},at,ak,()=>{ap+=1,ao=Math.max(ao,ap),(0,w.lk)({phase:"adopting Claude hosts",completedHosts:ap,totalHosts:ao})});ap=Math.max(ap,am+an),H(ah=C(ah,av),t),function(a,b,c,d,e=r.sy,f=k.$k){let g=new Set(c.map(a=>(0,i.pp)(a.key))),h=Object.values(a.readOnlySnapshot().entries).filter(a=>a.structuredHost&&d(a.key)&&b(a)&&!g.has((0,i.pp)(a.key))&&!e(a.key));if(0===h.length)return;let j=h.filter(a=>{let b=a.structuredHost?.process;return!!(b&&f(b))}),l=h.filter(a=>!j.includes(a));if(l.length>0&&console.error("[structured hosts] eligible hosts have no live engine process to hand over; leaving them to on-demand hosting",{keys:l.map(a=>(0,i.pp)(a.key))}),0===j.length)return;let m=j.map(a=>(0,i.pp)(a.key));throw console.error("[structured hosts] eligible hosts remain owned by the incumbent Viewer; retrying startup",{keys:m}),new q.Hr(`structured startup left ${m.length} eligible host(s) owned by the incumbent Viewer: ${m.join(", ")}`)}(c,ak,ah,b=>"codex"===b.engine?void 0===a.adopt:void 0===a.adoptClaude,a.hostClaimed),aq("reconciling structured hosts"),ac=K(c,t,m()),H(ah=await D(c,ah,c.readOnlySnapshot(),ag()),t);let aw=new Set(ah.map(a=>(0,i.pp)(a.key))),ax=ah.filter(a=>"codex"===a.key.engine&&!ac.has((0,i.pp)(a.key))&&!ae.has((0,i.pp)(a.key))),ay=e?await P(c,e,ax):new Map;await (0,p.K$)(c,a=>aw.has((0,i.pp)(a.key))||ab.has((0,i.pp)(a.key))||N.has((0,i.pp)(a.key))||ak(a));let az=c.readOnlySnapshot();ac=K(c,t,m(),az),H(ah=await D(c,ah,az,ag()),t);let aA=await U(c,ai,az,v,m,N,aa.settled,aa.deferred,J,af);b();let aB=new Set(ah.map(a=>(0,i.pp)(a.key))),aC=function(a,b,c,d,e=a.readOnlySnapshot()){return new Map(Object.values(e.conversations).flatMap(f=>{let g=f.generations.at(-1);if("codex"!==f.engine||!g)return[];let h={engine:"codex",sessionId:g.id},j=e.entries[(0,i.pp)(h)];return d.has((0,i.pp)(h))?[]:("busy"===f.turn.state||"unknown"===f.turn.state&&(j?.structuredHost?.activeTurnRef||c.has(a.canonicalConversationId(f.id))))&&j?.structuredHost&&b(j)?[[(0,i.pp)(h),f.id]]:[]}))}(c,a=>aB.has((0,i.pp)(a.key))||aA(a),ai.hostedRunningConversationIds,N,az),aD=ah.filter(a=>"codex"===a.key.engine&&!ac.has((0,i.pp)(a.key))&&!ae.has((0,i.pp)(a.key)));if(aq("finalizing structured delivery"),F&&(await (0,r.le)(ah,aq,b),!function(a,b=r.sy){let c=a.filter(a=>!b(a.key));if(0===c.length)return;let d=c.map(a=>(0,i.pp)(a.key));throw console.error("[structured hosts] adopted hosts were left unclaimed by the delivery controller",{keys:d}),new q.Hr(`structured delivery controller did not claim ${c.length} adopted host(s): ${d.join(", ")}`)}(ah,a.hostClaimed)),e){aq("recovering orchestrator deliveries");let a=E.list().filter(a=>(0,x.ti)(a)&&af.has(a.hostKey)&&!ab.has(a.hostKey)),b=0===a.length?[]:L(c,E,a,m(),S(c,await e.snapshot()),aa.settled),d=await M(c,e,E,b,aB);if(aq("recovering interrupted deliveries"),await O(c,e,aD,aC,ay,ai.pendingCodexContinuationConversationIds),aq("kicking recovered deliveries"),await (0,s.l)(),d.length>0)throw new q.Hr(`interrupted turn continuation admission failed: ${d.join("; ")}`)}let aE=Y(c,aa.deferred);return(e&&0===aE.length&&(aq("recovering pending spawns"),await (0,u.Z4)(c,e,{assertActive:b})),b(),y=ah,ab.size>0||aE.length>0)?(z=ah,G=[...t],j=a,l=c,o=[...ab],I=aa.deferred,Q=aE.length,R=`pipeline startup evidence is unresolved; deferred ${o.length} host(s)`+(Q>0?` and ${Q} pending launch receipt(s)`:""),$=(X=null!==(V=B)&&V.conversationIds.size===I.size&&[...I].every(a=>V.conversationIds.has(a))&&V.fencedReceipts===Q)?Math.min(2*V.delayMs,3e4):1e3,B=_={hostKeys:o,conversationIds:new Set(I),fencedReceipts:Q,message:R,delayMs:$},X||console.error(`[structured hosts] ${R}; re-probing the evidence`,{hosts:o,nextProbeMs:$}),Z(j,l,_)):(z=[],G=[],B&&(console.error("[structured hosts] deferred pipeline rows admitted",{hosts:B.hostKeys}),B=null)),y})}function Y(a,b){return 0===b.size?[]:Object.values(a.readOnlySnapshot().receipts).filter(c=>"completed"!==c.state&&"failed"!==c.state&&"conflicted"!==c.state&&b.has(a.canonicalConversationId(c.conversationId)))}function Z(a,b,c){let d=a.schedule??((a,b)=>setTimeout(a,b));d(()=>{if(B===c){try{a.assertActive?.()}catch{return}$(a,b,c)}},c.delayMs).unref?.()}async function $(a,b,c){let d=!0;try{let e=(a.pipelineEvidence??W)(b);d=[...c.conversationIds].every(a=>e.deferred.has(a))&&Y(b,e.deferred).length>=c.fencedReceipts}catch(a){console.error("[structured hosts] deferred pipeline evidence probe failed",{error:a instanceof Error?a.message:String(a)})}if(d){c.delayMs=Math.min(2*c.delayMs,3e4),Z(a,b,c);return}try{await X(a)}catch(d){console.error("[structured hosts] deferred pipeline adoption pass failed; re-probing",{error:d instanceof Error?d.message:String(d)}),B===c&&(c.delayMs=Math.min(2*c.delayMs,3e4),Z(a,b,c))}}async function _(a={}){let b=(0,g.agentRegistry)(),c=C(y,z).filter(a=>!(0,r.sy)(a.key)),d=new Set,e=await Promise.allSettled(c.map(async({key:c,host:e})=>{let f=await e.health();if("active"!==f.status&&"attention"!==f.status||null===f.pid||null===f.processStartIdentity)return;let g=(0,k.y6)(f.pid,void 0,f.processStartIdentity);if(!b.markStructuredHostHandoff(c,g))throw Error("unpublished startup host changed before release handover");try{await (0,r.SD)(b,c,f,a)}catch(a){throw console.error("[viewer release] interrupted turn could not be recorded; leaving its unpublished host running",{hostKey:(0,i.pp)(c),error:a}),a}await e.release(),d.add((0,i.pp)(c))})),f=a=>!d.has((0,i.pp)(a.key));y=y.filter(f),z=z.filter(f);let h=e.flatMap(a=>"rejected"===a.status?[a.reason]:[]);if(h.length)throw AggregateError(h,"unpublished startup hosts did not quiesce")}async function aa(a={}){let b=[];for(let c of[_,r.releaseStructuredDeliveryHostsForDemotion])try{await c(a)}catch(a){b.push(a)}if(b.length)throw AggregateError(b,"structured hosts did not all cross the release boundary")}}};