agent-log-viewer 1.1.0 → 1.2.0

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 (635) hide show
  1. package/bin/cli.mjs +4 -0
  2. package/bin/server-runtime.test.ts +63 -12
  3. package/dist/mcp-server.mjs +31365 -26173
  4. package/dist/runtime-host.mjs +15618 -7081
  5. package/dist/standalone/.next/BUILD_ID +1 -1
  6. package/dist/standalone/.next/app-path-routes-manifest.json +21 -16
  7. package/dist/standalone/.next/build-manifest.json +3 -3
  8. package/dist/standalone/.next/prerender-manifest.json +4 -4
  9. package/dist/standalone/.next/react-loadable-manifest.json +1 -1
  10. package/dist/standalone/.next/required-server-files.json +1 -1
  11. package/dist/standalone/.next/routes-manifest.json +30 -0
  12. package/dist/standalone/.next/server/account-migration-controller-worker.js +1 -1
  13. package/dist/standalone/.next/server/app/_global-error/page.js +2 -2
  14. package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  15. package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  16. package/dist/standalone/.next/server/app/_global-error.html +1 -1
  17. package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
  18. package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  19. package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  20. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  21. package/dist/standalone/.next/server/app/_not-found/page.js +1 -1
  22. package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  23. package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  24. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  25. package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
  26. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  27. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  28. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  29. package/dist/standalone/.next/server/app/api/access/route.js +1 -1
  30. package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
  31. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
  32. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
  33. package/dist/standalone/.next/server/app/api/account-project-bindings/route.js +1 -1
  34. package/dist/standalone/.next/server/app/api/account-project-bindings/route.js.nft.json +1 -1
  35. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +1 -1
  36. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -1
  37. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js +1 -1
  38. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -1
  39. package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js +1 -1
  40. package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js.nft.json +1 -1
  41. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js +1 -1
  42. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -1
  43. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js +1 -1
  44. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -1
  45. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js +1 -1
  46. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -1
  47. package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -1
  48. package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -1
  49. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js +1 -1
  50. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -1
  51. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js +1 -1
  52. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -1
  53. package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js +1 -1
  54. package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js.nft.json +1 -1
  55. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js +1 -1
  56. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
  57. package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js +2 -2
  58. package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js.nft.json +1 -1
  59. package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
  60. package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
  61. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +1 -1
  62. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -1
  63. package/dist/standalone/.next/server/app/api/accounts/route.js +1 -1
  64. package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -1
  65. package/dist/standalone/.next/server/app/api/agent/route.js +1 -1
  66. package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
  67. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -1
  68. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -1
  69. package/dist/standalone/.next/server/app/api/answer/route.js +1 -2
  70. package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
  71. package/dist/standalone/.next/server/app/api/artifact/route.js +1 -1
  72. package/dist/standalone/.next/server/app/api/artifact/route.js.nft.json +1 -1
  73. package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -1
  74. package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -1
  75. package/dist/standalone/.next/server/app/api/attention/[id]/route.js +1 -1
  76. package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -1
  77. package/dist/standalone/.next/server/app/api/attention/route.js +1 -1
  78. package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -1
  79. package/dist/standalone/.next/server/app/api/board/route.js +1 -1
  80. package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -1
  81. package/dist/standalone/.next/server/app/api/bridge/route.js +1 -2
  82. package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
  83. package/dist/standalone/.next/server/app/api/conversation-host/route.js +1 -1
  84. package/dist/standalone/.next/server/app/api/conversation-host/route.js.nft.json +1 -1
  85. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js +1 -1
  86. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js.nft.json +1 -1
  87. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
  88. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
  89. package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
  90. package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
  91. package/dist/standalone/.next/server/app/api/files/route.js +3 -2
  92. package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  93. package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
  94. package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
  95. package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
  96. package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
  97. package/dist/standalone/.next/server/app/api/image/route.js +1 -1
  98. package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
  99. package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
  100. package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  101. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
  102. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
  103. package/dist/standalone/.next/server/app/api/limits/history/route.js +1 -1
  104. package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -1
  105. package/dist/standalone/.next/server/app/api/limits/route.js +1 -1
  106. package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
  107. package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -1
  108. package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -1
  109. package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -1
  110. package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -1
  111. package/dist/standalone/.next/server/app/api/log/provenance/route.js +107 -1
  112. package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -1
  113. package/dist/standalone/.next/server/app/api/log/route.js +1 -1
  114. package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
  115. package/dist/standalone/.next/server/app/api/log/suggestions/route.js +2 -4
  116. package/dist/standalone/.next/server/app/api/log/suggestions/route.js.nft.json +1 -1
  117. package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
  118. package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  119. package/dist/standalone/.next/server/app/api/logs/stream/route.js +2 -2
  120. package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  121. package/dist/standalone/.next/server/app/api/monitor/runs/route.js +3 -3
  122. package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
  123. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js +25 -0
  124. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js.nft.json +1 -0
  125. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route_client-reference-manifest.js +1 -0
  126. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js +2 -0
  127. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js.nft.json +1 -0
  128. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route_client-reference-manifest.js +1 -0
  129. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
  130. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
  131. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
  132. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
  133. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +2 -2
  134. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -1
  135. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -1
  136. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -1
  137. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js +1 -1
  138. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -1
  139. package/dist/standalone/.next/server/app/api/pipelines/route.js +1 -2
  140. package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
  141. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +2 -2
  142. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
  143. package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
  144. package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
  145. package/dist/standalone/.next/server/app/api/projects/create/route.js +2 -2
  146. package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -1
  147. package/dist/standalone/.next/server/app/api/projects/crown/route.js +1 -1
  148. package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -1
  149. package/dist/standalone/.next/server/app/api/projects/directories/route.js +1 -1
  150. package/dist/standalone/.next/server/app/api/projects/directories/route.js.nft.json +1 -1
  151. package/dist/standalone/.next/server/app/api/push/route.js +2 -2
  152. package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
  153. package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
  154. package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
  155. package/dist/standalone/.next/server/app/api/roles/route.js +2 -2
  156. package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
  157. package/dist/standalone/.next/server/app/api/runtime/answer/route.js +1 -1
  158. package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -1
  159. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js +1 -1
  160. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -1
  161. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js +1 -1
  162. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -1
  163. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js +1 -1
  164. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -1
  165. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js +1 -1
  166. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js.nft.json +1 -1
  167. package/dist/standalone/.next/server/app/api/runtime/inject/route.js +1 -0
  168. package/dist/standalone/.next/server/app/api/runtime/inject/route.js.nft.json +1 -0
  169. package/dist/standalone/.next/server/app/api/runtime/inject/route_client-reference-manifest.js +1 -0
  170. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +1 -1
  171. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -1
  172. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +1 -1
  173. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
  174. package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -1
  175. package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
  176. package/dist/standalone/.next/server/app/api/runtime/queue/route.js +1 -0
  177. package/dist/standalone/.next/server/app/api/runtime/queue/route.js.nft.json +1 -0
  178. package/dist/standalone/.next/server/app/api/runtime/queue/route_client-reference-manifest.js +1 -0
  179. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +1 -2
  180. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
  181. package/dist/standalone/.next/server/app/api/runtime/send/route.js +1 -1
  182. package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -1
  183. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js +1 -1
  184. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -1
  185. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +1 -1
  186. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -1
  187. package/dist/standalone/.next/server/app/api/runtime/steer/route.js +1 -1
  188. package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -1
  189. package/dist/standalone/.next/server/app/api/runtime/stream/route.js +2 -2
  190. package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -1
  191. package/dist/standalone/.next/server/app/api/search/transcripts/route.js +2 -2
  192. package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -1
  193. package/dist/standalone/.next/server/app/api/session/route.js +1 -1
  194. package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  195. package/dist/standalone/.next/server/app/api/session/supersedence/route.js +1 -1
  196. package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -1
  197. package/dist/standalone/.next/server/app/api/session/title/route.js +1 -1
  198. package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -1
  199. package/dist/standalone/.next/server/app/api/spawn/policy/route.js +3 -3
  200. package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -1
  201. package/dist/standalone/.next/server/app/api/spawn/route.js +1 -2
  202. package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
  203. package/dist/standalone/.next/server/app/api/spawn/validate/route.js +1 -0
  204. package/dist/standalone/.next/server/app/api/spawn/validate/route.js.nft.json +1 -0
  205. package/dist/standalone/.next/server/app/api/spawn/validate/route_client-reference-manifest.js +1 -0
  206. package/dist/standalone/.next/server/app/api/staging/route.js +2 -2
  207. package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
  208. package/dist/standalone/.next/server/app/api/task-attachments/route.js +2 -2
  209. package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
  210. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
  211. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
  212. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  213. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  214. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +1 -2
  215. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
  216. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +1 -2
  217. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
  218. package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
  219. package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
  220. package/dist/standalone/.next/server/app/api/tasks/route.js +1 -1
  221. package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  222. package/dist/standalone/.next/server/app/api/telegram/reports/route.js +1 -1
  223. package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -1
  224. package/dist/standalone/.next/server/app/api/telegram/route.js +1 -1
  225. package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -1
  226. package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
  227. package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
  228. package/dist/standalone/.next/server/app/api/tmux/route.js +1 -1
  229. package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
  230. package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
  231. package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
  232. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js +2 -2
  233. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
  234. package/dist/standalone/.next/server/app/api/transcribe/route.js +2 -2
  235. package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
  236. package/dist/standalone/.next/server/app/api/transcribe/token/route.js +2 -2
  237. package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
  238. package/dist/standalone/.next/server/app/api/tts/backend/route.js +1 -1
  239. package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -1
  240. package/dist/standalone/.next/server/app/api/tts/route.js +3 -3
  241. package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -1
  242. package/dist/standalone/.next/server/app/api/view/presence/route.js +1 -1
  243. package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -1
  244. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
  245. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
  246. package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
  247. package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  248. package/dist/standalone/.next/server/app/favicon.ico/route.js +1 -1
  249. package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  250. package/dist/standalone/.next/server/app/index.html +1 -1
  251. package/dist/standalone/.next/server/app/index.rsc +3 -3
  252. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  253. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  254. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  255. package/dist/standalone/.next/server/app/page.js +59 -30
  256. package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
  257. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  258. package/dist/standalone/.next/server/app-paths-manifest.json +21 -16
  259. package/dist/standalone/.next/server/chunks/107.js +1 -1
  260. package/dist/standalone/.next/server/chunks/1100.js +29 -10
  261. package/dist/standalone/.next/server/chunks/1406.js +399 -0
  262. package/dist/standalone/.next/server/chunks/1585.js +108 -0
  263. package/dist/standalone/.next/server/chunks/160.js +4 -4
  264. package/dist/standalone/.next/server/chunks/1617.js +2 -2
  265. package/dist/standalone/.next/server/chunks/1849.js +1 -0
  266. package/dist/standalone/.next/server/chunks/1888.js +1 -1
  267. package/dist/standalone/.next/server/chunks/193.js +1 -0
  268. package/dist/standalone/.next/server/chunks/1952.js +1 -0
  269. package/dist/standalone/.next/server/chunks/2549.js +1 -1
  270. package/dist/standalone/.next/server/chunks/2555.js +1 -0
  271. package/dist/standalone/.next/server/chunks/2647.js +1 -1
  272. package/dist/standalone/.next/server/chunks/2857.js +1 -0
  273. package/dist/standalone/.next/server/chunks/2914.js +24 -0
  274. package/dist/standalone/.next/server/chunks/3034.js +1 -0
  275. package/dist/standalone/.next/server/chunks/3086.js +1 -1
  276. package/dist/standalone/.next/server/chunks/3131.js +1 -0
  277. package/dist/standalone/.next/server/chunks/3214.js +1 -1
  278. package/dist/standalone/.next/server/chunks/3302.js +1 -2
  279. package/dist/standalone/.next/server/chunks/3407.js +1 -0
  280. package/dist/standalone/.next/server/chunks/3422.js +1 -0
  281. package/dist/standalone/.next/server/chunks/3558.js +1 -0
  282. package/dist/standalone/.next/server/chunks/3570.js +81 -0
  283. package/dist/standalone/.next/server/chunks/3587.js +1 -1
  284. package/dist/standalone/.next/server/chunks/3743.js +74 -24
  285. package/dist/standalone/.next/server/chunks/3830.js +1 -1
  286. package/dist/standalone/.next/server/chunks/3896.js +1 -0
  287. package/dist/standalone/.next/server/chunks/4127.js +1 -1
  288. package/dist/standalone/.next/server/chunks/4509.js +1 -1
  289. package/dist/standalone/.next/server/chunks/4637.js +62 -0
  290. package/dist/standalone/.next/server/chunks/4651.js +1 -1
  291. package/dist/standalone/.next/server/chunks/4783.js +1 -0
  292. package/dist/standalone/.next/server/chunks/480.js +126 -0
  293. package/dist/standalone/.next/server/chunks/4972.js +3 -3
  294. package/dist/standalone/.next/server/chunks/{4756.js → 4995.js} +3 -5
  295. package/dist/standalone/.next/server/chunks/5480.js +1 -1
  296. package/dist/standalone/.next/server/chunks/5545.js +1 -1
  297. package/dist/standalone/.next/server/chunks/568.js +1 -2
  298. package/dist/standalone/.next/server/chunks/5682.js +1 -0
  299. package/dist/standalone/.next/server/chunks/5771.js +1 -0
  300. package/dist/standalone/.next/server/chunks/5847.js +1 -0
  301. package/dist/standalone/.next/server/chunks/6023.js +1 -0
  302. package/dist/standalone/.next/server/chunks/6277.js +81 -0
  303. package/dist/standalone/.next/server/chunks/6289.js +2 -0
  304. package/dist/standalone/.next/server/chunks/644.js +81 -0
  305. package/dist/standalone/.next/server/chunks/6453.js +1 -0
  306. package/dist/standalone/.next/server/chunks/6522.js +1 -0
  307. package/dist/standalone/.next/server/chunks/6665.js +1 -1
  308. package/dist/standalone/.next/server/chunks/6809.js +3 -0
  309. package/dist/standalone/.next/server/chunks/6826.js +1 -1
  310. package/dist/standalone/.next/server/chunks/6926.js +1 -1
  311. package/dist/standalone/.next/server/chunks/{1920.js → 6942.js} +1 -1
  312. package/dist/standalone/.next/server/chunks/6978.js +1 -0
  313. package/dist/standalone/.next/server/chunks/7008.js +114 -9
  314. package/dist/standalone/.next/server/chunks/7192.js +1 -0
  315. package/dist/standalone/.next/server/chunks/7238.js +2 -0
  316. package/dist/standalone/.next/server/chunks/7361.js +22 -0
  317. package/dist/standalone/.next/server/chunks/7644.js +3 -3
  318. package/dist/standalone/.next/server/chunks/7722.js +1 -1
  319. package/dist/standalone/.next/server/chunks/781.js +55 -0
  320. package/dist/standalone/.next/server/chunks/7826.js +62 -0
  321. package/dist/standalone/.next/server/chunks/8027.js +11 -1
  322. package/dist/standalone/.next/server/chunks/8444.js +1 -1
  323. package/dist/standalone/.next/server/chunks/8512.js +1 -0
  324. package/dist/standalone/.next/server/chunks/8513.js +2 -0
  325. package/dist/standalone/.next/server/chunks/8617.js +1 -1
  326. package/dist/standalone/.next/server/chunks/8817.js +1 -1
  327. package/dist/standalone/.next/server/chunks/8991.js +1 -1
  328. package/dist/standalone/.next/server/chunks/8996.js +1 -1
  329. package/dist/standalone/.next/server/chunks/9296.js +104 -0
  330. package/dist/standalone/.next/server/chunks/{7139.js → 9298.js} +2 -2
  331. package/dist/standalone/.next/server/chunks/9307.js +1 -1
  332. package/dist/standalone/.next/server/chunks/9360.js +197 -0
  333. package/dist/standalone/.next/server/chunks/9403.js +1 -1
  334. package/dist/standalone/.next/server/chunks/9517.js +1 -1
  335. package/dist/standalone/.next/server/chunks/9554.js +47 -0
  336. package/dist/standalone/.next/server/chunks/9676.js +1 -62
  337. package/dist/standalone/.next/server/chunks/9822.js +11 -1
  338. package/dist/standalone/.next/server/chunks/9901.js +1 -62
  339. package/dist/standalone/.next/server/chunks/9940.js +3 -3
  340. package/dist/standalone/.next/server/chunks/9998.js +1 -1
  341. package/dist/standalone/.next/server/file-scanner-worker.js +3 -3
  342. package/dist/standalone/.next/server/files-response-worker.js +6 -6
  343. package/dist/standalone/.next/server/functions-config-manifest.json +5 -0
  344. package/dist/standalone/.next/server/instrumentation.js +1 -1
  345. package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
  346. package/dist/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  347. package/dist/standalone/.next/server/middleware.js +4 -4
  348. package/dist/standalone/.next/server/pages/404.html +1 -1
  349. package/dist/standalone/.next/server/pages/500.html +1 -1
  350. package/dist/standalone/.next/server/resource-collector-worker.js +1 -1
  351. package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
  352. package/dist/standalone/.next/server/wakatime-sync-worker.js +2 -2
  353. package/dist/standalone/.next/static/chunks/{3794-d1854fdd0e41dc44.js → 3794-0ef35fddac53cd9a.js} +1 -1
  354. package/dist/standalone/.next/static/chunks/6976-016b6947195a6ed2.js +1 -0
  355. package/dist/standalone/.next/static/chunks/app/_global-error/page-60a25d1c4cbf0128.js +1 -0
  356. package/dist/standalone/.next/static/chunks/app/api/access/route-60a25d1c4cbf0128.js +1 -0
  357. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-60a25d1c4cbf0128.js +1 -0
  358. package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-60a25d1c4cbf0128.js +1 -0
  359. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-60a25d1c4cbf0128.js +1 -0
  360. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-60a25d1c4cbf0128.js +1 -0
  361. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-60a25d1c4cbf0128.js +1 -0
  362. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-60a25d1c4cbf0128.js +1 -0
  363. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-60a25d1c4cbf0128.js +1 -0
  364. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-60a25d1c4cbf0128.js +1 -0
  365. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-60a25d1c4cbf0128.js +1 -0
  366. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-60a25d1c4cbf0128.js +1 -0
  367. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-60a25d1c4cbf0128.js +1 -0
  368. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-60a25d1c4cbf0128.js +1 -0
  369. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-60a25d1c4cbf0128.js +1 -0
  370. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-60a25d1c4cbf0128.js +1 -0
  371. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-60a25d1c4cbf0128.js +1 -0
  372. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-60a25d1c4cbf0128.js +1 -0
  373. package/dist/standalone/.next/static/chunks/app/api/accounts/route-60a25d1c4cbf0128.js +1 -0
  374. package/dist/standalone/.next/static/chunks/app/api/agent/route-60a25d1c4cbf0128.js +1 -0
  375. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-60a25d1c4cbf0128.js +1 -0
  376. package/dist/standalone/.next/static/chunks/app/api/answer/route-60a25d1c4cbf0128.js +1 -0
  377. package/dist/standalone/.next/static/chunks/app/api/artifact/route-60a25d1c4cbf0128.js +1 -0
  378. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-60a25d1c4cbf0128.js +1 -0
  379. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-60a25d1c4cbf0128.js +1 -0
  380. package/dist/standalone/.next/static/chunks/app/api/attention/route-60a25d1c4cbf0128.js +1 -0
  381. package/dist/standalone/.next/static/chunks/app/api/board/route-60a25d1c4cbf0128.js +1 -0
  382. package/dist/standalone/.next/static/chunks/app/api/bridge/route-60a25d1c4cbf0128.js +1 -0
  383. package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-60a25d1c4cbf0128.js +1 -0
  384. package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-60a25d1c4cbf0128.js +1 -0
  385. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-60a25d1c4cbf0128.js +1 -0
  386. package/dist/standalone/.next/static/chunks/app/api/conversations/route-60a25d1c4cbf0128.js +1 -0
  387. package/dist/standalone/.next/static/chunks/app/api/files/route-60a25d1c4cbf0128.js +1 -0
  388. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-60a25d1c4cbf0128.js +1 -0
  389. package/dist/standalone/.next/static/chunks/app/api/flows/route-60a25d1c4cbf0128.js +1 -0
  390. package/dist/standalone/.next/static/chunks/app/api/image/route-60a25d1c4cbf0128.js +1 -0
  391. package/dist/standalone/.next/static/chunks/app/api/inbox/route-60a25d1c4cbf0128.js +1 -0
  392. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-60a25d1c4cbf0128.js +1 -0
  393. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-60a25d1c4cbf0128.js +1 -0
  394. package/dist/standalone/.next/static/chunks/app/api/limits/route-60a25d1c4cbf0128.js +1 -0
  395. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-60a25d1c4cbf0128.js +1 -0
  396. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-60a25d1c4cbf0128.js +1 -0
  397. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-60a25d1c4cbf0128.js +1 -0
  398. package/dist/standalone/.next/static/chunks/app/api/log/route-60a25d1c4cbf0128.js +1 -0
  399. package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-60a25d1c4cbf0128.js +1 -0
  400. package/dist/standalone/.next/static/chunks/app/api/logs/route-60a25d1c4cbf0128.js +1 -0
  401. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-60a25d1c4cbf0128.js +1 -0
  402. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-60a25d1c4cbf0128.js +1 -0
  403. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/route-60a25d1c4cbf0128.js +1 -0
  404. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/settings/route-60a25d1c4cbf0128.js +1 -0
  405. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-60a25d1c4cbf0128.js +1 -0
  406. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-60a25d1c4cbf0128.js +1 -0
  407. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-60a25d1c4cbf0128.js +1 -0
  408. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-60a25d1c4cbf0128.js +1 -0
  409. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-60a25d1c4cbf0128.js +1 -0
  410. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-60a25d1c4cbf0128.js +1 -0
  411. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-60a25d1c4cbf0128.js +1 -0
  412. package/dist/standalone/.next/static/chunks/app/api/proc/route-60a25d1c4cbf0128.js +1 -0
  413. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-60a25d1c4cbf0128.js +1 -0
  414. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-60a25d1c4cbf0128.js +1 -0
  415. package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-60a25d1c4cbf0128.js +1 -0
  416. package/dist/standalone/.next/static/chunks/app/api/push/route-60a25d1c4cbf0128.js +1 -0
  417. package/dist/standalone/.next/static/chunks/app/api/resources/route-60a25d1c4cbf0128.js +1 -0
  418. package/dist/standalone/.next/static/chunks/app/api/roles/route-60a25d1c4cbf0128.js +1 -0
  419. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-60a25d1c4cbf0128.js +1 -0
  420. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-60a25d1c4cbf0128.js +1 -0
  421. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-60a25d1c4cbf0128.js +1 -0
  422. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-60a25d1c4cbf0128.js +1 -0
  423. package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-60a25d1c4cbf0128.js +1 -0
  424. package/dist/standalone/.next/static/chunks/app/api/runtime/inject/route-60a25d1c4cbf0128.js +1 -0
  425. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-60a25d1c4cbf0128.js +1 -0
  426. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-60a25d1c4cbf0128.js +1 -0
  427. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-60a25d1c4cbf0128.js +1 -0
  428. package/dist/standalone/.next/static/chunks/app/api/runtime/queue/route-60a25d1c4cbf0128.js +1 -0
  429. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-60a25d1c4cbf0128.js +1 -0
  430. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-60a25d1c4cbf0128.js +1 -0
  431. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-60a25d1c4cbf0128.js +1 -0
  432. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-60a25d1c4cbf0128.js +1 -0
  433. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-60a25d1c4cbf0128.js +1 -0
  434. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-60a25d1c4cbf0128.js +1 -0
  435. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-60a25d1c4cbf0128.js +1 -0
  436. package/dist/standalone/.next/static/chunks/app/api/session/route-60a25d1c4cbf0128.js +1 -0
  437. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-60a25d1c4cbf0128.js +1 -0
  438. package/dist/standalone/.next/static/chunks/app/api/session/title/route-60a25d1c4cbf0128.js +1 -0
  439. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-60a25d1c4cbf0128.js +1 -0
  440. package/dist/standalone/.next/static/chunks/app/api/spawn/route-60a25d1c4cbf0128.js +1 -0
  441. package/dist/standalone/.next/static/chunks/app/api/spawn/validate/route-60a25d1c4cbf0128.js +1 -0
  442. package/dist/standalone/.next/static/chunks/app/api/staging/route-60a25d1c4cbf0128.js +1 -0
  443. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-60a25d1c4cbf0128.js +1 -0
  444. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-60a25d1c4cbf0128.js +1 -0
  445. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-60a25d1c4cbf0128.js +1 -0
  446. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-60a25d1c4cbf0128.js +1 -0
  447. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-60a25d1c4cbf0128.js +1 -0
  448. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-60a25d1c4cbf0128.js +1 -0
  449. package/dist/standalone/.next/static/chunks/app/api/tasks/route-60a25d1c4cbf0128.js +1 -0
  450. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-60a25d1c4cbf0128.js +1 -0
  451. package/dist/standalone/.next/static/chunks/app/api/telegram/route-60a25d1c4cbf0128.js +1 -0
  452. package/dist/standalone/.next/static/chunks/app/api/timeline/route-60a25d1c4cbf0128.js +1 -0
  453. package/dist/standalone/.next/static/chunks/app/api/tmux/route-60a25d1c4cbf0128.js +1 -0
  454. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-60a25d1c4cbf0128.js +1 -0
  455. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-60a25d1c4cbf0128.js +1 -0
  456. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-60a25d1c4cbf0128.js +1 -0
  457. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-60a25d1c4cbf0128.js +1 -0
  458. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-60a25d1c4cbf0128.js +1 -0
  459. package/dist/standalone/.next/static/chunks/app/api/tts/route-60a25d1c4cbf0128.js +1 -0
  460. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-60a25d1c4cbf0128.js +1 -0
  461. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-60a25d1c4cbf0128.js +1 -0
  462. package/dist/standalone/.next/static/chunks/app/api/workflows/route-60a25d1c4cbf0128.js +1 -0
  463. package/dist/standalone/.next/static/chunks/app/page-16384e540b4c0a90.js +125 -0
  464. package/dist/standalone/.next/static/chunks/{main-8691b7dc3557ef3f.js → main-7e65147ff5ce0866.js} +1 -1
  465. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-60a25d1c4cbf0128.js +1 -0
  466. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-60a25d1c4cbf0128.js +1 -0
  467. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-60a25d1c4cbf0128.js +1 -0
  468. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-60a25d1c4cbf0128.js +1 -0
  469. package/dist/standalone/.next/static/css/496211a19557b7ee.css +1 -0
  470. package/dist/standalone/.next/static/e4qE_aCE0s0KQnnU6IWRw/_buildManifest.js +1 -0
  471. package/dist/standalone/AGENTS.md +20 -0
  472. package/dist/standalone/node_modules/@next/env/package.json +1 -1
  473. package/dist/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  474. package/dist/standalone/node_modules/next/dist/build/webpack-config.js +3 -3
  475. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +1 -1
  476. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +1 -1
  477. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +1 -1
  478. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +1 -1
  479. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +1 -1
  480. package/dist/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +5 -5
  481. package/dist/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +5 -5
  482. package/dist/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  483. package/dist/standalone/node_modules/next/dist/server/config.js +1 -1
  484. package/dist/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  485. package/dist/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  486. package/dist/standalone/node_modules/next/dist/server/image-optimizer.js +2 -2
  487. package/dist/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  488. package/dist/standalone/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +17 -4
  489. package/dist/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  490. package/dist/standalone/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +1 -1
  491. package/dist/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  492. package/dist/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  493. package/dist/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  494. package/dist/standalone/node_modules/next/package.json +10 -10
  495. package/dist/standalone/package.json +5 -5
  496. package/dist/standalone/server.bun.js +1 -1
  497. package/dist/standalone/src/lib/viewerInstrumentation.ts +809 -0
  498. package/package.json +5 -5
  499. package/dist/standalone/.next/server/chunks/112.js +0 -1
  500. package/dist/standalone/.next/server/chunks/2190.js +0 -1
  501. package/dist/standalone/.next/server/chunks/2318.js +0 -2
  502. package/dist/standalone/.next/server/chunks/2371.js +0 -1
  503. package/dist/standalone/.next/server/chunks/2500.js +0 -55
  504. package/dist/standalone/.next/server/chunks/2799.js +0 -1
  505. package/dist/standalone/.next/server/chunks/2870.js +0 -104
  506. package/dist/standalone/.next/server/chunks/3598.js +0 -81
  507. package/dist/standalone/.next/server/chunks/3740.js +0 -126
  508. package/dist/standalone/.next/server/chunks/3953.js +0 -1
  509. package/dist/standalone/.next/server/chunks/411.js +0 -1
  510. package/dist/standalone/.next/server/chunks/4191.js +0 -1
  511. package/dist/standalone/.next/server/chunks/461.js +0 -1
  512. package/dist/standalone/.next/server/chunks/4968.js +0 -2
  513. package/dist/standalone/.next/server/chunks/5408.js +0 -1
  514. package/dist/standalone/.next/server/chunks/6333.js +0 -47
  515. package/dist/standalone/.next/server/chunks/6839.js +0 -81
  516. package/dist/standalone/.next/server/chunks/7045.js +0 -319
  517. package/dist/standalone/.next/server/chunks/7159.js +0 -1
  518. package/dist/standalone/.next/server/chunks/8176.js +0 -1
  519. package/dist/standalone/.next/server/chunks/8263.js +0 -81
  520. package/dist/standalone/.next/server/chunks/8392.js +0 -126
  521. package/dist/standalone/.next/server/chunks/9120.js +0 -78
  522. package/dist/standalone/.next/server/chunks/9507.js +0 -1
  523. package/dist/standalone/.next/static/6jhPk8sOUI3wRf_j1l5vY/_buildManifest.js +0 -1
  524. package/dist/standalone/.next/static/chunks/3021-9ced2d55bf2cbf77.js +0 -1
  525. package/dist/standalone/.next/static/chunks/app/_global-error/page-3e358516d279299e.js +0 -1
  526. package/dist/standalone/.next/static/chunks/app/api/access/route-3e358516d279299e.js +0 -1
  527. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-3e358516d279299e.js +0 -1
  528. package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-3e358516d279299e.js +0 -1
  529. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-3e358516d279299e.js +0 -1
  530. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-3e358516d279299e.js +0 -1
  531. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-3e358516d279299e.js +0 -1
  532. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-3e358516d279299e.js +0 -1
  533. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-3e358516d279299e.js +0 -1
  534. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-3e358516d279299e.js +0 -1
  535. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-3e358516d279299e.js +0 -1
  536. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-3e358516d279299e.js +0 -1
  537. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-3e358516d279299e.js +0 -1
  538. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-3e358516d279299e.js +0 -1
  539. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-3e358516d279299e.js +0 -1
  540. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-3e358516d279299e.js +0 -1
  541. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-3e358516d279299e.js +0 -1
  542. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-3e358516d279299e.js +0 -1
  543. package/dist/standalone/.next/static/chunks/app/api/accounts/route-3e358516d279299e.js +0 -1
  544. package/dist/standalone/.next/static/chunks/app/api/agent/route-3e358516d279299e.js +0 -1
  545. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-3e358516d279299e.js +0 -1
  546. package/dist/standalone/.next/static/chunks/app/api/answer/route-3e358516d279299e.js +0 -1
  547. package/dist/standalone/.next/static/chunks/app/api/artifact/route-3e358516d279299e.js +0 -1
  548. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-3e358516d279299e.js +0 -1
  549. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-3e358516d279299e.js +0 -1
  550. package/dist/standalone/.next/static/chunks/app/api/attention/route-3e358516d279299e.js +0 -1
  551. package/dist/standalone/.next/static/chunks/app/api/board/route-3e358516d279299e.js +0 -1
  552. package/dist/standalone/.next/static/chunks/app/api/bridge/route-3e358516d279299e.js +0 -1
  553. package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-3e358516d279299e.js +0 -1
  554. package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-3e358516d279299e.js +0 -1
  555. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-3e358516d279299e.js +0 -1
  556. package/dist/standalone/.next/static/chunks/app/api/conversations/route-3e358516d279299e.js +0 -1
  557. package/dist/standalone/.next/static/chunks/app/api/files/route-3e358516d279299e.js +0 -1
  558. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-3e358516d279299e.js +0 -1
  559. package/dist/standalone/.next/static/chunks/app/api/flows/route-3e358516d279299e.js +0 -1
  560. package/dist/standalone/.next/static/chunks/app/api/image/route-3e358516d279299e.js +0 -1
  561. package/dist/standalone/.next/static/chunks/app/api/inbox/route-3e358516d279299e.js +0 -1
  562. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-3e358516d279299e.js +0 -1
  563. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-3e358516d279299e.js +0 -1
  564. package/dist/standalone/.next/static/chunks/app/api/limits/route-3e358516d279299e.js +0 -1
  565. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-3e358516d279299e.js +0 -1
  566. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-3e358516d279299e.js +0 -1
  567. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-3e358516d279299e.js +0 -1
  568. package/dist/standalone/.next/static/chunks/app/api/log/route-3e358516d279299e.js +0 -1
  569. package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-3e358516d279299e.js +0 -1
  570. package/dist/standalone/.next/static/chunks/app/api/logs/route-3e358516d279299e.js +0 -1
  571. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-3e358516d279299e.js +0 -1
  572. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-3e358516d279299e.js +0 -1
  573. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-3e358516d279299e.js +0 -1
  574. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-3e358516d279299e.js +0 -1
  575. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-3e358516d279299e.js +0 -1
  576. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-3e358516d279299e.js +0 -1
  577. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-3e358516d279299e.js +0 -1
  578. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-3e358516d279299e.js +0 -1
  579. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-3e358516d279299e.js +0 -1
  580. package/dist/standalone/.next/static/chunks/app/api/proc/route-3e358516d279299e.js +0 -1
  581. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-3e358516d279299e.js +0 -1
  582. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-3e358516d279299e.js +0 -1
  583. package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-3e358516d279299e.js +0 -1
  584. package/dist/standalone/.next/static/chunks/app/api/push/route-3e358516d279299e.js +0 -1
  585. package/dist/standalone/.next/static/chunks/app/api/resources/route-3e358516d279299e.js +0 -1
  586. package/dist/standalone/.next/static/chunks/app/api/roles/route-3e358516d279299e.js +0 -1
  587. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-3e358516d279299e.js +0 -1
  588. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-3e358516d279299e.js +0 -1
  589. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-3e358516d279299e.js +0 -1
  590. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-3e358516d279299e.js +0 -1
  591. package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-3e358516d279299e.js +0 -1
  592. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-3e358516d279299e.js +0 -1
  593. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-3e358516d279299e.js +0 -1
  594. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-3e358516d279299e.js +0 -1
  595. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-3e358516d279299e.js +0 -1
  596. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-3e358516d279299e.js +0 -1
  597. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-3e358516d279299e.js +0 -1
  598. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-3e358516d279299e.js +0 -1
  599. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-3e358516d279299e.js +0 -1
  600. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-3e358516d279299e.js +0 -1
  601. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-3e358516d279299e.js +0 -1
  602. package/dist/standalone/.next/static/chunks/app/api/session/route-3e358516d279299e.js +0 -1
  603. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-3e358516d279299e.js +0 -1
  604. package/dist/standalone/.next/static/chunks/app/api/session/title/route-3e358516d279299e.js +0 -1
  605. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-3e358516d279299e.js +0 -1
  606. package/dist/standalone/.next/static/chunks/app/api/spawn/route-3e358516d279299e.js +0 -1
  607. package/dist/standalone/.next/static/chunks/app/api/staging/route-3e358516d279299e.js +0 -1
  608. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-3e358516d279299e.js +0 -1
  609. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-3e358516d279299e.js +0 -1
  610. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-3e358516d279299e.js +0 -1
  611. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-3e358516d279299e.js +0 -1
  612. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-3e358516d279299e.js +0 -1
  613. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-3e358516d279299e.js +0 -1
  614. package/dist/standalone/.next/static/chunks/app/api/tasks/route-3e358516d279299e.js +0 -1
  615. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-3e358516d279299e.js +0 -1
  616. package/dist/standalone/.next/static/chunks/app/api/telegram/route-3e358516d279299e.js +0 -1
  617. package/dist/standalone/.next/static/chunks/app/api/timeline/route-3e358516d279299e.js +0 -1
  618. package/dist/standalone/.next/static/chunks/app/api/tmux/route-3e358516d279299e.js +0 -1
  619. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-3e358516d279299e.js +0 -1
  620. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-3e358516d279299e.js +0 -1
  621. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-3e358516d279299e.js +0 -1
  622. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-3e358516d279299e.js +0 -1
  623. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-3e358516d279299e.js +0 -1
  624. package/dist/standalone/.next/static/chunks/app/api/tts/route-3e358516d279299e.js +0 -1
  625. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-3e358516d279299e.js +0 -1
  626. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-3e358516d279299e.js +0 -1
  627. package/dist/standalone/.next/static/chunks/app/api/workflows/route-3e358516d279299e.js +0 -1
  628. package/dist/standalone/.next/static/chunks/app/page-dbe7cb010b4941d6.js +0 -96
  629. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-3e358516d279299e.js +0 -1
  630. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-3e358516d279299e.js +0 -1
  631. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-3e358516d279299e.js +0 -1
  632. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-3e358516d279299e.js +0 -1
  633. package/dist/standalone/.next/static/css/282596e2aaee1aa4.css +0 -1
  634. package/dist/standalone/src/lib/inboxFiles.ts +0 -203
  635. /package/dist/standalone/.next/static/{6jhPk8sOUI3wRf_j1l5vY → e4qE_aCE0s0KQnnU6IWRw}/_ssgManifest.js +0 -0
