agent-log-viewer 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) hide show
  1. package/dist/mcp-server.mjs +2225 -1385
  2. package/dist/runtime-host.mjs +1690 -972
  3. package/dist/standalone/.next/BUILD_ID +1 -1
  4. package/dist/standalone/.next/app-path-routes-manifest.json +26 -24
  5. package/dist/standalone/.next/build-manifest.json +2 -2
  6. package/dist/standalone/.next/prerender-manifest.json +4 -4
  7. package/dist/standalone/.next/required-server-files.json +1 -0
  8. package/dist/standalone/.next/routes-manifest.json +12 -0
  9. package/dist/standalone/.next/server/account-migration-controller-worker.js +1 -1
  10. package/dist/standalone/.next/server/app/_global-error/page.js +2 -2
  11. package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  12. package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  13. package/dist/standalone/.next/server/app/_global-error.html +1 -1
  14. package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
  15. package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  16. package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  17. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/dist/standalone/.next/server/app/_not-found/page.js +1 -1
  19. package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  22. package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
  23. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  24. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  25. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/dist/standalone/.next/server/app/api/access/route.js +1 -1
  27. package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
  28. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
  29. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
  30. package/dist/standalone/.next/server/app/api/account-project-bindings/route.js +1 -1
  31. package/dist/standalone/.next/server/app/api/account-project-bindings/route.js.nft.json +1 -1
  32. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +1 -1
  33. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -1
  34. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js +1 -1
  35. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -1
  36. package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js +1 -1
  37. package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js.nft.json +1 -1
  38. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js +1 -1
  39. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -1
  40. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js +1 -1
  41. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -1
  42. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js +1 -1
  43. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -1
  44. package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -1
  45. package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -1
  46. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js +1 -1
  47. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -1
  48. package/dist/standalone/.next/server/app/api/accounts/cli/route.js +1 -0
  49. package/dist/standalone/.next/server/app/api/accounts/cli/route.js.nft.json +1 -0
  50. package/dist/standalone/.next/server/app/api/accounts/cli/route_client-reference-manifest.js +1 -0
  51. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js +1 -1
  52. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -1
  53. package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js +1 -1
  54. package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js.nft.json +1 -1
  55. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js +1 -1
  56. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
  57. package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js +2 -2
  58. package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js.nft.json +1 -1
  59. package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
  60. package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
  61. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +1 -1
  62. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -1
  63. package/dist/standalone/.next/server/app/api/accounts/route.js +1 -1
  64. package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -1
  65. package/dist/standalone/.next/server/app/api/agent/route.js +1 -1
  66. package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
  67. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -1
  68. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -1
  69. package/dist/standalone/.next/server/app/api/answer/route.js +1 -1
  70. package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
  71. package/dist/standalone/.next/server/app/api/artifact/route.js +1 -1
  72. package/dist/standalone/.next/server/app/api/artifact/route.js.nft.json +1 -1
  73. package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -1
  74. package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -1
  75. package/dist/standalone/.next/server/app/api/attention/[id]/route.js +1 -1
  76. package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -1
  77. package/dist/standalone/.next/server/app/api/attention/route.js +1 -1
  78. package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -1
  79. package/dist/standalone/.next/server/app/api/board/route.js +1 -1
  80. package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -1
  81. package/dist/standalone/.next/server/app/api/bridge/route.js +1 -1
  82. package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
  83. package/dist/standalone/.next/server/app/api/conversation-host/route.js +1 -1
  84. package/dist/standalone/.next/server/app/api/conversation-host/route.js.nft.json +1 -1
  85. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js +1 -1
  86. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js.nft.json +1 -1
  87. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
  88. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
  89. package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
  90. package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
  91. package/dist/standalone/.next/server/app/api/files/route.js +6 -3
  92. package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  93. package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
  94. package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
  95. package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
  96. package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
  97. package/dist/standalone/.next/server/app/api/image/route.js +1 -1
  98. package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
  99. package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
  100. package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  101. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
  102. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
  103. package/dist/standalone/.next/server/app/api/limits/history/route.js +1 -1
  104. package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -1
  105. package/dist/standalone/.next/server/app/api/limits/route.js +1 -1
  106. package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
  107. package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -1
  108. package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -1
  109. package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -1
  110. package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -1
  111. package/dist/standalone/.next/server/app/api/log/provenance/route.js +14 -12
  112. package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -1
  113. package/dist/standalone/.next/server/app/api/log/route.js +1 -1
  114. package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
  115. package/dist/standalone/.next/server/app/api/log/suggestions/route.js +2 -2
  116. package/dist/standalone/.next/server/app/api/log/suggestions/route.js.nft.json +1 -1
  117. package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
  118. package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  119. package/dist/standalone/.next/server/app/api/logs/stream/route.js +2 -2
  120. package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  121. package/dist/standalone/.next/server/app/api/monitor/runs/route.js +1 -1
  122. package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
  123. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js +6 -5
  124. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js.nft.json +1 -1
  125. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js +2 -2
  126. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js.nft.json +1 -1
  127. package/dist/standalone/.next/server/app/api/onboarding/route.js +1 -0
  128. package/dist/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -0
  129. package/dist/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -0
  130. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
  131. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
  132. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
  133. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
  134. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +1 -1
  135. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -1
  136. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -1
  137. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -1
  138. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js +1 -1
  139. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -1
  140. package/dist/standalone/.next/server/app/api/pipelines/route.js +1 -1
  141. package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
  142. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +1 -2
  143. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
  144. package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
  145. package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
  146. package/dist/standalone/.next/server/app/api/projects/create/route.js +2 -2
  147. package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -1
  148. package/dist/standalone/.next/server/app/api/projects/crown/route.js +1 -1
  149. package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -1
  150. package/dist/standalone/.next/server/app/api/projects/directories/route.js +1 -1
  151. package/dist/standalone/.next/server/app/api/projects/directories/route.js.nft.json +1 -1
  152. package/dist/standalone/.next/server/app/api/push/route.js +2 -2
  153. package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
  154. package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
  155. package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
  156. package/dist/standalone/.next/server/app/api/roles/route.js +3 -3
  157. package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
  158. package/dist/standalone/.next/server/app/api/runtime/answer/route.js +1 -1
  159. package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -1
  160. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js +1 -1
  161. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -1
  162. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js +1 -1
  163. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -1
  164. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js +1 -1
  165. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -1
  166. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js +1 -1
  167. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js.nft.json +1 -1
  168. package/dist/standalone/.next/server/app/api/runtime/inject/route.js +1 -1
  169. package/dist/standalone/.next/server/app/api/runtime/inject/route.js.nft.json +1 -1
  170. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +1 -1
  171. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -1
  172. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +1 -1
  173. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
  174. package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -1
  175. package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
  176. package/dist/standalone/.next/server/app/api/runtime/queue/route.js +1 -1
  177. package/dist/standalone/.next/server/app/api/runtime/queue/route.js.nft.json +1 -1
  178. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +1 -1
  179. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
  180. package/dist/standalone/.next/server/app/api/runtime/send/route.js +1 -1
  181. package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -1
  182. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js +1 -1
  183. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -1
  184. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +1 -1
  185. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -1
  186. package/dist/standalone/.next/server/app/api/runtime/steer/route.js +1 -1
  187. package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -1
  188. package/dist/standalone/.next/server/app/api/runtime/stream/route.js +2 -2
  189. package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -1
  190. package/dist/standalone/.next/server/app/api/search/transcripts/route.js +1 -1
  191. package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -1
  192. package/dist/standalone/.next/server/app/api/session/route.js +1 -1
  193. package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  194. package/dist/standalone/.next/server/app/api/session/supersedence/route.js +1 -1
  195. package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -1
  196. package/dist/standalone/.next/server/app/api/session/title/route.js +1 -1
  197. package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -1
  198. package/dist/standalone/.next/server/app/api/spawn/policy/route.js +2 -2
  199. package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -1
  200. package/dist/standalone/.next/server/app/api/spawn/route.js +1 -1
  201. package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
  202. package/dist/standalone/.next/server/app/api/spawn/validate/route.js +1 -1
  203. package/dist/standalone/.next/server/app/api/spawn/validate/route.js.nft.json +1 -1
  204. package/dist/standalone/.next/server/app/api/staging/route.js +2 -2
  205. package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
  206. package/dist/standalone/.next/server/app/api/task-attachments/route.js +2 -2
  207. package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
  208. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
  209. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
  210. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  211. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  212. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +1 -1
  213. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
  214. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +1 -1
  215. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
  216. package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
  217. package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
  218. package/dist/standalone/.next/server/app/api/tasks/route.js +1 -1
  219. package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  220. package/dist/standalone/.next/server/app/api/telegram/reports/route.js +1 -1
  221. package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -1
  222. package/dist/standalone/.next/server/app/api/telegram/route.js +1 -1
  223. package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -1
  224. package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
  225. package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
  226. package/dist/standalone/.next/server/app/api/tmux/route.js +1 -1
  227. package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
  228. package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
  229. package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
  230. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js +2 -2
  231. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
  232. package/dist/standalone/.next/server/app/api/transcribe/route.js +2 -2
  233. package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
  234. package/dist/standalone/.next/server/app/api/transcribe/token/route.js +2 -2
  235. package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
  236. package/dist/standalone/.next/server/app/api/tts/backend/route.js +1 -1
  237. package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -1
  238. package/dist/standalone/.next/server/app/api/tts/route.js +2 -2
  239. package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -1
  240. package/dist/standalone/.next/server/app/api/view/presence/route.js +2 -1
  241. package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -1
  242. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
  243. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
  244. package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
  245. package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  246. package/dist/standalone/.next/server/app/favicon.ico/route.js +1 -1
  247. package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  248. package/dist/standalone/.next/server/app/index.html +1 -1
  249. package/dist/standalone/.next/server/app/index.rsc +3 -3
  250. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  251. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  252. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  253. package/dist/standalone/.next/server/app/page.js +20 -20
  254. package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
  255. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  256. package/dist/standalone/.next/server/app-paths-manifest.json +26 -24
  257. package/dist/standalone/.next/server/chunks/107.js +1 -1
  258. package/dist/standalone/.next/server/chunks/1106.js +5 -0
  259. package/dist/standalone/.next/server/chunks/112.js +1 -0
  260. package/dist/standalone/.next/server/chunks/1406.js +35 -168
  261. package/dist/standalone/.next/server/chunks/1585.js +3 -3
  262. package/dist/standalone/.next/server/chunks/160.js +18 -18
  263. package/dist/standalone/.next/server/chunks/1617.js +1 -1
  264. package/dist/standalone/.next/server/chunks/1849.js +1 -1
  265. package/dist/standalone/.next/server/chunks/1952.js +1 -1
  266. package/dist/standalone/.next/server/chunks/2499.js +1 -0
  267. package/dist/standalone/.next/server/chunks/2555.js +1 -1
  268. package/dist/standalone/.next/server/chunks/2589.js +127 -0
  269. package/dist/standalone/.next/server/chunks/261.js +1 -0
  270. package/dist/standalone/.next/server/chunks/2744.js +1 -1
  271. package/dist/standalone/.next/server/chunks/286.js +2 -2
  272. package/dist/standalone/.next/server/chunks/2914.js +20 -21
  273. package/dist/standalone/.next/server/chunks/2916.js +1 -0
  274. package/dist/standalone/.next/server/chunks/3086.js +1 -1
  275. package/dist/standalone/.next/server/chunks/3407.js +1 -1
  276. package/dist/standalone/.next/server/chunks/3509.js +1 -0
  277. package/dist/standalone/.next/server/chunks/3570.js +1 -1
  278. package/dist/standalone/.next/server/chunks/3696.js +5 -0
  279. package/dist/standalone/.next/server/chunks/3743.js +9 -9
  280. package/dist/standalone/.next/server/chunks/3784.js +5 -0
  281. package/dist/standalone/.next/server/chunks/3830.js +1 -1
  282. package/dist/standalone/.next/server/chunks/3957.js +1 -0
  283. package/dist/standalone/.next/server/chunks/4037.js +1 -1
  284. package/dist/standalone/.next/server/chunks/4651.js +1 -1
  285. package/dist/standalone/.next/server/chunks/4972.js +38 -16
  286. package/dist/standalone/.next/server/chunks/53.js +1 -0
  287. package/dist/standalone/.next/server/chunks/5408.js +1 -1
  288. package/dist/standalone/.next/server/chunks/5465.js +156 -0
  289. package/dist/standalone/.next/server/chunks/5545.js +1 -1
  290. package/dist/standalone/.next/server/chunks/568.js +1 -1
  291. package/dist/standalone/.next/server/chunks/6023.js +1 -1
  292. package/dist/standalone/.next/server/chunks/6211.js +1 -0
  293. package/dist/standalone/.next/server/chunks/6289.js +1 -2
  294. package/dist/standalone/.next/server/chunks/6418.js +1 -0
  295. package/dist/standalone/.next/server/chunks/6453.js +1 -1
  296. package/dist/standalone/.next/server/chunks/6522.js +1 -1
  297. package/dist/standalone/.next/server/chunks/6796.js +1 -1
  298. package/dist/standalone/.next/server/chunks/6826.js +3 -3
  299. package/dist/standalone/.next/server/chunks/6942.js +3 -3
  300. package/dist/standalone/.next/server/chunks/6978.js +1 -1
  301. package/dist/standalone/.next/server/chunks/7008.js +21 -19
  302. package/dist/standalone/.next/server/chunks/7192.js +1 -1
  303. package/dist/standalone/.next/server/chunks/7238.js +2 -2
  304. package/dist/standalone/.next/server/chunks/7294.js +1 -0
  305. package/dist/standalone/.next/server/chunks/7722.js +1 -1
  306. package/dist/standalone/.next/server/chunks/781.js +17 -17
  307. package/dist/standalone/.next/server/chunks/8027.js +1 -1
  308. package/dist/standalone/.next/server/chunks/8330.js +1 -0
  309. package/dist/standalone/.next/server/chunks/8444.js +1 -1
  310. package/dist/standalone/.next/server/chunks/8512.js +1 -1
  311. package/dist/standalone/.next/server/chunks/8513.js +2 -2
  312. package/dist/standalone/.next/server/chunks/8617.js +1 -1
  313. package/dist/standalone/.next/server/chunks/8817.js +2 -2
  314. package/dist/standalone/.next/server/chunks/8966.js +1 -1
  315. package/dist/standalone/.next/server/chunks/8985.js +1 -1
  316. package/dist/standalone/.next/server/chunks/8996.js +1 -1
  317. package/dist/standalone/.next/server/chunks/9006.js +1 -0
  318. package/dist/standalone/.next/server/chunks/9060.js +4 -0
  319. package/dist/standalone/.next/server/chunks/9296.js +20 -21
  320. package/dist/standalone/.next/server/chunks/9298.js +1 -2
  321. package/dist/standalone/.next/server/chunks/9307.js +1 -1
  322. package/dist/standalone/.next/server/chunks/9360.js +12 -12
  323. package/dist/standalone/.next/server/chunks/9517.js +1 -1
  324. package/dist/standalone/.next/server/chunks/9611.js +1 -0
  325. package/dist/standalone/.next/server/chunks/9822.js +1 -1
  326. package/dist/standalone/.next/server/chunks/9839.js +5 -0
  327. package/dist/standalone/.next/server/chunks/9867.js +1 -0
  328. package/dist/standalone/.next/server/chunks/9940.js +37 -15
  329. package/dist/standalone/.next/server/chunks/9998.js +1 -1
  330. package/dist/standalone/.next/server/file-scanner-worker.js +1 -1
  331. package/dist/standalone/.next/server/files-response-worker.js +2 -2
  332. package/dist/standalone/.next/server/functions-config-manifest.json +2 -0
  333. package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
  334. package/dist/standalone/.next/server/middleware.js +3 -3
  335. package/dist/standalone/.next/server/pages/404.html +1 -1
  336. package/dist/standalone/.next/server/pages/500.html +1 -1
  337. package/dist/standalone/.next/server/resource-collector-worker.js +1 -1
  338. package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
  339. package/dist/standalone/.next/server/state-backup-worker.js +3 -0
  340. package/dist/standalone/.next/server/wakatime-sync-worker.js +1 -1
  341. package/dist/standalone/.next/static/chunks/9591-0fd6a5a4172de16d.js +1 -0
  342. package/dist/standalone/.next/static/chunks/app/_global-error/page-151390fbd8c93c25.js +1 -0
  343. package/dist/standalone/.next/static/chunks/app/api/access/route-151390fbd8c93c25.js +1 -0
  344. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-151390fbd8c93c25.js +1 -0
  345. package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-151390fbd8c93c25.js +1 -0
  346. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-151390fbd8c93c25.js +1 -0
  347. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-151390fbd8c93c25.js +1 -0
  348. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-151390fbd8c93c25.js +1 -0
  349. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-151390fbd8c93c25.js +1 -0
  350. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-151390fbd8c93c25.js +1 -0
  351. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-151390fbd8c93c25.js +1 -0
  352. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-151390fbd8c93c25.js +1 -0
  353. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-151390fbd8c93c25.js +1 -0
  354. package/dist/standalone/.next/static/chunks/app/api/accounts/cli/route-151390fbd8c93c25.js +1 -0
  355. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-151390fbd8c93c25.js +1 -0
  356. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-151390fbd8c93c25.js +1 -0
  357. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-151390fbd8c93c25.js +1 -0
  358. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-151390fbd8c93c25.js +1 -0
  359. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-151390fbd8c93c25.js +1 -0
  360. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-151390fbd8c93c25.js +1 -0
  361. package/dist/standalone/.next/static/chunks/app/api/accounts/route-151390fbd8c93c25.js +1 -0
  362. package/dist/standalone/.next/static/chunks/app/api/agent/route-151390fbd8c93c25.js +1 -0
  363. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-151390fbd8c93c25.js +1 -0
  364. package/dist/standalone/.next/static/chunks/app/api/answer/route-151390fbd8c93c25.js +1 -0
  365. package/dist/standalone/.next/static/chunks/app/api/artifact/route-151390fbd8c93c25.js +1 -0
  366. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-151390fbd8c93c25.js +1 -0
  367. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-151390fbd8c93c25.js +1 -0
  368. package/dist/standalone/.next/static/chunks/app/api/attention/route-151390fbd8c93c25.js +1 -0
  369. package/dist/standalone/.next/static/chunks/app/api/board/route-151390fbd8c93c25.js +1 -0
  370. package/dist/standalone/.next/static/chunks/app/api/bridge/route-151390fbd8c93c25.js +1 -0
  371. package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-151390fbd8c93c25.js +1 -0
  372. package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-151390fbd8c93c25.js +1 -0
  373. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-151390fbd8c93c25.js +1 -0
  374. package/dist/standalone/.next/static/chunks/app/api/conversations/route-151390fbd8c93c25.js +1 -0
  375. package/dist/standalone/.next/static/chunks/app/api/files/route-151390fbd8c93c25.js +1 -0
  376. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-151390fbd8c93c25.js +1 -0
  377. package/dist/standalone/.next/static/chunks/app/api/flows/route-151390fbd8c93c25.js +1 -0
  378. package/dist/standalone/.next/static/chunks/app/api/image/route-151390fbd8c93c25.js +1 -0
  379. package/dist/standalone/.next/static/chunks/app/api/inbox/route-151390fbd8c93c25.js +1 -0
  380. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-151390fbd8c93c25.js +1 -0
  381. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-151390fbd8c93c25.js +1 -0
  382. package/dist/standalone/.next/static/chunks/app/api/limits/route-151390fbd8c93c25.js +1 -0
  383. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-151390fbd8c93c25.js +1 -0
  384. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-151390fbd8c93c25.js +1 -0
  385. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-151390fbd8c93c25.js +1 -0
  386. package/dist/standalone/.next/static/chunks/app/api/log/route-151390fbd8c93c25.js +1 -0
  387. package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-151390fbd8c93c25.js +1 -0
  388. package/dist/standalone/.next/static/chunks/app/api/logs/route-151390fbd8c93c25.js +1 -0
  389. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-151390fbd8c93c25.js +1 -0
  390. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-151390fbd8c93c25.js +1 -0
  391. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/route-151390fbd8c93c25.js +1 -0
  392. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/settings/route-151390fbd8c93c25.js +1 -0
  393. package/dist/standalone/.next/static/chunks/app/api/onboarding/route-151390fbd8c93c25.js +1 -0
  394. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-151390fbd8c93c25.js +1 -0
  395. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-151390fbd8c93c25.js +1 -0
  396. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-151390fbd8c93c25.js +1 -0
  397. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-151390fbd8c93c25.js +1 -0
  398. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-151390fbd8c93c25.js +1 -0
  399. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-151390fbd8c93c25.js +1 -0
  400. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-151390fbd8c93c25.js +1 -0
  401. package/dist/standalone/.next/static/chunks/app/api/proc/route-151390fbd8c93c25.js +1 -0
  402. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-151390fbd8c93c25.js +1 -0
  403. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-151390fbd8c93c25.js +1 -0
  404. package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-151390fbd8c93c25.js +1 -0
  405. package/dist/standalone/.next/static/chunks/app/api/push/route-151390fbd8c93c25.js +1 -0
  406. package/dist/standalone/.next/static/chunks/app/api/resources/route-151390fbd8c93c25.js +1 -0
  407. package/dist/standalone/.next/static/chunks/app/api/roles/route-151390fbd8c93c25.js +1 -0
  408. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-151390fbd8c93c25.js +1 -0
  409. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-151390fbd8c93c25.js +1 -0
  410. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-151390fbd8c93c25.js +1 -0
  411. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-151390fbd8c93c25.js +1 -0
  412. package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-151390fbd8c93c25.js +1 -0
  413. package/dist/standalone/.next/static/chunks/app/api/runtime/inject/route-151390fbd8c93c25.js +1 -0
  414. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-151390fbd8c93c25.js +1 -0
  415. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-151390fbd8c93c25.js +1 -0
  416. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-151390fbd8c93c25.js +1 -0
  417. package/dist/standalone/.next/static/chunks/app/api/runtime/queue/route-151390fbd8c93c25.js +1 -0
  418. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-151390fbd8c93c25.js +1 -0
  419. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-151390fbd8c93c25.js +1 -0
  420. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-151390fbd8c93c25.js +1 -0
  421. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-151390fbd8c93c25.js +1 -0
  422. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-151390fbd8c93c25.js +1 -0
  423. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-151390fbd8c93c25.js +1 -0
  424. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-151390fbd8c93c25.js +1 -0
  425. package/dist/standalone/.next/static/chunks/app/api/session/route-151390fbd8c93c25.js +1 -0
  426. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-151390fbd8c93c25.js +1 -0
  427. package/dist/standalone/.next/static/chunks/app/api/session/title/route-151390fbd8c93c25.js +1 -0
  428. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-151390fbd8c93c25.js +1 -0
  429. package/dist/standalone/.next/static/chunks/app/api/spawn/route-151390fbd8c93c25.js +1 -0
  430. package/dist/standalone/.next/static/chunks/app/api/spawn/validate/route-151390fbd8c93c25.js +1 -0
  431. package/dist/standalone/.next/static/chunks/app/api/staging/route-151390fbd8c93c25.js +1 -0
  432. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-151390fbd8c93c25.js +1 -0
  433. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-151390fbd8c93c25.js +1 -0
  434. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-151390fbd8c93c25.js +1 -0
  435. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-151390fbd8c93c25.js +1 -0
  436. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-151390fbd8c93c25.js +1 -0
  437. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-151390fbd8c93c25.js +1 -0
  438. package/dist/standalone/.next/static/chunks/app/api/tasks/route-151390fbd8c93c25.js +1 -0
  439. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-151390fbd8c93c25.js +1 -0
  440. package/dist/standalone/.next/static/chunks/app/api/telegram/route-151390fbd8c93c25.js +1 -0
  441. package/dist/standalone/.next/static/chunks/app/api/timeline/route-151390fbd8c93c25.js +1 -0
  442. package/dist/standalone/.next/static/chunks/app/api/tmux/route-151390fbd8c93c25.js +1 -0
  443. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-151390fbd8c93c25.js +1 -0
  444. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-151390fbd8c93c25.js +1 -0
  445. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-151390fbd8c93c25.js +1 -0
  446. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-151390fbd8c93c25.js +1 -0
  447. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-151390fbd8c93c25.js +1 -0
  448. package/dist/standalone/.next/static/chunks/app/api/tts/route-151390fbd8c93c25.js +1 -0
  449. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-151390fbd8c93c25.js +1 -0
  450. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-151390fbd8c93c25.js +1 -0
  451. package/dist/standalone/.next/static/chunks/app/api/workflows/route-151390fbd8c93c25.js +1 -0
  452. package/dist/standalone/.next/static/chunks/app/page-a2e19d755e17b569.js +125 -0
  453. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-151390fbd8c93c25.js +1 -0
  454. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-151390fbd8c93c25.js +1 -0
  455. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-151390fbd8c93c25.js +1 -0
  456. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-151390fbd8c93c25.js +1 -0
  457. package/dist/standalone/.next/static/css/9b32c3f7f468cbcc.css +1 -0
  458. package/dist/standalone/.next/static/fQ2a5S10vvpyAqE0L_wUj/_buildManifest.js +1 -0
  459. package/dist/standalone/package.json +1 -1
  460. package/dist/standalone/server.bun.js +1 -1
  461. package/dist/standalone/src/lib/viewerInstrumentation.ts +44 -1
  462. package/package.json +1 -1
  463. package/dist/standalone/.next/server/chunks/1888.js +0 -1
  464. package/dist/standalone/.next/server/chunks/4127.js +0 -1
  465. package/dist/standalone/.next/server/chunks/606.js +0 -126
  466. package/dist/standalone/.next/static/836HTp-5V8cZC5YWFVOCk/_buildManifest.js +0 -1
  467. package/dist/standalone/.next/static/chunks/7333-cf17cea2a91e7b4b.js +0 -1
  468. package/dist/standalone/.next/static/chunks/app/_global-error/page-60a25d1c4cbf0128.js +0 -1
  469. package/dist/standalone/.next/static/chunks/app/api/access/route-60a25d1c4cbf0128.js +0 -1
  470. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-60a25d1c4cbf0128.js +0 -1
  471. package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-60a25d1c4cbf0128.js +0 -1
  472. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-60a25d1c4cbf0128.js +0 -1
  473. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-60a25d1c4cbf0128.js +0 -1
  474. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-60a25d1c4cbf0128.js +0 -1
  475. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-60a25d1c4cbf0128.js +0 -1
  476. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-60a25d1c4cbf0128.js +0 -1
  477. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-60a25d1c4cbf0128.js +0 -1
  478. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-60a25d1c4cbf0128.js +0 -1
  479. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-60a25d1c4cbf0128.js +0 -1
  480. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-60a25d1c4cbf0128.js +0 -1
  481. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-60a25d1c4cbf0128.js +0 -1
  482. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-60a25d1c4cbf0128.js +0 -1
  483. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-60a25d1c4cbf0128.js +0 -1
  484. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-60a25d1c4cbf0128.js +0 -1
  485. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-60a25d1c4cbf0128.js +0 -1
  486. package/dist/standalone/.next/static/chunks/app/api/accounts/route-60a25d1c4cbf0128.js +0 -1
  487. package/dist/standalone/.next/static/chunks/app/api/agent/route-60a25d1c4cbf0128.js +0 -1
  488. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-60a25d1c4cbf0128.js +0 -1
  489. package/dist/standalone/.next/static/chunks/app/api/answer/route-60a25d1c4cbf0128.js +0 -1
  490. package/dist/standalone/.next/static/chunks/app/api/artifact/route-60a25d1c4cbf0128.js +0 -1
  491. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-60a25d1c4cbf0128.js +0 -1
  492. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-60a25d1c4cbf0128.js +0 -1
  493. package/dist/standalone/.next/static/chunks/app/api/attention/route-60a25d1c4cbf0128.js +0 -1
  494. package/dist/standalone/.next/static/chunks/app/api/board/route-60a25d1c4cbf0128.js +0 -1
  495. package/dist/standalone/.next/static/chunks/app/api/bridge/route-60a25d1c4cbf0128.js +0 -1
  496. package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-60a25d1c4cbf0128.js +0 -1
  497. package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-60a25d1c4cbf0128.js +0 -1
  498. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-60a25d1c4cbf0128.js +0 -1
  499. package/dist/standalone/.next/static/chunks/app/api/conversations/route-60a25d1c4cbf0128.js +0 -1
  500. package/dist/standalone/.next/static/chunks/app/api/files/route-60a25d1c4cbf0128.js +0 -1
  501. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-60a25d1c4cbf0128.js +0 -1
  502. package/dist/standalone/.next/static/chunks/app/api/flows/route-60a25d1c4cbf0128.js +0 -1
  503. package/dist/standalone/.next/static/chunks/app/api/image/route-60a25d1c4cbf0128.js +0 -1
  504. package/dist/standalone/.next/static/chunks/app/api/inbox/route-60a25d1c4cbf0128.js +0 -1
  505. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-60a25d1c4cbf0128.js +0 -1
  506. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-60a25d1c4cbf0128.js +0 -1
  507. package/dist/standalone/.next/static/chunks/app/api/limits/route-60a25d1c4cbf0128.js +0 -1
  508. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-60a25d1c4cbf0128.js +0 -1
  509. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-60a25d1c4cbf0128.js +0 -1
  510. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-60a25d1c4cbf0128.js +0 -1
  511. package/dist/standalone/.next/static/chunks/app/api/log/route-60a25d1c4cbf0128.js +0 -1
  512. package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-60a25d1c4cbf0128.js +0 -1
  513. package/dist/standalone/.next/static/chunks/app/api/logs/route-60a25d1c4cbf0128.js +0 -1
  514. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-60a25d1c4cbf0128.js +0 -1
  515. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-60a25d1c4cbf0128.js +0 -1
  516. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/route-60a25d1c4cbf0128.js +0 -1
  517. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/settings/route-60a25d1c4cbf0128.js +0 -1
  518. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-60a25d1c4cbf0128.js +0 -1
  519. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-60a25d1c4cbf0128.js +0 -1
  520. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-60a25d1c4cbf0128.js +0 -1
  521. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-60a25d1c4cbf0128.js +0 -1
  522. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-60a25d1c4cbf0128.js +0 -1
  523. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-60a25d1c4cbf0128.js +0 -1
  524. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-60a25d1c4cbf0128.js +0 -1
  525. package/dist/standalone/.next/static/chunks/app/api/proc/route-60a25d1c4cbf0128.js +0 -1
  526. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-60a25d1c4cbf0128.js +0 -1
  527. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-60a25d1c4cbf0128.js +0 -1
  528. package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-60a25d1c4cbf0128.js +0 -1
  529. package/dist/standalone/.next/static/chunks/app/api/push/route-60a25d1c4cbf0128.js +0 -1
  530. package/dist/standalone/.next/static/chunks/app/api/resources/route-60a25d1c4cbf0128.js +0 -1
  531. package/dist/standalone/.next/static/chunks/app/api/roles/route-60a25d1c4cbf0128.js +0 -1
  532. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-60a25d1c4cbf0128.js +0 -1
  533. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-60a25d1c4cbf0128.js +0 -1
  534. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-60a25d1c4cbf0128.js +0 -1
  535. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-60a25d1c4cbf0128.js +0 -1
  536. package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-60a25d1c4cbf0128.js +0 -1
  537. package/dist/standalone/.next/static/chunks/app/api/runtime/inject/route-60a25d1c4cbf0128.js +0 -1
  538. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-60a25d1c4cbf0128.js +0 -1
  539. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-60a25d1c4cbf0128.js +0 -1
  540. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-60a25d1c4cbf0128.js +0 -1
  541. package/dist/standalone/.next/static/chunks/app/api/runtime/queue/route-60a25d1c4cbf0128.js +0 -1
  542. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-60a25d1c4cbf0128.js +0 -1
  543. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-60a25d1c4cbf0128.js +0 -1
  544. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-60a25d1c4cbf0128.js +0 -1
  545. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-60a25d1c4cbf0128.js +0 -1
  546. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-60a25d1c4cbf0128.js +0 -1
  547. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-60a25d1c4cbf0128.js +0 -1
  548. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-60a25d1c4cbf0128.js +0 -1
  549. package/dist/standalone/.next/static/chunks/app/api/session/route-60a25d1c4cbf0128.js +0 -1
  550. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-60a25d1c4cbf0128.js +0 -1
  551. package/dist/standalone/.next/static/chunks/app/api/session/title/route-60a25d1c4cbf0128.js +0 -1
  552. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-60a25d1c4cbf0128.js +0 -1
  553. package/dist/standalone/.next/static/chunks/app/api/spawn/route-60a25d1c4cbf0128.js +0 -1
  554. package/dist/standalone/.next/static/chunks/app/api/spawn/validate/route-60a25d1c4cbf0128.js +0 -1
  555. package/dist/standalone/.next/static/chunks/app/api/staging/route-60a25d1c4cbf0128.js +0 -1
  556. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-60a25d1c4cbf0128.js +0 -1
  557. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-60a25d1c4cbf0128.js +0 -1
  558. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-60a25d1c4cbf0128.js +0 -1
  559. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-60a25d1c4cbf0128.js +0 -1
  560. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-60a25d1c4cbf0128.js +0 -1
  561. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-60a25d1c4cbf0128.js +0 -1
  562. package/dist/standalone/.next/static/chunks/app/api/tasks/route-60a25d1c4cbf0128.js +0 -1
  563. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-60a25d1c4cbf0128.js +0 -1
  564. package/dist/standalone/.next/static/chunks/app/api/telegram/route-60a25d1c4cbf0128.js +0 -1
  565. package/dist/standalone/.next/static/chunks/app/api/timeline/route-60a25d1c4cbf0128.js +0 -1
  566. package/dist/standalone/.next/static/chunks/app/api/tmux/route-60a25d1c4cbf0128.js +0 -1
  567. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-60a25d1c4cbf0128.js +0 -1
  568. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-60a25d1c4cbf0128.js +0 -1
  569. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-60a25d1c4cbf0128.js +0 -1
  570. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-60a25d1c4cbf0128.js +0 -1
  571. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-60a25d1c4cbf0128.js +0 -1
  572. package/dist/standalone/.next/static/chunks/app/api/tts/route-60a25d1c4cbf0128.js +0 -1
  573. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-60a25d1c4cbf0128.js +0 -1
  574. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-60a25d1c4cbf0128.js +0 -1
  575. package/dist/standalone/.next/static/chunks/app/api/workflows/route-60a25d1c4cbf0128.js +0 -1
  576. package/dist/standalone/.next/static/chunks/app/page-1cde2db61f461960.js +0 -125
  577. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-60a25d1c4cbf0128.js +0 -1
  578. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-60a25d1c4cbf0128.js +0 -1
  579. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-60a25d1c4cbf0128.js +0 -1
  580. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-60a25d1c4cbf0128.js +0 -1
  581. package/dist/standalone/.next/static/css/b25c03e915fd256b.css +0 -1
  582. /package/dist/standalone/.next/static/{836HTp-5V8cZC5YWFVOCk → fQ2a5S10vvpyAqE0L_wUj}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=8027,exports.ids=[8027],exports.modules={9740:(a,b,c)=>{c.d(b,{k:()=>g,z:()=>h});var d=c(76760),e=c.n(d),f=c(10900);function g(a){if("string"!=typeof a)return null;let b=a.trim().replace(/\/+$/u,"");if(!b||b.length>f.NF||e().posix.isAbsolute(b)||e().win32.isAbsolute(b)||b.startsWith(":")||/[\\*?[\]\u0000-\u001f\u007f]/u.test(b))return null;let c=b.split("/");return c.some(a=>!a||"."===a||".."===a)||".git"===c[0].toLowerCase()?null:b}function h(a,b){return b.some(b=>a===b||a.startsWith(`${b}/`))}},10900:(a,b,c)=>{c.d(b,{Gr:()=>j,IO:()=>f,NF:()=>e,Ze:()=>d,e7:()=>g,ic:()=>k,tq:()=>h,vz:()=>i});let d=20,e=240,f=8,g=9,h=50,i=50,j=50,k=2e3},18027:(a,b,c)=>{c.r(b),c.d(b,{PIPELINES_SCHEMA_VERSION:()=>t,PipelineStoreError:()=>z,archiveSettledPipelines:()=>aj,buildPipeline:()=>aq,checkpointPipelineRollbackMirrorsForDemotion:()=>ak,checkpointPipelineRollbackMirrorsForDemotionAsync:()=>al,findPipelineRecord:()=>am,isEffectiveRole:()=>B,loadArchivedPipelines:()=>ai,loadPipelines:()=>O,loadPipelinesForList:()=>ac,loadPipelinesForProjection:()=>ab,loadPipelinesForStartup:()=>P,pipelineArtifactsDir:()=>ar,pipelineGraphError:()=>M,pipelineIdentity:()=>ap,pipelineLockWaitMs:()=>ad,pipelineStateCollectionSeeds:()=>X,pipelineTaskLinkError:()=>an,planPipelineStateMigration:()=>R,savePipelines:()=>ah,withPipelineControllerMutation:()=>af,withPipelineMutation:()=>ae,withPipelineStartupAdmission:()=>ag});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(38751),l=c(22619),m=c(51888),n=c(22371),o=c(89204),p=c(14928),q=c(10900),r=c(9740),s=c(97223);let t=5,u=new Set([2,3,4,5]),v=()=>(0,j.BQ)("pipelines.json"),w=()=>(0,j.BQ)("pipelines-archive.json"),x=()=>(0,j.BQ)("state.sqlite"),y=["orchestrator","reviewer","verifier","builder","architect","cleaner","prod-auditor","deployer"];class z extends Error{constructor(a,b){super(a,b),this.name="PipelineStoreError"}}function A(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 B(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&!("claude"!==a.engine&&"codex"!==a.engine||null!==a.model&&"string"!=typeof a.model||a.model&&"claude"===a.engine&&!(0,m.OV)(a.model)||a.model&&"codex"===a.engine&&(a.model.length>128||!a.model.startsWith("gpt-")||/[\u0000-\u001f\u007f]/.test(a.model)))&&(null===a.effort||"string"==typeof a.effort&&!!(0,l.ve)(a.engine,a.model).includes(a.effort))&&(null===a.roleId||y.includes(a.roleId))&&("read-only"===a.access||"read-write"===a.access)&&(null===a.promptScaffold||"string"==typeof a.promptScaffold&&a.promptScaffold.length<=n.le)}function C(a){return null===a||"string"==typeof a}function D(a){return null==a||!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Number.isInteger(a.attempt)&&a.attempt>=1&&("pass"===a.edge||"fail"===a.edge)}function E(a,b){var c,d,e,f,g;if(!a||"object"!=typeof a||Array.isArray(a))return!1;return a.n===b+1&&(void 0===a.historical||"boolean"==typeof a.historical)&&["pending","spawning","running","reviewing","committing","passed","failed","needs_decision","skipped"].includes(String(a.state))&&B(a.effectiveRole)&&C(a.launchId)&&C(a.conversationId)&&C(a.sessionId)&&C(a.agentPath)&&C(a.paneId)&&(void 0===a.accountId||C(a.accountId))&&(void 0===a.usageLimitedAccounts||Array.isArray(a.usageLimitedAccounts)&&a.usageLimitedAccounts.every(a=>null!==a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.accountId&&a.accountId.length>0&&(void 0===a.engine||"claude"===a.engine||"codex"===a.engine)&&(null===a.resetsAt||Number.isSafeInteger(a.resetsAt)&&a.resetsAt>=0))&&new Set(a.usageLimitedAccounts.map(a=>`${a.engine??""}:${a.accountId}`)).size===a.usageLimitedAccounts.length)&&C(a.flowId)&&(void 0===a.expectedReviewHeadSha||C(a.expectedReviewHeadSha))&&(void 0===a.reviewHeadSha||C(a.reviewHeadSha))&&function(a){if(void 0===a)return!0;if(!a||"object"!=typeof a||Array.isArray(a))return!1;let b=a.hostClaim,c=null==b||"object"==typeof b&&!Array.isArray(b)&&/^(?:claude|codex):[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(String(b.sessionKey))&&/^(?:default|unknown|managed:[0-9a-f]{12})$/.test(String(b.accountRef)),d=["waiting_ready","spawn_pending","spawning","reviewing","relay_pending","relaying","fixing","approved","done_comment","needs_decision","paused","closed"];return"string"==typeof a.generation&&(void 0===a.sourceRevision||Number.isInteger(a.sourceRevision)&&a.sourceRevision>=0)&&Number.isInteger(a.roundCount)&&a.roundCount>=0&&C(a.implementerHeadSha)&&C(a.reviewerHeadSha)&&(null===a.verdict||["APPROVE","REQUEST_CHANGES","COMMENT"].includes(String(a.verdict)))&&d.includes(String(a.relayState))&&(null===a.terminalState||d.includes(String(a.terminalState)))&&c&&"string"==typeof a.synchronizedAt&&C(a.sourceUpdatedAt)&&(null===a.lagMs||"number"==typeof a.lagMs&&Number.isFinite(a.lagMs)&&a.lagMs>=0)}(a.reviewFlowSync)&&C(a.startedAt)&&C(a.completedAt)&&(void 0===a.input||C(a.input))&&D(a.activatedBy)&&C(a.output)&&(null===(c=a.verdict)||null!==(0,s.eh)(c))&&C(a.error)&&(void 0===a.decisionRequested||"boolean"==typeof a.decisionRequested)&&(void 0===(d=a.verdictRecovery)||!(!d||"object"!=typeof d||Array.isArray(d))&&["pending","recovered","exhausted"].includes(String(d.state))&&Number.isInteger(d.checks)&&d.checks>=0&&Number.isInteger(d.maxChecks)&&d.maxChecks>=1&&d.checks<=d.maxChecks&&"string"==typeof d.startedAt&&"string"==typeof d.lastCheckedAt&&C(d.nextCheckAt)&&"string"==typeof d.reason&&d.reason.length>0&&d.reason.length<=1e3&&(null===d.messageTs||"number"==typeof d.messageTs&&Number.isFinite(d.messageTs)&&d.messageTs>=0))&&function(a){if(null==a)return!0;if("object"!=typeof a||Array.isArray(a))return!1;let b=a.role;return"string"==typeof a.boundAt&&"string"==typeof a.stageDigest&&"string"==typeof a.prompt&&C(a.account)&&(null===b||!!(b&&"object"==typeof b&&!Array.isArray(b)&&y.includes(b.roleId)))&&(null===a.sandbox||"full"===a.sandbox||"restricted"===a.sandbox)&&(null===a.outputs||Array.isArray(a.outputs)&&a.outputs.every(a=>"string"==typeof a))}(a.definition)&&(null==(e=a.report)||!("object"!=typeof e||Array.isArray(e))&&Number.isSafeInteger(e.seq)&&e.seq>=1&&"string"==typeof e.at&&G(e.actor)&&null!==(0,s.eh)(e.verdict)&&C(e.summary)&&function(a){if(!a||"object"!=typeof a||Array.isArray(a))return!1;let b=a.pullRequest;return C(a.head)&&"string"==typeof a.branch&&(null===a.uncommitted||Array.isArray(a.uncommitted)&&a.uncommitted.every(a=>"string"==typeof a))&&(null===b||!!(b&&"object"==typeof b&&!Array.isArray(b)&&"string"==typeof b.url&&Number.isSafeInteger(b.number)&&"string"==typeof b.state))&&Array.isArray(a.outputs)&&a.outputs.every(a=>!!(a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.path&&"boolean"==typeof a.present))}(e.provenance)&&Number.isSafeInteger(e.calls)&&e.calls>=1)&&(void 0===(f=a.retiredLaunches)||Array.isArray(f)&&f.length<=50&&f.every(a=>null!==a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.launchId&&a.launchId.length>0&&C(a.conversationId)&&"string"==typeof a.error&&"string"==typeof a.retiredAt))&&(void 0===(g=a.unresolvedTermination)||!(!g||"object"!=typeof g||Array.isArray(g))&&"string"==typeof g.error&&"string"==typeof g.recordedAt&&Array.isArray(g.survivors)&&g.survivors.every(a=>null!==a&&"object"==typeof a&&Number.isSafeInteger(a.pid)&&C(a.startIdentity)&&(void 0===a.bootEpoch||C(a.bootEpoch))))}let F=["add-stage","remove-stage","reorder-stage","set-edge","override-stage"];function G(a){return!!(a&&"object"==typeof a&&!Array.isArray(a)&&("operator"===a.kind||"agent"===a.kind&&C(a.role)&&C(a.conversationId)))}function H(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&Number.isSafeInteger(a.seq)&&a.seq>=1&&"string"==typeof a.at&&G(a.actor)&&"string"==typeof a.stageId&&Number.isSafeInteger(a.attempt)&&a.attempt>=1&&["pass","fail","needs_decision"].includes(String(a.status))&&Number.isSafeInteger(a.findings)&&a.findings>=0&&(null===a.replaces||Number.isSafeInteger(a.replaces)&&a.replaces>=1)&&C(a.summary)}function I(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&Number.isSafeInteger(a.seq)&&a.seq>=1&&"string"==typeof a.at&&G(a.actor)&&F.includes(String(a.action))&&C(a.stageId)&&"string"==typeof a.pipelineState&&("applied"===a.effect||"pending-next-attempt"===a.effect)&&(null===a.appliesFromAttempt||Number.isSafeInteger(a.appliesFromAttempt)&&a.appliesFromAttempt>=1)&&"string"==typeof a.summary}function J(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Array.isArray(a.attempts)&&a.attempts.every(E)}function K(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Number.isInteger(a.attempt)&&C(a.conversationId)&&C(a.agentPath)&&(void 0===a.paneId||C(a.paneId))&&C(a.operationId)&&"string"==typeof a.detail&&"string"==typeof a.at}function L(a){var b;if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.role;if(!("string"==typeof a.id&&("run"===a.kind||"review-loop"===a.kind)&&"string"==typeof a.prompt&&(null===a.next||"string"==typeof a.next)&&(null==(b=a.onFail)||!(!b||"object"!=typeof b||Array.isArray(b))&&"string"==typeof b.to&&Number.isInteger(b.maxRounds)&&b.maxRounds>=1&&b.maxRounds<=q.e7)&&(void 0===c||c&&"object"==typeof c&&!Array.isArray(c)&&y.includes(c.roleId))&&(void 0===a.engine||"claude"===a.engine||"codex"===a.engine)&&(void 0===a.model||null===a.model||"string"==typeof a.model)&&(void 0===a.effort||null===a.effort||"string"==typeof a.effort)&&(void 0===a.access||"read-only"===a.access||"read-write"===a.access)&&(void 0===a.sandbox||"full"===a.sandbox||"restricted"===a.sandbox)&&(void 0===a.outputs||"run"===a.kind&&Array.isArray(a.outputs)&&a.outputs.length>0&&a.outputs.length<=q.Ze&&a.outputs.every((b,c)=>(0,r.k)(b)===b&&a.outputs.indexOf(b)===c))&&B(a.effectiveRole)))return!1;let d=a.effectiveRole,e=void 0===c?null:c.roleId;return(void 0===a.outputs||"read-only"===d.access)&&d.roleId===e&&("review-loop"!==a.kind||"read-only"===d.access)&&(void 0===a.engine||a.engine===d.engine)&&(void 0===a.model||a.model===d.model)&&(void 0===a.effort||a.effort===d.effort)&&(void 0===a.access||a.access===d.access)&&(null!==e||null===d.promptScaffold)&&(null===e||!!d.promptScaffold?.trim())&&!0}function M(a){let b=new Set(a.map(a=>a.id)),c=new Map(a.map(a=>[a.id,a.next]));for(let c of a){if(null!==c.next&&!b.has(c.next))return`stage ${c.id} next must reference an existing stage`;if(c.next===c.id)return`stage ${c.id} pass edge may not target itself`;let a=c.onFail??null;if("review-loop"===c.kind&&a)return`review-loop stage ${c.id} does not support onFail`;if(a&&!b.has(a.to))return`stage ${c.id} onFail must reference an existing stage`;if(a&&(!Number.isInteger(a.maxRounds)||a.maxRounds<1||a.maxRounds>q.e7))return`stage ${c.id} onFail maxRounds must be an integer between 1 and ${q.e7}`}for(let b of a){let d=b.next;for(let e=0;null!==d;e+=1){if(d===b.id||e>a.length)return`pipeline pass edges form a cycle through stage ${b.id}`;d=c.get(d)??null}}for(let b of a)if("review-loop"===b.kind&&!a.some(d=>{if("run"!==d.kind)return!1;let e=d.next;for(let d=0;null!==e&&d<=a.length;d+=1){if(e===b.id)return!0;e=c.get(e)??null}return!1})){let c=a.filter(a=>"run"===a.kind);if(0===c.length)return`review-loop stage ${b.id} is unreachable: the pipeline has no run stage, and a review-loop reviews the session of a run stage that reaches it`;let d=c.findLast(a=>null===a.next)??c.at(-1);return`review-loop stage ${b.id} is unreachable: no run stage's next chain reaches it — set next: "${b.id}" on run stage ${d.id}`}return null}function N(a){var b,c;if(!a||"object"!=typeof a||Array.isArray(a)||!("string"==typeof a.id&&"string"==typeof a.task&&Array.isArray(a.taskIds)&&a.taskIds.every(a=>"string"==typeof a)&&new Set(a.taskIds).size===a.taskIds.length&&(void 0===a.creationIntent||!(!(b=a.creationIntent)||"object"!=typeof b||Array.isArray(b))&&"task-spawn"===b.kind&&"string"==typeof b.taskId&&b.taskId.trim()&&"string"==typeof b.launchId&&b.launchId.trim())&&(void 0===a.spec||"string"==typeof a.spec)&&"string"==typeof a.project&&"string"==typeof a.repoDir&&"string"==typeof a.worktreeDir&&"string"==typeof a.branch&&"string"==typeof a.baseBranch&&"string"==typeof a.baseRef&&"string"==typeof a.lastPassedCommit&&(void 0===a.publication||"internal"===a.publication||"remote-branch"===a.publication)&&(void 0===a.publishedCommit||C(a.publishedCommit))&&Array.isArray(a.stages)&&a.stages.every(L)&&Array.isArray(a.runs)&&a.runs.every(J)&&["draft","provisioning","running","needs_decision","paused","completed","closed"].includes(String(a.state))&&(null===a.pausedState||["provisioning","running","needs_decision","completed","closed"].includes(String(a.pausedState)))&&(void 0===a.pausedAt||C(a.pausedAt))&&(void 0===a.resumedAt||C(a.resumedAt))&&C(a.stateDetail)&&C(a.srcPath)&&C(a.srcConversationId)&&"string"==typeof a.createdAt&&C(a.closedAt)&&(void 0===a.hiddenAt||C(a.hiddenAt))&&(void 0===a.dismissedAt||C(a.dismissedAt))&&(void 0===a.unconfirmedHosts||Array.isArray(a.unconfirmedHosts)&&a.unconfirmedHosts.every(K))&&(void 0===a.terminalReap||!(!(c=a.terminalReap)||"object"!=typeof c||Array.isArray(c))&&Number.isInteger(c.rounds)&&c.rounds>=0&&Number.isInteger(c.stopped)&&c.stopped>=0&&"string"==typeof c.lastAt&&(void 0===c.settledAttempts||Array.isArray(c.settledAttempts)&&c.settledAttempts.every(a=>"string"==typeof a))&&C(c.settledAt))&&(void 0===a.restored||"boolean"==typeof a.restored)&&(void 0===a.graphEdits||Array.isArray(a.graphEdits)&&a.graphEdits.length<=q.tq&&a.graphEdits.every(I))&&(void 0===a.stageReports||Array.isArray(a.stageReports)&&a.stageReports.length<=q.vz&&a.stageReports.every(H))&&(void 0===a.pos||"object"==typeof a.pos&&null!==a.pos&&Number.isFinite(a.pos.x)&&Number.isFinite(a.pos.y))))return!1;let d=a.stages,e=a.runs,f=+("draft"!==a.state);if(d.length<f||d.length>q.IO||e.length!==d.length)return!1;let g=d.map(a=>a.id);if(new Set(g).size!==g.length||null!==M(d)||e.some((a,b)=>a.stageId!==d[b].id))return!1;let h=i().join(i().dirname(a.repoDir),`${i().basename(a.repoDir)}-pipeline-${a.id}`);if(a.worktreeDir!==h||a.branch!==`pipeline/${ao(a.task)}-${a.id}`)return!1;let j=a.cursor;if(null!==j&&(!j||"object"!=typeof j||!g.includes(j.stageId)||!["pending","spawning","running","reviewing","committing"].includes(j.state)||!(void 0===j.input||C(j.input))||!D(j.activatedBy)||null!=j.activatedBy&&!g.includes(j.activatedBy.stageId))||("completed"===a.state||"closed"===a.state)&&null!==j)return!1;if("draft"===a.state){if(0===d.length){if(null!==j)return!1}else if(j?.stageId!==d[0].id||"pending"!==j.state)return!1;if(e.some(a=>a.attempts.length>0))return!1;let b=!a.baseBranch&&!a.baseRef&&!a.lastPassedCommit,c=!!(a.baseBranch&&/^[0-9a-f]{40}$/i.test(a.baseRef)&&a.lastPassedCommit===a.baseRef);if(!b&&!c||a.closedAt)return!1}return!0}function O(){return Z().snapshot()}function P(){let a=(0,p.M)(x(),["pipelines","pipelines_archive"]),b=a.get("pipelines"),c=a.get("pipelines_archive");if(null===b!=(null===c))throw new z("pipeline startup collections are incomplete");let d=null===b&&null===c?[...Q(v(),!1,!0),...Q(w(),!1,!0)]:[...b??[],...c??[]];if(!d.every(N))throw new z("pipeline registry contains malformed records");if(new Set(d.map(a=>a.id)).size!==d.length)throw new z("pipeline startup records have contradictory identities");return d.map(S)}function Q(a,b,c=!1){let d=function(a){try{return JSON.parse(g().readFileSync(a,"utf8"))}catch(b){if("ENOENT"===b.code)return;throw new z(`could not read pipeline registry: ${a}`,{cause:b})}}(a);if(void 0===d||null===d&&!c)return[];if(!d||"object"!=typeof d||Array.isArray(d)){if(b)return[];throw new z("pipeline registry must be an object")}if("number"!=typeof d.schemaVersion||!u.has(d.schemaVersion)){if(b)return[];throw new z(`unsupported pipeline registry schema: ${String(d.schemaVersion)}`)}if(!Array.isArray(d.pipelines)){if(b)return[];throw new z("pipeline registry contains malformed records")}let e=d.pipelines.map(a=>{var b,c,e;let f;return f=2===(b=d.schemaVersion)?function(a){if(!a||"object"!=typeof a||Array.isArray(a))return a;let b=Array.isArray(a.stages)?a.stages.map(a=>a&&"object"==typeof a?{onFail:null,...a}:a):a.stages,c=Array.isArray(a.runs)?a.runs.map(a=>a&&"object"==typeof a&&Array.isArray(a.attempts)?{...a,attempts:a.attempts.map(a=>a&&"object"==typeof a?{input:null,activatedBy:null,...a}:a)}:a):a.runs,d=a.cursor&&"object"==typeof a.cursor?{input:null,activatedBy:null,...a.cursor}:a.cursor,e={...a,stages:b,runs:c,cursor:d};if("draft"===e.state&&Array.isArray(e.stages)&&0===e.stages.length){let a={id:"implement",kind:"run",prompt:"{{task}}",next:null,onFail:null,effectiveRole:{roleId:null,engine:"claude",model:null,effort:null,access:"read-write",promptScaffold:null}};e.stages=[a],e.runs=[{stageId:a.id,attempts:[]}],e.cursor={stageId:a.id,state:"pending",input:null,activatedBy:null}}return e}(a):a,b<4&&(f=!(c=f)||"object"!=typeof c||Array.isArray(c)?c:{taskIds:[],...c}),b<5&&(f=!(e=f)||"object"!=typeof e||Array.isArray(e)?e:Array.isArray(e.stages)?{...e,stages:e.stages.map(a=>!a||"object"!=typeof a||Array.isArray(a)?a:"review-loop"===a.kind?{...a,onFail:null}:a)}:e),f});if(!b&&!e.every(N))throw new z("pipeline registry contains malformed records");let f=b?e.filter(N):e;return b&&f.length!==e.length&&console.error(`[pipelines] skipped ${e.length-f.length} malformed archived pipeline record(s)`),f.map(S)}function R(){let a=Q(v(),!1),b=Q(w(),!0);return{pipelines:{records:a.length,keys:a.map(a=>a.id)},archive:{records:b.length,keys:b.map(a=>a.id)}}}function S(a){let b=a.terminalReap?.settledAttempts??(a.terminalReap?.settledAt?a.runs.flatMap(a=>a.attempts.filter(a=>!!(a.verdict||a.completedAt)).map(b=>`${a.stageId}:${b.n}`)):[]);return{...a,project:(0,k.G$)(a.project),taskIds:[...a.taskIds],creationIntent:a.creationIntent?{...a.creationIntent}:void 0,spec:"string"==typeof a.spec?a.spec:void 0,baseBranch:a.baseBranch??"",baseRef:a.baseRef??"",lastPassedCommit:a.lastPassedCommit??"",publishedCommit:a.publishedCommit??null,pausedState:a.pausedState??null,stateDetail:a.stateDetail??null,srcPath:a.srcPath??null,srcConversationId:a.srcConversationId??null,closedAt:a.closedAt??null,hiddenAt:a.hiddenAt??null,unconfirmedHosts:a.unconfirmedHosts?.length?a.unconfirmedHosts.map(a=>({...a})):void 0,terminalReap:a.terminalReap?{...a.terminalReap,settledAttempts:[...b]}:void 0,restored:void 0,stages:a.stages.map(a=>({...a,onFail:a.onFail??null})),cursor:a.cursor?{...a.cursor,input:a.cursor.input??null,activatedBy:a.cursor.activatedBy??null}:null,runs:a.runs.map(a=>({...a,attempts:Array.isArray(a.attempts)?a.attempts.map(a=>({...a,launchId:a.launchId??null,conversationId:a.conversationId??null,sessionId:a.sessionId??null,agentPath:a.agentPath??null,paneId:a.paneId??null,...a.usageLimitedAccounts?{usageLimitedAccounts:a.usageLimitedAccounts.map(a=>({...a}))}:{},flowId:a.flowId??null,expectedReviewHeadSha:a.expectedReviewHeadSha??null,reviewHeadSha:a.reviewHeadSha??null,reviewFlowSync:a.reviewFlowSync?{...a.reviewFlowSync}:void 0,startedAt:a.startedAt??null,completedAt:a.completedAt??null,input:a.input??null,activatedBy:a.activatedBy??null,output:a.output??null,verdict:a.verdict??null,error:a.error??null,verdictRecovery:a.verdictRecovery?{...a.verdictRecovery}:void 0,...a.retiredLaunches?{retiredLaunches:a.retiredLaunches.map(a=>({...a}))}:{},unresolvedTermination:a.unresolvedTermination?{...a.unresolvedTermination,survivors:a.unresolvedTermination.survivors.map(a=>({...a}))}:void 0})):[]}))}}let T=null,U=new Map;function V(a){if(!N(a))throw new z("pipeline registry contains malformed records");return S(a)}function W(a){return"closed"===a.state?!!a.unconfirmedHosts?.length:"completed"!==a.state||!!a.unconfirmedHosts?.length||!a.terminalReap?.settledAt}function X(){return[{collection:"pipelines",schemaVersion:t,migrationId:"pipelines-json-v1",loadRecords:()=>Q(v(),!1),key:a=>a.id,controllerActive:W},{collection:"pipelines_archive",schemaVersion:t,migrationId:"pipelines-archive-json-v1",loadRecords:()=>Q(w(),!0),key:a=>a.id,controllerActive:()=>!1}]}function Y(){let a=x(),b=U.get(a);if(b)return b;(0,p.t0)(a,X());let c={schemaVersion:t,busyMessage:"pipeline state is busy",key:a=>a.id,decode:V,clone:S,decodeError:a=>a instanceof z?a:new z("pipeline registry contains malformed records",{cause:a}),validate:a=>{if(!N(a))throw new z("refusing to persist a malformed pipeline record")}},d={active:new p.UY(a,{...c,collection:"pipelines",controllerActive:W,strictDecode:!0}),archive:new p.UY(a,{...c,collection:"pipelines_archive",onDecodeError:a=>console.error("[pipelines] skipped malformed archived SQLite row",a)})};return U.set(a,d),d}function Z(){return Y().active}function $(){return Y().archive}function _(){return Z().signature()}function aa(){let a=_();if(T?.signature===a)return T.pipelines;let b=[...Z().loadReadonly()],c=_();return a===c&&(T={signature:c,pipelines:b}),b}function ab(){return aa().map(S)}function ac(){return aa()}function ad(){let a=Number(process.env.LLV_PIPELINE_LOCK_WAIT_MS);return Number.isFinite(a)&&a>=0?a:3e4}async function ae(a){return(0,o.aO)(b=>Z().mutate((c,d)=>(b(),a(c,d)),void 0,!1,ad()))}async function af(a){return Z().mutate(a,void 0,!0)}async function ag(a){let b=!1;try{return P(),await ae(()=>(b=!0,a(!0)))}catch(c){if(b)throw c;return a(!1)}}function ah(a){Z().replaceSync(a)}function ai(){return $().snapshot()}async function aj(a=Date.now(),b={}){return Z().moveMatchingTo($(),b=>(function(a,b){let c=a.closedAt??("draft"===a.state?a.hiddenAt:null);if(!c)return!1;let d=Date.parse(c);return Number.isFinite(d)&&b-d>2592e5})(b,a),b)}function ak(){let{active:a,archive:b}=Y();return{pipelines:a.checkpointMirrorForDemotion((a,b)=>{A(v(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})}),pipelinesArchive:b.checkpointMirrorForDemotion((a,b)=>{A(w(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})})}}async function al(){let{active:a,archive:b}=Y();return{pipelines:await a.checkpointMirrorForDemotionAsync((a,b)=>{A(v(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})}),pipelinesArchive:await b.checkpointMirrorForDemotionAsync((a,b)=>{A(w(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})})}}function am(a){return O().find(b=>b.id===a)??ai().find(b=>b.id===a)??null}function an(a,b,c,d={}){let e=new Map(c.map(a=>[a.id,a]));for(let c of b){let b=e.get(c);if(!b){if(d.allowMissing)continue;return`task not found: ${c}`}if(b.project!==a.project)return`task project does not match pipeline project: ${c}`}return null}function ao(a){return a.toLowerCase().replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"").slice(0,40).replace(/-+$/,"")||"task"}function ap(a,b,c){let d=i().basename(c);return{worktreeDir:i().join(i().dirname(c),`${d}-pipeline-${a}`),branch:`pipeline/${ao(b)}-${a}`}}function aq(a){let b=ap(a.id,a.task,a.repoDir);return{id:a.id,task:a.task,taskIds:[...new Set(a.taskIds??[])],...a.creationIntent?{creationIntent:{...a.creationIntent}}:{},...a.spec?{spec:a.spec}:{},project:a.project,repoDir:a.repoDir,...b,baseBranch:"",baseRef:"",lastPassedCommit:"",...a.publication?{publication:a.publication}:{},publishedCommit:null,stages:JSON.parse(JSON.stringify(a.stages)).map(a=>({...a,onFail:a.onFail??null})),runs:a.stages.map(a=>({stageId:a.id,attempts:[]})),cursor:a.stages.length?{stageId:a.stages[0].id,state:"pending",input:null,activatedBy:null}:null,state:a.state??"provisioning",pausedState:null,stateDetail:null,srcPath:a.srcPath,srcConversationId:a.srcConversationId,createdAt:a.now,closedAt:null,hiddenAt:null}}function ar(a){return i().join((0,j.BQ)("pipelines"),a)}},22371:(a,b,c)=>{c.d(b,{le:()=>k,pQ:()=>o,e3:()=>p});var d=c(73024),e=c.n(d);c(76760);var f=c(27146),g=c(22619),h=c(51888),i=c(49048);let j=["orchestrator","reviewer","verifier","builder","architect","cleaner","prod-auditor","deployer"],k=12e3;class l extends Error{constructor(a,b){super(a,b),this.name="RoleStoreError"}}let m=()=>(0,f.BQ)("role-presets.json");function n(a){return i.W.map(b=>{let c=a[b.id];return{...b,config:{...b.config,...c?.config},promptScaffold:c?.promptScaffold??b.promptScaffold}})}function o(){return n(function(){let a,b;try{a=e().readFileSync(m(),"utf8")}catch(a){if("ENOENT"===a.code)return{schemaVersion:1,overrides:{}};throw new l(`could not read role override registry: ${m()}`,{cause:a})}try{b=JSON.parse(a)}catch(a){throw new l("role override registry contains malformed JSON",{cause:a})}if(1!==b.schemaVersion)throw new l(`unsupported role override schema: ${String(b.schemaVersion)}`);if(!b.overrides||"object"!=typeof b.overrides||Array.isArray(b.overrides))throw new l("role override registry must contain an overrides object");let c={};for(let[a,d]of Object.entries(b.overrides)){if(!("string"==typeof a&&j.includes(a))||!function(a){if(!a||"object"!=typeof a||Array.isArray(a)||Object.keys(a).some(a=>"config"!==a&&"promptScaffold"!==a)||void 0!==a.promptScaffold&&("string"!=typeof a.promptScaffold||a.promptScaffold.length>k))return!1;if(void 0!==a.config){if(!a.config||"object"!=typeof a.config||Array.isArray(a.config)||Object.keys(a.config).some(a=>"engine"!==a&&"model"!==a&&"effort"!==a))return!1;let{engine:b,model:c,effort:d}=a.config;if(void 0!==b&&"claude"!==b&&"codex"!==b||void 0!==c&&("string"!=typeof c||c.length>128)||void 0!==d&&("string"!=typeof d||d.length>32))return!1}return!0}(d)||!function(a,b){let c={...i.W.find(b=>b.id===a).config,...b.config};if(c.model.length>128||/[\u0000-\u001f\u007f]/.test(c.model)||"claude"===c.engine&&!(0,h.OV)(c.model)||"codex"===c.engine&&!c.model.startsWith("gpt-"))return!1;let d=(0,g.ve)(c.engine,c.model);if(!d.includes(c.effort))throw new l(`invalid role override: ${a}; effort for ${c.engine}/${c.model} must be one of: ${d.join(", ")}`);return!0}(a,d))throw new l(`invalid role override: ${a}`);c[a]=d}return{schemaVersion:1,overrides:c}}().overrides)}function p(){try{return o()}catch(a){return console.warn("[roles] override registry unreadable; falling back to built-in defaults",a),n({})}}},22619:(a,b,c)=>{c.d(b,{BL:()=>k,ck:()=>g,ve:()=>j});let d=["low","medium","high","xhigh","max"],e=["low","medium","high","xhigh"],f=["minimal","low","medium","high","xhigh","max","ultra"];function g(a){return f.includes(a)}let h=[[/^gpt-6-astra\b/,["low","medium","high","xhigh","max","ultra"]],[/^gpt-5\.6-(sol|terra)\b/,["low","medium","high","xhigh","max","ultra"]],[/^gpt-5\.6\b/,["low","medium","high","xhigh","max"]]],i=["off","minimal","low","medium","high","xhigh","max"];function j(a,b){if("claude"===a)return d;if("openclaw"===a)return i;if("codex"!==a)return null;let c=(b??"").trim().toLowerCase();for(let[a,b]of h)if(a.test(c))return b;return e}function k(a,b){let c="string"==typeof b.effort?b.effort.trim():"",d=j(a,"string"==typeof b.model?b.model:null);return c&&!d.includes(c)?{effort:null,fast:null,error:`effort for ${a} must be one of: ${d.join(", ")}`}:{effort:c||null,fast:"codex"===a&&"boolean"==typeof b.fast?b.fast:null}}},38751:(a,b,c)=>{c.d(b,{E2:()=>s,G$:()=>r,JC:()=>v,YX:()=>x,oh:()=>y});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(14928),l=c(46211);let m=null;function n(){return(0,j.BQ)("project-aliases.json")}function o(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=Object.entries(a);return b.every(([a,b])=>!!a.trim()&&"string"==typeof b&&!!b.trim())?Object.fromEntries(b):null}function p(){let a,b=n();try{a=g().statSync(b)}catch{return(m={file:b,mtimeMs:-1,size:-1,snapshot:{aliases:{},displayNames:{}}}).snapshot}if(m&&m.file===b&&m.mtimeMs===a.mtimeMs&&m.size===a.size)return m.snapshot;try{let c=JSON.parse(g().readFileSync(b,"utf8")),d=1===c.schemaVersion?o(c.aliases):null,e=1===c.schemaVersion?o(c.displayNames):null,f=d&&e?{aliases:d,displayNames:e}:{aliases:{},displayNames:{}};return m={file:b,mtimeMs:a.mtimeMs,size:a.size,snapshot:f},f}catch{let c={aliases:{},displayNames:{}};return m={file:b,mtimeMs:a.mtimeMs,size:a.size,snapshot:c},c}}function q(a,b){let c=a,d=new Set;for(;b[c]&&!d.has(c);)d.add(c),c=b[c];return d.has(c)?a:c}function r(a){return q(a,p().aliases)}function s(){let a=p();return{aliases:{...a.aliases},displayNames:{...a.displayNames}}}function t(a){try{let b=JSON.parse(g().readFileSync((0,j.BQ)(a),"utf8"));return b&&"object"==typeof b&&!Array.isArray(b)?b:null}catch{return null}}function u(a,b,c){let d=(["flows","pipelines","workflows"].includes(b)?(0,k.Vx)((0,j.BQ)("state.sqlite"),b):null)??t(a)?.[b];if(!Array.isArray(d))return[];let e=[];for(let a of d)!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.project&&a.project.trim()&&"string"==typeof a[c]&&a[c].trim()&&e.push([a.project,a[c]]);return e}function v(){let a=function(){let a=t("worktree-map.json");if(!a)return new Map;let b=new Map;for(let[c,d]of Object.entries(a)){if(!d||"object"!=typeof d||Array.isArray(d))continue;let a=d.repo;"string"==typeof a&&a.trim()&&b.set(c,a)}return b}(),b=[...u("flows.json","flows","cwd"),...u("pipelines.json","pipelines","repoDir"),...u("workflows.json","workflows","repoDir")],c=new Map;for(let[d,e]of b){let b=(0,l.V5)(e)??a.get(e),f=b?(0,l.im)(b):null;if(!f)continue;let g=c.get(d)??new Map,h=g.get(f.project)??{registration:{source:d,target:f.project,displayName:f.displayName},records:0};h.records+=1,g.set(f.project,h),c.set(d,g)}let d=[],e=[];for(let[a,b]of c){if(b.has(a)){b.size>1&&e.push(a);continue}let c=[...b.values()].sort((a,b)=>b.records-a.records),f=c.reduce((a,b)=>a+b.records,0),g=c[0];2*g.records>f?d.push(g.registration):e.push(a)}let f=function(a){let b=new Map(a.map(a=>[a.source,a.target])),c=new Set,d=new Set;for(let[a,e]of[["tasks.json","tasks"],["flows.json","flows"],["pipelines.json","pipelines"],["workflows.json","workflows"]]){let f=new Map;for(let g of function(a,b){let c=(["flows","pipelines","workflows"].includes(b)?(0,k.Vx)((0,j.BQ)("state.sqlite"),b):null)??t(a)?.[b];return Array.isArray(c)?c.filter(a=>!!a&&"object"==typeof a&&!Array.isArray(a)):[]}(a,e)){if("string"!=typeof g.id||!g.id.trim()||"string"!=typeof g.project||!g.project.trim())continue;let a=r(g.project),h=b.get(a)??a,i=`${h}\0${g.id}`,j=f.get(i);j&&j!==a?(c.add(`${e} id collision`),b.has(j)&&d.add(j),b.has(a)&&d.add(a)):f.set(i,a)}}return{labels:[...c],sources:d}}(d);return e.push(...f.labels),{registrations:d.filter(a=>!f.sources.has(a.source)),conflicts:e}}function w(a){let b=p(),c={...b.aliases},d={...b.displayNames};for(let b of a){let a=b.source.trim(),e=q(b.target.trim(),c),f=b.displayName.trim();if(!a||!e||!f)return null;let g=c[a]?q(c[a],c):null;if(g&&g!==e)return null;a!==e&&(c[a]=e),d[e]=f}return{aliases:c,displayNames:d}}function x(a){return null!==w(a)}function y(a){if(0===a.length)return!0;let b=w(a);if(!b)return!1;let c=n(),d=i().join(i().dirname(c),`.${i().basename(c)}.${process.pid}.${e().randomUUID()}.tmp`);try{return g().mkdirSync(i().dirname(c),{recursive:!0,mode:448}),g().writeFileSync(d,JSON.stringify({schemaVersion:1,...b},null,2)+"\n",{encoding:"utf8",mode:384}),g().renameSync(d,c),m=null,p(),!0}catch{try{g().rmSync(d,{force:!0})}catch{}return!1}}},46211:(a,b,c)=>{c.d(b,{MO:()=>m,Mv:()=>l,NP:()=>o,V5:()=>t,YV:()=>v,im:()=>x,qe:()=>p,rj:()=>q,z:()=>n});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(48161),i=c.n(h),j=c(76760),k=c.n(j);let l="project_unresolved",m="Unresolved project";function n(a){return/^(?:repo|dir)-[0-9a-f]{32}$/.test(a)}function o(a){let b=(()=>{try{return g().realpathSync.native(a)}catch{return k().resolve(a)}})(),c=k().basename(b);if(!c||b===k().sep)return null;let d=b===i().homedir()?`home-${c}`:c;return{project:p(b),displayName:d}}function p(a){return`dir-${e().createHash("sha256").update(`dir:${a}`).digest("hex").slice(0,32)}`}function q(a){return a===l?m:a}function r(a){try{return g().statSync(k().join(a,"HEAD")).isFile()}catch{return!1}}function s(a){let b=k().join(a,".git");try{let c=g().lstatSync(b);if(c.isDirectory())return r(b)?b:null;if(!c.isFile())return null;let d=g().readFileSync(b,"utf8").slice(0,4096),e=/^gitdir:\s*(.+?)\s*$/im.exec(d)?.[1];if(!e)return null;let f=k().resolve(a,e);return r(f)?f:null}catch{return null}}function t(a){let b=k().resolve(a);for(;;){if(s(b))return b;let a=k().dirname(b);if(a===b)return null;b=a}}function u(a){let b=a.replace(/^file:/,"").split("/").filter(Boolean).at(-1)?.trim()||null;if(!b)return null;let c=e().createHash("sha256").update(a).digest("hex").slice(0,32);return{project:`repo-${c}`,displayName:b,canonicalRemote:a}}function v(a){return u(`local:${w(a)}`)?.project??null}function w(a){try{return g().realpathSync.native(a)}catch{return k().resolve(a)}}function x(a){let b,c=s(a);if(!c)return null;try{b=g().readFileSync(k().join(function(a){try{let b=g().readFileSync(k().join(a,"commondir"),"utf8").trim();return b?k().resolve(a,b):a}catch{return a}}(c),"config"),"utf8")}catch{return null}let d=function(a){let b=!1;for(let c of a.split(/\r?\n/)){let a=/^\s*\[\s*remote\s+"([^"]+)"\s*\]\s*$/i.exec(c);if(a){b="origin"===a[1];continue}if(/^\s*\[/.test(c)){b=!1;continue}if(!b)continue;let d=/^\s*url\s*=\s*(.*?)\s*$/i.exec(c)?.[1],e=d?.replace(/\s+[;#].*$/,"").trim();if(e)return e}return null}(b),e=d?function(a,b){let c=/^[a-z][a-z0-9+.-]*:\/\//i.test(a)?null:/^(?:[^@\s]+@)?([^:/\s]+):(.+)$/.exec(a);if(c){let a=c[1].toLowerCase(),b=c[2].replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return b?`${a}/${b}`:null}try{let b=new URL(a);if("file:"===b.protocol){let a=k().resolve(b.pathname).replace(/\.git$/i,"");return`file:${a}`}let c=b.hostname.toLowerCase(),d=b.port?`:${b.port}`:"",e=b.pathname.replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return c&&e?`${c}${d}/${e}`:null}catch{let c=k().resolve(b,a).replace(/\.git$/i,"");return`file:${c}`}}(d,a):`local:${w(a)}`;return e?u(e):null}},49048:(a,b,c)=>{c.d(b,{W:()=>j});var d=c(51888);let e=["Read-only mode: edits, staging, commits, pushes, service restarts, and GitHub comments are prohibited.","Every finding carries file:line evidence. Clean work earns a clear NO FINDINGS verdict."],f="Three standing rules. (1) Anchor the frame: when the assignment carries the requester's originating requirement, validate the work against that verbatim requirement, never against the artifact's previous revision — WRONG-PREMISE (\"this does not serve the original requirement\") is an expected verdict and outranks any finding about internal rigour. (2) Over-engineering pass: on every review, flag machinery heavier than the problem it solves (a library plus wrapper where a native primitive does), name the simpler mechanism, and report what to cut — OVER-BUILT is a first-class verdict, and a round that only removes scope is a successful round. (3) Rendered surfaces are part of correctness: when the diff touches UI (components, styles, layout), the review covers the rendered result and the code alike. Check that the author's rendered evidence reaches every surface and every viewport the requirement names; evidence that skips a named surface is REQUEST_CHANGES on its own. Where that evidence is missing and a harness exists, render from an export of the reviewed HEAD — never the live worktree, never the operator's Viewer — and report overflow, clipped or zero-width controls, overlap and unreadable states as severity-ranked findings carrying the viewport and the measured numbers.",g="Before deciding, and whenever a problem or unknown appears, ask whether it was solved before: run a few search_transcripts queries in different phrasings (project-scoped, then unscoped), read any hit through conversation_messages at its transcript path, cite what you found or say nothing relevant existed, and check an old answer against current main before building on it.",h="Decide yourself whatever the code, the running system or one cheap observation can settle; never ask the operator what you can find out. Stop and ask when the work rests on a fact you could not confirm (an external API's shape, a service's behaviour, access you lack, a rate limit that blocks the check) or on a requirement that reads two ways and changes what gets built: report needs_decision saying in two or three plain sentences what you tried, what you could not confirm and what the options are. Never finish on a guess and mention the gap in passing.",i="Process cleanup: stop only the processes you started yourself, each by the PID you recorded when you started it. Never stop anything by port, name or pattern — no fuser -k, no lsof piped into kill, no pkill, no killall — because a match can be the operator's own long-running process. A port that is already in use is a reason to pick another port, never a reason to free it; a probe or stub server binds port 0 and reads the assigned port back.",j=[{id:"orchestrator",name:"Orchestrator",description:"Coordinates fresh agents through the Viewer control plane.",config:{engine:"claude",model:"opus",effort:"high"},parameters:[{key:"mode",label:"Mode",description:"Operating mode for the coordination run.",kind:"select",options:["standard","plan-tickets","wayfind","backlog-campaign"]},{key:"repo",label:"Repository",description:"Repository for backlog-campaign mode.",kind:"text"},{key:"issueQuery",label:"Issue query",description:"GitHub issue query for backlog-campaign mode.",kind:"text"},{key:"urgent",label:"Urgent list",description:"Comma-separated urgent issue ids.",kind:"text"},{key:"maxWorkers",label:"Maximum workers",description:"Worker cap for backlog-campaign mode.",kind:"integer",default:3,min:1,max:20},{key:"mergePolicy",label:"Merge policy",description:"Delivery policy for backlog-campaign mode.",kind:"select",options:["pr","merge"]},{key:"completionPolicy",label:"Completion policy",description:"Terminal policy for backlog-campaign mode.",kind:"select",options:["pr-opened","merged","released"]}],promptScaffold:`You are the Orchestrator. Drive work through the production Viewer MCP tools. Use fresh empty sessions with src lineage; forks are disabled. Keep every worker visible and controllable in the Viewer.
1
+ "use strict";exports.id=8027,exports.ids=[8027],exports.modules={9740:(a,b,c)=>{c.d(b,{k:()=>g,z:()=>h});var d=c(76760),e=c.n(d),f=c(10900);function g(a){if("string"!=typeof a)return null;let b=a.trim().replace(/\/+$/u,"");if(!b||b.length>f.NF||e().posix.isAbsolute(b)||e().win32.isAbsolute(b)||b.startsWith(":")||/[\\*?[\]\u0000-\u001f\u007f]/u.test(b))return null;let c=b.split("/");return c.some(a=>!a||"."===a||".."===a)||".git"===c[0].toLowerCase()?null:b}function h(a,b){return b.some(b=>a===b||a.startsWith(`${b}/`))}},10900:(a,b,c)=>{c.d(b,{Gr:()=>j,IO:()=>f,NF:()=>e,Ze:()=>d,e7:()=>g,ic:()=>k,tq:()=>h,vz:()=>i});let d=20,e=240,f=8,g=9,h=50,i=50,j=50,k=2e3},18027:(a,b,c)=>{c.r(b),c.d(b,{PIPELINES_SCHEMA_VERSION:()=>t,PipelineStoreError:()=>z,archiveSettledPipelines:()=>aj,buildPipeline:()=>aq,checkpointPipelineRollbackMirrorsForDemotion:()=>ak,checkpointPipelineRollbackMirrorsForDemotionAsync:()=>al,findPipelineRecord:()=>am,isEffectiveRole:()=>B,loadArchivedPipelines:()=>ai,loadPipelines:()=>O,loadPipelinesForList:()=>ac,loadPipelinesForProjection:()=>ab,loadPipelinesForStartup:()=>P,pipelineArtifactsDir:()=>ar,pipelineGraphError:()=>M,pipelineIdentity:()=>ap,pipelineLockWaitMs:()=>ad,pipelineStateCollectionSeeds:()=>X,pipelineTaskLinkError:()=>an,planPipelineStateMigration:()=>R,savePipelines:()=>ah,withPipelineControllerMutation:()=>af,withPipelineMutation:()=>ae,withPipelineStartupAdmission:()=>ag});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(38751),l=c(22619),m=c(51888),n=c(22371),o=c(89204),p=c(14928),q=c(10900),r=c(9740),s=c(97223);let t=5,u=new Set([2,3,4,5]),v=()=>(0,j.BQ)("pipelines.json"),w=()=>(0,j.BQ)("pipelines-archive.json"),x=()=>(0,j.BQ)("state.sqlite"),y=["orchestrator","reviewer","verifier","builder","architect","cleaner","prod-auditor","deployer"];class z extends Error{constructor(a,b){super(a,b),this.name="PipelineStoreError"}}function A(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 B(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&!("claude"!==a.engine&&"codex"!==a.engine||null!==a.model&&"string"!=typeof a.model||a.model&&"claude"===a.engine&&!(0,m.OV)(a.model)||a.model&&"codex"===a.engine&&(a.model.length>128||!a.model.startsWith("gpt-")||/[\u0000-\u001f\u007f]/.test(a.model)))&&(null===a.effort||"string"==typeof a.effort&&!!(0,l.ve)(a.engine,a.model).includes(a.effort))&&(null===a.roleId||y.includes(a.roleId))&&("read-only"===a.access||"read-write"===a.access)&&(null===a.promptScaffold||"string"==typeof a.promptScaffold&&a.promptScaffold.length<=n.le)}function C(a){return null===a||"string"==typeof a}function D(a){return null==a||!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Number.isInteger(a.attempt)&&a.attempt>=1&&("pass"===a.edge||"fail"===a.edge)}function E(a,b){var c,d,e,f,g;if(!a||"object"!=typeof a||Array.isArray(a))return!1;return a.n===b+1&&(void 0===a.historical||"boolean"==typeof a.historical)&&["pending","spawning","running","reviewing","committing","passed","failed","needs_decision","skipped"].includes(String(a.state))&&B(a.effectiveRole)&&C(a.launchId)&&C(a.conversationId)&&C(a.sessionId)&&C(a.agentPath)&&C(a.paneId)&&(void 0===a.accountId||C(a.accountId))&&(void 0===a.usageLimitedAccounts||Array.isArray(a.usageLimitedAccounts)&&a.usageLimitedAccounts.every(a=>null!==a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.accountId&&a.accountId.length>0&&(void 0===a.engine||"claude"===a.engine||"codex"===a.engine)&&(null===a.resetsAt||Number.isSafeInteger(a.resetsAt)&&a.resetsAt>=0))&&new Set(a.usageLimitedAccounts.map(a=>`${a.engine??""}:${a.accountId}`)).size===a.usageLimitedAccounts.length)&&C(a.flowId)&&(void 0===a.expectedReviewHeadSha||C(a.expectedReviewHeadSha))&&(void 0===a.reviewHeadSha||C(a.reviewHeadSha))&&function(a){if(void 0===a)return!0;if(!a||"object"!=typeof a||Array.isArray(a))return!1;let b=a.hostClaim,c=null==b||"object"==typeof b&&!Array.isArray(b)&&/^(?:claude|codex):[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(String(b.sessionKey))&&/^(?:default|unknown|managed:[0-9a-f]{12})$/.test(String(b.accountRef)),d=["waiting_ready","spawn_pending","spawning","reviewing","relay_pending","relaying","fixing","approved","done_comment","needs_decision","paused","closed"];return"string"==typeof a.generation&&(void 0===a.sourceRevision||Number.isInteger(a.sourceRevision)&&a.sourceRevision>=0)&&Number.isInteger(a.roundCount)&&a.roundCount>=0&&C(a.implementerHeadSha)&&C(a.reviewerHeadSha)&&(null===a.verdict||["APPROVE","REQUEST_CHANGES","COMMENT"].includes(String(a.verdict)))&&d.includes(String(a.relayState))&&(null===a.terminalState||d.includes(String(a.terminalState)))&&c&&"string"==typeof a.synchronizedAt&&C(a.sourceUpdatedAt)&&(null===a.lagMs||"number"==typeof a.lagMs&&Number.isFinite(a.lagMs)&&a.lagMs>=0)}(a.reviewFlowSync)&&C(a.startedAt)&&C(a.completedAt)&&(void 0===a.input||C(a.input))&&D(a.activatedBy)&&C(a.output)&&(null===(c=a.verdict)||null!==(0,s.eh)(c))&&C(a.error)&&(void 0===a.decisionRequested||"boolean"==typeof a.decisionRequested)&&(void 0===(d=a.verdictRecovery)||!(!d||"object"!=typeof d||Array.isArray(d))&&["pending","recovered","exhausted"].includes(String(d.state))&&Number.isInteger(d.checks)&&d.checks>=0&&Number.isInteger(d.maxChecks)&&d.maxChecks>=1&&d.checks<=d.maxChecks&&"string"==typeof d.startedAt&&"string"==typeof d.lastCheckedAt&&C(d.nextCheckAt)&&"string"==typeof d.reason&&d.reason.length>0&&d.reason.length<=1e3&&(null===d.messageTs||"number"==typeof d.messageTs&&Number.isFinite(d.messageTs)&&d.messageTs>=0))&&function(a){if(null==a)return!0;if("object"!=typeof a||Array.isArray(a))return!1;let b=a.role;return"string"==typeof a.boundAt&&"string"==typeof a.stageDigest&&"string"==typeof a.prompt&&C(a.account)&&(null===b||!!(b&&"object"==typeof b&&!Array.isArray(b)&&y.includes(b.roleId)))&&(null===a.sandbox||"full"===a.sandbox||"restricted"===a.sandbox)&&(null===a.outputs||Array.isArray(a.outputs)&&a.outputs.every(a=>"string"==typeof a))}(a.definition)&&(null==(e=a.report)||!("object"!=typeof e||Array.isArray(e))&&Number.isSafeInteger(e.seq)&&e.seq>=1&&"string"==typeof e.at&&G(e.actor)&&null!==(0,s.eh)(e.verdict)&&C(e.summary)&&function(a){if(!a||"object"!=typeof a||Array.isArray(a))return!1;let b=a.pullRequest;return C(a.head)&&"string"==typeof a.branch&&(null===a.uncommitted||Array.isArray(a.uncommitted)&&a.uncommitted.every(a=>"string"==typeof a))&&(null===b||!!(b&&"object"==typeof b&&!Array.isArray(b)&&"string"==typeof b.url&&Number.isSafeInteger(b.number)&&"string"==typeof b.state))&&Array.isArray(a.outputs)&&a.outputs.every(a=>!!(a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.path&&"boolean"==typeof a.present))}(e.provenance)&&Number.isSafeInteger(e.calls)&&e.calls>=1)&&(void 0===(f=a.retiredLaunches)||Array.isArray(f)&&f.length<=50&&f.every(a=>null!==a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.launchId&&a.launchId.length>0&&C(a.conversationId)&&"string"==typeof a.error&&"string"==typeof a.retiredAt))&&(void 0===(g=a.unresolvedTermination)||!(!g||"object"!=typeof g||Array.isArray(g))&&"string"==typeof g.error&&"string"==typeof g.recordedAt&&Array.isArray(g.survivors)&&g.survivors.every(a=>null!==a&&"object"==typeof a&&Number.isSafeInteger(a.pid)&&C(a.startIdentity)&&(void 0===a.bootEpoch||C(a.bootEpoch))))}let F=["add-stage","remove-stage","reorder-stage","set-edge","override-stage"];function G(a){return!!(a&&"object"==typeof a&&!Array.isArray(a)&&("operator"===a.kind||"agent"===a.kind&&C(a.role)&&C(a.conversationId)))}function H(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&Number.isSafeInteger(a.seq)&&a.seq>=1&&"string"==typeof a.at&&G(a.actor)&&"string"==typeof a.stageId&&Number.isSafeInteger(a.attempt)&&a.attempt>=1&&["pass","fail","needs_decision"].includes(String(a.status))&&Number.isSafeInteger(a.findings)&&a.findings>=0&&(null===a.replaces||Number.isSafeInteger(a.replaces)&&a.replaces>=1)&&C(a.summary)}function I(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&Number.isSafeInteger(a.seq)&&a.seq>=1&&"string"==typeof a.at&&G(a.actor)&&F.includes(String(a.action))&&C(a.stageId)&&"string"==typeof a.pipelineState&&("applied"===a.effect||"pending-next-attempt"===a.effect)&&(null===a.appliesFromAttempt||Number.isSafeInteger(a.appliesFromAttempt)&&a.appliesFromAttempt>=1)&&"string"==typeof a.summary}function J(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Array.isArray(a.attempts)&&a.attempts.every(E)}function K(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Number.isInteger(a.attempt)&&C(a.conversationId)&&C(a.agentPath)&&(void 0===a.paneId||C(a.paneId))&&C(a.operationId)&&"string"==typeof a.detail&&"string"==typeof a.at}function L(a){var b;if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.role;if(!("string"==typeof a.id&&("run"===a.kind||"review-loop"===a.kind)&&"string"==typeof a.prompt&&(null===a.next||"string"==typeof a.next)&&(null==(b=a.onFail)||!(!b||"object"!=typeof b||Array.isArray(b))&&"string"==typeof b.to&&Number.isInteger(b.maxRounds)&&b.maxRounds>=1&&b.maxRounds<=q.e7)&&(void 0===c||c&&"object"==typeof c&&!Array.isArray(c)&&y.includes(c.roleId))&&(void 0===a.engine||"claude"===a.engine||"codex"===a.engine)&&(void 0===a.model||null===a.model||"string"==typeof a.model)&&(void 0===a.effort||null===a.effort||"string"==typeof a.effort)&&(void 0===a.access||"read-only"===a.access||"read-write"===a.access)&&(void 0===a.sandbox||"full"===a.sandbox||"restricted"===a.sandbox)&&(void 0===a.outputs||"run"===a.kind&&Array.isArray(a.outputs)&&a.outputs.length>0&&a.outputs.length<=q.Ze&&a.outputs.every((b,c)=>(0,r.k)(b)===b&&a.outputs.indexOf(b)===c))&&B(a.effectiveRole)))return!1;let d=a.effectiveRole,e=void 0===c?null:c.roleId;return(void 0===a.outputs||"read-only"===d.access)&&d.roleId===e&&("review-loop"!==a.kind||"read-only"===d.access)&&(void 0===a.engine||a.engine===d.engine)&&(void 0===a.model||a.model===d.model)&&(void 0===a.effort||a.effort===d.effort)&&(void 0===a.access||a.access===d.access)&&(null!==e||null===d.promptScaffold)&&(null===e||!!d.promptScaffold?.trim())&&!0}function M(a){let b=new Set(a.map(a=>a.id)),c=new Map(a.map(a=>[a.id,a.next]));for(let c of a){if(null!==c.next&&!b.has(c.next))return`stage ${c.id} next must reference an existing stage`;if(c.next===c.id)return`stage ${c.id} pass edge may not target itself`;let a=c.onFail??null;if("review-loop"===c.kind&&a)return`review-loop stage ${c.id} does not support onFail`;if(a&&!b.has(a.to))return`stage ${c.id} onFail must reference an existing stage`;if(a&&(!Number.isInteger(a.maxRounds)||a.maxRounds<1||a.maxRounds>q.e7))return`stage ${c.id} onFail maxRounds must be an integer between 1 and ${q.e7}`}for(let b of a){let d=b.next;for(let e=0;null!==d;e+=1){if(d===b.id||e>a.length)return`pipeline pass edges form a cycle through stage ${b.id}`;d=c.get(d)??null}}for(let b of a)if("review-loop"===b.kind&&!a.some(d=>{if("run"!==d.kind)return!1;let e=d.next;for(let d=0;null!==e&&d<=a.length;d+=1){if(e===b.id)return!0;e=c.get(e)??null}return!1})){let c=a.filter(a=>"run"===a.kind);if(0===c.length)return`review-loop stage ${b.id} is unreachable: the pipeline has no run stage, and a review-loop reviews the session of a run stage that reaches it`;let d=c.findLast(a=>null===a.next)??c.at(-1);return`review-loop stage ${b.id} is unreachable: no run stage's next chain reaches it — set next: "${b.id}" on run stage ${d.id}`}return null}function N(a){var b,c;if(!a||"object"!=typeof a||Array.isArray(a)||!("string"==typeof a.id&&"string"==typeof a.task&&Array.isArray(a.taskIds)&&a.taskIds.every(a=>"string"==typeof a)&&new Set(a.taskIds).size===a.taskIds.length&&(void 0===a.creationIntent||!(!(b=a.creationIntent)||"object"!=typeof b||Array.isArray(b))&&"task-spawn"===b.kind&&"string"==typeof b.taskId&&b.taskId.trim()&&"string"==typeof b.launchId&&b.launchId.trim())&&(void 0===a.spec||"string"==typeof a.spec)&&"string"==typeof a.project&&"string"==typeof a.repoDir&&"string"==typeof a.worktreeDir&&"string"==typeof a.branch&&"string"==typeof a.baseBranch&&"string"==typeof a.baseRef&&"string"==typeof a.lastPassedCommit&&(void 0===a.publication||"internal"===a.publication||"remote-branch"===a.publication)&&(void 0===a.publishedCommit||C(a.publishedCommit))&&Array.isArray(a.stages)&&a.stages.every(L)&&Array.isArray(a.runs)&&a.runs.every(J)&&["draft","provisioning","running","needs_decision","paused","completed","closed"].includes(String(a.state))&&(null===a.pausedState||["provisioning","running","needs_decision","completed","closed"].includes(String(a.pausedState)))&&(void 0===a.pausedAt||C(a.pausedAt))&&(void 0===a.resumedAt||C(a.resumedAt))&&C(a.stateDetail)&&C(a.srcPath)&&C(a.srcConversationId)&&"string"==typeof a.createdAt&&C(a.closedAt)&&(void 0===a.hiddenAt||C(a.hiddenAt))&&(void 0===a.dismissedAt||C(a.dismissedAt))&&(void 0===a.unconfirmedHosts||Array.isArray(a.unconfirmedHosts)&&a.unconfirmedHosts.every(K))&&(void 0===a.terminalReap||!(!(c=a.terminalReap)||"object"!=typeof c||Array.isArray(c))&&Number.isInteger(c.rounds)&&c.rounds>=0&&Number.isInteger(c.stopped)&&c.stopped>=0&&"string"==typeof c.lastAt&&(void 0===c.settledAttempts||Array.isArray(c.settledAttempts)&&c.settledAttempts.every(a=>"string"==typeof a))&&C(c.settledAt))&&(void 0===a.restored||"boolean"==typeof a.restored)&&(void 0===a.graphEdits||Array.isArray(a.graphEdits)&&a.graphEdits.length<=q.tq&&a.graphEdits.every(I))&&(void 0===a.stageReports||Array.isArray(a.stageReports)&&a.stageReports.length<=q.vz&&a.stageReports.every(H))&&(void 0===a.pos||"object"==typeof a.pos&&null!==a.pos&&Number.isFinite(a.pos.x)&&Number.isFinite(a.pos.y))))return!1;let d=a.stages,e=a.runs,f=+("draft"!==a.state);if(d.length<f||d.length>q.IO||e.length!==d.length)return!1;let g=d.map(a=>a.id);if(new Set(g).size!==g.length||null!==M(d)||e.some((a,b)=>a.stageId!==d[b].id))return!1;let h=i().join(i().dirname(a.repoDir),`${i().basename(a.repoDir)}-pipeline-${a.id}`);if(a.worktreeDir!==h||a.branch!==`pipeline/${ao(a.task)}-${a.id}`)return!1;let j=a.cursor;if(null!==j&&(!j||"object"!=typeof j||!g.includes(j.stageId)||!["pending","spawning","running","reviewing","committing"].includes(j.state)||!(void 0===j.input||C(j.input))||!D(j.activatedBy)||null!=j.activatedBy&&!g.includes(j.activatedBy.stageId))||("completed"===a.state||"closed"===a.state)&&null!==j)return!1;if("draft"===a.state){if(0===d.length){if(null!==j)return!1}else if(j?.stageId!==d[0].id||"pending"!==j.state)return!1;if(e.some(a=>a.attempts.length>0))return!1;let b=!a.baseBranch&&!a.baseRef&&!a.lastPassedCommit,c=!!(a.baseBranch&&/^[0-9a-f]{40}$/i.test(a.baseRef)&&a.lastPassedCommit===a.baseRef);if(!b&&!c||a.closedAt)return!1}return!0}function O(){return Z().snapshot()}function P(){let a=(0,p.M)(x(),["pipelines","pipelines_archive"]),b=a.get("pipelines"),c=a.get("pipelines_archive");if(null===b!=(null===c))throw new z("pipeline startup collections are incomplete");let d=null===b&&null===c?[...Q(v(),!1,!0),...Q(w(),!1,!0)]:[...b??[],...c??[]];if(!d.every(N))throw new z("pipeline registry contains malformed records");if(new Set(d.map(a=>a.id)).size!==d.length)throw new z("pipeline startup records have contradictory identities");return d.map(S)}function Q(a,b,c=!1){let d=function(a){try{return JSON.parse(g().readFileSync(a,"utf8"))}catch(b){if("ENOENT"===b.code)return;throw new z(`could not read pipeline registry: ${a}`,{cause:b})}}(a);if(void 0===d||null===d&&!c)return[];if(!d||"object"!=typeof d||Array.isArray(d)){if(b)return[];throw new z("pipeline registry must be an object")}if("number"!=typeof d.schemaVersion||!u.has(d.schemaVersion)){if(b)return[];throw new z(`unsupported pipeline registry schema: ${String(d.schemaVersion)}`)}if(!Array.isArray(d.pipelines)){if(b)return[];throw new z("pipeline registry contains malformed records")}let e=d.pipelines.map(a=>{var b,c,e;let f;return f=2===(b=d.schemaVersion)?function(a){if(!a||"object"!=typeof a||Array.isArray(a))return a;let b=Array.isArray(a.stages)?a.stages.map(a=>a&&"object"==typeof a?{onFail:null,...a}:a):a.stages,c=Array.isArray(a.runs)?a.runs.map(a=>a&&"object"==typeof a&&Array.isArray(a.attempts)?{...a,attempts:a.attempts.map(a=>a&&"object"==typeof a?{input:null,activatedBy:null,...a}:a)}:a):a.runs,d=a.cursor&&"object"==typeof a.cursor?{input:null,activatedBy:null,...a.cursor}:a.cursor,e={...a,stages:b,runs:c,cursor:d};if("draft"===e.state&&Array.isArray(e.stages)&&0===e.stages.length){let a={id:"implement",kind:"run",prompt:"{{task}}",next:null,onFail:null,effectiveRole:{roleId:null,engine:"claude",model:null,effort:null,access:"read-write",promptScaffold:null}};e.stages=[a],e.runs=[{stageId:a.id,attempts:[]}],e.cursor={stageId:a.id,state:"pending",input:null,activatedBy:null}}return e}(a):a,b<4&&(f=!(c=f)||"object"!=typeof c||Array.isArray(c)?c:{taskIds:[],...c}),b<5&&(f=!(e=f)||"object"!=typeof e||Array.isArray(e)?e:Array.isArray(e.stages)?{...e,stages:e.stages.map(a=>!a||"object"!=typeof a||Array.isArray(a)?a:"review-loop"===a.kind?{...a,onFail:null}:a)}:e),f});if(!b&&!e.every(N))throw new z("pipeline registry contains malformed records");let f=b?e.filter(N):e;return b&&f.length!==e.length&&console.error(`[pipelines] skipped ${e.length-f.length} malformed archived pipeline record(s)`),f.map(S)}function R(){let a=Q(v(),!1),b=Q(w(),!0);return{pipelines:{records:a.length,keys:a.map(a=>a.id)},archive:{records:b.length,keys:b.map(a=>a.id)}}}function S(a){let b=a.terminalReap?.settledAttempts??(a.terminalReap?.settledAt?a.runs.flatMap(a=>a.attempts.filter(a=>!!(a.verdict||a.completedAt)).map(b=>`${a.stageId}:${b.n}`)):[]);return{...a,project:(0,k.G$)(a.project),taskIds:[...a.taskIds],creationIntent:a.creationIntent?{...a.creationIntent}:void 0,spec:"string"==typeof a.spec?a.spec:void 0,baseBranch:a.baseBranch??"",baseRef:a.baseRef??"",lastPassedCommit:a.lastPassedCommit??"",publishedCommit:a.publishedCommit??null,pausedState:a.pausedState??null,stateDetail:a.stateDetail??null,srcPath:a.srcPath??null,srcConversationId:a.srcConversationId??null,closedAt:a.closedAt??null,hiddenAt:a.hiddenAt??null,unconfirmedHosts:a.unconfirmedHosts?.length?a.unconfirmedHosts.map(a=>({...a})):void 0,terminalReap:a.terminalReap?{...a.terminalReap,settledAttempts:[...b]}:void 0,restored:void 0,stages:a.stages.map(a=>({...a,onFail:a.onFail??null})),cursor:a.cursor?{...a.cursor,input:a.cursor.input??null,activatedBy:a.cursor.activatedBy??null}:null,runs:a.runs.map(a=>({...a,attempts:Array.isArray(a.attempts)?a.attempts.map(a=>({...a,launchId:a.launchId??null,conversationId:a.conversationId??null,sessionId:a.sessionId??null,agentPath:a.agentPath??null,paneId:a.paneId??null,...a.usageLimitedAccounts?{usageLimitedAccounts:a.usageLimitedAccounts.map(a=>({...a}))}:{},flowId:a.flowId??null,expectedReviewHeadSha:a.expectedReviewHeadSha??null,reviewHeadSha:a.reviewHeadSha??null,reviewFlowSync:a.reviewFlowSync?{...a.reviewFlowSync}:void 0,startedAt:a.startedAt??null,completedAt:a.completedAt??null,input:a.input??null,activatedBy:a.activatedBy??null,output:a.output??null,verdict:a.verdict??null,error:a.error??null,verdictRecovery:a.verdictRecovery?{...a.verdictRecovery}:void 0,...a.retiredLaunches?{retiredLaunches:a.retiredLaunches.map(a=>({...a}))}:{},unresolvedTermination:a.unresolvedTermination?{...a.unresolvedTermination,survivors:a.unresolvedTermination.survivors.map(a=>({...a}))}:void 0})):[]}))}}let T=null,U=new Map;function V(a){if(!N(a))throw new z("pipeline registry contains malformed records");return S(a)}function W(a){return"closed"===a.state?!!a.unconfirmedHosts?.length:"completed"!==a.state||!!a.unconfirmedHosts?.length||!a.terminalReap?.settledAt}function X(){return[{collection:"pipelines",schemaVersion:t,migrationId:"pipelines-json-v1",loadRecords:()=>Q(v(),!1),key:a=>a.id,controllerActive:W},{collection:"pipelines_archive",schemaVersion:t,migrationId:"pipelines-archive-json-v1",loadRecords:()=>Q(w(),!0),key:a=>a.id,controllerActive:()=>!1}]}function Y(){let a=x(),b=U.get(a);if(b)return b;(0,p.t0)(a,X());let c={schemaVersion:t,busyMessage:"pipeline state is busy",key:a=>a.id,decode:V,clone:S,decodeError:a=>a instanceof z?a:new z("pipeline registry contains malformed records",{cause:a}),validate:a=>{if(!N(a))throw new z("refusing to persist a malformed pipeline record")}},d={active:new p.UY(a,{...c,collection:"pipelines",controllerActive:W,strictDecode:!0}),archive:new p.UY(a,{...c,collection:"pipelines_archive",onDecodeError:a=>console.error("[pipelines] skipped malformed archived SQLite row",a)})};return U.set(a,d),d}function Z(){return Y().active}function $(){return Y().archive}function _(){return Z().signature()}function aa(){let a=_();if(T?.signature===a)return T.pipelines;let b=[...Z().loadReadonly()],c=_();return a===c&&(T={signature:c,pipelines:b}),b}function ab(){return aa().map(S)}function ac(){return aa()}function ad(){let a=Number(process.env.LLV_PIPELINE_LOCK_WAIT_MS);return Number.isFinite(a)&&a>=0?a:3e4}async function ae(a){return(0,o.aO)(b=>Z().mutate((c,d)=>(b(),a(c,d)),void 0,!1,ad()))}async function af(a){return Z().mutate(a,void 0,!0)}async function ag(a){let b=!1;try{return P(),await ae(()=>(b=!0,a(!0)))}catch(c){if(b)throw c;return a(!1)}}function ah(a){Z().replaceSync(a)}function ai(){return $().snapshot()}async function aj(a=Date.now(),b={}){return Z().moveMatchingTo($(),b=>(function(a,b){let c=a.closedAt??("draft"===a.state?a.hiddenAt:null);if(!c)return!1;let d=Date.parse(c);return Number.isFinite(d)&&b-d>2592e5})(b,a),b)}function ak(){let{active:a,archive:b}=Y();return{pipelines:a.checkpointMirrorForDemotion((a,b)=>{A(v(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})}),pipelinesArchive:b.checkpointMirrorForDemotion((a,b)=>{A(w(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})})}}async function al(){let{active:a,archive:b}=Y();return{pipelines:await a.checkpointMirrorForDemotionAsync((a,b)=>{A(v(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})}),pipelinesArchive:await b.checkpointMirrorForDemotionAsync((a,b)=>{A(w(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})})}}function am(a){return O().find(b=>b.id===a)??ai().find(b=>b.id===a)??null}function an(a,b,c,d={}){let e=new Map(c.map(a=>[a.id,a]));for(let c of b){let b=e.get(c);if(!b){if(d.allowMissing)continue;return`task not found: ${c}`}if(b.project!==a.project)return`task project does not match pipeline project: ${c}`}return null}function ao(a){return a.toLowerCase().replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"").slice(0,40).replace(/-+$/,"")||"task"}function ap(a,b,c){let d=i().basename(c);return{worktreeDir:i().join(i().dirname(c),`${d}-pipeline-${a}`),branch:`pipeline/${ao(b)}-${a}`}}function aq(a){let b=ap(a.id,a.task,a.repoDir);return{id:a.id,task:a.task,taskIds:[...new Set(a.taskIds??[])],...a.creationIntent?{creationIntent:{...a.creationIntent}}:{},...a.spec?{spec:a.spec}:{},project:a.project,repoDir:a.repoDir,...b,baseBranch:"",baseRef:"",lastPassedCommit:"",...a.publication?{publication:a.publication}:{},publishedCommit:null,stages:JSON.parse(JSON.stringify(a.stages)).map(a=>({...a,onFail:a.onFail??null})),runs:a.stages.map(a=>({stageId:a.id,attempts:[]})),cursor:a.stages.length?{stageId:a.stages[0].id,state:"pending",input:null,activatedBy:null}:null,state:a.state??"provisioning",pausedState:null,stateDetail:null,srcPath:a.srcPath,srcConversationId:a.srcConversationId,createdAt:a.now,closedAt:null,hiddenAt:null}}function ar(a){return i().join((0,j.BQ)("pipelines"),a)}},22371:(a,b,c)=>{c.d(b,{le:()=>o,pQ:()=>u,e3:()=>v});var d=c(73024),e=c.n(d);c(76760);var f=c(27146),g=c(22619),h=c(51888),i=c(49048),j=c(44443);let k=["orchestrator","reviewer","verifier","builder","architect","cleaner","prod-auditor","deployer"],l=["frontend","apply-fixes"],m=[1,2],n={frontend:j.C,"apply-fixes":j.i},o=12e3;class p extends Error{constructor(a,b){super(a,b),this.name="RoleStoreError"}}let q=()=>(0,f.BQ)("role-presets.json");function r(a){if(!a||"object"!=typeof a||Array.isArray(a)||Object.keys(a).some(a=>"engine"!==a&&"model"!==a&&"effort"!==a))return!1;let{engine:b,model:c,effort:d}=a;return(void 0===b||"claude"===b||"codex"===b)&&(void 0===c||"string"==typeof c&&!(c.length>128))&&(void 0===d||"string"==typeof d&&!(d.length>32))}function s(a,b){if(b.model.length>128||/[\u0000-\u001f\u007f]/.test(b.model)||"claude"===b.engine&&!(0,h.OV)(b.model)||"codex"===b.engine&&!b.model.startsWith("gpt-"))return!1;let c=(0,g.ve)(b.engine,b.model);if(!c.includes(b.effort))throw new p(`invalid role override: ${a}; effort for ${b.engine}/${b.model} must be one of: ${c.join(", ")}`);return!0}function t(a){return i.W.map(b=>{let c=a[b.id];return{...b,config:{...b.config,...c?.config},promptScaffold:c?.promptScaffold??b.promptScaffold,..."builder"===b.id?{variants:{frontend:{...n.frontend,...c?.variants?.frontend},"apply-fixes":{...n["apply-fixes"],...c?.variants?.["apply-fixes"]}}}:{}}})}function u(){return t(function(){let a,b;try{a=e().readFileSync(q(),"utf8")}catch(a){if("ENOENT"===a.code)return{schemaVersion:1,overrides:{}};throw new p(`could not read role override registry: ${q()}`,{cause:a})}try{b=JSON.parse(a)}catch(a){throw new p("role override registry contains malformed JSON",{cause:a})}if(!m.includes(b.schemaVersion))throw new p(`unsupported role override schema: ${String(b.schemaVersion)}`);if(!b.overrides||"object"!=typeof b.overrides||Array.isArray(b.overrides))throw new p("role override registry must contain an overrides object");let c={};for(let[a,d]of Object.entries(b.overrides)){if(!("string"==typeof a&&k.includes(a))||!function(a){if(!a||"object"!=typeof a||Array.isArray(a)||Object.keys(a).some(a=>"config"!==a&&"promptScaffold"!==a&&"variants"!==a)||void 0!==a.promptScaffold&&("string"!=typeof a.promptScaffold||a.promptScaffold.length>o)||void 0!==a.config&&!r(a.config))return!1;if(void 0!==a.variants){if(!a.variants||"object"!=typeof a.variants||Array.isArray(a.variants))return!1;for(let[b,c]of Object.entries(a.variants))if(!l.includes(b)||!r(c))return!1}return!0}(d)||!function(a,b){let c=i.W.find(b=>b.id===a);return!!s(a,{...c.config,...b.config})&&(void 0===b.variants||"builder"===a&&Object.entries(b.variants).every(([b,c])=>s(`${a}.${b}`,{...n[b],...c})))}(a,d))throw new p(`invalid role override: ${a}`);c[a]=d}return{schemaVersion:Object.values(c).some(a=>a?.variants!==void 0)?2:1,overrides:c}}().overrides)}function v(){try{return u()}catch(a){return console.warn("[roles] override registry unreadable; falling back to built-in defaults",a),t({})}}},22619:(a,b,c)=>{c.d(b,{BL:()=>k,ck:()=>g,ve:()=>j});let d=["low","medium","high","xhigh","max"],e=["low","medium","high","xhigh"],f=["minimal","low","medium","high","xhigh","max","ultra"];function g(a){return f.includes(a)}let h=[[/^gpt-6-astra\b/,["low","medium","high","xhigh","max","ultra"]],[/^gpt-5\.6-(sol|terra)\b/,["low","medium","high","xhigh","max","ultra"]],[/^gpt-5\.6\b/,["low","medium","high","xhigh","max"]]],i=["off","minimal","low","medium","high","xhigh","max"];function j(a,b){if("claude"===a)return d;if("openclaw"===a)return i;if("codex"!==a)return null;let c=(b??"").trim().toLowerCase();for(let[a,b]of h)if(a.test(c))return b;return e}function k(a,b){let c="string"==typeof b.effort?b.effort.trim():"",d=j(a,"string"==typeof b.model?b.model:null);return c&&!d.includes(c)?{effort:null,fast:null,error:`effort for ${a} must be one of: ${d.join(", ")}`}:{effort:c||null,fast:"codex"===a&&"boolean"==typeof b.fast?b.fast:null}}},44443:(a,b,c)=>{c.d(b,{C:()=>d,i:()=>e});let d={engine:"claude",model:"opus",effort:"high"},e={engine:"codex",model:"gpt-5.6-terra",effort:"low"}},49048:(a,b,c)=>{c.d(b,{W:()=>j});var d=c(51888);let e=["Read-only mode: edits, staging, commits, pushes, service restarts, and GitHub comments are prohibited.","Every finding carries file:line evidence. Clean work earns a clear NO FINDINGS verdict."],f="Three standing rules. (1) Anchor the frame: when the assignment carries the requester's originating requirement, validate the work against that verbatim requirement, never against the artifact's previous revision — WRONG-PREMISE (\"this does not serve the original requirement\") is an expected verdict and outranks any finding about internal rigour. (2) Over-engineering pass: on every review, flag machinery heavier than the problem it solves (a library plus wrapper where a native primitive does), name the simpler mechanism, and report what to cut — OVER-BUILT is a first-class verdict, and a round that only removes scope is a successful round. (3) Rendered surfaces are part of correctness: when the diff touches UI (components, styles, layout), the review covers the rendered result and the code alike. Check that the author's rendered evidence reaches every surface and every viewport the requirement names; evidence that skips a named surface is REQUEST_CHANGES on its own. Where that evidence is missing and a harness exists, render from an export of the reviewed HEAD — never the live worktree, never the operator's Viewer — and report overflow, clipped or zero-width controls, overlap and unreadable states as severity-ranked findings carrying the viewport and the measured numbers.",g="Before deciding, and whenever a problem or unknown appears, ask whether it was solved before: run a few search_transcripts queries in different phrasings (project-scoped, then unscoped), read any hit through conversation_messages at its transcript path, cite what you found or say nothing relevant existed, and check an old answer against current main before building on it.",h="Decide yourself whatever the code, the running system or one cheap observation can settle; never ask the operator what you can find out. Stop and ask when the work rests on a fact you could not confirm (an external API's shape, a service's behaviour, access you lack, a rate limit that blocks the check) or on a requirement that reads two ways and changes what gets built: report needs_decision saying in two or three plain sentences what you tried, what you could not confirm and what the options are. Never finish on a guess and mention the gap in passing.",i="Process cleanup: stop only the processes you started yourself, each by the PID you recorded when you started it. Never stop anything by port, name or pattern — no fuser -k, no lsof piped into kill, no pkill, no killall — because a match can be the operator's own long-running process. A port that is already in use is a reason to pick another port, never a reason to free it; a probe or stub server binds port 0 and reads the assigned port back.",j=[{id:"orchestrator",name:"Orchestrator",description:"Coordinates fresh agents through the Viewer control plane.",config:{engine:"claude",model:"opus",effort:"high"},parameters:[{key:"mode",label:"Mode",description:"Operating mode for the coordination run.",kind:"select",options:["standard","plan-tickets","wayfind","backlog-campaign"]},{key:"repo",label:"Repository",description:"Repository for backlog-campaign mode.",kind:"text"},{key:"issueQuery",label:"Issue query",description:"GitHub issue query for backlog-campaign mode.",kind:"text"},{key:"urgent",label:"Urgent list",description:"Comma-separated urgent issue ids.",kind:"text"},{key:"maxWorkers",label:"Maximum workers",description:"Worker cap for backlog-campaign mode.",kind:"integer",default:3,min:1,max:20},{key:"mergePolicy",label:"Merge policy",description:"Delivery policy for backlog-campaign mode.",kind:"select",options:["pr","merge"]},{key:"completionPolicy",label:"Completion policy",description:"Terminal policy for backlog-campaign mode.",kind:"select",options:["pr-opened","merged","released"]}],promptScaffold:`You are the Orchestrator. Drive work through the production Viewer MCP tools. Use fresh empty sessions with src lineage; forks are disabled. Keep every worker visible and controllable in the Viewer.
2
2
 
3
3
  Mode: {{mode}}
4
4
  Repository: {{repo}}
@@ -0,0 +1 @@
1
+ "use strict";exports.id=8330,exports.ids=[8330],exports.modules={8330:a=>{a.exports=JSON.parse('{"name":"agent-log-viewer","version":"1.2.2","bin":{"agent-log-viewer":"bin/cli.mjs","agent-log-viewer-mcp":"bin/mcp-server.mjs"},"exports":{"./mcp-server":"./bin/mcp-server.mjs","./package.json":"./package.json"},"files":["bin","dist","vendor"],"engines":{"node":">=20.9.0","bun":">=1.4.0"},"os":["linux","darwin","win32"],"scripts":{"dev":"NODE_ENV=development bun --bun node_modules/.bin/next dev --webpack --hostname 127.0.0.1","build":"next build --webpack && bun run build:mcp","build:mcp":"bun scripts/build-mcp.ts","demo:capture":"bun scripts/demo-capture.ts","deploy:staging":"bun scripts/deploy-staging.ts","bootstrap:runtime-host":"bun scripts/bootstrap-runtime-host.ts","demo:motion":"bun scripts/demo-motion.ts","start":"bun --bun node_modules/.bin/next start","lint":"eslint","prepack":"node scripts/prepack.mjs","privacy:check":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json LLV_PRIVACY_OCR_LANGUAGES=eng+ukr bun scripts/privacy-publication-gate.ts --require-known-values --check-commits --base origin/main","privacy:fingerprints":"bun scripts/generate-privacy-known-value-fingerprints.ts","privacy:github-audit":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json bun scripts/privacy-github-audit.ts","privacy:placeholders":"bun scripts/generate-privacy-placeholders.ts","telegram:provision":"node bin/provision-telegram-connector.mjs","test":"bun test"},"dependencies":{"@modelcontextprotocol/sdk":"1.30.0","entities":"^8.0.0","highlight.js":"^11.11.1","lucide-react":"^1.23.0","next":"16.3.3","pdfjs-dist":"^6.2.108","qrcode":"^1.5.4","qrcode-terminal":"^0.12.0","react":"19.2.8","react-dom":"19.2.8","zod":"4.4.3"},"devDependencies":{"@tailwindcss/postcss":"^4","@types/bun":"^1.3.14","@types/node":"^26","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","eslint":"^10","eslint-config-next":"16.3.2","happy-dom":"^20.10.6","playwright-core":"1.62.1","tailwindcss":"^4","typescript":"^5"},"ignoreScripts":["sharp","unrs-resolver"],"trustedDependencies":["sharp","unrs-resolver"],"description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","repository":{"type":"git","url":"git+https://github.com/Latand/live-log-viewer-next.git"},"license":"MIT","overrides":{"fast-uri":"^3.1.6"},"patchedDependencies":{"next@16.3.3":"patches/next-16.3.3.patch"}}')}};
@@ -1 +1 @@
1
- "use strict";exports.id=8444,exports.ids=[8444],exports.modules={12136:(a,b,c)=>{c.d(b,{Lr:()=>d,zf:()=>f});let d={setTimeout:(a,b)=>setTimeout(a,b),clearTimeout:a=>{clearTimeout(a)}};class e extends Error{constructor(a,b){super(a),this.name="DeadlineExceededError",this.timeoutMs=b}}function f(a){return a instanceof e||"object"==typeof a&&null!==a&&"AbortError"===a.name}},58444:(a,b,c)=>{c.d(b,{Nm:()=>D,TF:()=>v});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(842),l=c(28976),m=c(81458),n=c(90136),o=c(87323);let p="files-scan-snapshot.json",q=-1/0,r=globalThis;function s(a){return"object"==typeof a&&null!==a}function t(a){if(!s(a)||!0!==a.complete||!Array.isArray(a.files)||!Array.isArray(a.projectCatalog))return!1;let b=a.files.every(a=>{var b;return!!s(a)&&"string"==typeof a.path&&("codex-sessions"===a.root||"claude-projects"===a.root||"claude-tasks"===a.root||"openclaw-sessions"===a.root)&&"string"==typeof a.name&&"string"==typeof a.project&&"string"==typeof a.title&&("codex"===a.engine||"claude"===a.engine||"shell"===a.engine||"openclaw"===a.engine)&&"string"==typeof a.kind&&("codex"===a.fmt||"claude"===a.fmt||"plain"===a.fmt||"openclaw"===a.fmt)&&(null===a.parent||"string"==typeof a.parent)&&"number"==typeof a.mtime&&Number.isFinite(a.mtime)&&"number"==typeof a.size&&Number.isFinite(a.size)&&(void 0===a.sessionStartedAt||null===a.sessionStartedAt||"string"==typeof a.sessionStartedAt)&&(void 0===a.nativeParentThreadId||null===a.nativeParentThreadId||"string"==typeof a.nativeParentThreadId)&&(void 0===a.nativeForkSourceThreadId||null===a.nativeForkSourceThreadId||"string"==typeof a.nativeForkSourceThreadId)&&("live"===a.activity||"recent"===a.activity||"stalled"===a.activity||"idle"===a.activity)&&(void 0===a.authoritativeTurn||!!s(b=a.authoritativeTurn)&&("busy"===b.state||"terminal"===b.state||"idle"===b.state||"unknown"===b.state)&&("lifecycle"===b.source||"tool"===b.source||"assistant"===b.source||"empty"===b.source)&&(null===b.terminalAt||"string"==typeof b.terminalAt))&&(null===a.proc||"running"===a.proc||"done"===a.proc||"killed"===a.proc)&&(null===a.pid||"number"==typeof a.pid)&&(null===a.model||"string"==typeof a.model)&&(null===a.pendingQuestion||s(a.pendingQuestion))&&(null===a.waitingInput||s(a.waitingInput))}),c=a.projectCatalog.every(a=>s(a)&&"string"==typeof a.project&&"number"==typeof a.smt&&Number.isFinite(a.smt)&&"number"==typeof a.conversations&&Number.isSafeInteger(a.conversations)&&(void 0===a.projectRoot||"string"==typeof a.projectRoot));return b&&c}function u(){try{let a=JSON.parse(g().readFileSync((0,j.BQ)(p),"utf8"));if(!s(a)||1!==a.version||11!==a.schemaVersion||!t(a.snapshot))return;return a.snapshot}catch{return}}function v(){return u()}function w(a){return s(a)&&"promise"in a?w(a.promise):s(a)&&"function"==typeof a.then?Promise.resolve(a):void 0}function x(a,b,c,d=c,e=new AbortController){let f={generation:b,promise:c,resourcePromise:d,controller:e,subscribers:0,settled:!1};a.refresh=f;let g=()=>{f.settled=!0,a.refresh===f&&(a.refresh=void 0)};return c.then(g,g),f}function y(a){return a instanceof Error&&"AbortError"===a.name?a:new DOMException("file scan cancelled","AbortError")}async function z(a,b,c,d){let e=performance.now();try{let f=await d();return a.lastScan={generation:b,reason:c,status:"complete",durationMs:performance.now()-e},f}catch(d){throw a.lastScan={generation:b,reason:c,status:"failed",durationMs:performance.now()-e},d}}function A(a,b,c,d,f){let h=void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration,k="ordinary"===c||"cold"===c;return z(a,b,c,async()=>{let c=await (0,o.uh)({fresh:h,join:k,signal:f},(b,c)=>(function(...a){return o.KZ(...a)})(b,{persistIndex:"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER,...d?{onResourceSnapshot:d,resourceBaseline:a.snapshot}:{}},c));if(!c.complete)throw Error("filesystem scan incomplete");return"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER&&function(a){let b,c="create state directory",d=(0,j.BQ)(p);try{let f=(0,j.BQ)(p);d=f,g().mkdirSync(i().dirname(f),{recursive:!0,mode:448}),b=i().join(i().dirname(f),`.${i().basename(f)}.${process.pid}.${e().randomUUID()}.tmp`),c="write temporary snapshot",d=b,g().writeFileSync(b,JSON.stringify({version:1,schemaVersion:11,snapshot:a})+"\n",{encoding:"utf8",mode:384}),c="rename temporary snapshot",d=f,g().renameSync(b,f)}catch(e){if(void 0!==b)try{g().unlinkSync(b)}catch{}let a=Date.now();if(a-q>=6e4){q=a;let b=e instanceof Error?`${e.message}${"code"in e&&e.code?` (${String(e.code)})`:""}`:String(e);console.error(`[files scan cache] ${c} failed for ${d}: ${b}; a later refresh will retry`)}}}(c),a.snapshot=c,a.snapshotGeneration=Math.max(a.snapshotGeneration,b),a.refreshedAt=Date.now(),a.completedAt=a.refreshedAt,h&&void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration&&(a.freshObservationGeneration=void 0),c})}function B(a,b,c,d){let e=performance.now(),f=b?function(a,b){let c=a.pinnedSnapshots?.get(b);if(c)return a.pinnedSnapshots.delete(b),a.pinnedSnapshots.set(b,c),c}(a,b):void 0;if(f){let b=structuredClone({snapshot:f.snapshot,pinOverlayPaths:f.pinOverlayPaths,generation:f.generation,targetGeneration:c});return{...b,cacheStatus:d??(b.generation<c?"stale":"hit"),requestCount:a.requestCount??0,cloneDurationMs:performance.now()-e,refreshedAt:f.refreshedAt,...a.lastScan?{lastScan:{...a.lastScan}}:{}}}return{snapshot:structuredClone(a.snapshot),generation:a.snapshotGeneration,targetGeneration:c,cacheStatus:d??(a.snapshotGeneration<c?"stale":"hit"),requestCount:a.requestCount??0,cloneDurationMs:performance.now()-e,refreshedAt:a.completedAt??a.refreshedAt,...a.lastScan?{lastScan:{...a.lastScan}}:{}}}function C(a){return a.requestedGeneration+=1,a.requestedGeneration}async function D({revalidate:a=!0,signal:b}={}){let c,d,e=function(){let a=(r.__llvFilesRouteScans??=new Map,r.__llvFilesRouteScans),b=a.get("");if(void 0===b){let b=u();b&&function(a){for(let c of((0,m.X$)(a.files),a.files)){var b;let a;if(!0!==c.derivationComplete)continue;try{a=g().statSync(c.path)}catch{continue}if(a.size!==c.size||a.mtimeMs/1e3!==c.mtime)continue;let d=1e3*c.mtime,e=function(a){if("jsonl_turn_open"===a.activityReason||"jsonl_turn_stalled"===a.activityReason||"pane_at_composer"===a.activityReason)return{state:"busy",source:"lifecycle",terminalAt:null};if("jsonl_turn_completed"===a.activityReason){let b=a.lastTurn?.endedAt;return{state:"terminal",source:"lifecycle",terminalAt:"number"==typeof b&&Number.isFinite(b)?new Date(b).toISOString():null}}if("mtime_fresh"===a.activityReason||"mtime_recent"===a.activityReason||"mtime_old"===a.activityReason)return{state:"unknown",source:"empty",terminalAt:null}}(c);if(void 0!==e&&c.path.endsWith(".jsonl")&&("claude"===(b=c.engine)||"codex"===b||"openclaw"===b)){let a=c.engine;(0,k.Ul)(c.path,c.size,d,a,e,{authoritative:!1,composerReleased:"pane_at_composer"===c.activityReason}),c.authoritativeTurn?(0,k.Ul)(c.path,c.size,d,a,c.authoritativeTurn,{composerReleased:"pane_at_composer"===c.activityReason}):("claude"!==a||"terminal"!==e.state)&&(0,k.Ul)(c.path,c.size,d,a,e,{composerReleased:"pane_at_composer"===c.activityReason})}"claude-projects"===c.root&&c.path.includes(`${i().sep}subagents${i().sep}`)||(0,l.E)("model").set(c.path,[c.size,d,{display:c.model,launch:c.launchModel??null}]),Object.hasOwn(c,"effort")&&("claude"!==c.engine||"running"!==c.proc)&&(0,l.E)("effort").set(c.path,[c.size,d,c.effort??null]),Object.hasOwn(c,"plan")&&(0,l.E)("plan-v2").set(c.path,[c.size,d,c.plan]),Object.hasOwn(c,"goal")&&(0,l.E)("goal-v2").set(c.path,[c.size,d,c.goal]),Object.hasOwn(c,"ctx")&&(0,l.E)("ctx-v2").set(c.path,[c.size,d,c.ctx]),Object.hasOwn(c,"lastTurn")&&(0,l.E)("last-turn-v5").set(c.path,[c.size,d,c.lastTurn]),Object.hasOwn(c,"pendingWakeup")&&(0,l.E)("wakeup-v2").set(c.path,[c.size,d,c.pendingWakeup]),"claude-projects"===c.root&&c.path.endsWith(".jsonl")&&(0,l.E)(n.oS).set(c.path,[c.size,d,function(a){if(!a.pendingQuestion)return null;let{pid:b,paneTarget:c,...d}=a.pendingQuestion;return d}(c)])}}(b);let c={schemaVersion:11,snapshot:b,snapshotGeneration:0,requestedGeneration:0,refreshedAt:0,completedAt:b?function(){try{return g().statSync((0,j.BQ)(p)).mtimeMs}catch{return 0}}():0};return a.set("",c),c}let c=function(a){if(s(a)&&11===a.schemaVersion&&Number.isSafeInteger(a.snapshotGeneration)&&Number.isSafeInteger(a.requestedGeneration)){let b=w(a.refresh);return!b||a.refresh?.controller&&Number.isSafeInteger(a.refresh.subscribers)||x(a,a.refresh?.generation??0,b),a}let b=s(a)?a:{},c={schemaVersion:11,snapshot:t(b.snapshot)?b.snapshot:void 0,snapshotGeneration:0,requestedGeneration:0,refreshedAt:"number"==typeof b.refreshedAt&&Number.isFinite(b.refreshedAt)?b.refreshedAt:0,completedAt:"number"==typeof b.completedAt&&Number.isFinite(b.completedAt)?b.completedAt:"number"==typeof b.refreshedAt&&Number.isFinite(b.refreshedAt)?b.refreshedAt:0},d=w(b.refresh);if(d){let a=d.then(a=>{if(!a.complete)throw Error("filesystem scan incomplete");return c.snapshot=a,c.refreshedAt=Date.now(),c.completedAt=c.refreshedAt,a});x(c,0,a)}return c}(b);return a.delete(""),a.set("",c),c}();if(e.requestCount=(e.requestCount??0)+1,e.snapshot){let b=Date.now();if(a&&!e.refresh&&b-Math.max(e.refreshedAt,e.ordinaryRefreshRequestedAt??0)>=3e5){let a,c,d,f,g=C(e);e.ordinaryRefreshRequestedAt=b,a=!1,c=!1,d=new AbortController,f=new Promise(a=>setImmediate(a)).then(()=>{if(a=!0,d.signal.aborted)throw y(d.signal.reason);if(c){if(!e.snapshot)throw Error("deferred file scan canceled without a completed snapshot");return e.snapshot}return A(e,g,"ordinary",void 0,d.signal)}),x(e,g,f,f,d).cancelBeforeStart=()=>!a&&(c=!0,!0)}return B(e,void 0,e.snapshotGeneration)}let f=e.refresh?.generation??C(e),h=e.refresh??(d=A(e,f,"cold",void 0,(c=new AbortController).signal),x(e,f,d,d,c));return await (b?.aborted?Promise.reject(y(b.reason)):(h.subscribers+=1,new Promise((a,c)=>{let d=!0,e=()=>{d&&(d=!1,b?.removeEventListener("abort",f),h.subscribers-=1,0!==h.subscribers||h.settled||h.controller.abort(y()))},f=()=>{e(),c(y(b?.reason))};b?.addEventListener("abort",f,{once:!0}),h.promise.then(b=>{d&&(e(),a(b))},a=>{d&&(e(),c(a))})}))),B(e,void 0,f,"miss")}},87323:(a,b,c)=>{c.d(b,{wj:()=>w,uh:()=>v,KZ:()=>r});var d=c(66324),e=c(31421),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(12136),k=c(10991),l=c(65281),m=c(55218);function n(){return new DOMException("file scan cancelled","AbortError")}function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function p(a=process.cwd()){let b=i().join(a,"src/lib/fileScanner.worker.ts"),c=i().join(a,".next/server/file-scanner-worker.js");return g().existsSync(b)&&g().existsSync("/usr/local/bin/bun-container")?{executable:"/usr/local/bin/bun-container",workerPath:b}:g().existsSync(c)?{executable:process.versions.bun?process.execPath:process.env.LLV_BUN_EXECUTABLE||"bun",workerPath:c}:g().existsSync(b)?{executable:process.execPath,workerPath:b}:null}let q=globalThis;function r(a,b={},c=new AbortController().signal){let f={...b,persist:a.persist,...a.fresh?{fresh:!0}:{}};if(c.aborted)return Promise.reject(t(c.reason));if(!function(a=process.env){return"test"!==a.NODE_ENV&&"1"!==a.LLV_FILE_SCANNER_WORKER&&"1"!==a.LLV_FILE_SCANNER_WORKER_DISABLED}()||null===p())return(0,d.SW)(void 0,{...f,signal:c}).then(a=>{if(c.aborted)throw t(c.reason);return a});let{onResourceSnapshot:h,...i}=f;return function(a,b,c={}){if(c.signal?.aborted)return Promise.reject(n());let d=c.launch??p(c.cwd);if(!d)return Promise.reject(Error("this process has no file scanner worker artifact"));let f=(0,m.FX)(!1),h=void 0===c.launch&&g().existsSync("/usr/bin/nice"),i=(0,e.spawn)(h?"/usr/bin/nice":d.executable,[...h?["-n","10",d.executable]:[],d.workerPath],{cwd:c.cwd??process.cwd(),stdio:["pipe","pipe","pipe"],env:{...(0,l.Fd)(c.env??process.env),LLV_FILE_SCANNER_WORKER:"1"}});return new Promise((d,e)=>{let g,h,l=c.scheduler??j.Lr,p=!1,q=!1,r="",s="",t=0,u=null,v=null,w=(a,b)=>{p||(p=!0,void 0!==h&&(l.clearTimeout(h),h=void 0),q&&(c.signal?.removeEventListener("abort",z),q=!1),a?e(a):d(b))},x=a=>{if(!p&&!v){v=a;try{i.kill("SIGKILL")}catch{}(null!==i.exitCode||null!==i.signalCode)&&w(a)}},y=a=>{x(Error(a))},z=()=>x(n()),A=()=>{for(;;){let a,c=r.indexOf("\n");if(c<0)return;let d=r.slice(0,c);if(r=r.slice(c+1),!d)continue;try{a=JSON.parse(d)}catch{y("file scanner worker emitted invalid JSON");return}let e=function(a){var b;return o(a)&&("resource"===a.type||"complete"===a.type)&&o(b=a.snapshot)&&Array.isArray(b.files)&&Array.isArray(b.projectCatalog)&&"boolean"==typeof b.complete&&(void 0===b.conversationCatalog||Array.isArray(b.conversationCatalog))&&(void 0===b.pinOverlayPaths||Array.isArray(b.pinOverlayPaths))?a:null}(a);if(!e)return void y("file scanner worker emitted an invalid message");if("resource"===e.type)b?.(e.snapshot);else{let{conversationCatalog:a,...b}=e.snapshot;g=a,u=b}}};h=l.setTimeout(()=>{h=void 0,y("file scanner worker timed out")},c.timeoutMs??3e5),i.once("error",a=>w(a)),i.stdout.setEncoding("utf8"),i.stdout.on("data",a=>{(t+=Buffer.byteLength(a))>0x2000000?y("file scanner worker exceeded output limit"):(r+=a,A())}),i.stderr.setEncoding("utf8"),i.stderr.on("data",a=>{s=`${s}${a}`,Buffer.byteLength(s)>4096&&(s=Buffer.from(s).subarray(-4096).toString("utf8"))}),i.once("close",(a,b)=>{if(!p){if(v)return void w(v);if(A(),0!==a||!u){let c=s.trim();w(Error(`file scanner worker exited before completion (${b??a??"unknown"})${c?`: ${c}`:""}`));return}if(g){let a=(0,m.pu)(f);(0,m.OQ)(g,f,u.complete),a&&(c.transcriptIndexScheduler??k.O)({complete:u.complete,sources:g.flatMap(a=>"openclaw"===a.engine?[]:[{path:a.path,project:a.project,engine:a.engine,size:a.size,mtimeMs:1e3*a.mtime}])})}w(void 0,u)}}),i.stdin.once("error",a=>{v||w(a)}),c.signal&&(c.signal.addEventListener("abort",z,{once:!0}),q=!0,c.signal.aborted&&z()),i.stdin.end(JSON.stringify({type:"scan",options:a}))})}(i,h,{signal:c})}let s=(a,b)=>r(a,{},b);function t(a){return a instanceof Error&&"AbortError"===a.name?a:new DOMException("file scan cancelled","AbortError")}function u(a,b){if(b.settled||b.subscribers>0||(b.controller.abort(t()),b.started))return;let c=a.queue.indexOf(b);c>=0&&a.queue.splice(c,1),b.settled=!0,b.reject(t())}async function v(a={},b=s){var c,d;let e=q.__llvFileScanCoordinator??={generation:0,queue:[],startScheduled:!1};if(a.signal?.aborted)throw t(a.signal.reason);let f={persist:!0===a.persist,fresh:!0===a.fresh},g=!0===a.exclusive,h=e.inflight,i=g||!h||h.controller.signal.aborted||h.exclusive||!1===a.join||(c=h.intent,!c.persist&&f.persist||!c.fresh&&f.fresh)?function(a,b,c,d){let e,f,g;if(!d){let c=a.queue.find(a=>!a.exclusive);if(c)return c.intent={persist:c.intent.persist||b.persist,fresh:c.intent.fresh||b.fresh},c}let h=((g=new Promise((a,b)=>{e=a,f=b})).catch(()=>void 0),{generation:0,intent:b,runner:c,exclusive:d,controller:new AbortController,subscribers:0,started:!1,settled:!1,promise:g,resolve:e,reject:f});return a.queue.push(h),function a(b){b.startScheduled||(b.startScheduled=!0,queueMicrotask(()=>{if(b.startScheduled=!1,b.inflight)return;let c=b.queue.shift();c&&function(b,c){let d;b.generation+=1,c.generation=b.generation,c.started=!0,b.inflight=c;try{d=Promise.resolve(c.runner(c.intent,c.controller.signal))}catch(a){d=Promise.reject(a)}d.then(a=>{c.settled=!0,c.resolve(a)},a=>{c.settled=!0,c.reject(a)}).finally(()=>{b.inflight===c&&(b.inflight=void 0),a(b)})}(b,c)}))}(a),h}(e,f,b,g):h;return d=a.signal,d?.aborted?(u(e,i),Promise.reject(t(d.reason))):(i.subscribers+=1,new Promise((a,b)=>{let c=!0,f=()=>{c&&(c=!1,d?.removeEventListener("abort",g),i.subscribers-=1,u(e,i))},g=()=>{f(),b(t(d?.reason))};d?.addEventListener("abort",g,{once:!0}),i.promise.then(b=>{c&&(f(),a(structuredClone(b)))},a=>{c&&(f(),b(a))})}))}function w(){return v({persist:!0})}}};
1
+ "use strict";exports.id=8444,exports.ids=[8444],exports.modules={12136:(a,b,c)=>{c.d(b,{Lr:()=>d,zf:()=>f});let d={setTimeout:(a,b)=>setTimeout(a,b),clearTimeout:a=>{clearTimeout(a)}};class e extends Error{constructor(a,b){super(a),this.name="DeadlineExceededError",this.timeoutMs=b}}function f(a){return a instanceof e||"object"==typeof a&&null!==a&&"AbortError"===a.name}},58444:(a,b,c)=>{c.d(b,{Nm:()=>E,TF:()=>w});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(44405),l=c(842),m=c(28976),n=c(81458),o=c(90136),p=c(87323);let q="files-scan-snapshot.json",r=-1/0,s=globalThis;function t(a){return"object"==typeof a&&null!==a}function u(a){if(!t(a)||!0!==a.complete||!Array.isArray(a.files)||!Array.isArray(a.projectCatalog))return!1;let b=a.files.every(a=>{var b;return!!t(a)&&"string"==typeof a.path&&("codex-sessions"===a.root||"claude-projects"===a.root||"claude-tasks"===a.root||"openclaw-sessions"===a.root)&&"string"==typeof a.name&&"string"==typeof a.project&&"string"==typeof a.title&&("codex"===a.engine||"claude"===a.engine||"shell"===a.engine||"openclaw"===a.engine)&&"string"==typeof a.kind&&("codex"===a.fmt||"claude"===a.fmt||"plain"===a.fmt||"openclaw"===a.fmt)&&(null===a.parent||"string"==typeof a.parent)&&"number"==typeof a.mtime&&Number.isFinite(a.mtime)&&"number"==typeof a.size&&Number.isFinite(a.size)&&(void 0===a.sessionStartedAt||null===a.sessionStartedAt||"string"==typeof a.sessionStartedAt)&&(void 0===a.nativeParentThreadId||null===a.nativeParentThreadId||"string"==typeof a.nativeParentThreadId)&&(void 0===a.nativeForkSourceThreadId||null===a.nativeForkSourceThreadId||"string"==typeof a.nativeForkSourceThreadId)&&("live"===a.activity||"recent"===a.activity||"stalled"===a.activity||"idle"===a.activity)&&(void 0===a.authoritativeTurn||!!t(b=a.authoritativeTurn)&&("busy"===b.state||"terminal"===b.state||"idle"===b.state||"unknown"===b.state)&&("lifecycle"===b.source||"tool"===b.source||"assistant"===b.source||"empty"===b.source)&&(null===b.terminalAt||"string"==typeof b.terminalAt))&&(null===a.proc||"running"===a.proc||"done"===a.proc||"killed"===a.proc)&&(null===a.pid||"number"==typeof a.pid)&&(null===a.model||"string"==typeof a.model)&&(null===a.pendingQuestion||t(a.pendingQuestion))&&(null===a.waitingInput||t(a.waitingInput))}),c=a.projectCatalog.every(a=>t(a)&&"string"==typeof a.project&&"number"==typeof a.smt&&Number.isFinite(a.smt)&&"number"==typeof a.conversations&&Number.isSafeInteger(a.conversations)&&(void 0===a.projectRoot||"string"==typeof a.projectRoot));return b&&c}function v(){try{let a=(0,k.dt)((0,j.BQ)(q));if(!t(a)||1!==a.version||11!==a.schemaVersion||!u(a.snapshot))return;return a.snapshot}catch{return}}function w(){return v()}function x(a){return t(a)&&"promise"in a?x(a.promise):t(a)&&"function"==typeof a.then?Promise.resolve(a):void 0}function y(a,b,c,d=c,e=new AbortController){let f={generation:b,promise:c,resourcePromise:d,controller:e,subscribers:0,settled:!1};a.refresh=f;let g=()=>{f.settled=!0,a.refresh===f&&(a.refresh=void 0)};return c.then(g,g),f}function z(a){return a instanceof Error&&"AbortError"===a.name?a:new DOMException("file scan cancelled","AbortError")}async function A(a,b,c,d){let e=performance.now();try{let f=await d();return a.lastScan={generation:b,reason:c,status:"complete",durationMs:performance.now()-e},f}catch(d){throw a.lastScan={generation:b,reason:c,status:"failed",durationMs:performance.now()-e},d}}function B(a,b,c,d,f){let h=void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration,l="ordinary"===c||"cold"===c;return A(a,b,c,async()=>{let c=await (0,p.uh)({fresh:h,join:l,signal:f},(b,c)=>(function(...a){return p.KZ(...a)})(b,{persistIndex:"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER,...d?{onResourceSnapshot:d,resourceBaseline:a.snapshot}:{}},c));if(!c.complete)throw Error("filesystem scan incomplete");return"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER&&function(a){let b,c="create state directory",d=(0,j.BQ)(q);try{let f=(0,j.BQ)(q);d=f,g().mkdirSync(i().dirname(f),{recursive:!0,mode:448}),b=i().join(i().dirname(f),`.${i().basename(f)}.${process.pid}.${e().randomUUID()}.tmp`),c="write temporary snapshot",d=b,g().writeFileSync(b,JSON.stringify({version:1,schemaVersion:11,snapshot:a})+"\n",{encoding:"utf8",mode:384}),(0,k.Hr)(b),c="rename temporary snapshot",d=f,g().renameSync(b,f),(0,k.Hr)(i().dirname(f))}catch(e){if(void 0!==b)try{g().unlinkSync(b)}catch{}let a=Date.now();if(a-r>=6e4){r=a;let b=e instanceof Error?`${e.message}${"code"in e&&e.code?` (${String(e.code)})`:""}`:String(e);console.error(`[files scan cache] ${c} failed for ${d}: ${b}; a later refresh will retry`)}}}(c),a.snapshot=c,a.snapshotGeneration=Math.max(a.snapshotGeneration,b),a.refreshedAt=Date.now(),a.completedAt=a.refreshedAt,h&&void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration&&(a.freshObservationGeneration=void 0),c})}function C(a,b,c,d){let e=performance.now(),f=b?function(a,b){let c=a.pinnedSnapshots?.get(b);if(c)return a.pinnedSnapshots.delete(b),a.pinnedSnapshots.set(b,c),c}(a,b):void 0;if(f){let b=structuredClone({snapshot:f.snapshot,pinOverlayPaths:f.pinOverlayPaths,generation:f.generation,targetGeneration:c});return{...b,cacheStatus:d??(b.generation<c?"stale":"hit"),requestCount:a.requestCount??0,cloneDurationMs:performance.now()-e,refreshedAt:f.refreshedAt,...a.lastScan?{lastScan:{...a.lastScan}}:{}}}return{snapshot:structuredClone(a.snapshot),generation:a.snapshotGeneration,targetGeneration:c,cacheStatus:d??(a.snapshotGeneration<c?"stale":"hit"),requestCount:a.requestCount??0,cloneDurationMs:performance.now()-e,refreshedAt:a.completedAt??a.refreshedAt,...a.lastScan?{lastScan:{...a.lastScan}}:{}}}function D(a){return a.requestedGeneration+=1,a.requestedGeneration}async function E({revalidate:a=!0,signal:b}={}){let c,d,e=function(){let a=(s.__llvFilesRouteScans??=new Map,s.__llvFilesRouteScans),b=a.get("");if(void 0===b){let b=v();b&&function(a){for(let c of((0,n.X$)(a.files),a.files)){var b;let a;if(!0!==c.derivationComplete)continue;try{a=g().statSync(c.path)}catch{continue}if(a.size!==c.size||a.mtimeMs/1e3!==c.mtime)continue;let d=1e3*c.mtime,e=function(a){if("jsonl_turn_open"===a.activityReason||"jsonl_turn_stalled"===a.activityReason||"pane_at_composer"===a.activityReason)return{state:"busy",source:"lifecycle",terminalAt:null};if("jsonl_turn_completed"===a.activityReason){let b=a.lastTurn?.endedAt;return{state:"terminal",source:"lifecycle",terminalAt:"number"==typeof b&&Number.isFinite(b)?new Date(b).toISOString():null}}if("mtime_fresh"===a.activityReason||"mtime_recent"===a.activityReason||"mtime_old"===a.activityReason)return{state:"unknown",source:"empty",terminalAt:null}}(c);if(void 0!==e&&c.path.endsWith(".jsonl")&&("claude"===(b=c.engine)||"codex"===b||"openclaw"===b)){let a=c.engine;(0,l.Ul)(c.path,c.size,d,a,e,{authoritative:!1,composerReleased:"pane_at_composer"===c.activityReason}),c.authoritativeTurn?(0,l.Ul)(c.path,c.size,d,a,c.authoritativeTurn,{composerReleased:"pane_at_composer"===c.activityReason}):("claude"!==a||"terminal"!==e.state)&&(0,l.Ul)(c.path,c.size,d,a,e,{composerReleased:"pane_at_composer"===c.activityReason})}"claude-projects"===c.root&&c.path.includes(`${i().sep}subagents${i().sep}`)||(0,m.E)("model").set(c.path,[c.size,d,{display:c.model,launch:c.launchModel??null}]),Object.hasOwn(c,"effort")&&("claude"!==c.engine||"running"!==c.proc)&&(0,m.E)("effort").set(c.path,[c.size,d,c.effort??null]),Object.hasOwn(c,"plan")&&(0,m.E)("plan-v2").set(c.path,[c.size,d,c.plan]),Object.hasOwn(c,"goal")&&(0,m.E)("goal-v2").set(c.path,[c.size,d,c.goal]),Object.hasOwn(c,"ctx")&&(0,m.E)("ctx-v2").set(c.path,[c.size,d,c.ctx]),Object.hasOwn(c,"lastTurn")&&(0,m.E)("last-turn-v5").set(c.path,[c.size,d,c.lastTurn]),Object.hasOwn(c,"pendingWakeup")&&(0,m.E)("wakeup-v2").set(c.path,[c.size,d,c.pendingWakeup]),"claude-projects"===c.root&&c.path.endsWith(".jsonl")&&(0,m.E)(o.oS).set(c.path,[c.size,d,function(a){if(!a.pendingQuestion)return null;let{pid:b,paneTarget:c,...d}=a.pendingQuestion;return d}(c)])}}(b);let c={schemaVersion:11,snapshot:b,snapshotGeneration:0,requestedGeneration:0,refreshedAt:0,completedAt:b?function(){try{return g().statSync((0,j.BQ)(q)).mtimeMs}catch{return 0}}():0};return a.set("",c),c}let c=function(a){if(t(a)&&11===a.schemaVersion&&Number.isSafeInteger(a.snapshotGeneration)&&Number.isSafeInteger(a.requestedGeneration)){let b=x(a.refresh);return!b||a.refresh?.controller&&Number.isSafeInteger(a.refresh.subscribers)||y(a,a.refresh?.generation??0,b),a}let b=t(a)?a:{},c={schemaVersion:11,snapshot:u(b.snapshot)?b.snapshot:void 0,snapshotGeneration:0,requestedGeneration:0,refreshedAt:"number"==typeof b.refreshedAt&&Number.isFinite(b.refreshedAt)?b.refreshedAt:0,completedAt:"number"==typeof b.completedAt&&Number.isFinite(b.completedAt)?b.completedAt:"number"==typeof b.refreshedAt&&Number.isFinite(b.refreshedAt)?b.refreshedAt:0},d=x(b.refresh);if(d){let a=d.then(a=>{if(!a.complete)throw Error("filesystem scan incomplete");return c.snapshot=a,c.refreshedAt=Date.now(),c.completedAt=c.refreshedAt,a});y(c,0,a)}return c}(b);return a.delete(""),a.set("",c),c}();if(e.requestCount=(e.requestCount??0)+1,e.snapshot){let b=Date.now();if(a&&!e.refresh&&b-Math.max(e.refreshedAt,e.ordinaryRefreshRequestedAt??0)>=3e5){let a,c,d,f,g=D(e);e.ordinaryRefreshRequestedAt=b,a=!1,c=!1,d=new AbortController,f=new Promise(a=>setImmediate(a)).then(()=>{if(a=!0,d.signal.aborted)throw z(d.signal.reason);if(c){if(!e.snapshot)throw Error("deferred file scan canceled without a completed snapshot");return e.snapshot}return B(e,g,"ordinary",void 0,d.signal)}),y(e,g,f,f,d).cancelBeforeStart=()=>!a&&(c=!0,!0)}return C(e,void 0,e.snapshotGeneration)}let f=e.refresh?.generation??D(e),h=e.refresh??(d=B(e,f,"cold",void 0,(c=new AbortController).signal),y(e,f,d,d,c));return await (b?.aborted?Promise.reject(z(b.reason)):(h.subscribers+=1,new Promise((a,c)=>{let d=!0,e=()=>{d&&(d=!1,b?.removeEventListener("abort",f),h.subscribers-=1,0!==h.subscribers||h.settled||h.controller.abort(z()))},f=()=>{e(),c(z(b?.reason))};b?.addEventListener("abort",f,{once:!0}),h.promise.then(b=>{d&&(e(),a(b))},a=>{d&&(e(),c(a))})}))),C(e,void 0,f,"miss")}},87323:(a,b,c)=>{c.d(b,{wj:()=>w,uh:()=>v,KZ:()=>r});var d=c(66324),e=c(31421),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(12136),k=c(10991),l=c(65281),m=c(55218);function n(){return new DOMException("file scan cancelled","AbortError")}function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function p(a=process.cwd()){let b=i().join(a,"src/lib/fileScanner.worker.ts"),c=i().join(a,".next/server/file-scanner-worker.js");return g().existsSync(b)&&g().existsSync("/usr/local/bin/bun-container")?{executable:"/usr/local/bin/bun-container",workerPath:b}:g().existsSync(c)?{executable:process.versions.bun?process.execPath:process.env.LLV_BUN_EXECUTABLE||"bun",workerPath:c}:g().existsSync(b)?{executable:process.execPath,workerPath:b}:null}let q=globalThis;function r(a,b={},c=new AbortController().signal){let f={...b,persist:a.persist,...a.fresh?{fresh:!0}:{}};if(c.aborted)return Promise.reject(t(c.reason));if(!function(a=process.env){return"test"!==a.NODE_ENV&&"1"!==a.LLV_FILE_SCANNER_WORKER&&"1"!==a.LLV_FILE_SCANNER_WORKER_DISABLED}()||null===p())return(0,d.SW)(void 0,{...f,signal:c}).then(a=>{if(c.aborted)throw t(c.reason);return a});let{onResourceSnapshot:h,...i}=f;return function(a,b,c={}){if(c.signal?.aborted)return Promise.reject(n());let d=c.launch??p(c.cwd);if(!d)return Promise.reject(Error("this process has no file scanner worker artifact"));let f=(0,m.FX)(!1),h=void 0===c.launch&&g().existsSync("/usr/bin/nice"),i=(0,e.spawn)(h?"/usr/bin/nice":d.executable,[...h?["-n","10",d.executable]:[],d.workerPath],{cwd:c.cwd??process.cwd(),stdio:["pipe","pipe","pipe"],env:{...(0,l.Fd)(c.env??process.env),LLV_FILE_SCANNER_WORKER:"1"}});return new Promise((d,e)=>{let g,h,l=c.scheduler??j.Lr,p=!1,q=!1,r="",s="",t=0,u=null,v=null,w=(a,b)=>{p||(p=!0,void 0!==h&&(l.clearTimeout(h),h=void 0),q&&(c.signal?.removeEventListener("abort",z),q=!1),a?e(a):d(b))},x=a=>{if(!p&&!v){v=a;try{i.kill("SIGKILL")}catch{}(null!==i.exitCode||null!==i.signalCode)&&w(a)}},y=a=>{x(Error(a))},z=()=>x(n()),A=()=>{for(;;){let a,c=r.indexOf("\n");if(c<0)return;let d=r.slice(0,c);if(r=r.slice(c+1),!d)continue;try{a=JSON.parse(d)}catch{y("file scanner worker emitted invalid JSON");return}let e=function(a){var b;return o(a)&&("resource"===a.type||"complete"===a.type)&&o(b=a.snapshot)&&Array.isArray(b.files)&&Array.isArray(b.projectCatalog)&&"boolean"==typeof b.complete&&(void 0===b.conversationCatalog||Array.isArray(b.conversationCatalog))&&(void 0===b.pinOverlayPaths||Array.isArray(b.pinOverlayPaths))?a:null}(a);if(!e)return void y("file scanner worker emitted an invalid message");if("resource"===e.type)b?.(e.snapshot);else{let{conversationCatalog:a,...b}=e.snapshot;g=a,u=b}}};h=l.setTimeout(()=>{h=void 0,y("file scanner worker timed out")},c.timeoutMs??3e5),i.once("error",a=>w(a)),i.stdout.setEncoding("utf8"),i.stdout.on("data",a=>{(t+=Buffer.byteLength(a))>0x2000000?y("file scanner worker exceeded output limit"):(r+=a,A())}),i.stderr.setEncoding("utf8"),i.stderr.on("data",a=>{s=`${s}${a}`,Buffer.byteLength(s)>4096&&(s=Buffer.from(s).subarray(-4096).toString("utf8"))}),i.once("close",(a,b)=>{if(!p){if(v)return void w(v);if(A(),0!==a||!u){let c=s.trim();w(Error(`file scanner worker exited before completion (${b??a??"unknown"})${c?`: ${c}`:""}`));return}if(g){let a=(0,m.pu)(f);(0,m.OQ)(g,f,u.complete),a&&(c.transcriptIndexScheduler??k.O)({complete:u.complete,sources:g.flatMap(a=>"openclaw"===a.engine?[]:[{path:a.path,project:a.project,engine:a.engine,size:a.size,mtimeMs:1e3*a.mtime}])})}w(void 0,u)}}),i.stdin.once("error",a=>{v||w(a)}),c.signal&&(c.signal.addEventListener("abort",z,{once:!0}),q=!0,c.signal.aborted&&z()),i.stdin.end(JSON.stringify({type:"scan",options:a}))})}(i,h,{signal:c})}let s=(a,b)=>r(a,{},b);function t(a){return a instanceof Error&&"AbortError"===a.name?a:new DOMException("file scan cancelled","AbortError")}function u(a,b){if(b.settled||b.subscribers>0||(b.controller.abort(t()),b.started))return;let c=a.queue.indexOf(b);c>=0&&a.queue.splice(c,1),b.settled=!0,b.reject(t())}async function v(a={},b=s){var c,d;let e=q.__llvFileScanCoordinator??={generation:0,queue:[],startScheduled:!1};if(a.signal?.aborted)throw t(a.signal.reason);let f={persist:!0===a.persist,fresh:!0===a.fresh},g=!0===a.exclusive,h=e.inflight,i=g||!h||h.controller.signal.aborted||h.exclusive||!1===a.join||(c=h.intent,!c.persist&&f.persist||!c.fresh&&f.fresh)?function(a,b,c,d){let e,f,g;if(!d){let c=a.queue.find(a=>!a.exclusive);if(c)return c.intent={persist:c.intent.persist||b.persist,fresh:c.intent.fresh||b.fresh},c}let h=((g=new Promise((a,b)=>{e=a,f=b})).catch(()=>void 0),{generation:0,intent:b,runner:c,exclusive:d,controller:new AbortController,subscribers:0,started:!1,settled:!1,promise:g,resolve:e,reject:f});return a.queue.push(h),function a(b){b.startScheduled||(b.startScheduled=!0,queueMicrotask(()=>{if(b.startScheduled=!1,b.inflight)return;let c=b.queue.shift();c&&function(b,c){let d;b.generation+=1,c.generation=b.generation,c.started=!0,b.inflight=c;try{d=Promise.resolve(c.runner(c.intent,c.controller.signal))}catch(a){d=Promise.reject(a)}d.then(a=>{c.settled=!0,c.resolve(a)},a=>{c.settled=!0,c.reject(a)}).finally(()=>{b.inflight===c&&(b.inflight=void 0),a(b)})}(b,c)}))}(a),h}(e,f,b,g):h;return d=a.signal,d?.aborted?(u(e,i),Promise.reject(t(d.reason))):(i.subscribers+=1,new Promise((a,b)=>{let c=!0,f=()=>{c&&(c=!1,d?.removeEventListener("abort",g),i.subscribers-=1,u(e,i))},g=()=>{f(),b(t(d?.reason))};d?.addEventListener("abort",g,{once:!0}),i.promise.then(b=>{c&&(f(),a(structuredClone(b)))},a=>{c&&(f(),b(a))})}))}function w(){return v({persist:!0})}}};
@@ -1 +1 @@
1
- "use strict";exports.id=8512,exports.ids=[3302,8512],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}}},98512:(a,b,c)=>{c.d(b,{Gn:()=>I,Lf:()=>J,tC:()=>K,ud:()=>G});var d=c(77598),e=c.n(d),f=c(23211),g=c(10781),h=c(32584),i=c(33302),j=c(30402),k=c(35961),l=c(62318),m=c(3127),n=c(49682),o=c(63629),p=c(50201),q=c(83169),r=c(56695),s=c(97810),t=c(19361),u=c(34083),v=c(38855),w=c(93012);let x={enabled:p.Zn,client:m.sS,structuredEnabled:()=>(0,p.cM)(),registry:g.agentRegistry,enqueue:u.enqueueStructuredMessage,recordOperatorActivity:l.d,retireReplySuggestions:j.rB,kick:v.l};async function y(a){if(!a.startsWith("conversation_"))return!1;let b=(0,g.agentRegistry)().conversation(a),c=b?.generations.at(-1);return!!b&&!!c&&(0,s.A)({engine:b.engine,sessionId:c.id})}let z={enabled:()=>(0,p.cM)(),client:m.sS,kick:v.l,republish:y};function A(a,b){return(0,g.agentRegistry)().recordDeliveryRetryAttempt(a,b)}let B="retry attempt could not be recorded durably",C=["pending","queued"];function D(a){return f.NextResponse.json({error:a.readable?B:a.reason,retryable:!0},{status:503})}function E(a,b){return f.NextResponse.json({error:a,...b,delivery:"refused"},{status:503})}async function F(a,b,d,l){let o,q,r=(0,k.W)(a);if(r)return r;if(!d.enabled())return E("runtime events are disabled");if(!(d.structuredEnabled??(()=>(0,p.cM)()))())return E("structured hosts are disabled");try{o=await a.json()}catch{return f.NextResponse.json({error:"invalid JSON"},{status:400})}let s=null;try{let a=o;if(("send"===b||"steer"===b||"inject"===b)&&o&&"object"==typeof o&&!Array.isArray(o)){let d=o;if("inject"!==b&&Array.isArray(d.images)&&d.images.some(a=>a&&"object"==typeof a&&"base64"in a)){let b=(0,w.p)({images:d.images});if(b.error)return f.NextResponse.json({error:b.error.error},{status:b.error.status});let c=(s=b.images).map(a=>{let b=Buffer.from(a.base64,"base64");return{sha256:e().createHash("sha256").update(b).digest("hex"),mime:a.mime,bytes:b.byteLength}});a={...d,images:c}}if(void 0!==d.files&&null!==d.files){let{admitInboxFilePayload:b,inboxFileBatchToken:e,inboxFilePaths:g,inboxFileText:h}=await c.e(9403).then(c.bind(c,99403)),i=b({files:d.files});if(i.error)return f.NextResponse.json({error:i.error.error},{status:i.error.status});let j={...a};delete j.files,i.files.length&&(l.files=i.files,l.batch=e("string"==typeof d.idempotencyKey?d.idempotencyKey:null),j.text=h("string"==typeof j.text?j.text:"",g(i.files,l.batch))),a=j}}q=(0,n.d)(b,a)}catch(a){return f.NextResponse.json({error:a instanceof Error?a.message:"runtime command is invalid"},{status:400})}if(l.files.length){let{enterInboxBatch:a,InboxFileConflictError:b,stageInboxFiles:d}=await c.e(9403).then(c.bind(c,99403));l.leave=await a(l.batch);try{l.staged=d(l.files,l.batch)}catch(a){if(a instanceof b)return f.NextResponse.json({error:a.message,recovery:"query or replay the original Viewer idempotency key"},{status:409});return E("the attachments could not be saved to the inbox",{retryable:!0})}}let t=d.client();try{let b=(0,i.kg)(a).ok;if(("send"===q.kind||"steer"===q.kind||"inject"===q.kind||"answer"===q.kind)&&b&&d.recordOperatorActivity)try{d.recordOperatorActivity({conversationId:q.conversationId,idempotencyKey:q.idempotencyKey})}catch{return E("direct operator activity could not be recorded")}if(("send"===q.kind||"steer"===q.kind||"inject"===q.kind)&&b&&(d.retireReplySuggestions??j.rB)(q.conversationId,new Date,q.idempotencyKey),("send"===q.kind||"steer"===q.kind||"inject"===q.kind)&&d.enqueue){l.outcome="uncertain";let a=await d.enqueue({path:"",conversationId:q.conversationId,clientMessageId:q.idempotencyKey,...q.operationId?{operationId:q.operationId}:{},kind:q.kind,...q.policy?{policy:q.policy}:{},...void 0!==q.turnId?{turnId:q.turnId}:{},text:q.text,...s?{images:s}:q.images?.length?{imageRefs:q.images}:{},...q.runtime?{runtime:q.runtime}:{},...q.selectedContext?{selectedContext:q.selectedContext}:{},origin:{kind:"operator"}},{enabled:d.structuredEnabled??(()=>(0,p.cM)()),client:()=>t,registry:d.registry??g.agentRegistry,kick:d.kick??v.l});if(a){if(l.outcome=(0,h.N)(a),!a.ok)return f.NextResponse.json({error:a.error,...a.operationId?{operationId:a.operationId}:{},...a.receipt?{receipt:a.receipt}:{}},{status:a.status});if("held"===a.outcome)return f.NextResponse.json({held:!0,operationId:a.operationId},{status:202});let b="pending"===a.receipt.status||"queued"===a.receipt.status?202:200;return f.NextResponse.json({operationId:a.operationId,receipt:a.receipt},{status:b})}return l.outcome="refused",E("structured delivery ownership is unavailable for this conversation")}if(!t)return E("runtime host socket is unavailable");l.outcome="uncertain";let c=await t.command(q);l.outcome="accepted",("pending"===c.receipt.status||"queued"===c.receipt.status)&&d.kick?.();let e="pending"===c.receipt.status||"queued"===c.receipt.status?202:200;return f.NextResponse.json({operationId:c.operationId,receipt:c.receipt},{status:e})}catch(b){let a=b instanceof m.Hr&&"idempotency-conflict"===b.code?409:503;return f.NextResponse.json({error:b instanceof Error?b.message:"runtime command failed",delivery:"uncertain"},{status:a})}}async function G(a,b,d=x){let e={files:[],batch:"",staged:null,leave:null,outcome:"refused"};try{return await F(a,b,d,e)}finally{try{e.staged&&(await c.e(9403).then(c.bind(c,99403))).settleInboxFiles(e.staged,e.outcome)}finally{e.leave?.()}}}let H={client:m.sS,rolledBack:()=>(0,p.ji)(),settle:(a,b)=>(0,r.V$)(a,{client:b})};async function I(a,b=H){if(b.rolledBack())return f.NextResponse.json({error:"runtime events are disabled",code:p._l},{status:503});if(!a||a.includes(":")||/\s/.test(a))return f.NextResponse.json({error:"operationId is invalid"},{status:400});let c=b.client(),d=await (0,q.At)(()=>b.settle(a,c),"delivery settlement is unavailable"),e=d.readable?d.value:null;if(e&&"in-flight"!==e.state)return f.NextResponse.json({operationId:a,receipt:(0,r.Oh)(e),send:e});let g=null;if(c)try{let b=await c.operationStatus(a);if(b&&(d.readable||(0,r.nb)(b.receipt.status,b.receipt.reason)))return f.NextResponse.json({operationId:b.operationId,receipt:b.receipt,...e?{send:e}:{}})}catch(a){g=a instanceof Error?a.message:"runtime host is unavailable"}return e?f.NextResponse.json({operationId:a,receipt:(0,r.Oh)(e),send:e}):d.readable?g?f.NextResponse.json({error:g},{status:503}):c?f.NextResponse.json({error:"operation not found"},{status:404}):f.NextResponse.json({error:"runtime host socket is unavailable",code:p._l},{status:503}):f.NextResponse.json({error:d.reason,retryable:!0},{status:503})}async function J(a,b,c=z){let d=(0,k.W)(a);if(d)return d;if(!c.enabled())return f.NextResponse.json({error:"structured hosts are disabled"},{status:503});if(!b||b.includes(":")||/\s/.test(b))return f.NextResponse.json({error:"operationId is invalid"},{status:400});let e=c.client();if(!e)return f.NextResponse.json({error:"runtime host socket is unavailable"},{status:503});try{let a=await (0,q.At)(()=>e.operationStatus(b,{currentRetryLeaf:!0}),"runtime operation status is unavailable");if(!a.readable)return f.NextResponse.json({error:a.reason,retryable:!0},{status:503});if(!a.value)return f.NextResponse.json({error:"operation not found"},{status:404});let d=a.value;if("send"!==d.receipt.kind&&"steer"!==d.receipt.kind)return f.NextResponse.json({error:"runtime operation does not support discard"},{status:409});if(!d.receipt.conversationId.startsWith("conversation_"))return f.NextResponse.json({error:"runtime operation has no delivery reservation"},{status:409});let h=(c.registry??g.agentRegistry)(),i=d.receipt.presentationOperationId??d.operationId,j=(0,r.ak)(h.readOnlySnapshot(),i),k=()=>(d.receipt.conversationId.startsWith("conversation_")&&h.recordDeliveryOutcomeForOperation(d.receipt.conversationId,d.receipt.presentationOperationId??d.operationId,"delivered"),f.NextResponse.json({operationId:d.operationId,receipt:(0,o.Vu)(d.receipt)}));if((0,r.nb)(d.receipt.status,d.receipt.reason)?.state==="delivered")return k();if("delivering"===d.receipt.status||"applying"===d.receipt.status)return f.NextResponse.json({error:"runtime delivery is being handed over to the agent",operationId:d.operationId,receipt:(0,o.Vu)(d.receipt)},{status:409});let l="unverified";if("pending"===d.receipt.status||"queued"===d.receipt.status)try{d=await e.transitionOperation(d.operationId,"failed",{reason:r.Ks},{fromStatuses:C}),j?.duplicateRisk!==!0&&(l="lost")}catch(b){if(b instanceof Error&&/runtime delivery (?:discard|retry) already won/.test(b.message))throw b;let a=await e.operationStatus(d.operationId);if(!a)throw b;if(d=a,(0,r.nb)(d.receipt.status,d.receipt.reason)?.state==="delivered")return k();if("delivering"===d.receipt.status||"applying"===d.receipt.status)return f.NextResponse.json({error:"runtime delivery is being handed over to the agent",operationId:d.operationId,receipt:(0,o.Vu)(d.receipt)},{status:409});if("uncertain"!==d.receipt.status&&("failed"!==d.receipt.status||d.receipt.reason!==r.Ks))throw b}else{if("uncertain"!==d.receipt.status&&("failed"!==d.receipt.status||d.receipt.reason!==r.Ks)&&!(j?.state==="failed"&&j.duplicateRisk))return f.NextResponse.json({error:"delivery outcome is already resolved"},{status:409});let a=await e.claimDeliveryAction(d.operationId,"discard");if("discard"!==a.winner)return f.NextResponse.json({error:`runtime delivery ${a.winner} already won; discard refused`},{status:409})}h.discardDeliveryForOperation(d.receipt.conversationId,i,r.Ks,l);let m=(0,r.ak)(h.readOnlySnapshot(),i);if(!m||"failed"!==m.state||m.reason!==r.Ks)return f.NextResponse.json({error:"delivery discard could not be recorded durably",retryable:!0},{status:503});let n=(0,r.Oh)(m);return f.NextResponse.json({operationId:i,receipt:{...n,...d.receipt.text?{text:d.receipt.text}:{}},send:m})}catch(c){let a=c instanceof Error?c.message:"runtime operation discard failed",b=/unknown/.test(a)?404:/runtime delivery (?:discard|retry) already won|cannot discard after|moved before its transition/.test(a)?409:503;return f.NextResponse.json({error:a},{status:b})}}async function K(a,b,c=z){let e=(0,k.W)(a);if(e)return e;if(!c.enabled())return f.NextResponse.json({error:"structured hosts are disabled"},{status:503});if(!b||b.includes(":")||/\s/.test(b))return f.NextResponse.json({error:"operationId is invalid"},{status:400});let h=c.client();if(!h)return f.NextResponse.json({error:"runtime host socket is unavailable"},{status:503});try{var i;let e,j,k,l=await a.text();if(l.trim()){let a;try{let b=JSON.parse(l);if(!b||"object"!=typeof b||Array.isArray(b))return f.NextResponse.json({error:"invalid JSON"},{status:400});a=b}catch{return f.NextResponse.json({error:"invalid JSON"},{status:400})}if(void 0!==a.idempotencyKey){if("string"!=typeof a.idempotencyKey||!a.idempotencyKey.trim()||a.idempotencyKey.length>200||/[\r\n]/.test(a.idempotencyKey))return f.NextResponse.json({error:"idempotencyKey is invalid"},{status:400});e=a.idempotencyKey}if(void 0!==a.action){if("retry-uncertain"!==a.action)return f.NextResponse.json({error:"runtime retry action is invalid"},{status:400});j=a.action}if(j&&e)return f.NextResponse.json({error:"uncertain retry keeps the original idempotency key"},{status:400})}let m=c.recordRetryAttempt??A,n=await (0,q.At)(()=>h.operationStatus(b,{currentRetryLeaf:!0}),"runtime operation status is unavailable");if(!n.readable)return f.NextResponse.json({error:n.reason,retryable:!0},{status:503});let p=n.value;if(!p)return f.NextResponse.json({error:"operation not found"},{status:404});if("send"!==p.receipt.kind&&"steer"!==p.receipt.kind)return f.NextResponse.json({error:"runtime operation does not support retry"},{status:409});if("failed"===p.receipt.status&&p.receipt.reason===r.Ks){let a=await h.claimDeliveryAction(p.operationId,"retry");return f.NextResponse.json({error:`runtime delivery ${a.winner} already won; retry refused`},{status:409})}let s=(c.registry??g.agentRegistry)(),u=s.readOnlySnapshot(),v=(0,r.ak)(u,p.operationId);if(p.operationId===b&&"failed"!==p.receipt.status&&"rejected"!==p.receipt.status&&v?.state==="failed"&&"safe"===v.resend&&(p=await h.transitionOperation(b,"failed",{reason:v.reason})),v?.reason===r.Ks)return f.NextResponse.json({error:"discarded runtime operations cannot retry"},{status:409});if("retry-uncertain"===j){if(p.operationId!==b)return f.NextResponse.json({error:"uncertain retry must target its original operation"},{status:409});if("delivering"===p.receipt.status||"applying"===p.receipt.status)return f.NextResponse.json({error:"runtime delivery is being handed over to the agent",operationId:b,receipt:(0,o.Vu)(p.receipt)},{status:409});if(!v)return f.NextResponse.json({error:"runtime operation has no delivery reservation"},{status:409});if("delivered"===v.state||"failed"===v.state&&"verify-first"!==v.resend)return f.NextResponse.json({operationId:b,receipt:(0,r.Oh)(v),send:v});let a=await h.claimDeliveryAction(b,"retry");if("retry"!==a.winner)return f.NextResponse.json({error:`runtime delivery ${a.winner} already won; retry refused`},{status:409});let d=s.retryUncertainDeliveryForOperation(b);if(!d)return f.NextResponse.json({error:"runtime operation has no delivery reservation"},{status:409});if("delivered"===d.state||"failed"===d.state){let a=(0,r.ak)(s.readOnlySnapshot(),b);if(a)return f.NextResponse.json({operationId:b,receipt:(0,r.Oh)(a),send:a});return f.NextResponse.json({error:"delivery outcome is already resolved"},{status:409})}if("assigned"===d.state&&d.generationId&&!s.beginDeliveryAttempt(d.id,d.generationId))return f.NextResponse.json({error:"delivery reservation ownership changed before retry admission",retryable:!0},{status:503});let e=p;return"pending"!==p.receipt.status&&"queued"!==p.receipt.status&&(e=await h.retryOperation(b)),c.kick(),f.NextResponse.json({operationId:b,receipt:(0,o.Vu)(e.receipt)},{status:202})}if("failed"!==p.receipt.status&&"rejected"!==p.receipt.status){if(p.operationId!==b){let a=await (0,q.At)(()=>m(p.receipt.presentationOperationId??b,p.operationId),B);if(!a.readable||!a.value)return D(a);let d="pending"===p.receipt.status||"queued"===p.receipt.status||"delivering"===p.receipt.status?202:200;return 202===d&&c.kick(),f.NextResponse.json({operationId:p.operationId,receipt:(0,o.Vu)(p.receipt)},{status:d})}return f.NextResponse.json({error:"only terminal failed runtime operations can start a new attempt"},{status:409})}e??=(i=p.operationId,`retry_${(0,d.createHash)("sha256").update(i).digest("hex")}`);let w=c.recover??t.recoverDeadStructuredConversation,x=await w({path:"",conversationId:p.receipt.conversationId},{client:h});if(!x||x.conversationId!==p.receipt.conversationId)return f.NextResponse.json({error:"structured recovery ownership is unavailable",retryable:!0},{status:503});await c.republish?.(p.receipt.conversationId);let y=()=>h.retryOperation(p.operationId,e,{requireHostedConversationId:p.receipt.conversationId});try{k=await y()}catch(b){if(!(b instanceof Error)||"structured recovery ownership changed before retry admission"!==b.message)throw b;let a=await w({path:"",conversationId:p.receipt.conversationId},{client:h});if(!a||a.conversationId!==p.receipt.conversationId)throw Error("structured recovery ownership is unavailable");await c.republish?.(p.receipt.conversationId),k=await y()}let z=await (0,q.At)(()=>m(p.receipt.presentationOperationId??p.operationId,k.operationId),B);if(!z.readable||!z.value)return D(z);return c.kick(),f.NextResponse.json({operationId:k.operationId,receipt:(0,o.Vu)(k.receipt)},{status:202})}catch(d){let a=d instanceof Error?d.message:"runtime operation retry failed",b=503;d instanceof m.Hr&&"idempotency-conflict"===d.code?b=409:/unknown/.test(a)?b=404:/only failed|terminal failed|fresh idempotency|does not support|runtime delivery (?:discard|retry) already won/.test(a)&&(b=409);let c="structured recovery ownership changed before retry admission"===a;return f.NextResponse.json({error:a,...c?{retryable:!0}:{}},{status:b})}}}};
1
+ "use strict";exports.id=8512,exports.ids=[3302,8512],exports.modules={30402:(a,b,c)=>{c.d(b,{ao:()=>p,rB:()=>s}),c(77598);var d=c(73024),e=c.n(d),f=c(91724),g=c(65154),h=c(2033);function i(){return(0,f.BQ)("reply-suggestions.json")}function j(a){return{schemaVersion:1,revision:0,updatedAt:a.toISOString(),sets:[],admissions:[]}}function k(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let{label:b,text:c}=a;return"string"==typeof b&&b.trim()&&"string"==typeof c&&c.trim()?{label:b,text:c}:null}function l(a){let b,c;if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.conversationId||!a.conversationId||"string"!=typeof a.setId||!a.setId||"string"!=typeof a.at||!Number.isFinite(Date.parse(a.at))||!Array.isArray(a.replies))return null;let d=a.replies.map(k).filter(a=>null!==a);return 0===d.length?null:{conversationId:a.conversationId,setId:a.setId,at:a.at,origin:{kind:"manager"===(c=(b=a.origin??{}).kind)||"gateway"===c||"agent"===c?c:"unidentified",conversationId:"string"==typeof b.conversationId?b.conversationId:null,role:"string"==typeof b.role?b.role:null},replies:d.slice(0,6)}}function m(a){return!a||"object"!=typeof a||Array.isArray(a)?null:"string"==typeof a.conversationId&&a.conversationId&&"string"==typeof a.key&&a.key&&"string"==typeof a.at&&Number.isFinite(Date.parse(a.at))?{conversationId:a.conversationId,key:a.key,at:a.at}:null}function n(a=i(),b=new Date){let c,d;try{c=e().readFileSync(a,"utf8")}catch{return j(b)}try{d=JSON.parse(c)}catch{return j(b)}return 1===d.schemaVersion&&Array.isArray(d.sets)?{schemaVersion:1,revision:Number.isInteger(d.revision)?d.revision:0,updatedAt:"string"==typeof d.updatedAt?d.updatedAt:b.toISOString(),sets:d.sets.map(l).filter(a=>null!==a),admissions:Array.isArray(d.admissions)?d.admissions.map(m).filter(a=>null!==a):[]}:j(b)}function o(a,b){let c=i();return(0,h.Ol)(c,"reply suggestions are busy",()=>{let d=n(c,b),e=a(d,b);return(e.sets||e.admissions)&&(0,g.fZ)(c,{schemaVersion:1,revision:d.revision+1,updatedAt:b.toISOString(),sets:(e.sets??d.sets).slice(-64),admissions:(e.admissions??d.admissions).slice(-128)}),e.result})}function p(a,b=i()){let c=r(a),d=n(b).sets.find(b=>b.conversationId===a)??null;if(!d||!c)return d;let e=Date.parse(d.at);return Number.isFinite(e)&&e>c.at?d:null}c(56809);let q=new Map;function r(a){let b=q.get(a);if(!b)return null;try{return!function(a,b={}){o(c=>{let d=c.sets.find(b=>b.conversationId===a)??null;if(!d)return{result:!1};if(void 0!==b.offeredAtOrBefore){let a=Date.parse(d.at);if(!Number.isFinite(a)||a>b.offeredAtOrBefore.getTime())return{result:!1}}return{sets:c.sets.filter(b=>b.conversationId!==a),result:!0}},b.now??new Date)}(a,{offeredAtOrBefore:new Date(b.at)}),q.delete(a),null}catch{return b}}function s(a,b,c=""){if(!a)return{cleared:!1,pending:!1};let d=c.trim().slice(0,128),e=r(a),f=e&&d&&e.key===d?new Date(e.at):b;try{return{cleared:o(b=>{let c=d?b.admissions.find(b=>b.conversationId===a&&b.key===d)??null:null,e=c?Date.parse(c.at):NaN,g=Number.isFinite(e)?e:f.getTime(),h=b.sets.find(b=>b.conversationId===a)??null,i=h?Date.parse(h.at):NaN,j=null!==h&&Number.isFinite(i)&&i<=g;return{...j?{sets:b.sets.filter(b=>b.conversationId!==a)}:{},...d&&!c?{admissions:[...b.admissions,{conversationId:a,key:d,at:new Date(g).toISOString()}]}:{},result:j}},new Date),pending:!1}}catch{for(let b of(q.set(a,{at:Math.max(f.getTime(),e?.at??-1/0),key:d}),q.keys())){if(q.size<=64)break;q.delete(b)}return{cleared:!1,pending:!0}}}},32584:(a,b,c)=>{function d(a){return"refused"===a}function e(a){return a.ok?"accepted":!0===a.transportUncertain||a.receipt?.status==="uncertain"?"uncertain":"refused"}c.d(b,{A:()=>d,N:()=>e})},33302:(a,b,c)=>{c.d(b,{NZ:()=>r,OE:()=>m,Tj:()=>u,Yd:()=>t,kg:()=>s,mn:()=>n});var d=c(77598),e=c.n(d),f=c(10781),g=c(89937),h=c(4012);let i=/^[A-Za-z0-9_-]{43}$/,j="x-llv-internal-service",k=/^[a-f0-9]{64}$/,l=["monitor","mcp","orchestrator"];function m(a){let b,c=a.headers.get(h.VIEWER_SPAWN_CAPABILITY_HEADER)?.trim()??"";return c&&i.test(c)?(b=e().createHash("sha256").update(c).digest("hex"),(0,f.agentRegistry)().conversationIdForSpawnCapabilityDigest(b)):null}function n(a){return null===m(a)}let o={ok:!1,status:403,error:"this is an operator-only action; an agent may not perform it, whatever role it holds"},p={ok:!1,status:403,error:"background Viewer activity is outside direct operator activity"};function q(a){return e().createHmac("sha256",(0,g.ensureOperatorSpawnCapability)()).update(`llv-internal-service-v1\0${a}`).digest("hex")}function r(a){return{[j]:`${a}.${q(a)}`}}function s(a){return"valid"===function(a){let b=a.headers.get(j)?.trim()??"";if(!b)return"absent";let c=b.indexOf("."),d=b.slice(0,c),f=b.slice(c+1);if(!l.includes(d)||!k.test(f))return"invalid";try{let a=q(d);return e().timingSafeEqual(Buffer.from(f),Buffer.from(a))?"valid":"invalid"}catch{return"invalid"}}(a)?p:u(a)}function t(a){let b=m(a);return b?{kind:"agent",conversationId:b}:{kind:"operator",conversationId:null}}function u(a){return m(a)?o:{ok:!0}}},98512:(a,b,c)=>{c.d(b,{Gn:()=>I,Lf:()=>J,tC:()=>K,ud:()=>G});var d=c(77598),e=c.n(d),f=c(23211),g=c(10781),h=c(32584),i=c(33302),j=c(30402),k=c(35961),l=c(62318),m=c(3127),n=c(49682),o=c(63629),p=c(50201),q=c(83169),r=c(56695),s=c(97810),t=c(19361),u=c(34083),v=c(38855),w=c(93012);let x={enabled:p.Zn,client:m.sS,structuredEnabled:()=>(0,p.cM)(),registry:g.agentRegistry,enqueue:u.enqueueStructuredMessage,recordOperatorActivity:l.d,retireReplySuggestions:j.rB,kick:v.l};async function y(a){if(!a.startsWith("conversation_"))return!1;let b=(0,g.agentRegistry)().conversation(a),c=b?.generations.at(-1);return!!b&&!!c&&(0,s.A)({engine:b.engine,sessionId:c.id})}let z={enabled:()=>(0,p.cM)(),client:m.sS,kick:v.l,republish:y};function A(a,b){return(0,g.agentRegistry)().recordDeliveryRetryAttempt(a,b)}let B="retry attempt could not be recorded durably",C=["pending","queued"];function D(a){return f.NextResponse.json({error:a.readable?B:a.reason,retryable:!0},{status:503})}function E(a,b){return f.NextResponse.json({error:a,...b,delivery:"refused"},{status:503})}async function F(a,b,d,l){let o,q,r=(0,k.W)(a);if(r)return r;if(!d.enabled())return E("runtime events are disabled");if(!(d.structuredEnabled??(()=>(0,p.cM)()))())return E("structured hosts are disabled");try{o=await a.json()}catch{return f.NextResponse.json({error:"invalid JSON"},{status:400})}let s=null;try{let a=o;if(("send"===b||"steer"===b||"inject"===b)&&o&&"object"==typeof o&&!Array.isArray(o)){let d=o;if("inject"!==b&&Array.isArray(d.images)&&d.images.some(a=>a&&"object"==typeof a&&"base64"in a)){let b=(0,w.p)({images:d.images});if(b.error)return f.NextResponse.json({error:b.error.error},{status:b.error.status});let c=(s=b.images).map(a=>{let b=Buffer.from(a.base64,"base64");return{sha256:e().createHash("sha256").update(b).digest("hex"),mime:a.mime,bytes:b.byteLength}});a={...d,images:c}}if(void 0!==d.files&&null!==d.files){let{admitInboxFilePayload:b,inboxFileBatchToken:e,inboxFilePaths:g,inboxFileText:h}=await c.e(9403).then(c.bind(c,99403)),i=b({files:d.files});if(i.error)return f.NextResponse.json({error:i.error.error},{status:i.error.status});let j={...a};delete j.files,i.files.length&&(l.files=i.files,l.batch=e("string"==typeof d.idempotencyKey?d.idempotencyKey:null),j.text=h("string"==typeof j.text?j.text:"",g(i.files,l.batch))),a=j}}q=(0,n.d)(b,a)}catch(a){return f.NextResponse.json({error:a instanceof Error?a.message:"runtime command is invalid"},{status:400})}if(l.files.length){let{enterInboxBatch:a,InboxFileConflictError:b,stageInboxFiles:d}=await c.e(9403).then(c.bind(c,99403));l.leave=await a(l.batch);try{l.staged=d(l.files,l.batch)}catch(a){if(a instanceof b)return f.NextResponse.json({error:a.message,recovery:"query or replay the original Viewer idempotency key"},{status:409});return E("the attachments could not be saved to the inbox",{retryable:!0})}}let t=d.client();try{let b=(0,i.kg)(a).ok;if(("send"===q.kind||"steer"===q.kind||"inject"===q.kind||"answer"===q.kind)&&b&&d.recordOperatorActivity)try{d.recordOperatorActivity({conversationId:q.conversationId,idempotencyKey:q.idempotencyKey})}catch{return E("direct operator activity could not be recorded")}if(("send"===q.kind||"steer"===q.kind||"inject"===q.kind)&&b&&(d.retireReplySuggestions??j.rB)(q.conversationId,new Date,q.idempotencyKey),("send"===q.kind||"steer"===q.kind||"inject"===q.kind)&&d.enqueue){l.outcome="uncertain";let a=await d.enqueue({path:"",conversationId:q.conversationId,clientMessageId:q.idempotencyKey,...q.operationId?{operationId:q.operationId}:{},kind:q.kind,...q.policy?{policy:q.policy}:{},...void 0!==q.turnId?{turnId:q.turnId}:{},text:q.text,...s?{images:s}:q.images?.length?{imageRefs:q.images}:{},...q.runtime?{runtime:q.runtime}:{},...q.selectedContext?{selectedContext:q.selectedContext}:{},origin:{kind:"operator"}},{enabled:d.structuredEnabled??(()=>(0,p.cM)()),client:()=>t,registry:d.registry??g.agentRegistry,kick:d.kick??v.l});if(a){if(l.outcome=(0,h.N)(a),!a.ok)return f.NextResponse.json({error:a.error,...a.operationId?{operationId:a.operationId}:{},...a.receipt?{receipt:a.receipt}:{}},{status:a.status});if("held"===a.outcome)return f.NextResponse.json({held:!0,operationId:a.operationId},{status:202});let b="pending"===a.receipt.status||"queued"===a.receipt.status?202:200;return f.NextResponse.json({operationId:a.operationId,receipt:a.receipt},{status:b})}return l.outcome="refused",E("structured delivery ownership is unavailable for this conversation")}if(!t)return E("runtime host socket is unavailable");l.outcome="uncertain";let c=await t.command(q);l.outcome="accepted",("pending"===c.receipt.status||"queued"===c.receipt.status)&&d.kick?.();let e="pending"===c.receipt.status||"queued"===c.receipt.status?202:200;return f.NextResponse.json({operationId:c.operationId,receipt:c.receipt},{status:e})}catch(b){let a=b instanceof m.Hr&&"idempotency-conflict"===b.code?409:503;return f.NextResponse.json({error:b instanceof Error?b.message:"runtime command failed",delivery:"uncertain"},{status:a})}}async function G(a,b,d=x){let e={files:[],batch:"",staged:null,leave:null,outcome:"refused"};try{return await F(a,b,d,e)}finally{try{e.staged&&(await c.e(9403).then(c.bind(c,99403))).settleInboxFiles(e.staged,e.outcome)}finally{e.leave?.()}}}let H={client:m.sS,rolledBack:()=>(0,p.ji)(),settle:(a,b)=>(0,r.V$)(a,{client:b})};async function I(a,b=H){if(b.rolledBack())return f.NextResponse.json({error:"runtime events are disabled",code:p._l},{status:503});if(!a||a.includes(":")||/\s/.test(a))return f.NextResponse.json({error:"operationId is invalid"},{status:400});let c=b.client(),d=await (0,q.At)(()=>b.settle(a,c),"delivery settlement is unavailable"),e=d.readable?d.value:null;if(e&&"in-flight"!==e.state)return f.NextResponse.json({operationId:a,receipt:(0,r.Oh)(e),send:e});let g=null;if(c)try{let b=await c.operationStatus(a);if(b&&(d.readable||(0,r.nb)(b.receipt.status,b.receipt.reason)))return f.NextResponse.json({operationId:b.operationId,receipt:b.receipt,...e?{send:e}:{}})}catch(a){g=a instanceof Error?a.message:"runtime host is unavailable"}return e?f.NextResponse.json({operationId:a,receipt:(0,r.Oh)(e),send:e}):d.readable?g?f.NextResponse.json({error:g},{status:503}):c?f.NextResponse.json({error:"operation not found"},{status:404}):f.NextResponse.json({error:"runtime host socket is unavailable",code:p._l},{status:503}):f.NextResponse.json({error:d.reason,retryable:!0},{status:503})}async function J(a,b,c=z){let d=(0,k.W)(a);if(d)return d;if(!c.enabled())return f.NextResponse.json({error:"structured hosts are disabled"},{status:503});if(!b||b.includes(":")||/\s/.test(b))return f.NextResponse.json({error:"operationId is invalid"},{status:400});let e=c.client();if(!e)return f.NextResponse.json({error:"runtime host socket is unavailable"},{status:503});try{let a=await (0,q.At)(()=>e.operationStatus(b,{currentRetryLeaf:!0}),"runtime operation status is unavailable");if(!a.readable)return f.NextResponse.json({error:a.reason,retryable:!0},{status:503});if(!a.value)return f.NextResponse.json({error:"operation not found"},{status:404});let d=a.value;if("send"!==d.receipt.kind&&"steer"!==d.receipt.kind)return f.NextResponse.json({error:"runtime operation does not support discard"},{status:409});if(!d.receipt.conversationId.startsWith("conversation_"))return f.NextResponse.json({error:"runtime operation has no delivery reservation"},{status:409});let h=(c.registry??g.agentRegistry)(),i=d.receipt.presentationOperationId??d.operationId,j=(0,r.ak)(h.readOnlySnapshot(),i),k=()=>(d.receipt.conversationId.startsWith("conversation_")&&h.recordDeliveryOutcomeForOperation(d.receipt.conversationId,d.receipt.presentationOperationId??d.operationId,"delivered"),f.NextResponse.json({operationId:d.operationId,receipt:(0,o.Vu)(d.receipt)}));if((0,r.nb)(d.receipt.status,d.receipt.reason)?.state==="delivered")return k();if("delivering"===d.receipt.status||"applying"===d.receipt.status)return f.NextResponse.json({error:"runtime delivery is being handed over to the agent",operationId:d.operationId,receipt:(0,o.Vu)(d.receipt)},{status:409});let l="unverified";if("pending"===d.receipt.status||"queued"===d.receipt.status)try{d=await e.transitionOperation(d.operationId,"failed",{reason:r.Ks},{fromStatuses:C}),j?.duplicateRisk!==!0&&(l="lost")}catch(b){if(b instanceof Error&&/runtime delivery (?:discard|retry) already won/.test(b.message))throw b;let a=await e.operationStatus(d.operationId);if(!a)throw b;if(d=a,(0,r.nb)(d.receipt.status,d.receipt.reason)?.state==="delivered")return k();if("delivering"===d.receipt.status||"applying"===d.receipt.status)return f.NextResponse.json({error:"runtime delivery is being handed over to the agent",operationId:d.operationId,receipt:(0,o.Vu)(d.receipt)},{status:409});if("uncertain"!==d.receipt.status&&("failed"!==d.receipt.status||d.receipt.reason!==r.Ks))throw b}else{if("uncertain"!==d.receipt.status&&("failed"!==d.receipt.status||d.receipt.reason!==r.Ks)&&!(j?.state==="failed"&&j.duplicateRisk))return f.NextResponse.json({error:"delivery outcome is already resolved"},{status:409});let a=await e.claimDeliveryAction(d.operationId,"discard");if("discard"!==a.winner)return f.NextResponse.json({error:`runtime delivery ${a.winner} already won; discard refused`},{status:409})}h.discardDeliveryForOperation(d.receipt.conversationId,i,r.Ks,l);let m=(0,r.ak)(h.readOnlySnapshot(),i);if(!m||"failed"!==m.state||m.reason!==r.Ks)return f.NextResponse.json({error:"delivery discard could not be recorded durably",retryable:!0},{status:503});let n=(0,r.Oh)(m);return f.NextResponse.json({operationId:i,receipt:{...n,...d.receipt.text?{text:d.receipt.text}:{}},send:m})}catch(c){let a=c instanceof Error?c.message:"runtime operation discard failed",b=/unknown/.test(a)?404:/runtime delivery (?:discard|retry) already won|cannot discard after|moved before its transition/.test(a)?409:503;return f.NextResponse.json({error:a},{status:b})}}async function K(a,b,c=z){let e=(0,k.W)(a);if(e)return e;if(!c.enabled())return f.NextResponse.json({error:"structured hosts are disabled"},{status:503});if(!b||b.includes(":")||/\s/.test(b))return f.NextResponse.json({error:"operationId is invalid"},{status:400});let h=c.client();if(!h)return f.NextResponse.json({error:"runtime host socket is unavailable"},{status:503});try{var i;let e,j,k,l=await a.text();if(l.trim()){let a;try{let b=JSON.parse(l);if(!b||"object"!=typeof b||Array.isArray(b))return f.NextResponse.json({error:"invalid JSON"},{status:400});a=b}catch{return f.NextResponse.json({error:"invalid JSON"},{status:400})}if(void 0!==a.idempotencyKey){if("string"!=typeof a.idempotencyKey||!a.idempotencyKey.trim()||a.idempotencyKey.length>200||/[\r\n]/.test(a.idempotencyKey))return f.NextResponse.json({error:"idempotencyKey is invalid"},{status:400});e=a.idempotencyKey}if(void 0!==a.action){if("retry-uncertain"!==a.action)return f.NextResponse.json({error:"runtime retry action is invalid"},{status:400});j=a.action}if(j&&e)return f.NextResponse.json({error:"uncertain retry keeps the original idempotency key"},{status:400})}let m=c.recordRetryAttempt??A,n=await (0,q.At)(()=>h.operationStatus(b,{currentRetryLeaf:!0}),"runtime operation status is unavailable");if(!n.readable)return f.NextResponse.json({error:n.reason,retryable:!0},{status:503});let p=n.value;if(!p)return f.NextResponse.json({error:"operation not found"},{status:404});if("send"!==p.receipt.kind&&"steer"!==p.receipt.kind)return f.NextResponse.json({error:"runtime operation does not support retry"},{status:409});if("failed"===p.receipt.status&&p.receipt.reason===r.Ks){let a=await h.claimDeliveryAction(p.operationId,"retry");return f.NextResponse.json({error:`runtime delivery ${a.winner} already won; retry refused`},{status:409})}let s=(c.registry??g.agentRegistry)(),u=s.readOnlySnapshot(),v=(0,r.ak)(u,p.operationId);if(p.operationId===b&&"failed"!==p.receipt.status&&"rejected"!==p.receipt.status&&v?.state==="failed"&&"safe"===v.resend&&(p=await h.transitionOperation(b,"failed",{reason:v.reason})),v?.reason===r.Ks)return f.NextResponse.json({error:"discarded runtime operations cannot retry"},{status:409});if("retry-uncertain"===j){if(p.operationId!==b)return f.NextResponse.json({error:"uncertain retry must target its original operation"},{status:409});if("delivering"===p.receipt.status||"applying"===p.receipt.status)return f.NextResponse.json({error:"runtime delivery is being handed over to the agent",operationId:b,receipt:(0,o.Vu)(p.receipt)},{status:409});if(!v)return f.NextResponse.json({error:"runtime operation has no delivery reservation"},{status:409});if("delivered"===v.state||"failed"===v.state&&"verify-first"!==v.resend)return f.NextResponse.json({operationId:b,receipt:(0,r.Oh)(v),send:v});let a=await h.claimDeliveryAction(b,"retry");if("retry"!==a.winner)return f.NextResponse.json({error:`runtime delivery ${a.winner} already won; retry refused`},{status:409});let d=s.retryUncertainDeliveryForOperation(b);if(!d)return f.NextResponse.json({error:"runtime operation has no delivery reservation"},{status:409});if("delivered"===d.state||"failed"===d.state){let a=(0,r.ak)(s.readOnlySnapshot(),b);if(a)return f.NextResponse.json({operationId:b,receipt:(0,r.Oh)(a),send:a});return f.NextResponse.json({error:"delivery outcome is already resolved"},{status:409})}if("assigned"===d.state&&d.generationId&&!s.beginDeliveryAttempt(d.id,d.generationId))return f.NextResponse.json({error:"delivery reservation ownership changed before retry admission",retryable:!0},{status:503});let e=p;return"pending"!==p.receipt.status&&"queued"!==p.receipt.status&&(e=await h.retryOperation(b)),c.kick(),f.NextResponse.json({operationId:b,receipt:(0,o.Vu)(e.receipt)},{status:202})}if("failed"!==p.receipt.status&&"rejected"!==p.receipt.status){if(p.operationId!==b){let a=await (0,q.At)(()=>m(p.receipt.presentationOperationId??b,p.operationId),B);if(!a.readable||!a.value)return D(a);let d="pending"===p.receipt.status||"queued"===p.receipt.status||"delivering"===p.receipt.status?202:200;return 202===d&&c.kick(),f.NextResponse.json({operationId:p.operationId,receipt:(0,o.Vu)(p.receipt)},{status:d})}return f.NextResponse.json({error:"only terminal failed runtime operations can start a new attempt"},{status:409})}e??=(i=p.operationId,`retry_${(0,d.createHash)("sha256").update(i).digest("hex")}`);let w=c.recover??t.recoverDeadStructuredConversation,x=await w({path:"",conversationId:p.receipt.conversationId},{client:h});if(!x||x.conversationId!==p.receipt.conversationId)return f.NextResponse.json({error:"structured recovery ownership is unavailable",retryable:!0},{status:503});await c.republish?.(p.receipt.conversationId);let y=()=>h.retryOperation(p.operationId,e,{requireHostedConversationId:p.receipt.conversationId});try{k=await y()}catch(b){if(!(b instanceof Error)||"structured recovery ownership changed before retry admission"!==b.message)throw b;let a=await w({path:"",conversationId:p.receipt.conversationId},{client:h});if(!a||a.conversationId!==p.receipt.conversationId)throw Error("structured recovery ownership is unavailable");await c.republish?.(p.receipt.conversationId),k=await y()}let z=await (0,q.At)(()=>m(p.receipt.presentationOperationId??p.operationId,k.operationId),B);if(!z.readable||!z.value)return D(z);return c.kick(),f.NextResponse.json({operationId:k.operationId,receipt:(0,o.Vu)(k.receipt)},{status:202})}catch(d){let a=d instanceof Error?d.message:"runtime operation retry failed",b=503;d instanceof m.Hr&&"idempotency-conflict"===d.code?b=409:/unknown/.test(a)?b=404:/only failed|terminal failed|fresh idempotency|does not support|runtime delivery (?:discard|retry) already won/.test(a)&&(b=409);let c="structured recovery ownership changed before retry admission"===a;return f.NextResponse.json({error:a,...c?{retryable:!0}:{}},{status:b})}}}};