@@ -1,2 +1 @@
1
- "use strict";exports.id=568,exports.ids=[411,568,3302,9937],exports.modules={30402:(a,b,c)=>{c.d(b,{ao:()=>p,rB:()=>s}),c(77598);var d=c(73024),e=c.n(d),f=c(91724),g=c(65154),h=c(2033);function i(){return(0,f.BQ)("reply-suggestions.json")}function j(a){return{schemaVersion:1,revision:0,updatedAt:a.toISOString(),sets:[],admissions:[]}}function k(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let{label:b,text:c}=a;return"string"==typeof b&&b.trim()&&"string"==typeof c&&c.trim()?{label:b,text:c}:null}function l(a){let b,c;if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.conversationId||!a.conversationId||"string"!=typeof a.setId||!a.setId||"string"!=typeof a.at||!Number.isFinite(Date.parse(a.at))||!Array.isArray(a.replies))return null;let d=a.replies.map(k).filter(a=>null!==a);return 0===d.length?null:{conversationId:a.conversationId,setId:a.setId,at:a.at,origin:{kind:"manager"===(c=(b=a.origin??{}).kind)||"gateway"===c||"agent"===c?c:"unidentified",conversationId:"string"==typeof b.conversationId?b.conversationId:null,role:"string"==typeof b.role?b.role:null},replies:d.slice(0,6)}}function m(a){return!a||"object"!=typeof a||Array.isArray(a)?null:"string"==typeof a.conversationId&&a.conversationId&&"string"==typeof a.key&&a.key&&"string"==typeof a.at&&Number.isFinite(Date.parse(a.at))?{conversationId:a.conversationId,key:a.key,at:a.at}:null}function n(a=i(),b=new Date){let c,d;try{c=e().readFileSync(a,"utf8")}catch{return j(b)}try{d=JSON.parse(c)}catch{return j(b)}return 1===d.schemaVersion&&Array.isArray(d.sets)?{schemaVersion:1,revision:Number.isInteger(d.revision)?d.revision:0,updatedAt:"string"==typeof d.updatedAt?d.updatedAt:b.toISOString(),sets:d.sets.map(l).filter(a=>null!==a),admissions:Array.isArray(d.admissions)?d.admissions.map(m).filter(a=>null!==a):[]}:j(b)}function o(a,b){let c=i();return(0,h.Ol)(c,"reply suggestions are busy",()=>{let d=n(c,b),e=a(d,b);return(e.sets||e.admissions)&&(0,g.f)(c,{schemaVersion:1,revision:d.revision+1,updatedAt:b.toISOString(),sets:(e.sets??d.sets).slice(-64),admissions:(e.admissions??d.admissions).slice(-128)}),e.result})}function p(a,b=i()){let c=r(a),d=n(b).sets.find(b=>b.conversationId===a)??null;if(!d||!c)return d;let e=Date.parse(d.at);return Number.isFinite(e)&&e>c.at?d:null}c(56809);let q=new Map;function r(a){let b=q.get(a);if(!b)return null;try{return!function(a,b={}){o(c=>{let d=c.sets.find(b=>b.conversationId===a)??null;if(!d)return{result:!1};if(void 0!==b.offeredAtOrBefore){let a=Date.parse(d.at);if(!Number.isFinite(a)||a>b.offeredAtOrBefore.getTime())return{result:!1}}return{sets:c.sets.filter(b=>b.conversationId!==a),result:!0}},b.now??new Date)}(a,{offeredAtOrBefore:new Date(b.at)}),q.delete(a),null}catch{return b}}function s(a,b,c=""){if(!a)return{cleared:!1,pending:!1};let d=c.trim().slice(0,128),e=r(a),f=e&&d&&e.key===d?new Date(e.at):b;try{return{cleared:o(b=>{let c=d?b.admissions.find(b=>b.conversationId===a&&b.key===d)??null:null,e=c?Date.parse(c.at):NaN,g=Number.isFinite(e)?e:f.getTime(),h=b.sets.find(b=>b.conversationId===a)??null,i=h?Date.parse(h.at):NaN,j=null!==h&&Number.isFinite(i)&&i<=g;return{...j?{sets:b.sets.filter(b=>b.conversationId!==a)}:{},...d&&!c?{admissions:[...b.admissions,{conversationId:a,key:d,at:new Date(g).toISOString()}]}:{},result:j}},new Date),pending:!1}}catch{for(let b of(q.set(a,{at:Math.max(f.getTime(),e?.at??-1/0),key:d}),q.keys())){if(q.size<=64)break;q.delete(b)}return{cleared:!1,pending:!0}}}},32584:(a,b,c)=>{function d(a){return"refused"===a}function e(a){return a.ok?"accepted":!0===a.transportUncertain||a.receipt?.status==="uncertain"?"uncertain":"refused"}c.d(b,{A:()=>d,N:()=>e})},33302:(a,b,c)=>{c.d(b,{NZ:()=>r,OE:()=>m,Tj:()=>u,Yd:()=>t,kg:()=>s,mn:()=>n});var d=c(77598),e=c.n(d),f=c(12500),g=c(89937),h=c(4012);let i=/^[A-Za-z0-9_-]{43}$/,j="x-llv-internal-service",k=/^[a-f0-9]{64}$/,l=["monitor","mcp","orchestrator"];function m(a){let b,c=a.headers.get(h.VIEWER_SPAWN_CAPABILITY_HEADER)?.trim()??"";return c&&i.test(c)?(b=e().createHash("sha256").update(c).digest("hex"),(0,f.agentRegistry)().conversationIdForSpawnCapabilityDigest(b)):null}function n(a){return null===m(a)}let o={ok:!1,status:403,error:"this is an operator-only action; an agent may not perform it, whatever role it holds"},p={ok:!1,status:403,error:"background Viewer activity is outside direct operator activity"};function q(a){return e().createHmac("sha256",(0,g.ensureOperatorSpawnCapability)()).update(`llv-internal-service-v1\0${a}`).digest("hex")}function r(a){return{[j]:`${a}.${q(a)}`}}function s(a){return"valid"===function(a){let b=a.headers.get(j)?.trim()??"";if(!b)return"absent";let c=b.indexOf("."),d=b.slice(0,c),f=b.slice(c+1);if(!l.includes(d)||!k.test(f))return"invalid";try{let a=q(d);return e().timingSafeEqual(Buffer.from(f),Buffer.from(a))?"valid":"invalid"}catch{return"invalid"}}(a)?p:u(a)}function t(a){let b=m(a);return b?{kind:"agent",conversationId:b}:{kind:"operator",conversationId:null}}function u(a){return m(a)?o:{ok:!0}}},40411:(a,b,c)=>{c.d(b,{W:()=>h,applyConversationAction:()=>l});var d=c(12500),e=c(10167),f=c(50201),g=c(78181);let h=["interrupt","kill","resume","compact","dialog-key"],i={registry:d.agentRegistry,structuredEnabled:()=>(0,f.cM)(),dispatchStructuredControl:g.Z,interruptConversation:e.F5,killConversation:e.yv,resumeConversation:e.X$,compactConversation:e.LJ,answerDialogKey:e.m3};function j(a,b){return{status:b,body:{error:a}}}function k(a){if(a.ok)return{status:200,body:a};let{status:b,...c}=a;return{status:b,body:c}}async function l(a,b=i){if(!h.includes(a.action))return j("unsupported conversation action",400);if(a.conversationId&&!a.conversationId.startsWith("conversation_"))return j("invalid conversation id",400);let c=b.registry(),d=a.conversationId?c.conversation(a.conversationId):null,e=a.transcriptPath?c.conversationForPath(a.transcriptPath):null;if(a.conversationId&&!d)return j("viewer conversation is unknown",404);if(d&&a.transcriptPath&&(!new Set([...d.generations.map(a=>a.path),...d.continuityPaths]).has(a.transcriptPath)||e?.id!==d.id))return j("conversation identity does not own transcript path",409);let f=d??e,g=d?.generations.at(-1)?.path??a.transcriptPath;if("kill"===a.action&&function(a,b){let c=b?.generations.at(-1)?.launchProfile.parentConversationId??null;if(!b||!c||c===b.id)return!1;let d=a.canonicalConversationId(b.id),e=a.readOnlySnapshot().lineageEdges[d];return e?.source!=="viewer-spawn"}(c,f))return{status:409,body:{ok:!1,outcome:"failed",code:"branch-shares-root-host",error:"branch conversations share their root runtime host; dismiss the branch card or terminate the root conversation explicitly"}};if(b.structuredEnabled()){let c=await b.dispatchStructuredControl({path:g,conversationId:f?.id??a.conversationId,action:a.action,operationId:a.operationId});if(c)return c}if(!g)return j("conversationId or transcriptPath is required",400);if("interrupt"===a.action)return k(await b.interruptConversation(g));if("kill"===a.action){let a=await b.killConversation(g);return a.ok&&!a.target?k({ok:!1,outcome:"failed",error:"kill resolved no registered pane",status:409}):k(a)}return"resume"===a.action?k(await b.resumeConversation(g)):"compact"===a.action?k(await b.compactConversation(g)):k(await b.answerDialogKey(g,a.key??"",a.label,a.question))}},60568:(a,b,c)=>{c.d(b,{C:()=>I,k:()=>J});var d=c(23211),e=c(50201),f=c(33302),g=c(9848),h=c(67217),i=c(89333),j=c(35961),k=c(30402),l=c(84567),m=c(76760),n=c.n(m),o=c(12500),p=c(14509),q=c(48892),r=c(3743);async function s(a,b={}){let c=b.registry??(0,o.agentRegistry)(),d=c.conversationForPath(a),e=d?.generations.at(-1);if(!d||!e)throw Error("structured conversation is unavailable");let f=c.readOnlySnapshot().entries[(0,q.pp)({engine:d.engine,sessionId:e.id})];if(!f?.structuredHost||"dead"===f.status||"unhosted"===f.status)throw Error("structured conversation has no live host to attach");let g=await (b.spawn??r.jF)({command:`while [ ! -e ${(0,p.ZL)(a)} ]; do sleep 0.2; done; exec tail -n 200 -F -- ${(0,p.ZL)(a)}`,cwd:f.cwd,windowName:`view-${n().basename(a,".jsonl").slice(0,18)}`});return{target:g.paneId,display:g.display}}var t=c(32584),u=c(64487),v=c(40411),w=c(10167),x=c(66942),y=c(24191),z=c(78181),A=c(62318);let B={canonicalTranscriptTarget:u.WV,readTranscriptHosts:u.oe,applyConversationAction:v.applyConversationAction,conversationActions:v.W,deliverConversationMessage:w.Ku,reconfigureConversation:w.vE,allowedKillTarget:x.CP,consumeKillTarget:x.A9,completedFileScan:y.Nm,dispatchStructuredControl:z.Z,enqueueStructuredMessage:async(...a)=>{let{enqueueStructuredMessage:b}=await Promise.resolve().then(c.bind(c,34083));return b(...a)},captureTmuxAttachReference:r.Do,collectImagePayloads:r.Fu,killPane:r.VT,panePidOf:r.zX,resolveRequestedTmuxTarget:r.I6,resolveTmuxAttach:r.e,tmuxEndpointDescriptor:r.xv,recordDirectOperatorWakatimeActivity:A.d};async function C(a,b){let c=b??(await a.completedFileScan()).snapshot.files;return a.readTranscriptHosts(!0,c)}function D(a){if(!a.ok){let{status:b,...c}=a;return d.NextResponse.json(c,{status:b})}return d.NextResponse.json(a)}async function E(a,b,c){let d=(await a.completedFileScan()).snapshot.files;return c&&(0,i.EG)(c)?a.canonicalTranscriptTarget(await C(a,d),c):null===b?null:a.resolveRequestedTmuxTarget(b,d)}class F extends Error{}async function G(a,b,c,d){if(!(0,f.kg)(b).ok)return{byOperator:!1,conversationId:c.conversationId};let e=function(a,b){let c=b.filePath?a.find(a=>a.path===b.filePath):void 0,d=b.conversationId?a.find(a=>a.conversationId===b.conversationId):void 0;if(c&&d&&c.path!==d.path||c?.conversationId&&b.conversationId&&c.conversationId!==b.conversationId||d&&b.filePath&&d.path!==b.filePath)throw new F("operator activity target evidence conflicts");return c||d||(b.filePath||b.conversationId||!b.hasPid?void 0:a.find(a=>a.pid===b.pid))}((await a.completedFileScan()).snapshot.files,c);return a.recordDirectOperatorWakatimeActivity({...c.conversationId?{conversationId:c.conversationId}:{},...c.filePath?{path:c.filePath}:{},...d,...e?{fallbackEntry:e}:{}}),{byOperator:!0,conversationId:c.conversationId||e?.conversationId||""}}function H(a,b=200){return d.NextResponse.json(a,{status:b,headers:{"Cache-Control":"no-store"}})}async function I(a){let b=(0,j.W)(a);if(b)return b;let c=a.nextUrl.searchParams.get("pid"),e=a.nextUrl.searchParams.get("path")??"",f=a.nextUrl.searchParams.get("target")??"";if("1"===a.nextUrl.searchParams.get("attach")){let a;if(!!e==!!f)return H({error:"path or target is required",reason:"tmux-unavailable"},400);if(e){if(!(0,i.EG)(e))return H({error:"invalid transcript path",reason:"tmux-unavailable"},400);let b=(await C(B)).canonicalFor(e);if(null===b)return H({error:"unknown transcript host",reason:"tmux-unavailable"},400);a=B.captureTmuxAttachReference(b)}else{let b=B.allowedKillTarget(f);if(null===b)return H({error:"unknown resource target",reason:"tmux-unavailable"},400);a=b}let b=await B.resolveTmuxAttach(a,B.tmuxEndpointDescriptor());return b.ok?H({attach:{target:b.target,command:b.command,readOnlyCommand:b.readOnlyCommand},endpoint:b.endpoint}):"stale-pane"===b.reason?H({reason:b.reason,error:"This pane changed or closed. Refresh and try again."},409):"server-restarted"===b.reason?H({reason:b.reason,error:"The tmux server restarted. Refresh and try again."},409):H({reason:b.reason,error:"The tmux server is unavailable. Refresh and try again."},503)}let g=Number(c),h=Number.isInteger(g)&&g>0;if(!h&&!e)return d.NextResponse.json({error:"pid or path is required"},{status:400});try{return d.NextResponse.json({target:await E(B,h?g:null,e)})}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:409})}}async function J(a){let b,m,n=(0,j.W)(a);if(n)return n;try{b=await a.json()}catch{return d.NextResponse.json({error:"invalid JSON"},{status:400})}if("kill-target"===b.action){let a="string"==typeof b.target?b.target:"",c=B.allowedKillTarget(a);if(null===c)return d.NextResponse.json({error:"unknown target — refresh the resource list"},{status:400});if(await B.panePidOf(c.paneId)!==c.panePid)return B.consumeKillTarget(a),d.NextResponse.json({error:"pane has changed — refresh the resource list"},{status:409});try{return await B.killPane(c.paneId),B.consumeKillTarget(a),d.NextResponse.json({ok:!0,target:a})}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}let o=Number(b.pid),p=Number.isInteger(o)&&o>0,q="string"==typeof b.path?b.path:"",r="string"==typeof b.conversationId?b.conversationId:"";if(!p&&!q&&!r.startsWith("conversation_"))return d.NextResponse.json({error:"pid, path, or conversationId is required"},{status:400});if("attach-terminal"===b.action){if(!q||!(0,i.EG)(q))return d.NextResponse.json({error:"valid transcript path is required"},{status:400});try{let a=await s(q);return d.NextResponse.json({ok:!0,target:a.target})}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:409})}}let u="string"==typeof b.action?b.action:"";if(B.conversationActions.includes(u)){if("dialog-key"===u){let c="string"==typeof b.clientMessageId?b.clientMessageId.trim().slice(0,128):"";try{await G(B,a,{pid:o,hasPid:p,filePath:q,conversationId:r},c?{idempotencyKey:c}:{})}catch(a){if(a instanceof F)return d.NextResponse.json({error:a.message},{status:409});return d.NextResponse.json({error:"direct operator activity could not be recorded"},{status:503})}}let c=await B.applyConversationAction({conversationId:r,transcriptPath:q,action:u,..."string"==typeof b.operationId&&b.operationId.trim()?{operationId:b.operationId.trim()}:{},key:"string"==typeof b.key?b.key:"",label:b.label,question:b.question});return d.NextResponse.json(c.body,{status:c.status})}let v=(0,f.OE)(a),w=v?{kind:"agent",conversationId:v}:{kind:"operator"},x="reconfigure"===u&&(0,e.cM)()?await B.dispatchStructuredControl({path:q,conversationId:r,action:u,actor:w,..."reconfigure"===u?{reconfiguration:{model:"string"==typeof b.model?b.model:void 0,effort:"string"==typeof b.effort?b.effort:void 0,fast:"boolean"==typeof b.fast||null===b.fast?b.fast:void 0,accountId:"string"==typeof b.accountId?b.accountId:void 0}}:{}}):null;if(x)return d.NextResponse.json(x.body,{status:x.status});if("reconfigure"===b.action){let a=(await (0,h.CS)()).find(a=>a.path===q);if(!a||"claude"!==a.engine&&"codex"!==a.engine)return d.NextResponse.json({error:"conversation is unavailable"},{status:403});let c=(0,g.y)(a.engine,b);return c.value?D(await B.reconfigureConversation(q,c.value,{actor:w})):d.NextResponse.json({error:c.error??"invalid configuration"},{status:400})}let y="string"==typeof b.text?b.text:"",{images:z,error:A}=B.collectImagePayloads(b);if(A)return d.NextResponse.json({error:A.error},{status:A.status});let C=b.files,E=null==C?{files:[],error:null}:(await c.e(9403).then(c.bind(c,99403))).admitInboxFilePayload({files:C});if(E.error)return d.NextResponse.json({error:E.error.error},{status:E.error.status});if(!y.trim()&&!z.length&&!E.files.length)return d.NextResponse.json({error:"empty message"},{status:400});let H=(0,l.n)(b.origin),I="string"==typeof b.clientMessageId?b.clientMessageId.trim().slice(0,128):"",J=new Date;try{m=await G(B,a,{pid:o,hasPid:p,filePath:q,conversationId:r},I?{idempotencyKey:I}:{})}catch(a){if(a instanceof F)return d.NextResponse.json({error:a.message},{status:409});return d.NextResponse.json({error:"direct operator activity could not be recorded"},{status:503})}m.byOperator&&(0,k.rB)(m.conversationId,J,I);let K=y,L=[];if(E.files.length){let{buildFilePayload:a,inboxFileBatchToken:b}=await c.e(9403).then(c.bind(c,99403));try{let c=a(y,E.files,b(I));K=c.payload,L=c.filePaths}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:"attachments could not be saved"},{status:500})}}let M=async a=>{L.length&&(0,t.A)(a)&&((await c.e(9403).then(c.bind(c,99403))).deleteInboxFiles(L),L=[])},N=()=>L.length?{filePaths:L}:{};if((0,e.cM)()){let a=await B.enqueueStructuredMessage({path:q,...r?{conversationId:r}:{},..."string"==typeof b.clientMessageId?{clientMessageId:b.clientMessageId.slice(0,128)}:{},text:K.trim(),images:z,...H?{origin:H}:{}});if(a){await M((0,t.N)(a));let{status:b,...c}=a.ok?{...a,status:200}:a;return d.NextResponse.json({...c,...N()},{status:b})}}let O=await B.deliverConversationMessage({pid:p?o:null,path:q,...r?{conversationId:r}:{},..."string"==typeof b.clientMessageId?{clientMessageId:b.clientMessageId.slice(0,128)}:{},text:K,images:z,...H?{origin:H}:{},..."string"==typeof b.model?{resumeModel:b.model}:{},..."string"==typeof b.effort?{resumeEffort:b.effort}:{},..."boolean"==typeof b.fast?{resumeFast:b.fast}:{}});return(await M(O.ok?"accepted":"started"===O.actuation?"uncertain":"refused"),O.ok)?d.NextResponse.json({...O,...N()}):D(O)}},89937:(a,b,c)=>{c.r(b),c.d(b,{OperatorSpawnCapabilityError:()=>l,ensureOperatorSpawnCapability:()=>p,matchesOperatorSpawnCapability:()=>q,operatorSpawnCapabilityPath:()=>m,rotateOperatorSpawnCapability:()=>o});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724);let k=/^[A-Za-z0-9_-]{43}$/;class l extends Error{constructor(a,b,c){const d="object"==typeof c&&null!==c&&"code"in c&&"string"==typeof c.code?` (${c.code})`:"";super(`Viewer operator spawn capability ${a} failed at ${b}${d}`),this.name="OperatorSpawnCapabilityError"}}function m(){return(0,j.BQ)("operator-spawn-capability")}function n(){let a=m();try{let b=g().lstatSync(a);if(!b.isFile()||b.isSymbolicLink())return null;let c=g().readFileSync(a,"utf8").trim();if(!k.test(c))return null;return(511&b.mode)!=384&&g().chmodSync(a,384),c}catch(b){if("object"==typeof b&&null!==b&&"code"in b&&"ENOENT"===b.code)return null;throw new l("read",a,b)}}function o(){let a=e().randomBytes(32).toString("base64url"),b=m(),c=i().dirname(b),d=null;try{g().mkdirSync(c,{recursive:!0,mode:448}),d=i().join(c,`.${i().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`),g().writeFileSync(d,`${a}
2
- `,{encoding:"utf8",flag:"wx",mode:384}),g().chmodSync(d,384),g().renameSync(d,b)}catch(a){throw new l("write",b,a)}finally{if(d)try{g().rmSync(d,{force:!0})}catch(a){throw new l("write",b,a)}}return a}function p(){return n()??o()}function q(a){if(!k.test(a))return!1;let b=n();return!!b&&e().timingSafeEqual(Buffer.from(a),Buffer.from(b))}}};
1
+ "use strict";exports.id=568,exports.ids=[568,3302,3558],exports.modules={30402:(a,b,c)=>{c.d(b,{ao:()=>p,rB:()=>s}),c(77598);var d=c(73024),e=c.n(d),f=c(91724),g=c(65154),h=c(2033);function i(){return(0,f.BQ)("reply-suggestions.json")}function j(a){return{schemaVersion:1,revision:0,updatedAt:a.toISOString(),sets:[],admissions:[]}}function k(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let{label:b,text:c}=a;return"string"==typeof b&&b.trim()&&"string"==typeof c&&c.trim()?{label:b,text:c}:null}function l(a){let b,c;if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.conversationId||!a.conversationId||"string"!=typeof a.setId||!a.setId||"string"!=typeof a.at||!Number.isFinite(Date.parse(a.at))||!Array.isArray(a.replies))return null;let d=a.replies.map(k).filter(a=>null!==a);return 0===d.length?null:{conversationId:a.conversationId,setId:a.setId,at:a.at,origin:{kind:"manager"===(c=(b=a.origin??{}).kind)||"gateway"===c||"agent"===c?c:"unidentified",conversationId:"string"==typeof b.conversationId?b.conversationId:null,role:"string"==typeof b.role?b.role:null},replies:d.slice(0,6)}}function m(a){return!a||"object"!=typeof a||Array.isArray(a)?null:"string"==typeof a.conversationId&&a.conversationId&&"string"==typeof a.key&&a.key&&"string"==typeof a.at&&Number.isFinite(Date.parse(a.at))?{conversationId:a.conversationId,key:a.key,at:a.at}:null}function n(a=i(),b=new Date){let c,d;try{c=e().readFileSync(a,"utf8")}catch{return j(b)}try{d=JSON.parse(c)}catch{return j(b)}return 1===d.schemaVersion&&Array.isArray(d.sets)?{schemaVersion:1,revision:Number.isInteger(d.revision)?d.revision:0,updatedAt:"string"==typeof d.updatedAt?d.updatedAt:b.toISOString(),sets:d.sets.map(l).filter(a=>null!==a),admissions:Array.isArray(d.admissions)?d.admissions.map(m).filter(a=>null!==a):[]}:j(b)}function o(a,b){let c=i();return(0,h.Ol)(c,"reply suggestions are busy",()=>{let d=n(c,b),e=a(d,b);return(e.sets||e.admissions)&&(0,g.f)(c,{schemaVersion:1,revision:d.revision+1,updatedAt:b.toISOString(),sets:(e.sets??d.sets).slice(-64),admissions:(e.admissions??d.admissions).slice(-128)}),e.result})}function p(a,b=i()){let c=r(a),d=n(b).sets.find(b=>b.conversationId===a)??null;if(!d||!c)return d;let e=Date.parse(d.at);return Number.isFinite(e)&&e>c.at?d:null}c(56809);let q=new Map;function r(a){let b=q.get(a);if(!b)return null;try{return!function(a,b={}){o(c=>{let d=c.sets.find(b=>b.conversationId===a)??null;if(!d)return{result:!1};if(void 0!==b.offeredAtOrBefore){let a=Date.parse(d.at);if(!Number.isFinite(a)||a>b.offeredAtOrBefore.getTime())return{result:!1}}return{sets:c.sets.filter(b=>b.conversationId!==a),result:!0}},b.now??new Date)}(a,{offeredAtOrBefore:new Date(b.at)}),q.delete(a),null}catch{return b}}function s(a,b,c=""){if(!a)return{cleared:!1,pending:!1};let d=c.trim().slice(0,128),e=r(a),f=e&&d&&e.key===d?new Date(e.at):b;try{return{cleared:o(b=>{let c=d?b.admissions.find(b=>b.conversationId===a&&b.key===d)??null:null,e=c?Date.parse(c.at):NaN,g=Number.isFinite(e)?e:f.getTime(),h=b.sets.find(b=>b.conversationId===a)??null,i=h?Date.parse(h.at):NaN,j=null!==h&&Number.isFinite(i)&&i<=g;return{...j?{sets:b.sets.filter(b=>b.conversationId!==a)}:{},...d&&!c?{admissions:[...b.admissions,{conversationId:a,key:d,at:new Date(g).toISOString()}]}:{},result:j}},new Date),pending:!1}}catch{for(let b of(q.set(a,{at:Math.max(f.getTime(),e?.at??-1/0),key:d}),q.keys())){if(q.size<=64)break;q.delete(b)}return{cleared:!1,pending:!0}}}},32584:(a,b,c)=>{function d(a){return"refused"===a}function e(a){return a.ok?"accepted":!0===a.transportUncertain||a.receipt?.status==="uncertain"?"uncertain":"refused"}c.d(b,{A:()=>d,N:()=>e})},33302:(a,b,c)=>{c.d(b,{NZ:()=>r,OE:()=>m,Tj:()=>u,Yd:()=>t,kg:()=>s,mn:()=>n});var d=c(77598),e=c.n(d),f=c(10781),g=c(89937),h=c(4012);let i=/^[A-Za-z0-9_-]{43}$/,j="x-llv-internal-service",k=/^[a-f0-9]{64}$/,l=["monitor","mcp","orchestrator"];function m(a){let b,c=a.headers.get(h.VIEWER_SPAWN_CAPABILITY_HEADER)?.trim()??"";return c&&i.test(c)?(b=e().createHash("sha256").update(c).digest("hex"),(0,f.agentRegistry)().conversationIdForSpawnCapabilityDigest(b)):null}function n(a){return null===m(a)}let o={ok:!1,status:403,error:"this is an operator-only action; an agent may not perform it, whatever role it holds"},p={ok:!1,status:403,error:"background Viewer activity is outside direct operator activity"};function q(a){return e().createHmac("sha256",(0,g.ensureOperatorSpawnCapability)()).update(`llv-internal-service-v1\0${a}`).digest("hex")}function r(a){return{[j]:`${a}.${q(a)}`}}function s(a){return"valid"===function(a){let b=a.headers.get(j)?.trim()??"";if(!b)return"absent";let c=b.indexOf("."),d=b.slice(0,c),f=b.slice(c+1);if(!l.includes(d)||!k.test(f))return"invalid";try{let a=q(d);return e().timingSafeEqual(Buffer.from(f),Buffer.from(a))?"valid":"invalid"}catch{return"invalid"}}(a)?p:u(a)}function t(a){let b=m(a);return b?{kind:"agent",conversationId:b}:{kind:"operator",conversationId:null}}function u(a){return m(a)?o:{ok:!0}}},53558:(a,b,c)=>{c.d(b,{W:()=>i,applyConversationAction:()=>m});var d=c(10781),e=c(70548),f=c(10167),g=c(50201),h=c(78181);let i=["interrupt","kill","resume","compact","dialog-key"],j={registry:d.agentRegistry,structuredEnabled:()=>(0,g.cM)(),dispatchStructuredControl:h.Z,interruptConversation:f.F5,killConversation:f.yv,resumeConversation:f.X$,compactConversation:f.LJ,answerDialogKey:f.m3};function k(a,b){return{status:b,body:{error:a}}}function l(a){if(a.ok)return{status:200,body:a};let{status:b,...c}=a;return{status:b,body:c}}async function m(a,b=j){if(!i.includes(a.action))return k("unsupported conversation action",400);if(a.conversationId&&!a.conversationId.startsWith("conversation_"))return k("invalid conversation id",400);let c=b.registry(),d=a.conversationId?c.conversation(a.conversationId):null,f=a.transcriptPath?c.conversationForPath(a.transcriptPath):null;if(a.conversationId&&!d)return k("viewer conversation is unknown",404);if(d&&a.transcriptPath&&(!new Set([...d.generations.map(a=>a.path),...d.continuityPaths]).has(a.transcriptPath)||f?.id!==d.id))return k("conversation identity does not own transcript path",409);let g=d??f,h=g?.generations.at(-1)?.path??a.transcriptPath;if("kill"===a.action&&(0,e.TY)(c,g))return{status:409,body:{ok:!1,outcome:"failed",code:e.yD,error:e.xR}};if(b.structuredEnabled()){let c=await b.dispatchStructuredControl({path:h,conversationId:g?.id??a.conversationId,action:a.action,operationId:a.operationId});if(c)return c}if(!h)return k("conversationId or transcriptPath is required",400);if("interrupt"===a.action)return l(await b.interruptConversation(h));if("kill"===a.action){let a=await b.killConversation(h);return a.ok&&!a.target?l({ok:!1,outcome:"failed",error:"kill resolved no registered pane",status:409}):l(a)}return"resume"===a.action?l(await b.resumeConversation(h)):"compact"===a.action?l(await b.compactConversation(h)):l(await b.answerDialogKey(h,a.key??"",a.label,a.question))}},60568:(a,b,c)=>{c.d(b,{C:()=>I,k:()=>J});var d=c(23211),e=c(50201),f=c(33302),g=c(9848),h=c(36917),i=c(89333),j=c(35961),k=c(30402),l=c(84567),m=c(76760),n=c.n(m),o=c(10781),p=c(14509),q=c(48892),r=c(3743);async function s(a,b={}){let c=b.registry??(0,o.agentRegistry)(),d=c.conversationForPath(a),e=d?.generations.at(-1);if(!d||!e)throw Error("structured conversation is unavailable");let f=c.readOnlySnapshot().entries[(0,q.pp)({engine:d.engine,sessionId:e.id})];if(!f?.structuredHost||"dead"===f.status||"unhosted"===f.status)throw Error("structured conversation has no live host to attach");let g=await (b.spawn??r.jF)({command:`while [ ! -e ${(0,p.ZL)(a)} ]; do sleep 0.2; done; exec tail -n 200 -F -- ${(0,p.ZL)(a)}`,cwd:f.cwd,windowName:`view-${n().basename(a,".jsonl").slice(0,18)}`});return{target:g.paneId,display:g.display}}var t=c(32584),u=c(64487),v=c(53558),w=c(10167),x=c(66942),y=c(1849),z=c(78181),A=c(62318);let B={canonicalTranscriptTarget:u.WV,readTranscriptHosts:u.oe,applyConversationAction:v.applyConversationAction,conversationActions:v.W,deliverConversationMessage:w.Ku,reconfigureConversation:w.vE,allowedKillTarget:x.CP,consumeKillTarget:x.A9,completedFileScan:y.Nm,dispatchStructuredControl:z.Z,enqueueStructuredMessage:async(...a)=>{let{enqueueStructuredMessage:b}=await Promise.resolve().then(c.bind(c,34083));return b(...a)},captureTmuxAttachReference:r.Do,collectImagePayloads:r.Fu,killPane:r.VT,panePidOf:r.zX,resolveRequestedTmuxTarget:r.I6,resolveTmuxAttach:r.e,tmuxEndpointDescriptor:r.xv,recordDirectOperatorWakatimeActivity:A.d};async function C(a,b){let c=b??(await a.completedFileScan()).snapshot.files;return a.readTranscriptHosts(!0,c)}function D(a){if(!a.ok){let{status:b,...c}=a;return d.NextResponse.json(c,{status:b})}return d.NextResponse.json(a)}async function E(a,b,c){let d=(await a.completedFileScan()).snapshot.files;return c&&(0,i.EG)(c)?a.canonicalTranscriptTarget(await C(a,d),c):null===b?null:a.resolveRequestedTmuxTarget(b,d)}class F extends Error{}async function G(a,b,c,d){if(!(0,f.kg)(b).ok)return{byOperator:!1,conversationId:c.conversationId};let e=function(a,b){let c=b.filePath?a.find(a=>a.path===b.filePath):void 0,d=b.conversationId?a.find(a=>a.conversationId===b.conversationId):void 0;if(c&&d&&c.path!==d.path||c?.conversationId&&b.conversationId&&c.conversationId!==b.conversationId||d&&b.filePath&&d.path!==b.filePath)throw new F("operator activity target evidence conflicts");return c||d||(b.filePath||b.conversationId||!b.hasPid?void 0:a.find(a=>a.pid===b.pid))}((await a.completedFileScan()).snapshot.files,c);return a.recordDirectOperatorWakatimeActivity({...c.conversationId?{conversationId:c.conversationId}:{},...c.filePath?{path:c.filePath}:{},...d,...e?{fallbackEntry:e}:{}}),{byOperator:!0,conversationId:c.conversationId||e?.conversationId||""}}function H(a,b=200){return d.NextResponse.json(a,{status:b,headers:{"Cache-Control":"no-store"}})}async function I(a){let b=(0,j.W)(a);if(b)return b;let c=a.nextUrl.searchParams.get("pid"),e=a.nextUrl.searchParams.get("path")??"",f=a.nextUrl.searchParams.get("target")??"";if("1"===a.nextUrl.searchParams.get("attach")){let a;if(!!e==!!f)return H({error:"path or target is required",reason:"tmux-unavailable"},400);if(e){if(!(0,i.EG)(e))return H({error:"invalid transcript path",reason:"tmux-unavailable"},400);let b=(await C(B)).canonicalFor(e);if(null===b)return H({error:"unknown transcript host",reason:"tmux-unavailable"},400);a=B.captureTmuxAttachReference(b)}else{let b=B.allowedKillTarget(f);if(null===b)return H({error:"unknown resource target",reason:"tmux-unavailable"},400);a=b}let b=await B.resolveTmuxAttach(a,B.tmuxEndpointDescriptor());return b.ok?H({attach:{target:b.target,command:b.command,readOnlyCommand:b.readOnlyCommand},endpoint:b.endpoint}):"stale-pane"===b.reason?H({reason:b.reason,error:"This pane changed or closed. Refresh and try again."},409):"server-restarted"===b.reason?H({reason:b.reason,error:"The tmux server restarted. Refresh and try again."},409):H({reason:b.reason,error:"The tmux server is unavailable. Refresh and try again."},503)}let g=Number(c),h=Number.isInteger(g)&&g>0;if(!h&&!e)return d.NextResponse.json({error:"pid or path is required"},{status:400});try{return d.NextResponse.json({target:await E(B,h?g:null,e)})}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:409})}}async function J(a){let b,m,n=(0,j.W)(a);if(n)return n;try{b=await a.json()}catch{return d.NextResponse.json({error:"invalid JSON"},{status:400})}if("kill-target"===b.action){let a="string"==typeof b.target?b.target:"",c=B.allowedKillTarget(a);if(null===c)return d.NextResponse.json({error:"unknown target — refresh the resource list"},{status:400});if(await B.panePidOf(c.paneId)!==c.panePid)return B.consumeKillTarget(a),d.NextResponse.json({error:"pane has changed — refresh the resource list"},{status:409});try{return await B.killPane(c.paneId),B.consumeKillTarget(a),d.NextResponse.json({ok:!0,target:a})}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}let o=Number(b.pid),p=Number.isInteger(o)&&o>0,q="string"==typeof b.path?b.path:"",r="string"==typeof b.conversationId?b.conversationId:"";if(!p&&!q&&!r.startsWith("conversation_"))return d.NextResponse.json({error:"pid, path, or conversationId is required"},{status:400});if("attach-terminal"===b.action){if(!q||!(0,i.EG)(q))return d.NextResponse.json({error:"valid transcript path is required"},{status:400});try{let a=await s(q);return d.NextResponse.json({ok:!0,target:a.target})}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:409})}}let u="string"==typeof b.action?b.action:"";if(B.conversationActions.includes(u)){if("dialog-key"===u){let c="string"==typeof b.clientMessageId?b.clientMessageId.trim().slice(0,128):"";try{await G(B,a,{pid:o,hasPid:p,filePath:q,conversationId:r},c?{idempotencyKey:c}:{})}catch(a){if(a instanceof F)return d.NextResponse.json({error:a.message},{status:409});return d.NextResponse.json({error:"direct operator activity could not be recorded"},{status:503})}}let c=await B.applyConversationAction({conversationId:r,transcriptPath:q,action:u,..."string"==typeof b.operationId&&b.operationId.trim()?{operationId:b.operationId.trim()}:{},key:"string"==typeof b.key?b.key:"",label:b.label,question:b.question});return d.NextResponse.json(c.body,{status:c.status})}let v=(0,f.OE)(a),w=v?{kind:"agent",conversationId:v}:{kind:"operator"},x="reconfigure"===u&&(0,e.cM)()?await B.dispatchStructuredControl({path:q,conversationId:r,action:u,actor:w,..."reconfigure"===u?{reconfiguration:{model:"string"==typeof b.model?b.model:void 0,effort:"string"==typeof b.effort?b.effort:void 0,fast:"boolean"==typeof b.fast||null===b.fast?b.fast:void 0,accountId:"string"==typeof b.accountId?b.accountId:void 0}}:{}}):null;if(x)return d.NextResponse.json(x.body,{status:x.status});if("reconfigure"===b.action){let a=(await (0,h.CS)()).find(a=>a.path===q);if(!a||"claude"!==a.engine&&"codex"!==a.engine)return d.NextResponse.json({error:"conversation is unavailable"},{status:403});let c=(0,g.y)(a.engine,b);return c.value?D(await B.reconfigureConversation(q,c.value,{actor:w})):d.NextResponse.json({error:c.error??"invalid configuration"},{status:400})}let y="string"==typeof b.text?b.text:"",{images:z,error:A}=B.collectImagePayloads(b);if(A)return d.NextResponse.json({error:A.error},{status:A.status});let C=b.files,E=null==C?{files:[],error:null}:(await c.e(9403).then(c.bind(c,99403))).admitInboxFilePayload({files:C});if(E.error)return d.NextResponse.json({error:E.error.error},{status:E.error.status});if(!y.trim()&&!z.length&&!E.files.length)return d.NextResponse.json({error:"empty message"},{status:400});let H=(0,l.n)(b.origin),I="string"==typeof b.clientMessageId?b.clientMessageId.trim().slice(0,128):"",J=new Date;try{m=await G(B,a,{pid:o,hasPid:p,filePath:q,conversationId:r},I?{idempotencyKey:I}:{})}catch(a){if(a instanceof F)return d.NextResponse.json({error:a.message},{status:409});return d.NextResponse.json({error:"direct operator activity could not be recorded"},{status:503})}m.byOperator&&(0,k.rB)(m.conversationId,J,I);let K=y,L=[];if(E.files.length){let{buildFilePayload:a,inboxFileBatchToken:b}=await c.e(9403).then(c.bind(c,99403));try{let c=a(y,E.files,b(I));K=c.payload,L=c.filePaths}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:"attachments could not be saved"},{status:500})}}let M=async a=>{L.length&&(0,t.A)(a)&&((await c.e(9403).then(c.bind(c,99403))).deleteInboxFiles(L),L=[])},N=()=>L.length?{filePaths:L}:{};if((0,e.cM)()){let a=await B.enqueueStructuredMessage({path:q,...r?{conversationId:r}:{},..."string"==typeof b.clientMessageId?{clientMessageId:b.clientMessageId.slice(0,128)}:{},text:K.trim(),images:z,...H?{origin:H}:{}});if(a){await M((0,t.N)(a));let{status:b,...c}=a.ok?{...a,status:200}:a;return d.NextResponse.json({...c,...N()},{status:b})}}let O=await B.deliverConversationMessage({pid:p?o:null,path:q,...r?{conversationId:r}:{},..."string"==typeof b.clientMessageId?{clientMessageId:b.clientMessageId.slice(0,128)}:{},text:K,images:z,...H?{origin:H}:{},..."string"==typeof b.model?{resumeModel:b.model}:{},..."string"==typeof b.effort?{resumeEffort:b.effort}:{},..."boolean"==typeof b.fast?{resumeFast:b.fast}:{}});return(await M(O.ok?"accepted":"started"===O.actuation?"uncertain":"refused"),O.ok)?d.NextResponse.json({...O,...N()}):D(O)}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5682,exports.ids=[5682],exports.modules={25682:(a,b,c)=>{c.d(b,{hotStateMigrationApplied:()=>j,hotStateMigrationDryRun:()=>k});var d=c(27146),e=c(98817),f=c(18027),g=c(14928),h=c(96796);function i(a,b){let c=new Set;for(let d of b.keys){if(!d||c.has(d))throw Error(`duplicate or empty ${a} migration key: ${d}`);c.add(d)}return b}function j(){return(0,g.bG)((0,d.BQ)("state.sqlite"),[(0,e.flowStateCollectionSeed)(),...(0,f.pipelineStateCollectionSeeds)(),(0,h.workflowStateCollectionSeed)()])}function k(){let a=(0,f.planPipelineStateMigration)();return{flows:i("flows",(0,e.planFlowStateMigration)()),pipelines:i("pipelines",a.pipelines),pipelinesArchive:i("pipelines_archive",a.archive),workflows:i("workflows",(0,h.planWorkflowStateMigration)())}}}};
@@ -0,0 +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")}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5847,exports.ids=[5847],exports.modules={35847:(a,b,c)=>{c.d(b,{hotStateMigrationApplied:()=>j,hotStateMigrationDryRun:()=>k});var d=c(91724),e=c(98590),f=c(13896),g=c(13117),h=c(46825);function i(a,b){let c=new Set;for(let d of b.keys){if(!d||c.has(d))throw Error(`duplicate or empty ${a} migration key: ${d}`);c.add(d)}return b}function j(){return(0,g.bG)((0,d.BQ)("state.sqlite"),[(0,e.flowStateCollectionSeed)(),...(0,f.pipelineStateCollectionSeeds)(),(0,h.workflowStateCollectionSeed)()])}function k(){let a=(0,f.planPipelineStateMigration)();return{flows:i("flows",(0,e.planFlowStateMigration)()),pipelines:i("pipelines",a.pipelines),pipelinesArchive:i("pipelines_archive",a.archive),workflows:i("workflows",(0,h.planWorkflowStateMigration)())}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6023,exports.ids=[6023],exports.modules={6023:(a,b,c)=>{c.r(b),c.d(b,{AccountMigrationController:()=>ah,accountControllerScan:()=>ae,createMigrationDeliveryPort:()=>X.M,reconcileAccountMigrationCycle:()=>aa,startAccountMigrationController:()=>aj,syncCompatibilityRouting:()=>ab});var d=c(78966),e=c(41617),f=c(68797),g=c(22962),h=c(10781),i=c(64487),j=c(12770),k=c(31421),l=c(73024),m=c.n(l),n=c(76760),o=c.n(n),p=c(98590),q=c(26474),r=c(36917),s=c(1849),t=c(36943),u=c(23921),v=c(93407),w=c(48161),x=c.n(w),y=c(63657),z=c(70547),A=c(3743),B=c(91724);function C(a,b){if(0!==a.tty)return null;let c=a.argv,d=c.indexOf("--output-last-message");return c.includes("exec")&&c.includes("--json")&&!(d<0)&&c.some(a=>/(^|[/\\])codex(?:-[^/\\]+)?$/i.test(a))?function(a,b){if(!a||!o().isAbsolute(a))return null;let c=o().relative(o().resolve(b),o().resolve(a));if(!c||o().isAbsolute(c)||".."===c||c.startsWith(`..${o().sep}`))return null;let d=c.split(o().sep);if(2!==d.length||!d[0])return null;let e=/^round-(\d+)-last-message\.md$/.exec(d[1]);return e?{flowId:d[0],round:Number(e[1])}:null}(c[d+1],b):null}function D(a){return a.argv.some(a=>/(^|[/\\])codex(?:-[^/\\]+)?$/i.test(a))&&(a.argv.includes("exec")||a.argv.includes("app-server"))}function E(a){return a.argv.some(a=>/(^|[/\\])claude(?:-[^/\\]+)?$/i.test(a))}let F=/(?:^|[-_.])mcp(?:[-_.]|$)/i,G=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*(?:@[^\s/]+)?$/i;function H(a){if(!a||!G.test(a))return!1;let b=a.startsWith("@")?a.indexOf("@",a.indexOf("/")+1):a.indexOf("@"),c=b>0?a.slice(0,b):a;return F.test(c.split("/").at(-1)??"")}function I(a,b){for(let c=b;c<a.length;c+=1){let b=a[c];if("--"===b)break;if("--package"===b||"-p"===b)return a[c+1];if(b.startsWith("--package="))return b.slice(10);if(!b.startsWith("-"))return b}}let J=new Set(["--cache-dir","--color","--config-file","--directory","--project","--python"]);function K(a){var b;if(0!==a.tty)return!1;let c=a.argv;if((b=c[0])&&F.test(o().basename(b)))return!0;let d=o().basename(c[0]??"").toLowerCase();return"npx"===d||"bunx"===d||"uvx"===d?H(I(c,1)):"npm"===d&&("exec"===c[1]||"x"===c[1])||("pnpm"===d||"yarn"===d)&&("dlx"===c[1]||"exec"===c[1])||"bun"===d&&"x"===c[1]?H(I(c,2)):"uv"===d&&function(a){let b=1;for(;b<a.length;){let c=a[b];if("run"===c)return H(I(a,b+1));if("tool"===c&&"run"===a[b+1])return H(I(a,b+2));if(J.has(c)){b+=2;continue}if(c.startsWith("-")){b+=1;continue}break}return!1}(c)}function L(a,b){let c=new Set;for(let b of a.hosts)c.add(b.panePid),c.add(b.agentPid);for(let b of a.panePids)c.add(b);for(let d of a.flows)if("headless"===d.reviewerMode)for(let a of d.rounds){if(!a.reviewerPid||a.verdict||a.error||a.terminalAt)continue;let d=b.get(a.reviewerPid);d&&(a.reviewerIdentity&&d.identity!==a.reviewerIdentity||c.add(a.reviewerPid))}let d=new Set,e=new Map(a.processes.map(a=>[a.pid,a.ppid]));for(let a of c)for(let b of(0,z.mO)(a,e))d.add(b);return d}function M(a){let b=new Map(a.processes.map(a=>[a.pid,a])),c=L(a,b),d=new Set(a.processes.filter(b=>b.ageMs>=a.thresholdMs&&function(a,b){let c=C(a,b.flowArtifactsRoot);if(!c||!a.identity)return!1;let d=b.flows.find(a=>a.id===c.flowId),e=d?.rounds.find(a=>a.n===c.round);return d?.reviewerMode==="headless"&&e?.reviewerPid===a.pid&&e.reviewerIdentity===a.identity}(b,a)&&!c.has(b.pid)).map(a=>a.pid)),e=[];for(let f of a.processes){if(!f.identity||f.ageMs<a.thresholdMs||c.has(f.pid))continue;if(d.has(f.pid)){e.push({pid:f.pid,identity:f.identity,kind:"codex-exec"});continue}if(D(f)||E(f)||!K(f))continue;let g=function(a,b){let c=[],d=new Set([a]),e=b.get(a)?.ppid??0;for(;e>0&&!d.has(e);)c.push(e),d.add(e),e=b.get(e)?.ppid??0;return c}(f.pid,b);!(g.some(a=>d.has(a)||K(b.get(a)??{argv:[],tty:0}))||g.some(a=>D(b.get(a)??{argv:[]}))||g.some(a=>E(b.get(a)??{argv:[]})))&&(g.some(a=>1!==a&&b.has(a))||e.push({pid:f.pid,identity:f.identity,kind:"orphan-mcp"}))}return e.sort((a,b)=>a.pid-b.pid)}let N={listProcesses:()=>y.B.listProcesses(),ppidMap:()=>y.B.ppidMap(),processIdentity:a=>y.B.processIdentity(a),processAgeMs:function(a,b){if(!b)return null;let c=b.slice(b.indexOf(":")+1);if("linux"===y.B.name&&/^\d+$/.test(c))return Math.max(0,1e3*x().uptime()-10*Number(c));let d=Date.parse(c);return Number.isFinite(d)?Math.max(0,Date.now()-d):null},loadFlows:p.loadFlows,readHosts:async()=>(await (0,i.oe)(!0)).hosts,readPanePids:async()=>{let a=await (0,A.m7)(!0);return"failure"===a.kind?null:"available"===a.kind?[...a.panes.keys()]:[]},signalProcess:process.kill,setTimeout:(a,b)=>setTimeout(a,b)};function O(a){let b=new Set;for(let c of a)if("headless"===c.reviewerMode)for(let a of c.rounds)!a.reviewerPid||a.verdict||a.error||a.terminalAt||b.add(a.reviewerPid);return b}function P(a,b){let c=b.loadFlows(),d=O(c),e=b.ppidMap(),f=b.listProcesses().map(a=>({...a,ppid:e.get(a.pid)??0,identity:d.has(a.pid)?b.processIdentity(a.pid):null,ageMs:0})),g=new Map(f.map(a=>[a.pid,a]));return{protectedPids:function(a,b){let c=L(a,b),d=new Map(a.processes.map(a=>[a.pid,a.ppid]));for(let b of a.processes)if(D(b)||E(b))for(let a of(0,z.mO)(b.pid,d))c.add(a);return c}({...a,flows:c,processes:f},g),ppids:e}}function Q(a,b,c=new Set){let d=a.ppidMap();return a.listProcesses().map(e=>{let f=c.has(e.pid)||null!==C(e,b)||K(e),g=f?a.processIdentity(e.pid):null;return{...e,ppid:d.get(e.pid)??0,identity:g,ageMs:f?a.processAgeMs(e.pid,g)??0:0}})}async function R(a){let b={...N,...a.dependencies},c=a.thresholdMs??function(a=process.env){let b=Number(a.LLV_HEADLESS_REAPER_THRESHOLD_MS);return Number.isFinite(b)&&b>=6e4?b:72e5}(),d=a.flowArtifactsRoot??(0,B.BQ)("flows"),e=await b.readPanePids();if(null===e)return{candidates:0,signaled:0};let f=a.flows??b.loadFlows(),g=M({processes:Q(b,d,O(f)),flows:f,hosts:a.hosts,panePids:e,flowArtifactsRoot:d,thresholdMs:c}),h=0;for(let e of g){let[f,g,i]=await Promise.all([b.readHosts(),Promise.resolve(b.loadFlows()),b.readPanePids()]);if(null===i)continue;let j={processes:Q(b,d,O(g)),flows:g,hosts:f,panePids:i,flowArtifactsRoot:d,thresholdMs:c},k=M(j).find(a=>a.pid===e.pid&&a.identity===e.identity&&a.kind===e.kind);if(k){if("codex-exec"===k.kind){if(!function(a,b,c){if(b.processIdentity(a.pid)!==a.identity)return!1;try{b.signalProcess(-a.pid,"SIGTERM")}catch{if(b.processIdentity(a.pid)!==a.identity)return!1;try{b.signalProcess(a.pid,"SIGTERM")}catch{return!1}}let d=b.setTimeout(()=>{try{b.signalProcess(-a.pid,"SIGKILL")}catch{}},c);return d.unref?.(),!0}(k,b,a.shutdownGraceMs??3e3))continue}else if(!function(a,b,c,d){let e,f=new Map(b.processes.map(a=>[a.pid,a.identity]));try{e=P(b,c)}catch{return!1}let{ppids:g,protectedPids:h}=e,i=(0,z.mO)(a.pid,g).reverse();if(i.some(a=>h.has(a)))return!1;let j=i.map(a=>{let b=f.get(a)??null,d=c.processIdentity(a);return{pid:a,observedIdentity:b,expectedIdentity:d,eligible:!!(d&&(!b||b===d))}}),k=j.find(b=>b.pid===a.pid);if(k?.observedIdentity!==a.identity||k.expectedIdentity!==a.identity)return!1;for(let a of j)if(a.eligible&&a.expectedIdentity&&c.processIdentity(a.pid)===a.expectedIdentity)try{c.signalProcess(a.pid,"SIGTERM")}catch{}let l=c.setTimeout(()=>{let a;try{a=P(b,c).protectedPids}catch{return}for(let b of j)if(!a.has(b.pid)&&b.eligible&&b.expectedIdentity&&c.processIdentity(b.pid)===b.expectedIdentity)try{c.signalProcess(b.pid,"SIGKILL")}catch{}},d);return l.unref?.(),!0}(k,j,b,a.shutdownGraceMs??3e3))continue;h+=1}}return{candidates:g.length,signaled:h}}var S=c(54072),T=c(21153),U=c(46825),V=c(92806),W=c(59371),X=c(54606),Y=c(81533),Z=c(91596),$=c(90169);let _=(0,X.M)();async function aa(a,b,c=new Z.wh,d=_){a.compactDeliveryReservations(),await (0,j.Lh)();let e=Promise.all([b.tick("claude"),b.tick("codex")]);try{await (0,W.c0)(c,d,a)}finally{await e}}function ab(a){let b=a.readOnlySnapshot().engineRouting,c=(()=>{try{return!!(b.claude.activeAccountId&&b.claude.activeAccountId!==(0,d.No)())}catch{return!0}})(),f=(()=>{try{return!!(b.codex.activeAccountId&&b.codex.activeAccountId!==(0,e.O)())}catch{return!0}})();(c||f)&&(0,g.oV)(()=>{let b=a.readOnlySnapshot(),c=b.engineRouting.claude.activeAccountId,f=b.engineRouting.codex.activeAccountId;try{c&&c!==(0,d.No)()&&(0,d.ss)(c)}catch{}try{f&&f!==(0,e.O)()&&(0,e.b0)(f)}catch{}})}async function ac(){let a=(0,e.J0)();await Promise.all((0,e.Sq)().map(async b=>{if("managed"===b.kind){b.loginPane&&!a&&(0,e.yG)(b.id,null),(0,f.VD)().peekLogin(b).attemptState&&await (0,f.VD)().loginSnapshot(b);return}if(!b.loginPane)return;let c=await (0,A.RZ)(b.loginPane.paneId);(0,e.hg)(b.authPresent,b.loginPane,c).clear&&!a&&(0,e.yG)(b.id,null)}))}let ad={files:[],projectCatalog:[],complete:!1};function ae(a=process.env,b=s.TF,c=t.wj){return"1"!==a.LLV_ACCOUNT_CONTROLLER_INVENTORY_WORKER?c():Promise.resolve(b()??ad)}async function af(a,b){await ac();let c=await (0,i.oe)(!0,b);try{await (0,v.RU)({registry:a,hosts:c.hosts,files:b})}catch(a){console.error("[agent reaper] lifecycle reconciliation failed",a)}try{let a=await R({hosts:c.hosts,flows:(0,p.loadFlows)()});a.signaled>0&&console.warn(`[headless process reaper] terminated ${a.signaled} stale process group(s)`)}catch(a){console.error("[headless process reaper] reconciliation failed",a)}}let ag={scan:()=>ae(),reconcileInventory:W.VB,reconcileFlowOwnership:p.reconcileFlowConversationOwnershipCooperatively,reconcileWorkflowOwnership:U.reconcileWorkflowConversationOwnershipCooperatively,reconcileHandoffOwnership:q.d5,reconcileFiles:r.CR,reconcileRuntime:af,reconcileTaskStore:function(a,b){let c=(0,h.oP)(a.readOnlySnapshot());(0,T.z4)(a=>{let d=(0,S.fq)(b,a,{pathForPanePid:(a,b)=>(0,S.iI)(b,a,u.Ib),panePidAlive:u.pl,conversationIdForPath:a=>c.conversationForPath(a)?.id??null,canonicalConversationId:a=>a.startsWith("conversation_")?c.canonicalConversationId(a):null,pathForConversationId:a=>a.startsWith("conversation_")?c.conversation(a)?.generations.at(-1)?.path??null:null});return{tasks:d.dirty?d.tasks:void 0,result:void 0}})},syncRouting:ab,reconcileMigrationCycle:aa};class ah{constructor(a=(0,h.agentRegistry)(),b=new $.fi(a),c=null,d={}){this.registry=a,this.quota=b,this.cycle=c,this.running=null,this.trailingCycleRequested=!1,this.ports={...ag,...d}}tick(){return this.running?this.trailingCycleRequested=!0:this.running=this.runRequestedCycles().finally(()=>{this.running=null}),this.running}poll(){return this.running?this.running:this.tick()}async runRequestedCycles(){let a=null;do{this.trailingCycleRequested=!1;try{await (this.cycle?.()??this.run())}catch(b){a??=b}}while(this.trailingCycleRequested);if(a)throw a}async run(){let{files:a,complete:b}=await this.ports.scan();if(!b)return;await (0,j.Lh)();let c=await this.ports.reconcileInventory(this.registry,a);await (0,j.Lh)();let d=(0,h.oP)(c);await this.ports.reconcileFlowOwnership(d),await this.ports.reconcileWorkflowOwnership(d),await this.ports.reconcileHandoffOwnership(d),await (0,j.Lh)(),await this.ports.reconcileFiles(a),await (0,j.Lh)(),await this.ports.reconcileRuntime(this.registry,a),await (0,j.Lh)(),await this.ports.reconcileTaskStore(this.registry,a),await (0,j.Lh)(),await this.ports.syncRouting(this.registry),await this.ports.reconcileMigrationCycle(this.registry,this.quota)}}let ai=globalThis;async function aj(){await (0,j.Lh)();let a=(0,h.agentRegistry)(),b=new $.fi(a);if("1"===process.env.LLV_ACCOUNT_CONTROLLER_INVENTORY_WORKER)return void function(a,b){let c=ai.__llvAccountMigrationController??=new ah(a,b);if(!ai.__llvAccountMigrationTimer){let a=setInterval(()=>void c.poll().catch(a=>{console.error("[account migration controller] durable reconciliation tick failed",a)}),6e4);a.unref?.(),ai.__llvAccountMigrationTimer=a}if(!ai.__llvAccountMigrationBootstrapStarted){ai.__llvAccountMigrationBootstrapStarted=!0;let a=setTimeout(()=>{ai.__llvAccountMigrationInitialTimer=void 0,c.poll().catch(a=>{console.error("[account migration controller] initial inventory reconciliation failed",a)})},1e3);a.unref?.(),ai.__llvAccountMigrationInitialTimer=a}}(a,b);let c=ai.__llvAccountMigrationFastController??=new ah(a,b,()=>aa(a,b));(0,Y.c)(()=>c.tick()),c.tick().catch(a=>{console.error("[account migration controller] initial durable reconciliation failed",a)}),function a(){if(ai.__llvAccountMigrationInventoryWorker)return;let b=function(a=process.cwd()){let b=o().join(a,"src/lib/accountMigrationController.worker.ts"),c=o().join(a,".next/server/account-migration-controller-worker.js");return m().existsSync(b)&&m().existsSync("/usr/local/bin/bun-container")?{executable:"/usr/local/bin/bun-container",workerPath:b}:m().existsSync(c)?{executable:process.versions.bun?process.execPath:process.env.LLV_BUN_EXECUTABLE||"bun",workerPath:c}:{executable:process.execPath,workerPath:b}}(),c=m().existsSync("/usr/bin/nice"),d=(0,k.spawn)(c?"/usr/bin/nice":b.executable,[...c?["-n","10",b.executable]:[],b.workerPath],{cwd:process.cwd(),stdio:["ignore","inherit","inherit"],env:{...(0,V.Fd)(process.env),LLV_ACCOUNT_CONTROLLER_INVENTORY_WORKER:"1"}});ai.__llvAccountMigrationInventoryWorker=d,d.once("error",a=>{console.error("[account migration controller] inventory worker failed to start",a)}),d.once("exit",(b,c)=>{if(ai.__llvAccountMigrationInventoryWorker===d&&(ai.__llvAccountMigrationInventoryWorker=void 0),ai.__llvAccountMigrationInventoryWorkerRestart)return;console.error("[account migration controller] inventory worker exited",{code:b,signal:c});let e=setTimeout(()=>{ai.__llvAccountMigrationInventoryWorkerRestart=void 0,a()},1e3);e.unref?.(),ai.__llvAccountMigrationInventoryWorkerRestart=e})}()}},54072:(a,b,c)=>{c.d(b,{fq:()=>j,iI:()=>i});var d=c(76760),e=c.n(d);function f(a){return!("claude-projects"!==a.root||!a.path.endsWith(".jsonl")||a.path.includes(e().sep+"subagents"+e().sep))&&2===a.name.split(e().sep).length}function g(a,b){return h(a,new Map(b.map(a=>[a.path,a])))}function h(a,b){let c=b.get(a);if(!c?.parent||c.handoff)return null;let d=b.get(c.parent);return d&&f(c)&&f(d)?d.path:null}function i(a,b,c){if(!Number.isInteger(b)||b<=0)return null;for(let d of a){if(null===d.pid)continue;let a=new Set;for(let e=d.pid;null!==e&&!a.has(e)&&(a.add(e),!(a.size>15));e=c(e))if(e===b)return d.path}return null}function j(a,b,c={}){let d=!1,e=new Map(a.map(a=>[a.path,a])),f=c.successorForPath?c:{...c,successorForPath:a=>h(a,e)},i=b.map(b=>{let c=!1,h=b.assignments.map(b=>{let d=function(a,b,c,d){let e=a,f=!1;if(e.conversationId){let a=d.canonicalConversationId?.(e.conversationId)??e.conversationId;a!==e.conversationId&&(e={...e,conversationId:a},f=!0)}if(e.path&&!e.conversationId){let a=d.conversationIdForPath?.(e.path)??c.get(e.path)?.conversationId??null;a&&(e={...e,conversationId:a},f=!0)}let h=d.now?.()??new Date().toISOString();if(e.path){let a=(e.conversationId?d.pathForConversationId?.(e.conversationId)??null:null)??function(a,b,c){let d=c??g,e=new Set([a]),f=a,h=null;for(;;){let a=d(f,b);if(!a||e.has(a))return h;h=a,f=a,e.add(f)}}(e.path,b,d.successorForPath);if(a&&a!==e.path){let b="handoff"===e.state||"linked"===e.state?e.state:"delivered";return{assignment:{...e,path:a,state:b,error:null,at:h},dirty:!0}}return{assignment:e,dirty:f}}if(null!==e.panePid){let a=d.pathForPanePid?.(e.panePid,b)??null;if(a){let b=d.conversationIdForPath?.(a)??c.get(a)?.conversationId??null;return{assignment:{...e,path:a,...b?{conversationId:b}:{},state:"delivered",error:null,at:h},dirty:!0}}if(!(d.panePidAlive?.(e.panePid)??!0)&&"failed"!==e.state)return{assignment:{...e,state:"failed",error:"agent did not start",at:h},dirty:!0}}return{assignment:e,dirty:f}}(b,a,e,f);return d.dirty&&(c=!0),d.assignment});return c?(d=!0,{...b,assignments:h,updatedAt:f.now?.()??new Date().toISOString()}):b});return{tasks:d?i:b,dirty:d}}},54606:(a,b,c)=>{c.d(b,{M:()=>f});var d=c(10167),e=c(34083);function f(a={}){let b=a.structuredDelivery??e.deliverHeldStructuredMessage,c=a.legacyDelivery??(async({delivery:a,path:b,clientMessageId:c})=>{if("runtime-images"===a.payloadKind)return"delivery-uncertain";let e=await (0,d.Ku)({pid:null,path:b,text:a.text,images:[],clientMessageId:c,reservedDeliveryId:a.id,...a.command.origin?{origin:a.command.origin}:{}});return(0,d.$n)(e)}),g=({delivery:a,path:c,clientMessageId:d})=>b({conversationId:a.conversationId,runtimeConversationId:a.runtimeConversationId,path:c,deliveryId:a.id,clientMessageId:d,text:a.text,command:a.command,...a.runtimeImages.length?{imageRefs:a.runtimeImages}:{}});return{deliver:async a=>await g(a)??c(a),reconcileUncertain:async a=>await g(a)??"delivery-uncertain"}}},90169:(a,b,c)=>{c.d(b,{GU:()=>n,W7:()=>s,_W:()=>t,d4:()=>r,fi:()=>u,wS:()=>o});var d=c(77598),e=c.n(d),f=c(78966),g=c(14565),h=c(22962),i=c(41617),j=c(68797),k=c(10781),l=c(26784),m=c(58996);async function n(a,b,c){let d=await (0,m.Ki)({account:a,liveReader:async()=>b.rateLimits,now:()=>c});return{engine:"codex",accountId:a.id,authenticated:b.authenticated,authCheckedAt:c,limits:d.data,provenance:{source:d.source,reason:b.authenticated?d.reason:"unsupported-account-type",staleSince:null},observedAt:c,envelope:b.envelope,resetCredits:function(a){if(!a)return null;let b=(a.credits??[]).filter(a=>"available"===a.status&&null!==a.expiresAt).map(a=>a.expiresAt);return{availableCount:a.availableCount,expiresAt:b.length?Math.min(...b):null}}(b.resetCredits)}}function o(a,b){return{engine:a.engine,accountId:a.accountId,authenticated:a.authenticated,authCheckedAt:new Date(a.authCheckedAt??a.observedAt).toISOString(),limits:a.limits,provenance:a.provenance,observedAt:new Date(a.observedAt).toISOString(),bootId:b,resetCredits:a.resetCredits??null}}async function p(a,b,c={}){let d=c.authStatus??g.kR.status,e=await d(a.home).catch(()=>({loggedIn:!1,indeterminate:!0}));if(e.indeterminate)throw Error("quota-auth-indeterminate");if(!e.loggedIn)return{engine:"claude",accountId:a.id,authenticated:!1,authCheckedAt:b,limits:null,provenance:{source:"unavailable",reason:"live authentication check failed",staleSince:null},observedAt:b};let f=await (0,m.WB)(a,{now:()=>b,force:c.force});return{engine:"claude",accountId:a.id,authenticated:!0,authCheckedAt:b,limits:f.data,provenance:{source:f.provenance.source,reason:f.provenance.reason,staleSince:f.provenance.staleSince},observedAt:f.observedAt??b}}let q={list:a=>"claude"===a?(0,f.Fn)():(0,i.Sq)(),active:a=>"claude"===a?(0,f.No)():(0,i.O)(),async probe(a,b,c,d){if("claude"===a)return await p(b,c,d);try{let a=await (0,j.VD)().probeQuota(b);return await n(b,a,c)}catch(e){let d=await (0,m.Ki)({account:b,liveReader:async()=>Promise.reject(e)});if(!d.data)throw e;return{engine:a,accountId:b.id,authenticated:!1,authCheckedAt:c,limits:d.data,provenance:{source:d.source,reason:d.reason,staleSince:null},observedAt:c,envelope:null}}}},r=q,s=15e3;function t(a){return new Promise((b,c)=>{let d=setTimeout(()=>c(Error("quota-probe-timeout")),a);d.unref?.()})}class u{constructor(a=(0,k.agentRegistry)(),b=q,c=e().randomUUID(),d=()=>Date.now(),f=s){this.registry=a,this.probe=b,this.bootId=c,this.now=d,this.probeTimeoutMs=f}carryForward(a,b,c,d){let e=this.registry.readOnlySnapshot().quotaObservations[a][b];return e?.limits?{engine:a,accountId:b,authenticated:e.authenticated,authCheckedAt:Date.parse(e.authCheckedAt)||d,limits:e.limits,provenance:{source:"cache",reason:c,staleSince:e.provenance.staleSince??e.observedAt},observedAt:Date.parse(e.observedAt)||d,envelope:null,resetCredits:e.resetCredits??null}:{engine:a,accountId:b,authenticated:!1,authCheckedAt:d,limits:null,provenance:{source:"unavailable",reason:c,staleSince:null},observedAt:d,envelope:null}}async tick(a){await (0,h.Cu)(async()=>this.tickLocked(a))}async tickLocked(a){let b=this.now(),c=this.probe.list(a),d=await Promise.all(c.map(async c=>{try{let d=await Promise.race([this.probe.probe(a,c,b),t(this.probeTimeoutMs)]);if(d.authenticated&&!d.limits)return this.carryForward(a,c.id,d.provenance.reason??"quota-probe-empty",b);let e=this.registry.readOnlySnapshot().quotaObservations[a][c.id];if(d.authenticated&&e?.limits&&Date.parse(e.observedAt)>d.observedAt)return this.carryForward(a,c.id,d.provenance.reason??"quota-probe-older",b);return d}catch(e){let d=e instanceof Error&&"quota-probe-timeout"===e.message?"quota-probe-timeout":"quota-probe-failed";return this.carryForward(a,c.id,d,b)}}));if(d.forEach((b,d)=>{let e=c[d];(0,l.pq)({engine:a,accountId:b.accountId,accountKind:e.kind,envelope:b.envelope??null,probePhase:"account-rate-limits",provenance:b.provenance.source,reasonCode:b.provenance.reason})}),"claude"===a)for(let a of d)a.limits&&(0,m.Nj)(a.accountId,a.limits,a.observedAt,b);let e=d.map(b=>o({...b,engine:a},this.bootId));this.registry.recordQuotaEvaluation({engine:a,observations:e,signature:null,evidence:null,bootId:this.bootId,now:new Date(b).toISOString(),minimumGapMs:6e4})}}}};
@@ -0,0 +1,81 @@
1
+ "use strict";exports.id=6277,exports.ids=[6277],exports.modules={26277:(a,b,c)=>{c.d(b,{Gs:()=>C,Kn:()=>w,gY:()=>x,h3:()=>q,jd:()=>v,kt:()=>E,ue:()=>D,vx:()=>y,w5:()=>z});var d=c(31421);c(77598);var e=c(73024),f=c.n(e),g=c(48161),h=c.n(g),i=c(76760),j=c.n(i),k=c(27146),l=c(89204),m=c(55541),n=c(19777);Object.freeze({repo:"https://github.com/chigwell/telegram-mcp",release:"v3.2.22",commit:"a61294362226bd93052f5a40b4a1b1269a99ce69",license:"Apache-2.0"});let o="127.0.0.1";function p(){let a=Number(process.env.LLV_TELEGRAM_MCP_PORT);return Number.isInteger(a)&&a>0&&a<65536?a:8809}function q(){return`http://${o}:${p()}/mcp`}function r(a,...b){if(a)return a;let c=j().join(process.cwd(),...b);if(f().existsSync(c))return c;let d=j().join(process.cwd(),"..","..",...b);return f().existsSync(d)?d:c}function s(){return r(process.env.LLV_TELEGRAM_VENDOR_DIR,"vendor","telegram-mcp")}function t(){return(0,k.BQ)("telegram","venv")}function u(){return(0,k.BQ)("telegram","vendor-src")}function v(){return process.env.LLV_TELEGRAM_PYTHON||j().join(t(),"bin","python")}function w(){return r(process.env.LLV_TELEGRAM_SERVER_BRIDGE,"bin","telegram-mcp-server.py")}function x(){return r(process.env.LLV_TELEGRAM_SESSION_READER,"bin","telegram-session-reader.mjs")}let y=Object.freeze(["wait_for_settled_message"]);function z(){let a=process.env.LLV_TELEGRAM_API_ID,b=process.env.LLV_TELEGRAM_API_HASH;if(a&&b)return{apiId:a,apiHash:b};try{let a=JSON.parse(f().readFileSync((0,k.ks)("telegram.json"),"utf8"));if("string"==typeof a.apiId&&a.apiId&&"string"==typeof a.apiHash&&a.apiHash)return{apiId:a.apiId,apiHash:a.apiHash}}catch{}return null}function A(){return f().existsSync(j().join(t(),".llv-provisioned"))&&f().existsSync(v())&&f().existsSync(j().join(u(),"pyproject.toml"))}let B=null;function C(){return A()?Promise.resolve(!0):B||(B=(async()=>((0,n._q)(!0),await (0,l.pM)((0,k.BQ)("telegram","connector-provision"),"Telegram connector provisioning is busy",async()=>{var a;return!!A()||await (a={command:process.execPath,args:[r(process.env.LLV_TELEGRAM_PROVISIONER,"bin","provision-telegram-connector.mjs")],cwd:s(),env:{...F(),LLV_STATE_DIR:(0,k.Pn)(),LLV_TELEGRAM_VENDOR_DIR:s(),LLV_TELEGRAM_PYTHON:v()}},new Promise(b=>{let c;try{c=(0,d.spawn)(a.command,a.args,{cwd:a.cwd,env:a.env,stdio:"ignore"})}catch{b(!1);return}c.once("error",()=>b(!1)),c.once("exit",a=>b(0===a))}))&&A()})))().catch(()=>!1).finally(()=>{B=null}))}function D(a){let b=u(),c=(0,m.WG)();return{command:v(),args:[w()],cwd:b,env:{...F(),...c,TELEGRAM_API_ID:a.credentials.apiId,TELEGRAM_API_HASH:a.credentials.apiHash,TELEGRAM_SESSION_STRING:a.sessionString,TELEGRAM_EXPOSED_TOOLS:"read-only",TELEGRAM_EVENT_FEED:"1",TELEGRAM_EVENT_FEED_FILE:(0,n.ZI)(a.credentialRef),LLV_TELEGRAM_EXCLUDED_TOOLS:y.join(","),LLV_TELEGRAM_MCP_TOKEN:a.connectorToken,LLV_TELEGRAM_VENDOR_DIR:b,MCP_TRANSPORT:"http",MCP_HOST:o,MCP_PORT:String(p())}}}function E(a,b){return{command:v(),args:[r(process.env.LLV_TELEGRAM_BRIDGE,"bin","telegram-login-bridge.py"),a],cwd:h().homedir(),env:{...F(),TELEGRAM_API_ID:b.apiId,TELEGRAM_API_HASH:b.apiHash}}}function F(){let a={};for(let b of["PATH","HOME","LANG","LC_ALL","TMPDIR"])void 0!==process.env[b]&&(a[b]=process.env[b]);return a}},55541:(a,b,c)=>{c.d(b,{WG:()=>o,cO:()=>n,yb:()=>l});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(19777);let l=262144,m=String.raw`import fcntl
2
+ import io
3
+ import os
4
+ import stat
5
+ import sys
6
+ import threading
7
+
8
+ try:
9
+ _path = os.environ["LLV_TELEGRAM_CONNECTOR_LOG"]
10
+ _limit = int(os.environ["LLV_TELEGRAM_CONNECTOR_LOG_MAX_BYTES"])
11
+ if _limit <= 0:
12
+ raise ValueError("invalid log limit")
13
+ _flags = os.O_RDWR | os.O_CREAT | os.O_APPEND
14
+ if hasattr(os, "O_NOFOLLOW"):
15
+ _flags |= os.O_NOFOLLOW
16
+ _fd = os.open(_path, _flags, 0o600)
17
+ _info = os.fstat(_fd)
18
+ if not stat.S_ISREG(_info.st_mode) or (_info.st_mode & 0o077):
19
+ raise PermissionError("unsafe connector log")
20
+ if hasattr(os, "getuid") and _info.st_uid != os.getuid():
21
+ raise PermissionError("connector log owner mismatch")
22
+ except Exception as _error:
23
+ raise SystemExit("connector log sink unavailable") from _error
24
+
25
+
26
+ def _write_all(data):
27
+ view = memoryview(data)
28
+ while view:
29
+ written = os.write(_fd, view)
30
+ view = view[written:]
31
+
32
+
33
+ class _BoundedConnectorLog(io.TextIOBase):
34
+ encoding = "utf-8"
35
+ errors = "backslashreplace"
36
+
37
+ def __init__(self):
38
+ self._lock = threading.Lock()
39
+
40
+ def writable(self):
41
+ return True
42
+
43
+ def isatty(self):
44
+ return False
45
+
46
+ def fileno(self):
47
+ return _fd
48
+
49
+ def flush(self):
50
+ return None
51
+
52
+ def write(self, value):
53
+ if not isinstance(value, str):
54
+ value = str(value)
55
+ data = value.encode(self.encoding, self.errors)
56
+ if not data:
57
+ return len(value)
58
+ with self._lock:
59
+ fcntl.flock(_fd, fcntl.LOCK_EX)
60
+ try:
61
+ size = os.fstat(_fd).st_size
62
+ if len(data) >= _limit:
63
+ tail = data[-_limit:]
64
+ os.ftruncate(_fd, 0)
65
+ _write_all(tail)
66
+ elif size + len(data) > _limit:
67
+ keep = _limit - len(data)
68
+ prior = os.pread(_fd, keep, max(0, size - keep))
69
+ os.ftruncate(_fd, 0)
70
+ _write_all(prior[-keep:] + data)
71
+ else:
72
+ _write_all(data)
73
+ finally:
74
+ fcntl.flock(_fd, fcntl.LOCK_UN)
75
+ return len(value)
76
+
77
+
78
+ _sink = _BoundedConnectorLog()
79
+ sys.stdout = _sink
80
+ sys.stderr = _sink
81
+ `;function n(){return(0,j.BQ)("telegram","connector.log")}function o(){(0,k._q)(!0);let a=(0,j.BQ)("telegram","connector-log-sink");g().mkdirSync(a,{recursive:!0,mode:448});let b=g().lstatSync(a);if(!b.isDirectory()||b.isSymbolicLink()||(63&b.mode)!=0||"function"==typeof process.getuid&&b.uid!==process.getuid())throw Error("unsafe connector log sink directory");let c=i().join(a,"sitecustomize.py"),d=`${c}.${process.pid}.${e().randomUUID()}.tmp`;try{g().writeFileSync(d,m,{flag:"wx",mode:384}),g().renameSync(d,c),g().chmodSync(c,384)}finally{g().rmSync(d,{force:!0})}return!function(){let a="O_NOFOLLOW"in g().constants?g().constants.O_NOFOLLOW:0,b=g().openSync(n(),g().constants.O_RDWR|g().constants.O_CREAT|a,384);try{let a=g().fstatSync(b);if(!a.isFile()||(63&a.mode)!=0||"function"==typeof process.getuid&&a.uid!==process.getuid())throw Error("unsafe connector log");if(a.size<=l)return;let c=Buffer.alloc(l);g().readSync(b,c,0,c.length,a.size-c.length),g().ftruncateSync(b,0),g().writeSync(b,c,0,c.length,0)}finally{g().closeSync(b)}}(),{PYTHONPATH:a,LLV_TELEGRAM_CONNECTOR_LOG:n(),LLV_TELEGRAM_CONNECTOR_LOG_MAX_BYTES:String(l)}}}};
@@ -0,0 +1,2 @@
1
+ "use strict";exports.id=6289,exports.ids=[6289],exports.modules={16289:(a,b,c)=>{c.r(b),c.d(b,{FLOW_PIPELINE_WATCHDOG_MS:()=>p,FlowPipelineController:()=>s,controllerFileScan:()=>r,flowPipelineController:()=>v,startFlowPipelineController:()=>w,startFlowPipelineControllerRuntime:()=>t,writeFlowPipelineControllerHeartbeat:()=>q});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(8872),l=c(1849),m=c(24739),n=c(48289),o=c(13896);let p=3e4;function q(a,b=(0,j.BQ)("flow-pipeline-controller-heartbeat.json")){g().mkdirSync(i().dirname(b),{recursive:!0,mode:448});let c=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`);g().writeFileSync(c,`${JSON.stringify(a,null,2)}
2
+ `,{encoding:"utf8",mode:384}),g().renameSync(c,b)}async function r(){let a=await (0,l.Nm)();return{files:a.snapshot.files,complete:a.snapshot.complete}}class s{constructor(a,b={}){this.running=null,this.trailingCycleRequested=!1,this.trailingTrigger="signal",this.cycle=0,this.lastArchiveSweepAt=0,this.activePhases=new Map,this.ports={...a,scan:a.scan??(async()=>({files:[],complete:!0})),now:a.now??Date.now,scheduleTimeout:a.scheduleTimeout??((a,b)=>setTimeout(a,b)),clearTimeout:a.clearTimeout??(a=>clearTimeout(a)),publishHeartbeat:a.publishHeartbeat??(()=>void 0),log:a.log??((a,b)=>{void 0===b?console.error(a):console.error(a,b)})},this.phaseDeadlineMs=b.phaseDeadlineMs??15e3,this.maxPasses=b.maxPasses??8}tick(a="signal"){return this.running?(this.trailingCycleRequested=!0,this.trailingTrigger=a):this.running=this.runRequestedCycles(a).finally(()=>{if(this.running=null,this.trailingCycleRequested)return this.tick(this.trailingTrigger)}),this.running}poll(){return this.running??this.tick("watchdog")}recover(){return this.tick("startup")}async runRequestedCycles(a){let b=a;do this.trailingCycleRequested=!1,await this.runCycle(b),b=this.trailingTrigger;while(this.trailingCycleRequested)}async runCycle(a){let b=++this.cycle,c=0,d=[],e=!1;for(let f=1;f<=this.maxPasses;f+=1){c=f;let g=await this.runPhase("pipelines",b,f,a,()=>this.ports.tickPipelines(d)),h=1===f?await this.runPhase("scan",b,f,a,this.ports.scan):null;if(h?.state==="failed")throw h.error;h?.state==="completed"&&h.value.complete&&(d=h.value.files,e=!0);let i=e?await this.runPhase("flows",b,f,a,()=>this.ports.tickFlows(d)):null,j="failed"===g.state?g.error:i?.state==="failed"?i.error:null;if(null!==j)throw j;if(!("completed"===g.state&&g.value.changed||i?.state==="completed"&&i.value.changed||h?.state==="completed"&&h.value.complete))break}this.sweepSettledArchive();let f=[...this.activePhases.entries()].sort((a,b)=>a[1].startedAt-b[1].startedAt)[0];f?this.publish({cycle:b,pass:c,trigger:a,phase:f[0],state:"blocked",startedAt:f[1].startedAt}):this.publish({cycle:b,pass:c,trigger:a,phase:"idle",state:"idle",startedAt:this.ports.now()})}sweepSettledArchive(){let a=this.ports.now();a-this.lastArchiveSweepAt<36e5||(this.lastArchiveSweepAt=a,(0,o.archiveSettledPipelines)(a).then(a=>{a>0&&this.ports.log(`[flow pipeline controller] archived ${a} settled pipeline record(s)`)}).catch(a=>{this.ports.log("[flow pipeline controller] settled pipeline archive sweep failed",a)}))}async runPhase(a,b,c,d,e){let f=this.activePhases.get(a);if(f)return this.publish({cycle:b,pass:c,trigger:d,phase:a,state:"blocked",startedAt:f.startedAt}),{state:"blocked"};let g=this.ports.now();this.publish({cycle:b,pass:c,trigger:d,phase:a,state:"running",startedAt:g});let h=Promise.resolve().then(e),i={startedAt:g,promise:h};this.activePhases.set(a,i),h.then(()=>{this.activePhases.get(a)===i&&this.activePhases.delete(a)},()=>{this.activePhases.get(a)===i&&this.activePhases.delete(a)});let j=()=>{},k=new Promise(a=>{j=()=>a({state:"timed-out"})}),l=this.ports.scheduleTimeout(j,this.phaseDeadlineMs),m=await Promise.race([h.then(a=>({state:"completed",value:a}),a=>({state:"failed",error:a})),k]);return this.ports.clearTimeout(l),this.publish({cycle:b,pass:c,trigger:d,phase:a,state:m.state,startedAt:g}),"failed"===m.state?this.ports.log(`[flow pipeline controller] ${a} phase failed`,m.error):"timed-out"===m.state&&this.ports.log(`[flow pipeline controller] ${a} phase exceeded its deadline`),m}publish(a){let b=this.ports.now();try{this.ports.publishHeartbeat({schemaVersion:1,controller:"flow-pipeline",cycle:a.cycle,pass:a.pass,trigger:a.trigger,phase:a.phase,state:a.state,phaseStartedAt:new Date(a.startedAt).toISOString(),updatedAt:new Date(b).toISOString(),ageMs:Math.max(0,b-a.startedAt),deadlineMs:this.phaseDeadlineMs})}catch(a){this.ports.log("[flow pipeline controller] durable heartbeat publication failed",a)}}}function t(a,b,c){b.__llvFlowPipelineUnregister?.(),b.__llvFlowPipelineUnregister=c.registerTick(()=>a.tick("signal")),b.__llvFlowPipelineWatchdog||(b.__llvFlowPipelineWatchdog=c.scheduleInterval(()=>void a.poll().catch(a=>{c.log("[flow pipeline controller] watchdog reconciliation failed",a)}),p),b.__llvFlowPipelineWatchdog.unref?.()),a.recover().catch(a=>{c.log("[flow pipeline controller] startup reconciliation failed",a)})}let u=globalThis;function v(){return u.__llvFlowPipelineController??=new s({scan:r,tickPipelines:n.n6,tickFlows:k.zn,publishHeartbeat:q})}function w(){t(v(),u,{registerTick:m.n_,scheduleInterval:(a,b)=>setInterval(a,b),log:(a,b)=>console.error(a,b)})}}};
@@ -0,0 +1,81 @@
1
+ "use strict";exports.id=644,exports.ids=[644,6277],exports.modules={23886:(a,b,c)=>{c.d(b,{adoptStructuredHostsAtStartup:()=>X,releaseUnpublishedStartupHostsForDemotion:()=>_});var d=c(77598),e=c.n(d),f=c(65236),g=c(66812),h=c(58577),i=c(70160),j=c(22993),k=c(88623),l=c(29307),m=c(76385),n=c(21420),o=c(842),p=c(65281),q=c(18027),r=c(62490),s=c(93994),t=c(2749),u=c(5242),v=c(66052),w=c(75211),x=c(83968),y=c(61532);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")}},26277:(a,b,c)=>{c.d(b,{Gs:()=>C,Kn:()=>w,gY:()=>x,h3:()=>q,jd:()=>v,kt:()=>E,ue:()=>D,vx:()=>y,w5:()=>z});var d=c(31421);c(77598);var e=c(73024),f=c.n(e),g=c(48161),h=c.n(g),i=c(76760),j=c.n(i),k=c(27146),l=c(89204),m=c(55541),n=c(19777);Object.freeze({repo:"https://github.com/chigwell/telegram-mcp",release:"v3.2.22",commit:"a61294362226bd93052f5a40b4a1b1269a99ce69",license:"Apache-2.0"});let o="127.0.0.1";function p(){let a=Number(process.env.LLV_TELEGRAM_MCP_PORT);return Number.isInteger(a)&&a>0&&a<65536?a:8809}function q(){return`http://${o}:${p()}/mcp`}function r(a,...b){if(a)return a;let c=j().join(process.cwd(),...b);if(f().existsSync(c))return c;let d=j().join(process.cwd(),"..","..",...b);return f().existsSync(d)?d:c}function s(){return r(process.env.LLV_TELEGRAM_VENDOR_DIR,"vendor","telegram-mcp")}function t(){return(0,k.BQ)("telegram","venv")}function u(){return(0,k.BQ)("telegram","vendor-src")}function v(){return process.env.LLV_TELEGRAM_PYTHON||j().join(t(),"bin","python")}function w(){return r(process.env.LLV_TELEGRAM_SERVER_BRIDGE,"bin","telegram-mcp-server.py")}function x(){return r(process.env.LLV_TELEGRAM_SESSION_READER,"bin","telegram-session-reader.mjs")}let y=Object.freeze(["wait_for_settled_message"]);function z(){let a=process.env.LLV_TELEGRAM_API_ID,b=process.env.LLV_TELEGRAM_API_HASH;if(a&&b)return{apiId:a,apiHash:b};try{let a=JSON.parse(f().readFileSync((0,k.ks)("telegram.json"),"utf8"));if("string"==typeof a.apiId&&a.apiId&&"string"==typeof a.apiHash&&a.apiHash)return{apiId:a.apiId,apiHash:a.apiHash}}catch{}return null}function A(){return f().existsSync(j().join(t(),".llv-provisioned"))&&f().existsSync(v())&&f().existsSync(j().join(u(),"pyproject.toml"))}let B=null;function C(){return A()?Promise.resolve(!0):B||(B=(async()=>((0,n._q)(!0),await (0,l.pM)((0,k.BQ)("telegram","connector-provision"),"Telegram connector provisioning is busy",async()=>{var a;return!!A()||await (a={command:process.execPath,args:[r(process.env.LLV_TELEGRAM_PROVISIONER,"bin","provision-telegram-connector.mjs")],cwd:s(),env:{...F(),LLV_STATE_DIR:(0,k.Pn)(),LLV_TELEGRAM_VENDOR_DIR:s(),LLV_TELEGRAM_PYTHON:v()}},new Promise(b=>{let c;try{c=(0,d.spawn)(a.command,a.args,{cwd:a.cwd,env:a.env,stdio:"ignore"})}catch{b(!1);return}c.once("error",()=>b(!1)),c.once("exit",a=>b(0===a))}))&&A()})))().catch(()=>!1).finally(()=>{B=null}))}function D(a){let b=u(),c=(0,m.WG)();return{command:v(),args:[w()],cwd:b,env:{...F(),...c,TELEGRAM_API_ID:a.credentials.apiId,TELEGRAM_API_HASH:a.credentials.apiHash,TELEGRAM_SESSION_STRING:a.sessionString,TELEGRAM_EXPOSED_TOOLS:"read-only",TELEGRAM_EVENT_FEED:"1",TELEGRAM_EVENT_FEED_FILE:(0,n.ZI)(a.credentialRef),LLV_TELEGRAM_EXCLUDED_TOOLS:y.join(","),LLV_TELEGRAM_MCP_TOKEN:a.connectorToken,LLV_TELEGRAM_VENDOR_DIR:b,MCP_TRANSPORT:"http",MCP_HOST:o,MCP_PORT:String(p())}}}function E(a,b){return{command:v(),args:[r(process.env.LLV_TELEGRAM_BRIDGE,"bin","telegram-login-bridge.py"),a],cwd:h().homedir(),env:{...F(),TELEGRAM_API_ID:b.apiId,TELEGRAM_API_HASH:b.apiHash}}}function F(){let a={};for(let b of["PATH","HOME","LANG","LC_ALL","TMPDIR"])void 0!==process.env[b]&&(a[b]=process.env[b]);return a}},55541:(a,b,c)=>{c.d(b,{WG:()=>o,cO:()=>n,yb:()=>l});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(19777);let l=262144,m=String.raw`import fcntl
2
+ import io
3
+ import os
4
+ import stat
5
+ import sys
6
+ import threading
7
+
8
+ try:
9
+ _path = os.environ["LLV_TELEGRAM_CONNECTOR_LOG"]
10
+ _limit = int(os.environ["LLV_TELEGRAM_CONNECTOR_LOG_MAX_BYTES"])
11
+ if _limit <= 0:
12
+ raise ValueError("invalid log limit")
13
+ _flags = os.O_RDWR | os.O_CREAT | os.O_APPEND
14
+ if hasattr(os, "O_NOFOLLOW"):
15
+ _flags |= os.O_NOFOLLOW
16
+ _fd = os.open(_path, _flags, 0o600)
17
+ _info = os.fstat(_fd)
18
+ if not stat.S_ISREG(_info.st_mode) or (_info.st_mode & 0o077):
19
+ raise PermissionError("unsafe connector log")
20
+ if hasattr(os, "getuid") and _info.st_uid != os.getuid():
21
+ raise PermissionError("connector log owner mismatch")
22
+ except Exception as _error:
23
+ raise SystemExit("connector log sink unavailable") from _error
24
+
25
+
26
+ def _write_all(data):
27
+ view = memoryview(data)
28
+ while view:
29
+ written = os.write(_fd, view)
30
+ view = view[written:]
31
+
32
+
33
+ class _BoundedConnectorLog(io.TextIOBase):
34
+ encoding = "utf-8"
35
+ errors = "backslashreplace"
36
+
37
+ def __init__(self):
38
+ self._lock = threading.Lock()
39
+
40
+ def writable(self):
41
+ return True
42
+
43
+ def isatty(self):
44
+ return False
45
+
46
+ def fileno(self):
47
+ return _fd
48
+
49
+ def flush(self):
50
+ return None
51
+
52
+ def write(self, value):
53
+ if not isinstance(value, str):
54
+ value = str(value)
55
+ data = value.encode(self.encoding, self.errors)
56
+ if not data:
57
+ return len(value)
58
+ with self._lock:
59
+ fcntl.flock(_fd, fcntl.LOCK_EX)
60
+ try:
61
+ size = os.fstat(_fd).st_size
62
+ if len(data) >= _limit:
63
+ tail = data[-_limit:]
64
+ os.ftruncate(_fd, 0)
65
+ _write_all(tail)
66
+ elif size + len(data) > _limit:
67
+ keep = _limit - len(data)
68
+ prior = os.pread(_fd, keep, max(0, size - keep))
69
+ os.ftruncate(_fd, 0)
70
+ _write_all(prior[-keep:] + data)
71
+ else:
72
+ _write_all(data)
73
+ finally:
74
+ fcntl.flock(_fd, fcntl.LOCK_UN)
75
+ return len(value)
76
+
77
+
78
+ _sink = _BoundedConnectorLog()
79
+ sys.stdout = _sink
80
+ sys.stderr = _sink
81
+ `;function n(){return(0,j.BQ)("telegram","connector.log")}function o(){(0,k._q)(!0);let a=(0,j.BQ)("telegram","connector-log-sink");g().mkdirSync(a,{recursive:!0,mode:448});let b=g().lstatSync(a);if(!b.isDirectory()||b.isSymbolicLink()||(63&b.mode)!=0||"function"==typeof process.getuid&&b.uid!==process.getuid())throw Error("unsafe connector log sink directory");let c=i().join(a,"sitecustomize.py"),d=`${c}.${process.pid}.${e().randomUUID()}.tmp`;try{g().writeFileSync(d,m,{flag:"wx",mode:384}),g().renameSync(d,c),g().chmodSync(c,384)}finally{g().rmSync(d,{force:!0})}return!function(){let a="O_NOFOLLOW"in g().constants?g().constants.O_NOFOLLOW:0,b=g().openSync(n(),g().constants.O_RDWR|g().constants.O_CREAT|a,384);try{let a=g().fstatSync(b);if(!a.isFile()||(63&a.mode)!=0||"function"==typeof process.getuid&&a.uid!==process.getuid())throw Error("unsafe connector log");if(a.size<=l)return;let c=Buffer.alloc(l);g().readSync(b,c,0,c.length,a.size-c.length),g().ftruncateSync(b,0),g().writeSync(b,c,0,c.length,0)}finally{g().closeSync(b)}}(),{PYTHONPATH:a,LLV_TELEGRAM_CONNECTOR_LOG:n(),LLV_TELEGRAM_CONNECTOR_LOG_MAX_BYTES:String(l)}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6453,exports.ids=[6453],exports.modules={46453:(a,b,c)=>{c.r(b),c.d(b,{CONNECTOR_RETRY_WINDOW_MS:()=>s,RUN_TIMEOUT_MS:()=>r,TelegramReportRunner:()=>v,ensureTelegramReportScheduler:()=>z,productionReportRunnerPorts:()=>t,sameTelegramAccount:()=>w,setTelegramReportRunnerForTests:()=>A,telegramReportRunner:()=>y});var d=c(77598),e=c.n(d),f=c(4837),g=c(8668),h=c(96101),i=c(55862),j=c(52538),k=c(43034),l=c(10230);function m(a){a().catch(()=>void 0)}let n="127.0.0.1";async function o(a){var b;let[{executeSpawnRequest:d,productionSpawnCommandDependencies:e},{ensureOperatorSpawnCapability:f},{VIEWER_SPAWN_CAPABILITY_HEADER:g}]=await Promise.all([Promise.all([c.e(4637),c.e(9940),c.e(9822),c.e(3896),c.e(107),c.e(6522),c.e(781),c.e(9517),c.e(8966),c.e(1617),c.e(4509),c.e(4565),c.e(8797),c.e(8996),c.e(3587),c.e(6926),c.e(6978),c.e(1100),c.e(6809),c.e(8617),c.e(8991),c.e(6826),c.e(4127),c.e(3743),c.e(1849),c.e(7238),c.e(7722),c.e(3302)]).then(c.bind(c,67722)),c.e(9937).then(c.bind(c,89937)),c.e(4012).then(c.bind(c,4012))]),h={headers:new Headers({host:n,origin:`http://${n}`,"sec-fetch-site":"same-origin",[g]:f()}),json:async()=>a.body},i=await d(h,{...e,...(b=a.grantActive,{defer:m,internalGrant:()=>({sessionClass:l.Vv,mcpServers:(0,l.FE)({grantActive:b()})})})});return{status:i.status,body:await i.json()}}var p=c(79554),q=c(68032);let r=27e5,s=18e5,t={now:Date.now,connection:()=>{try{return(0,q.Kd)()}catch{return{version:1,status:"error",credentialRef:null,identity:null,lastHealthCheckAt:null,errorCode:"session_unsafe",identityIdUpgradedAt:null}}},readPort:a=>(0,k.tx)(a),beginReadPhase:async()=>{let{telegramService:a}=await Promise.all([c.e(9940),c.e(9822),c.e(3896),c.e(107),c.e(6522),c.e(781),c.e(9517),c.e(8966),c.e(849)]).then(c.bind(c,70849));return await a().beginReportReadPhase()},connectorReady:a=>(0,k.wZ)(a),migrateIdentity:async function(){try{let{telegramService:a}=await Promise.all([c.e(9940),c.e(9822),c.e(3896),c.e(107),c.e(6522),c.e(781),c.e(9517),c.e(8966),c.e(849)]).then(c.bind(c,70849));await a().checkHealth()}catch{}},spawn:o,reportRunConversation:async function(a){try{let{agentRegistry:b}=await Promise.all([c.e(9940),c.e(9822),c.e(3896),c.e(107),c.e(6522),c.e(781)]).then(c.bind(c,10781)),d=b(),e=d.spawnReceiptForClientAttempt((0,j.hS)(a));return e?d.canonicalConversationId(e.conversationId):null}catch{return null}},conversationLive:async function(a){try{let{agentRegistry:b}=await Promise.all([c.e(9940),c.e(9822),c.e(3896),c.e(107),c.e(6522),c.e(781)]).then(c.bind(c,10781)),d=b().conversation(a);if(!d)return!1;return d.turn?.state!=="terminal"}catch{return!0}},log:a=>console.error(`[telegram report] ${a}`)};function u(a){let b=a.identity?.id;return b&&a.credentialRef?{id:b,credentialRef:a.credentialRef}:null}class v{constructor(a=t){this.ports=a,this.running=!1,this.planning=new Set,this.pending=[]}grantActive(a=null){let b=this.ports.connection();return(null===a||b.credentialRef===a)&&(0,p.rD)().settings.enabled&&"connected"===b.status}payload(){var a;let b=(0,p.rD)(),c=b.active?[{id:(a=b.active).runId,trigger:a.trigger,startedAt:a.startedAt,finishedAt:null,windowStart:a.windowStart,windowEnd:a.windowEnd,status:"running",errorCode:null,conversationId:a.conversationId,hasReport:!1,promptVersion:a.promptVersion},...b.history]:b.history,d=(0,i.jF)({now:this.ports.now(),settings:b.settings,cursor:b.cursor});return{settings:{...b.settings,promptIsDefault:null===b.prompt},history:c,nextRunAt:null===d?null:new Date(d).toISOString()}}async tick(){if(!this.running){this.running=!0;try{this.reconcileDisconnected(),await this.finalizeActiveRun();let a=(0,p.rD)();if(a.active||await this.runOwedConnectorRetry(a)||!(0,i.z1)({now:this.ports.now(),settings:a.settings,cursor:a.cursor}))return;let b=(0,i.l)(this.ports.now(),g.cz);(0,p.k)(a=>{a.cursor.lastScheduledDay=b});let c=this.beginRun("scheduled");c.ok&&await this.execute(c.runId)}catch{this.ports.log("tick_failed")}finally{this.running=!1}}}async runNow(){let a;if(this.running)return{ok:!1,code:"run_in_progress"};this.running=!0;try{if(await this.finalizeActiveRun(),(0,p.rD)().active)return{ok:!1,code:"run_in_progress"};a=this.beginRun("manual")}finally{this.running=!1}if(!a.ok)return a;let b=this.execute(a.runId);return this.pending.push(b),b.finally(()=>{this.pending=this.pending.filter(a=>a!==b)}),a}async settled(){let a=this.pending;this.pending=[],await Promise.all(a)}async runOwedConnectorRetry(a){let b=a.retry;if(!b)return!1;let c=Date.parse(b.armedAt);if(!Number.isFinite(c)||this.ports.now()-c>s||!a.settings.enabled)return(0,p.k)(a=>{a.retry?.runId===b.runId&&(a.retry=null)}),!1;if("connected"!==this.ports.connection().status)return!1;(0,p.k)(a=>{a.retry?.runId===b.runId&&(a.retry=null)});let d=this.beginRun(b.trigger,{retry:!0});return d.ok&&await this.execute(d.runId),!0}reconcileDisconnected(){let a=this.ports.connection();if("disconnected"!==a.status||null!==a.credentialRef)return;let b=(0,p.rD)();(b.settings.enabled||0!==b.history.length||b.active)&&(0,p.mI)()}beginRun(a,b={}){let c=(0,p.rD)(),d=this.ports.connection();if(!c.settings.enabled)return this.recordFailure(a,"reports_disabled");if("connected"!==d.status)return this.recordFailure(a,"not_connected");let f=e().randomUUID(),g=(0,i.s)(this.ports.now(),c.cursor);return this.planning.add(f),(0,p.k)(c=>{c.retry=null,c.active={runId:f,trigger:a,startedAt:new Date(this.ports.now()).toISOString(),windowStart:g.startAt,windowEnd:g.endAt,conversationId:null,promptVersion:h.BL,...b.retry?{retry:!0}:{}}}),{ok:!0,runId:f}}async execute(a){try{await this.executeLocked(a)}catch{this.ports.log("run_failed"),this.settle(a,"failed","launch_failed",!1)}finally{this.planning.delete(a)}}async verifiedIdentity(){let a=this.ports.connection();if(a.identity?.id)return u(a);if(!a.identity||a.identityIdUpgradedAt)return null;await this.ports.migrateIdentity();let b=this.ports.connection();return"connected"!==b.status?null:u(b)}async executeLocked(a){let b,c,d,e=(0,p.rD)(),g=e.active;if(!g||g.runId!==a)return;let i={startAt:g.windowStart,endAt:g.windowEnd},l=await this.verifiedIdentity();if(!l){this.ports.log("account_check_failed"),this.settle(a,"failed","account_check_failed",!1);return}let m=this.ports.readPort(l.credentialRef);if(!this.ports.beginReadPhase)throw Error("Telegram report read lease is unavailable");let n=await this.ports.beginReadPhase();try{let d=await this.ports.connectorReady(l.credentialRef);if(!d.ready){this.ports.log("connector_unavailable"),this.settle(a,"failed","connector_unavailable",!1,{requeue:"unavailable"===d.reason});return}try{b=await m.getMe()}catch{this.ports.log("account_check_failed"),this.settle(a,"failed","account_check_failed",!1);return}if(!w(b,l)){this.ports.log("account_mismatch"),this.settle(a,"account-mismatch",null,!1);return}try{let b=await (0,k.Cl)(m,{windowStart:i.startAt,windowEnd:i.endAt,groups:e.settings.groups,promptVersion:h.BL});c=(0,p.uc)(a,b)}catch{this.ports.log("sources_failed"),this.settle(a,"failed","sources_failed",!1);return}}finally{n()}if((0,p.rD)().active?.runId!==a)return void(0,p.jc)(a);if(this.ports.connection().credentialRef!==l.credentialRef){this.ports.log("account_mismatch"),(0,p.jc)(a),this.settle(a,"account-mismatch",null,!1);return}let o=(0,h.Y_)({windowStart:i.startAt,windowEnd:i.endAt,sourcesPath:c,outputPath:(0,p.sk)(a),instructions:(0,p.kG)((0,p.rD)())});try{d=await this.ports.spawn({body:{engine:"codex",model:(0,f.Gh)("codex"),effort:"medium",cwd:(0,p.lN)(),title:(0,h.sg)({windowStart:i.startAt,windowEnd:i.endAt}),clientAttemptId:(0,j.hS)(a),project:j.zg,prompt:o},grantActive:()=>this.grantActive(l.credentialRef)})}catch{this.ports.log("launch_failed"),this.settle(a,"failed","launch_failed",!1);return}let q="string"==typeof d.body.conversationId?d.body.conversationId:null;if(!(d.status>=200&&d.status<300&&!1!==d.body.ok&&null!==q)){this.ports.log("launch_rejected"),this.settle(a,"failed","launch_failed",!1);return}(0,p.k)(b=>{b.active?.runId===a&&(b.active.conversationId=q)})}async relinkActiveRun(a){if(this.planning.has(a))return null;let b=await this.ports.reportRunConversation(a);return b?((0,p.k)(c=>{c.active?.runId!==a||c.active.conversationId||(c.active.conversationId=b)}),b):null}async finalizeActiveRun(){let a=(0,p.rD)().active;if(!a)return;let b=(0,p.H$)(a.runId),c=(0,h.U$)(b);if("ok"===c.kind){(0,p.$H)(a.runId,c.report),this.settle(a.runId,"ok",null,!0);return}if("quiet"===c.kind)return void this.settle(a.runId,"quiet",null,!1);if("invalid"===c.kind&&null!==b)return void this.settle(a.runId,"failed","invalid_report",!1);let d=Date.parse(a.startedAt),e=Number.isFinite(d)&&this.ports.now()-d>r,f=a.conversationId??await this.relinkActiveRun(a.runId);f?await this.ports.conversationLive(f)?e&&this.settle(a.runId,"failed","timed_out",!1):this.settle(a.runId,"failed","run_ended_without_report",!1):this.planning.has(a.runId)?e&&this.settle(a.runId,"failed","timed_out",!1):this.settle(a.runId,"failed","launch_failed",!1)}settle(a,b,c,d,e={}){(0,p.k)(f=>{let h=f.active;if(!h||h.runId!==a)return;if(f.active=null,f.retry=e.requeue&&!h.retry?{runId:h.runId,trigger:h.trigger,armedAt:new Date(this.ports.now()).toISOString()}:null,f.history=[{id:h.runId,trigger:h.trigger,startedAt:h.startedAt,finishedAt:new Date(this.ports.now()).toISOString(),windowStart:h.windowStart,windowEnd:h.windowEnd,status:b,errorCode:c,conversationId:h.conversationId,hasReport:d,promptVersion:h.promptVersion},...f.history],"ok"!==b&&"quiet"!==b){let a=f.cursor.unreportedSinceAt;(!a||Date.parse(h.windowStart)<Date.parse(a))&&(f.cursor.unreportedSinceAt=h.windowStart);return}f.cursor.lastSuccessfulWindowEndAt=h.windowEnd,f.cursor.unreportedSinceAt=null;let j=(0,i.l)(this.ports.now(),g.cz);this.ports.now()>=(0,i.wk)(j,f.settings.time,g.cz)&&(f.cursor.lastScheduledDay=j)}),d?(0,p.jc)(a):(0,p.FF)(a)}recordFailure(a,b,c=(0,i.s)(this.ports.now(),(0,p.rD)().cursor)){let d=new Date(this.ports.now()).toISOString();return(0,p.k)(f=>{if(f.history=[{id:e().randomUUID(),trigger:a,startedAt:d,finishedAt:d,windowStart:c.startAt,windowEnd:c.endAt,status:"failed",errorCode:b,conversationId:null,hasReport:!1,promptVersion:h.BL},...f.history],"reports_disabled"===b)return;let g=f.cursor.unreportedSinceAt;(!g||Date.parse(c.startAt)<Date.parse(g))&&(f.cursor.unreportedSinceAt=c.startAt)}),{ok:!1,code:b}}}function w(a,b){return!!(a?.id&&b?.id&&a.id===b.id)}let x=globalThis;function y(){return x.__llvTelegramReportRunner??=new v}function z(){x.__llvTelegramReportTimer||(x.__llvTelegramReportTimer=setInterval(()=>{y().tick()},6e4),x.__llvTelegramReportTimer.unref?.(),y().tick())}function A(a){a?x.__llvTelegramReportRunner=a:delete x.__llvTelegramReportRunner}},52538:(a,b,c)=>{c.d(b,{hS:()=>f,jE:()=>g,zg:()=>d});let d="telegram-reports",e="telegram-report-";function f(a){return`${e}${a}`}function g(a){if("string"!=typeof a||!a.startsWith(e))return null;let b=a.slice(e.length);return/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(b)?b:null}},55862:(a,b,c)=>{c.d(b,{jF:()=>k,l:()=>g,s:()=>l,wk:()=>i,z1:()=>j});var d=c(8668);let e=new Map;function f(a,b){let c=e.get(b);c||(c=new Intl.DateTimeFormat("en-US",{timeZone:b,hour12:!1,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),e.set(b,c));let d={};for(let b of c.formatToParts(new Date(a)))d[b.type]=b.value;return{year:Number(d.year),month:Number(d.month),day:Number(d.day),hour:Number(d.hour)%24,minute:Number(d.minute),second:Number(d.second)}}function g(a,b=d.cz){let c=f(a,b);return`${String(c.year).padStart(4,"0")}-${String(c.month).padStart(2,"0")}-${String(c.day).padStart(2,"0")}`}function h(a,b){let c=f(a,b);return Date.UTC(c.year,c.month-1,c.day,c.hour,c.minute,c.second)-1e3*Math.floor(a/1e3)}function i(a,b,c=d.cz){let[e,f]=b.split(":").map(Number),[g,j,k]=a.split("-").map(Number),l=Date.UTC(g,j-1,k,e,f,0),m=l-h(l,c);return l-h(m,c)}function j(a){let b=a.timeZone??d.cz;if(!a.settings.enabled)return!1;let c=g(a.now,b);return a.cursor.lastScheduledDay!==c&&a.now>=i(c,a.settings.time,b)}function k(a){let b=a.timeZone??d.cz;if(!a.settings.enabled)return null;if(j(a))return a.now;let c=i(g(a.now,b),"12:00",b);for(let d=0;d<=8;d+=1){let e=g(c+864e5*d,b),f=i(e,a.settings.time,b);if(!(f<=a.now)&&a.cursor.lastScheduledDay!==e)return f}return null}function l(a,b){let c=b.unreportedSinceAt?Date.parse(b.unreportedSinceAt):NaN,d=b.lastSuccessfulWindowEndAt?Date.parse(b.lastSuccessfulWindowEndAt):NaN,e=Number.isFinite(c)?c:d;return{startAt:new Date(Number.isFinite(e)&&e<a?Math.max(e,a-2592e5):a-864e5).toISOString(),endAt:new Date(a).toISOString()}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6522,exports.ids=[6522],exports.modules={21153:(a,b,c)=>{c.d(b,{K6:()=>o,Pf:()=>A,h6:()=>w,z4:()=>z});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(89940),l=c(2033),m=c(64859),n=c(49729);let o=(0,j.BQ)("tasks.json"),p=new WeakMap;function q(a,b,c){for(let b of a)b.project=(0,k.G$)(b.project);return(0,m.lw)(a,b,c),a.map(a=>{let c=b.get(a.id);return c&&(0,m.d4)(a)===c.revision&&p.has(c.ref)?p.get(c.ref):a})}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){return!(!a||"object"!=typeof a||Array.isArray(a))&&"number"==typeof a.x&&Number.isFinite(a.x)&&"number"==typeof a.y&&Number.isFinite(a.y)}function t(a){var b;return!(!a||"object"!=typeof a||Array.isArray(a))&&("string"==typeof a.path||null===a.path)&&(void 0===a.launchId||"string"==typeof a.launchId||null===a.launchId)&&(void 0===a.clientAttemptId||"string"==typeof a.clientAttemptId||null===a.clientAttemptId)&&(void 0===a.conversationId||"string"==typeof a.conversationId||null===a.conversationId)&&("number"==typeof a.panePid||null===a.panePid)&&(null===a.panePid||Number.isInteger(a.panePid)&&a.panePid>0)&&("delivered"===(b=a.state)||"failed"===b||"spawning"===b||"handoff"===b||"linked"===b)&&("string"==typeof a.error||null===a.error)&&"string"==typeof a.at}function u(a){return"pinned"===a||"unplaced"===a||"auto"===a}function v(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.clientRequestId&&"string"==typeof a.taskId}function w(a=o){return x(a).tasks}function x(a=o){var b;let c=function(a){try{return JSON.parse(g().readFileSync(a,"utf8"))}catch(a){if("ENOENT"===a.code)return;throw a}}(a);if(void 0===c)return{tasks:[],recentCreates:[],migrations:{}};if(!c||!Array.isArray(c.tasks))throw Error("invalid persisted task state");let d=c.tasks.map(a=>{let b=function(a){var b,c,d,e,f;let g,h;if(!a||"object"!=typeof a||Array.isArray(a)||!("string"==typeof a.id&&"string"==typeof a.project&&("inbox"===(b=a.status)||"assigned"===b||"blocked"===b||"done"===b)&&"string"==typeof a.text&&(void 0===a.details||"string"==typeof a.details)&&(void 0===a.placement||u(a.placement))&&(void 0===a.pos||s(a.pos))&&(g=void 0!==a.dueAt,h=void 0!==a.dueTz,!g&&!h||"string"==typeof a.dueAt&&"string"==typeof a.dueTz)&&(void 0===(c=a.attachments)||Array.isArray(c)&&c.every(n.tK))&&Array.isArray(a.assignments)&&a.assignments.every(t)&&(void 0===a.source||!(!(d=a.source)||"object"!=typeof d||Array.isArray(d))&&"string"==typeof d.path&&("string"==typeof d.ts||null===d.ts)&&"string"==typeof d.text&&"string"==typeof d.fingerprint&&("claude"===d.engine||"codex"===d.engine))&&(void 0===a.origin||!(!(e=a.origin)||"object"!=typeof e||Array.isArray(e))&&("conversation"===e.kind||"launch"===e.kind||"pipeline"===e.kind||"flow"===e.kind)&&"string"==typeof e.key&&e.key.length>0&&("pending"===e.refinement||"titled"===e.refinement)&&(void 0===e.refinedBy||"string"==typeof e.refinedBy)&&(void 0===e.refinedText||"string"==typeof e.refinedText))&&(void 0===a.board||"shown"===(f=a.board)||"hidden"===f)&&"string"==typeof a.createdAt&&"string"==typeof a.updatedAt))return null;let i=s(a.pos),j=u(a.placement)?a.placement:i?"pinned":"unplaced",l="pinned"===j&&i,o={...a,id:a.id,project:(0,k.G$)(a.project),status:a.status,text:a.text,...void 0!==a.details?{details:a.details}:{},placement:"pinned"!==j||i?j:"unplaced",...l?{pos:a.pos}:{},...void 0!==a.dueAt?{dueAt:a.dueAt,dueTz:a.dueTz}:{},...void 0!==a.attachments?{attachments:a.attachments}:{},assignments:a.assignments,...void 0!==a.source?{source:a.source}:{},...void 0!==a.origin?{origin:a.origin}:{},...void 0!==a.board?{board:a.board}:{},createdAt:a.createdAt,updatedAt:a.updatedAt};l||delete o.pos;try{Object.assign(o,{revision:(0,m.d4)(o)})}catch{return null}return o}(a);if(!b)throw Error("invalid persisted task row");return p.set(b,a),b});if(new Set(d.map(a=>a.id)).size!==d.length)throw Error("duplicate persisted task id");if(void 0!==c.recentCreates&&(!Array.isArray(c.recentCreates)||!c.recentCreates.every(v)))throw Error("invalid persisted task receipts");let e=c.recentCreates??[];if(void 0!==c.migrations&&!(!(!(b=c.migrations)||"object"!=typeof b||Array.isArray(b))&&Object.values(b).every(a=>"string"==typeof a)))throw Error("invalid persisted task migrations");return{tasks:d,recentCreates:e,migrations:{...c.migrations??{}}}}function y(a,b,c={}){return{tasks:a,...b.length?{recentCreates:b}:{},...Object.keys(c).length?{migrations:c}:{}}}function z(a,b=o){return(0,l.Ol)(b,"task state is busy",()=>{let c=x(b),d=(0,m.lU)(c.tasks),e=a(c.tasks);return e.tasks&&r(b,y(q(e.tasks,d,!0),c.recentCreates,c.migrations)),e.result})}function A(a,b=o){return(0,l.Ol)(b,"task state is busy",()=>{let c=x(b),d=(0,m.lU)(c.tasks),e=a(c);return e.state&&r(b,y(q(e.state.tasks,d,!0),e.state.recentCreates,e.state.migrations??c.migrations)),e.result})}},36522:(a,b,c)=>{c.d(b,{IE:()=>n,On:()=>i,Z1:()=>j,mD:()=>r,to:()=>o,v1:()=>k});var d=c(77598),e=c.n(d),f=c(60641),g=c(21153);let h=function(a,b){return b.conversationId&&a.conversationId?a.conversationId===b.conversationId:b.launchId&&a.launchId?a.launchId===b.launchId:b.clientAttemptId&&a.clientAttemptId?a.clientAttemptId===b.clientAttemptId:!!b.path&&a.path===b.path};function i(a){let b={launchId:a.launchId??null,clientAttemptId:a.clientAttemptId??null,conversationId:a.conversationId??null,path:a.path??null,engine:a.engine??null,accountId:a.accountId??null};return m(b)?b:null}function j(a){let b=a.clientAttemptId??a.launchId;if(b)return{kind:"launch",key:b};let c=a.conversationId??a.path;return c?{kind:"conversation",key:c}:null}function k(a,b){return a.some(a=>a.assignments.some(a=>"failed"!==a.state&&h(a,b)))}function l(a,b,c){let d=a.assignments.findIndex(a=>h(a,b));if(d>=0){let e=a.assignments[d],f={...e,...b.launchId&&!e.launchId?{launchId:b.launchId}:{},...b.clientAttemptId&&!e.clientAttemptId?{clientAttemptId:b.clientAttemptId}:{},...b.conversationId&&!e.conversationId?{conversationId:b.conversationId}:{},path:e.path??b.path??null,...b.engine&&!e.engine?{engine:b.engine}:{},...b.accountId&&!e.accountId?{accountId:b.accountId}:{}};if(JSON.stringify(f)===JSON.stringify(e))return{task:a,changed:!1};let g=a.assignments.slice();return g[d]=f,{task:{...a,assignments:g,updatedAt:c},changed:!0}}let e={...b.launchId?{launchId:b.launchId}:{},...b.clientAttemptId?{clientAttemptId:b.clientAttemptId}:{},path:b.path??null,...b.conversationId?{conversationId:b.conversationId}:{},panePid:null,state:"linked",error:null,at:c,...b.engine?{engine:b.engine}:{},...b.accountId?{accountId:b.accountId}:{}},f="inbox"===a.status?"assigned":a.status;return{task:{...a,status:f,assignments:[...a.assignments,e],updatedAt:c},changed:!0}}function m(a){return!!(a.launchId||a.clientAttemptId||a.conversationId||a.path)}function n(a,b,c={}){var d;let g,i=b.project.trim();if(!i&&!b.explicitTaskIds?.length)return{ok:!1,error:"project is required",status:400};if(!b.origin.key.trim())return{ok:!1,error:"membership origin key is required",status:400};if(!m(b.identity))return{ok:!1,error:"membership needs a launch, conversation or path identity",status:400};let j=c.now?.()??(0,f.Ec)(),k=a.slice(),o=!1,p=(a,b)=>{b.changed&&(k[a]=b.task,o=!0)},q=k.filter(a=>a.assignments.some(a=>{var c;return"failed"!==a.state&&((c=b.identity).launchId&&a.launchId?a.launchId===c.launchId:!!c.clientAttemptId&&a.clientAttemptId===c.clientAttemptId)})),r=k.find(a=>a.project===(i||a.project)&&a.origin?.kind===b.origin.kind&&a.origin.key===b.origin.key);if(b.explicitTaskIds?.length){let c=[...new Set(b.explicitTaskIds)];if(r&&!c.includes(r.id))return{ok:!1,error:"this launch was admitted without a task target; a retry cannot add one",status:409};if(q.length&&(q.length!==c.length||q.some(a=>!c.includes(a.id))))return{ok:!1,error:"this launch was admitted with a different task target set; a retry keeps the original",status:409};let d=c.map(a=>k.findIndex(b=>b.id===a)),e=d.findIndex(a=>a<0);if(e>=0)return{ok:!1,error:`task ${c[e]} is not available`,status:404};let f=new Set(d.map(a=>k[a].project));if(f.size>1||i&&!f.has(i))return{ok:!1,error:"explicit tasks must belong to the launch's project",status:409};for(let a of d)p(a,l(k[a],b.identity,j));return{ok:!0,tasks:o?k:a.slice(),taskIds:c,created:[],changed:o}}let s=k.findIndex(a=>a.project===i&&a.origin?.kind===b.origin.kind&&a.origin.key===b.origin.key);if(s>=0)return p(s,l(k[s],b.identity,j)),{ok:!0,tasks:o?k:a.slice(),taskIds:[k[s].id],created:[],changed:o};let t=k.map((a,b)=>({task:a,index:b})).filter(({task:a})=>a.assignments.some(a=>"failed"!==a.state&&h(a,b.identity)));if(t.length){for(let{index:a}of t)p(a,l(k[a],b.identity,j));return{ok:!0,tasks:o?k:a.slice(),taskIds:t.map(({task:a})=>a.id),created:[],changed:o}}let u=(b.inherit??[]).filter(m),v=k.map((a,b)=>({task:a,index:b})).filter(({task:a})=>u.some(b=>a.assignments.some(a=>"failed"!==a.state&&h(a,b))));if(v.length){for(let{index:a}of v)p(a,l(k[a],b.identity,j));return{ok:!0,tasks:o?k:a.slice(),taskIds:v.map(({task:a})=>a.id),created:[],changed:o}}let w=c.id?.()??e().randomUUID(),x=l({id:w,project:i,status:"inbox",text:(d=b.title,(g=(d??"").split(/\r?\n/,1)[0]?.trim()??"")?g.length>80?`${g.slice(0,79).trimEnd()}…`:g:"Untitled task"),placement:"unplaced",origin:{kind:b.origin.kind,key:b.origin.key,refinement:"pending"},assignments:[],createdAt:j,updatedAt:j},b.identity,j).task;for(let a of u)x=l(x,a,j).task;return{ok:!0,tasks:k=[...k,x],taskIds:[w],created:[w],changed:!0}}function o(a,b){return(0,g.z4)(b=>{let c=n(b,a);return{tasks:c.ok&&c.changed?c.tasks:void 0,result:c}},b)}function p(a){return!(!a.project||!a.path||a.path.startsWith("spawn:"))&&("claude-projects"===a.root||"codex-sessions"===a.root)&&!a.path.includes("/subagents/")}let q=(a,b)=>!!(b.conversationId&&a.conversationIds.has(b.conversationId))||a.paths.has(b.path);function r(a,b,c){return(0,g.z4)(c=>{let d=function(a,b,c,d=50){let e=function(a){let b={conversationIds:new Set,paths:new Set,launches:new Map};for(let c of a)for(let a of c.assignments)if("failed"!==a.state)for(let d of(a.conversationId&&b.conversationIds.add(a.conversationId),a.path&&b.paths.add(a.path),[a.launchId,a.clientAttemptId])){if(!d)continue;let a=b.launches.get(d)??[];a.includes(c.id)||a.push(c.id),b.launches.set(d,a)}return b}(b),f=[],g=new Set,h=new Map(a.map(a=>[a.path,a])),i=b=>(b.agentPath?h.get(b.agentPath):void 0)??(b.conversationId?a.find(a=>a.conversationId===b.conversationId):void 0);for(let a of c){if(a.hiddenAt)continue;let b=a.runs.flatMap(a=>a.attempts).map(i).filter(a=>!!a);for(let a of b)g.add(a.path);if(!a.taskIds.length)for(let c of b)q(e,c)||f.length>=d||(f.push({project:c.project,origin:{kind:"pipeline",key:a.id},title:a.task,identity:{conversationId:c.conversationId??null,path:c.path,engine:"claude"===c.engine||"codex"===c.engine?c.engine:null}}),e.paths.add(c.path),c.conversationId&&e.conversationIds.add(c.conversationId))}let j=(a,b)=>{let c=function(a,b){let c=[b.spawn?.launchId,b.spawn?.clientAttemptId].filter(a=>!!a),d=new Set;for(let b of c)for(let c of a.launches.get(b)??[])d.add(c);return[...d]}(e,a);c.length?f.push({project:a.project,origin:{kind:"launch",key:a.spawn?.clientAttemptId??a.spawn?.launchId??a.path},identity:{launchId:a.spawn?.launchId??null,clientAttemptId:a.spawn?.clientAttemptId??null,conversationId:a.conversationId??null,path:a.path},explicitTaskIds:c}):f.push({project:a.project,origin:{kind:"conversation",key:a.conversationId??a.path},title:a.title,identity:{conversationId:a.conversationId??null,path:a.path,engine:"claude"===a.engine||"codex"===a.engine?a.engine:null},...b.length?{inherit:b}:{}}),e.paths.add(a.path),a.conversationId&&e.conversationIds.add(a.conversationId)};for(let b of a){if(f.length>=d)break;b.parent||g.has(b.path)||!p(b)||q(e,b)||j(b,[])}for(let b of a){if(f.length>=d)break;if(!b.parent||g.has(b.path)||!p(b)||q(e,b))continue;let a=h.get(b.parent);(!a||q(e,a))&&j(b,a?[{conversationId:a.conversationId??null,path:a.path}]:[])}return f}(a,c,b);if(!d.length)return{tasks:void 0,result:0};let e=function(a,b,c={}){let d=a.slice(),e=0;for(let a of b){let b=n(d,a,c);b.ok&&b.changed&&(d=b.tasks,e+=1)}return{tasks:d,admitted:e}}(c,d);return{tasks:e.admitted?e.tasks:void 0,result:e.admitted}},c)}},49729:(a,b,c)=>{c.d(b,{L0:()=>p,tK:()=>n,Gm:()=>q,nw:()=>r,Bx:()=>s});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(99410);let l=new Set(["png","jpg","gif","webp"]),m={png:"image/png",jpg:"image/jpeg",gif:"image/gif",webp:"image/webp"};function n(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.id&&a.id.length>0&&"string"==typeof a.sha256&&/^[0-9a-f]{64}$/.test(a.sha256)&&"string"==typeof a.ext&&l.has(a.ext)&&"string"==typeof a.mime&&null!==(0,k.PG)(a.mime)&&"number"==typeof a.bytes&&Number.isFinite(a.bytes)&&a.bytes>0&&"string"==typeof a.createdAt}function o(){return(0,j.BQ)("attachments","tasks")}function p(a){return i().join(o(),`${a.sha256}.${a.ext}`)}function q(a,b){if(!/^[0-9a-f]{64}$/.test(a)||!l.has(b))return null;let c=p({sha256:a,ext:b});try{return{data:g().readFileSync(c),mime:m[b]}}catch{return null}}function r(a,b,c,d=e().randomUUID()){let f=(0,k.PG)(b);if(null===f||!l.has(f))return{ok:!1,error:"unsupported image type",status:400};if(0===a.length)return{ok:!1,error:"empty image",status:400};if(a.length>k.YP)return{ok:!1,error:"image is too large",status:413};let h={id:d,sha256:e().createHash("sha256").update(a).digest("hex"),ext:f,mime:b,bytes:a.length,createdAt:c},j=p(h);if(!g().existsSync(j)){g().mkdirSync(i().dirname(j),{recursive:!0});let b=`${j}.${process.pid}.${e().randomUUID()}.tmp`;g().writeFileSync(b,a),g().renameSync(b,j)}return{ok:!0,attachment:h}}function s(a,b,c=o()){try{let d=function(a){let b=new Set;for(let c of a)for(let a of c.attachments??[])b.add(a.sha256);return b}(a);for(let a of g().readdirSync(c)){let e=a.replace(/\.[^.]+$/,"");if(d.has(e))continue;let f=i().join(c,a);try{let a=g().statSync(f);if(b-a.mtimeMs<6048e5)continue;g().unlinkSync(f)}catch{}}}catch{}}},60641:(a,b,c)=>{function d(){return new Date().toISOString()}function e(a){return(a.split(/\r?\n/,1)[0]?.trim()??"")||"Untitled"}function f(a,b){return`Task #${a.slice(0,8)}: ${b}`}c.d(b,{Ec:()=>d,F7:()=>f,bO:()=>e})},64859:(a,b,c)=>{c.d(b,{d4:()=>f,lU:()=>g,lw:()=>h});var d=c(77598);function e(a){let{revision:b,...c}=a;return(0,d.createHash)("sha256").update(JSON.stringify(function a(b){return Array.isArray(b)?b.map(a):b&&"object"==typeof b?Object.fromEntries(Object.entries(b).sort(([a],[b])=>a.localeCompare(b)).map(([b,c])=>[b,a(c)])):b}(c))).digest("hex")}function f(a){let b=a.revision;if(void 0===b)return`task-legacy:${e(a)}`;if("string"!=typeof b||!/^(task-v1:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|task-legacy:[0-9a-f]{64})$/.test(b))throw Error("invalid persisted task revision");return b}function g(a){return new Map(a.map(a=>[a.id,{ref:a,fingerprint:e(a),revision:f(a)}]))}function h(a,b,c){for(let f of a){let a=b.get(f.id),g=!a||a.fingerprint!==e(f)||c&&a.ref!==f;f.revision=g?`task-v1:${(0,d.randomUUID)()}`:a.revision}}},99410:(a,b,c)=>{c.d(b,{PG:()=>f,YP:()=>e});let d={"image/png":"png","image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/webp":"webp"},e=0xa00000;function f(a){return d[a]??null}}};
@@ -1 +1 @@
1
- "use strict";exports.id=6665,exports.ids=[6665],exports.modules={26665:(a,b,c)=>{c.d(b,{applyConversationAction:()=>m});var d=c(70160),e=c(53839),f=c(25052),g=c(16196),h=c(73323);let i=["interrupt","kill","resume","compact","dialog-key"],j={registry:d.agentRegistry,structuredEnabled:()=>(0,g.cM)(),dispatchStructuredControl:h.Z,interruptConversation:f.F5,killConversation:f.yv,resumeConversation:f.X$,compactConversation:f.LJ,answerDialogKey:f.m3};function k(a,b){return{status:b,body:{error:a}}}function l(a){if(a.ok)return{status:200,body:a};let{status:b,...c}=a;return{status:b,body:c}}async function m(a,b=j){if(!i.includes(a.action))return k("unsupported conversation action",400);if(a.conversationId&&!a.conversationId.startsWith("conversation_"))return k("invalid conversation id",400);let c=b.registry(),d=a.conversationId?c.conversation(a.conversationId):null,f=a.transcriptPath?c.conversationForPath(a.transcriptPath):null;if(a.conversationId&&!d)return k("viewer conversation is unknown",404);if(d&&a.transcriptPath&&(!new Set([...d.generations.map(a=>a.path),...d.continuityPaths]).has(a.transcriptPath)||f?.id!==d.id))return k("conversation identity does not own transcript path",409);let g=d??f,h=d?.generations.at(-1)?.path??a.transcriptPath;if("kill"===a.action&&(0,e.TY)(c,g))return{status:409,body:{ok:!1,outcome:"failed",code:e.yD,error:e.xR}};if(b.structuredEnabled()){let c=await b.dispatchStructuredControl({path:h,conversationId:g?.id??a.conversationId,action:a.action,operationId:a.operationId});if(c)return c}if(!h)return k("conversationId or transcriptPath is required",400);if("interrupt"===a.action)return l(await b.interruptConversation(h));if("kill"===a.action){let a=await b.killConversation(h);return a.ok&&!a.target?l({ok:!1,outcome:"failed",error:"kill resolved no registered pane",status:409}):l(a)}return"resume"===a.action?l(await b.resumeConversation(h)):"compact"===a.action?l(await b.compactConversation(h)):l(await b.answerDialogKey(h,a.key??"",a.label,a.question))}}};
1
+ "use strict";exports.id=6665,exports.ids=[6665],exports.modules={26665:(a,b,c)=>{c.d(b,{applyConversationAction:()=>m});var d=c(70160),e=c(53839),f=c(67434),g=c(16196),h=c(73323);let i=["interrupt","kill","resume","compact","dialog-key"],j={registry:d.agentRegistry,structuredEnabled:()=>(0,g.cM)(),dispatchStructuredControl:h.Z,interruptConversation:f.F5,killConversation:f.yv,resumeConversation:f.X$,compactConversation:f.LJ,answerDialogKey:f.m3};function k(a,b){return{status:b,body:{error:a}}}function l(a){if(a.ok)return{status:200,body:a};let{status:b,...c}=a;return{status:b,body:c}}async function m(a,b=j){if(!i.includes(a.action))return k("unsupported conversation action",400);if(a.conversationId&&!a.conversationId.startsWith("conversation_"))return k("invalid conversation id",400);let c=b.registry(),d=a.conversationId?c.conversation(a.conversationId):null,f=a.transcriptPath?c.conversationForPath(a.transcriptPath):null;if(a.conversationId&&!d)return k("viewer conversation is unknown",404);if(d&&a.transcriptPath&&(!new Set([...d.generations.map(a=>a.path),...d.continuityPaths]).has(a.transcriptPath)||f?.id!==d.id))return k("conversation identity does not own transcript path",409);let g=d??f,h=g?.generations.at(-1)?.path??a.transcriptPath;if("kill"===a.action&&(0,e.TY)(c,g))return{status:409,body:{ok:!1,outcome:"failed",code:e.yD,error:e.xR}};if(b.structuredEnabled()){let c=await b.dispatchStructuredControl({path:h,conversationId:g?.id??a.conversationId,action:a.action,operationId:a.operationId});if(c)return c}if(!h)return k("conversationId or transcriptPath is required",400);if("interrupt"===a.action)return l(await b.interruptConversation(h));if("kill"===a.action){let a=await b.killConversation(h);return a.ok&&!a.target?l({ok:!1,outcome:"failed",error:"kill resolved no registered pane",status:409}):l(a)}return"resume"===a.action?l(await b.resumeConversation(h)):"compact"===a.action?l(await b.compactConversation(h)):l(await b.answerDialogKey(h,a.key??"",a.label,a.question))}}};
@@ -0,0 +1,3 @@
1
+ "use strict";exports.id=6809,exports.ids=[6809],exports.modules={23261:(a,b,c)=>{c.d(b,{C7:()=>z,HU:()=>g,fp:()=>t,p9:()=>y,wV:()=>A});let d=String.raw`[*_]{1,3}`,e=String.raw`(?:#{1,6}[ \t]+)?(?:${d}[ \t]*)?(?:VERDICT|Verdict|verdict)[*_]{0,3}[ \t]*:[ \t]*(?:${d}[ \t]*)?`,f=String.raw`(REQUEST_CHANGES|APPROVE|COMMENT)[*_]{0,3}(?![A-Za-z0-9_]|-[A-Za-z0-9])`,g=RegExp(String.raw`^ {0,3}(?:${e})?${f}`,"m"),h=/(?<![\w-])(?:REQUEST_CHANGES|APPROVE|COMMENT)(?![\w-])/,i=/^[\s*_—–:,(-]*(?:not|never|unless|if|once|until|pending|after|when|assuming|provided|subject\s+to|conditional(?:ly)?|would|could|should|cannot|can't|only\s+(?:if|when|once|after))(?![\w'])/i,j=/^(?:[ \t]+(?!(?:at|for)\b)[a-z0-9]|[ \t]*=)/,k=/^\s*(\d+)[.)]\s+(.*)$/,l=/^\s*#{1,6}\s+finding\s+\d+\b.*$/i,m=/^\s*(?:[-*+]\s+)?(?:\*\*|__)?(severity|file|line|title|explanation)(?:\*\*|__)?\s*:\s*(?:\*\*|__)?\s*(.*)$/i,n=/^[-*+]\s+(.*)$/,o=/(?:\[(P[0-3])\]|\b(Critical|High|Medium|Low|Info|P[0-3])\b)/i,p=/((?:\.{1,2}\/|\/|~\/)?[\w@.+-][\w@.+\-/]*\.(?:tsx?|jsx?|mjs|cjs|mts|cts|py|go|rs|md|json|ya?ml|toml|css|scss|html|sql|sh|env|ftl|txt))(?::(\d+))?/i,q=/\[([^\]]+)\]\(([^)\s]+)\)/,r=/(?:api[_-]?key|access[_-]?token|refresh[_-]?token|authorization|bearer|secret|password|passwd|pwd|token)/i,s=/([\w.-]*(?:api[_-]?key|access[_-]?token|refresh[_-]?token|authorization|bearer|secret|password|passwd|pwd|token))\b(\s*[:=]\s*)(["']?)[^\s"',}]+/gi;function t(a){return r.test(a)?a.replace(s,(a,b,c,d)=>`${b}${c}${d}[redacted]`):a}function u(a){let b=t(a);return{raw:b.slice(0,24e3),truncated:b.length>24e3}}function v(a){let b=a.toUpperCase();if("P0"===b||"P1"===b||"P2"===b||"P3"===b)return b;let c=a.toLowerCase();return"critical"===c?"Critical":"high"===c?"High":"medium"===c?"Medium":"low"===c?"Low":"Info"}function w(a){let b=a.match(q);if(b){var c;let a,d=(a=(c=(b[2]??"").replace(/^file:\/\//,"")).match(/^(.*?):(\d+(?:-\d+)?)$/))?{target:a[1]??c,line:a[2]}:{target:c},e=d.line?Number(d.line.split("-",1)[0]):void 0;return{file:d.target||b[1],line:Number.isFinite(e)?e:void 0}}let d=a.match(p);if(!d)return{};let e=d[2]?Number(d[2]):void 0;return{file:d[1],line:Number.isFinite(e)?e:void 0}}function x(a){return a.trim().replace(/^`([^`]*)`$/,"$1")}function y(a){let b=a.split("\n"),c=b.filter(a=>l.test(a)).length;if(c>0)return c;let d=0;for(let a of b){let b=a.match(n);b&&o.test(b[1]??"")&&(d+=1)}return d}function z(a){if(!/REQUEST_CHANGES|APPROVE|COMMENT/.test(a))return null;let b=[];for(let c of function*(a){let b=null;for(let c of a.split(/\r?\n/)){let a=/^\s*(`{3,}|~{3,})(.*)$/.exec(c),d=!b&&a?.[1][0]==="`"&&a[2].includes("`");if(a&&!d){let c=a[1];b?c[0]===b.marker&&c.length>=b.length&&!a[2].trim()&&(b=null):b={marker:c[0],length:c.length};continue}b||/^\s*>/.test(c)||(yield c)}}(a)){let a=function(a){let b=a.match(g);if(!b)return null;let c=b[1],d=a.slice(b[0].length),e=!b[0].trimStart().startsWith(c),f=h.test(d)||"APPROVE"===c&&(/^[ \t*_]*\?/.test(d)||i.test(d))||!e&&j.test(d),k=!e&&"COMMENT"===c&&/^[ \t]*[:—–-]+[ \t]*[^\s*_]/.test(d);return{verdict:c,labelled:e,accepted:!f,finding:k}}(c);a&&b.push(a)}let c=b.filter(a=>a.accepted),d=c.some(a=>a.labelled)?c.filter(a=>a.labelled):c,e=new Set(d.map(a=>a.verdict));if(1!==e.size)return null;let[f]=[...e],k=d.some(a=>a.labelled);return"APPROVE"===f&&b.some(a=>(!a.accepted||"APPROVE"!==a.verdict)&&!(k&&a.finding))?null:f??null}function A(a,b){let c=z(a);if(!c)return null;let d=function(a){let b=[],c=null,d=null,e=()=>{if(c?.severity&&c.title&&c.explanation){let a=c.file?w(c.file):{},d=c.line?Number.parseInt(c.line,10):void 0;b.push({severity:v(c.severity),file:a.file??(c.file?x(c.file):void 0),line:Number.isFinite(d)?d:a.line,title:x(c.title).slice(0,200),body:u(c.explanation).raw})}c=null,d=null};for(let b of a.split("\n")){if(l.test(b)){e(),c={};continue}let a=b.match(m);if(a){let b=a[1].toLowerCase();"severity"===b&&c?.severity&&e(),(c??={})[b]=function(a){let b=a.trim(),c=b.match(/^\*\*([\s\S]*)\*\*$/);return c?c[1].trim():b.replace(/\*\*$/,"").trim()}(a[2]??""),d=b;continue}let f=b.trim();c&&"explanation"===d&&f&&(c.explanation=`${c.explanation??""}
2
+ ${f}`.trim())}return e(),b}(a),e=d.length>0,f=[],h=null,i=()=>{let a,b,c,e=h?.trim();e&&d.push((a=v(e.match(o)?.[1]??e.match(o)?.[2]??"Info"),b=w(e),c=function(a){let b=a,c=b.match(o);if(c&&void 0!==c.index){let a=b.slice(c.index+c[0].length).replace(/^[\s.:–—-]+/,"");a&&(b=a)}return b.replace(q,"$1").replace(/`([^`]*)`/g,"$1").replace(/\s+/g," ").trim().slice(0,200)}(e)||e.slice(0,200)||"Finding",{severity:a,file:b.file,line:b.line,title:c,body:u(e).raw})),h=null};for(let b of a.split("\n")){let a=b.trimEnd(),c=a.match(k);if(!e&&c){i(),h=c[2]??"";continue}let j=a.trim();if(null!==h){j?h=`${h}
3
+ ${j}`:i();continue}!(!j||g.test(a)||l.test(a)||m.test(a)||/^(findings?|summary|open questions?|tests?|residual risk)\s*:?\s*$/i.test(j))&&0===d.length&&f.length<3&&j.length<=240&&f.push(j)}e||i();let j=d.filter(a=>o.test(a.body)).length;return c||/^findings?\s*:?$/im.test(a)||j>=2||j>=1&&/\b(review|request_changes|approve|comment)\b/i.test(a)?{kind:"review",ts:b,verdict:c,findings:d,summary:f,raw:u(a).raw}:null}},56809:(a,b,c)=>{c.d(b,{X:()=>m,j:()=>i});var d=c(73024),e=c.n(d),f=c(23261),g=c(12962);let h=RegExp(String.raw`\b(?:`+[String.raw`sk-[A-Za-z0-9_-]{12,}`,String.raw`sk-ant-[A-Za-z0-9_-]{12,}`,String.raw`gh[pousr]_[A-Za-z0-9_]{20,}`,String.raw`github_pat_[A-Za-z0-9_]{20,}`,String.raw`npm_[A-Za-z0-9]{20,}`,String.raw`xox[baprs]-[A-Za-z0-9-]{10,}`,String.raw`AKIA[0-9A-Z]{16}`,String.raw`ASIA[0-9A-Z]{16}`,String.raw`AIza[0-9A-Za-z_-]{35}`].join("|")+String.raw`)\b`,"g");function i(a){return(0,f.fp)(a).replace(/-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----/g,"[redacted]").replace(/(^|\n)(\s*(?:proxy-)?authorization\s*:\s*)[^\r\n]*/gi,"$1$2[redacted]").replace(/(^|\n)(\s*(?:set-)?cookie\s*:\s*)[^\r\n]*/gi,"$1$2[redacted]").replace(h,"[redacted]").replace(/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/g,"[redacted]").replace(/(?<=Bearer\s)[A-Za-z0-9._-]{12,}/gi,"[redacted]")}function j(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function k(a){return"string"==typeof a?a:""}function l(a){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>!!a&&"object"==typeof a&&!Array.isArray(a)).filter(a=>"text"===a.type).map(a=>k(a.text)).join("\n"):""}function m(a,b,c,d){let f=function(a){let b,c,d=null;try{d=e().openSync(a.path,e().constants.O_RDONLY|e().constants.O_NOFOLLOW);let f=e().fstatSync(d);if(!f.isFile())throw Error("transcript is not a regular file");let g=e().lstatSync(a.path);if(!g.isFile()||g.dev!==f.dev||g.ino!==f.ino)throw Error("transcript identity changed");let h=Math.max(0,f.size-1048576);c=f.size-h;let i=Buffer.alloc(c);e().readSync(d,i,0,i.length,h),b=i.toString("utf8"),h>0&&(b=b.slice(b.indexOf("\n")+1))}catch{return{messages:[],scannedBytes:0,error:!0}}finally{null!==d&&e().closeSync(d)}let f=[];for(let c of b.split("\n"))try{let b=j(JSON.parse(c)),d=k(b.timestamp)||k(b.ts)||null;if("claude"===a.engine){let a="user"===b.type?"user":"assistant"===b.type?"assistant":null,c=l(j(b.message).content);a&&c.trim()&&f.push({role:a,at:d,text:c})}else if("openclaw"===a.engine){let a=(0,g.j5)(b)??{},c="user"===a.role?"user":"assistant"===a.role?"assistant":null,e=l(a.content);c&&e.trim()&&f.push({role:c,at:d,text:e})}else{let a=j(b.payload),c=k(a.type),e="user_message"===c?"user":"agent_message"===c?"assistant":null,g=k(a.message);e&&g.trim()&&f.push({role:e,at:d,text:g})}}catch{}return{messages:f,scannedBytes:c,error:!1}}(a),h=f.messages.slice(-b),m=0,n=0,o=!1,p=[];for(let a of h){let b=i(a.text).replace(/\s+/g," ").trim(),e=Math.max(0,c-m),f=Math.max(0,d-n);if(e<=0||f<=0){o=!0;break}let g=function(a,b,c){let d=0,e=0,f="";for(let g of a){let a=Buffer.byteLength(g,"utf8");if(e>=b||d+a>c)return{value:f,truncated:!0};f+=g,d+=a,e+=1}return{value:f,truncated:!1}}(b,e,f);o||=g.truncated,m+=[...g.value].length,n+=Buffer.byteLength(g.value,"utf8"),g.value&&p.push({role:a.role,at:a.at,text:g.value})}return{messages:p,truncated:o||f.error,scannedBytes:f.scannedBytes,...f.error?{error:"unavailable"}:{}}}}};