agent-log-viewer 1.0.2 → 1.0.3

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 (551) hide show
  1. package/README.md +18 -0
  2. package/dist/mcp-server.mjs +2458 -392
  3. package/dist/runtime-host.mjs +1613 -244
  4. package/dist/standalone/.next/BUILD_ID +1 -1
  5. package/dist/standalone/.next/app-path-routes-manifest.json +28 -25
  6. package/dist/standalone/.next/build-manifest.json +2 -2
  7. package/dist/standalone/.next/prerender-manifest.json +3 -3
  8. package/dist/standalone/.next/routes-manifest.json +18 -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 +3 -3
  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/_global-error.segment.rsc +1 -1
  18. package/dist/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  19. package/dist/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  20. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  21. package/dist/standalone/.next/server/app/_not-found/page.js +2 -2
  22. package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  23. package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  24. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  25. package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
  26. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  27. package/dist/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  28. package/dist/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  29. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  30. package/dist/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  31. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  32. package/dist/standalone/.next/server/app/api/access/route.js +1 -1
  33. package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
  34. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
  35. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
  36. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +1 -1
  37. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -1
  38. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js +1 -1
  39. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -1
  40. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js +1 -1
  41. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -1
  42. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js +1 -1
  43. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -1
  44. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js +1 -1
  45. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -1
  46. package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -1
  47. package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -1
  48. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js +1 -1
  49. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -1
  50. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js +1 -1
  51. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -1
  52. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js +1 -1
  53. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
  54. package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
  55. package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
  56. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +1 -1
  57. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -1
  58. package/dist/standalone/.next/server/app/api/accounts/route.js +1 -1
  59. package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -1
  60. package/dist/standalone/.next/server/app/api/agent/route.js +1 -1
  61. package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
  62. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -1
  63. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -1
  64. package/dist/standalone/.next/server/app/api/answer/route.js +2 -1
  65. package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
  66. package/dist/standalone/.next/server/app/api/artifact/route.js +1 -1
  67. package/dist/standalone/.next/server/app/api/artifact/route.js.nft.json +1 -1
  68. package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -1
  69. package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -1
  70. package/dist/standalone/.next/server/app/api/attention/[id]/route.js +1 -1
  71. package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -1
  72. package/dist/standalone/.next/server/app/api/attention/route.js +1 -1
  73. package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -1
  74. package/dist/standalone/.next/server/app/api/board/route.js +1 -1
  75. package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -1
  76. package/dist/standalone/.next/server/app/api/bridge/route.js +2 -2
  77. package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
  78. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
  79. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
  80. package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
  81. package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
  82. package/dist/standalone/.next/server/app/api/files/route.js +2 -2
  83. package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  84. package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
  85. package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
  86. package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
  87. package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
  88. package/dist/standalone/.next/server/app/api/image/route.js +1 -1
  89. package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
  90. package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
  91. package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  92. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
  93. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
  94. package/dist/standalone/.next/server/app/api/limits/history/route.js +1 -1
  95. package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -1
  96. package/dist/standalone/.next/server/app/api/limits/route.js +1 -1
  97. package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
  98. package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -1
  99. package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -1
  100. package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -1
  101. package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -1
  102. package/dist/standalone/.next/server/app/api/log/provenance/route.js +67 -1
  103. package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -1
  104. package/dist/standalone/.next/server/app/api/log/route.js +1 -1
  105. package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
  106. package/dist/standalone/.next/server/app/api/log/suggestions/route.js +3 -0
  107. package/dist/standalone/.next/server/app/api/log/suggestions/route.js.nft.json +1 -0
  108. package/dist/standalone/.next/server/app/api/log/suggestions/route_client-reference-manifest.js +1 -0
  109. package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
  110. package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  111. package/dist/standalone/.next/server/app/api/logs/stream/route.js +2 -2
  112. package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  113. package/dist/standalone/.next/server/app/api/monitor/lock/route.js +1 -3
  114. package/dist/standalone/.next/server/app/api/monitor/lock/route.js.nft.json +1 -1
  115. package/dist/standalone/.next/server/app/api/monitor/runs/route.js +1 -3
  116. package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
  117. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
  118. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
  119. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
  120. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
  121. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +2 -2
  122. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -1
  123. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -1
  124. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -1
  125. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js +1 -1
  126. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -1
  127. package/dist/standalone/.next/server/app/api/pipelines/route.js +2 -2
  128. package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
  129. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +2 -2
  130. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
  131. package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
  132. package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
  133. package/dist/standalone/.next/server/app/api/projects/create/route.js +2 -2
  134. package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -1
  135. package/dist/standalone/.next/server/app/api/projects/crown/route.js +1 -1
  136. package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -1
  137. package/dist/standalone/.next/server/app/api/projects/directories/route.js +1 -0
  138. package/dist/standalone/.next/server/app/api/projects/directories/route.js.nft.json +1 -0
  139. package/dist/standalone/.next/server/app/api/projects/directories/route_client-reference-manifest.js +1 -0
  140. package/dist/standalone/.next/server/app/api/push/route.js +2 -2
  141. package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
  142. package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
  143. package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
  144. package/dist/standalone/.next/server/app/api/roles/route.js +2 -2
  145. package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
  146. package/dist/standalone/.next/server/app/api/runtime/answer/route.js +2 -1
  147. package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -1
  148. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js +1 -1
  149. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -1
  150. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js +1 -1
  151. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -1
  152. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js +1 -1
  153. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -1
  154. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js +1 -0
  155. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js.nft.json +1 -0
  156. package/dist/standalone/.next/server/app/api/runtime/hosts/route_client-reference-manifest.js +1 -0
  157. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +2 -1
  158. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -1
  159. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +2 -1
  160. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
  161. package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -1
  162. package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
  163. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +2 -1
  164. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
  165. package/dist/standalone/.next/server/app/api/runtime/send/route.js +2 -1
  166. package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -1
  167. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js +1 -1
  168. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -1
  169. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +2 -1
  170. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -1
  171. package/dist/standalone/.next/server/app/api/runtime/steer/route.js +2 -1
  172. package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -1
  173. package/dist/standalone/.next/server/app/api/runtime/stream/route.js +2 -2
  174. package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -1
  175. package/dist/standalone/.next/server/app/api/search/transcripts/route.js +2 -2
  176. package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -1
  177. package/dist/standalone/.next/server/app/api/session/route.js +1 -1
  178. package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  179. package/dist/standalone/.next/server/app/api/session/supersedence/route.js +1 -1
  180. package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -1
  181. package/dist/standalone/.next/server/app/api/session/title/route.js +1 -1
  182. package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -1
  183. package/dist/standalone/.next/server/app/api/spawn/policy/route.js +3 -3
  184. package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -1
  185. package/dist/standalone/.next/server/app/api/spawn/route.js +2 -2
  186. package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
  187. package/dist/standalone/.next/server/app/api/staging/route.js +2 -2
  188. package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
  189. package/dist/standalone/.next/server/app/api/task-attachments/route.js +2 -2
  190. package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
  191. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
  192. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
  193. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  194. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  195. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +2 -1
  196. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
  197. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +2 -1
  198. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
  199. package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
  200. package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
  201. package/dist/standalone/.next/server/app/api/tasks/route.js +2 -2
  202. package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  203. package/dist/standalone/.next/server/app/api/telegram/reports/route.js +1 -1
  204. package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -1
  205. package/dist/standalone/.next/server/app/api/telegram/route.js +1 -1
  206. package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -1
  207. package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
  208. package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
  209. package/dist/standalone/.next/server/app/api/tmux/route.js +2 -1
  210. package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
  211. package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
  212. package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
  213. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js +2 -2
  214. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
  215. package/dist/standalone/.next/server/app/api/transcribe/route.js +2 -2
  216. package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
  217. package/dist/standalone/.next/server/app/api/transcribe/token/route.js +2 -2
  218. package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
  219. package/dist/standalone/.next/server/app/api/tts/backend/route.js +1 -1
  220. package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -1
  221. package/dist/standalone/.next/server/app/api/tts/route.js +1 -1
  222. package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -1
  223. package/dist/standalone/.next/server/app/api/view/presence/route.js +1 -1
  224. package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -1
  225. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
  226. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
  227. package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
  228. package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  229. package/dist/standalone/.next/server/app/favicon.ico/route.js +1 -1
  230. package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  231. package/dist/standalone/.next/server/app/index.html +1 -1
  232. package/dist/standalone/.next/server/app/index.rsc +3 -3
  233. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  234. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  235. package/dist/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  236. package/dist/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  237. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  238. package/dist/standalone/.next/server/app/page.js +17 -13
  239. package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
  240. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  241. package/dist/standalone/.next/server/app-paths-manifest.json +28 -25
  242. package/dist/standalone/.next/server/chunks/107.js +1 -0
  243. package/dist/standalone/.next/server/chunks/{1858.js → 1100.js} +2 -2
  244. package/dist/standalone/.next/server/chunks/1872.js +42 -0
  245. package/dist/standalone/.next/server/chunks/1952.js +3 -0
  246. package/dist/standalone/.next/server/chunks/2243.js +1 -0
  247. package/dist/standalone/.next/server/chunks/2260.js +104 -0
  248. package/dist/standalone/.next/server/chunks/2318.js +2 -2
  249. package/dist/standalone/.next/server/chunks/2324.js +1 -1
  250. package/dist/standalone/.next/server/chunks/2549.js +81 -0
  251. package/dist/standalone/.next/server/chunks/2682.js +85 -0
  252. package/dist/standalone/.next/server/chunks/3086.js +1 -1
  253. package/dist/standalone/.next/server/chunks/3214.js +1 -1
  254. package/dist/standalone/.next/server/chunks/3302.js +2 -0
  255. package/dist/standalone/.next/server/chunks/3336.js +1 -1
  256. package/dist/standalone/.next/server/chunks/3386.js +2 -0
  257. package/dist/standalone/.next/server/chunks/3558.js +1 -1
  258. package/dist/standalone/.next/server/chunks/3587.js +1 -1
  259. package/dist/standalone/.next/server/chunks/3740.js +20 -20
  260. package/dist/standalone/.next/server/chunks/3830.js +1 -0
  261. package/dist/standalone/.next/server/chunks/4191.js +1 -1
  262. package/dist/standalone/.next/server/chunks/4310.js +1 -0
  263. package/dist/standalone/.next/server/chunks/4509.js +1 -1
  264. package/dist/standalone/.next/server/chunks/4565.js +1 -0
  265. package/dist/standalone/.next/server/chunks/4651.js +2 -0
  266. package/dist/standalone/.next/server/chunks/4756.js +13 -0
  267. package/dist/standalone/.next/server/chunks/4972.js +1 -1
  268. package/dist/standalone/.next/server/chunks/5103.js +10 -0
  269. package/dist/standalone/.next/server/chunks/5408.js +1 -0
  270. package/dist/standalone/.next/server/chunks/5545.js +1 -0
  271. package/dist/standalone/.next/server/chunks/5689.js +1 -1
  272. package/dist/standalone/.next/server/chunks/6333.js +3 -3
  273. package/dist/standalone/.next/server/chunks/6487.js +10 -0
  274. package/dist/standalone/.next/server/chunks/6796.js +1 -1
  275. package/dist/standalone/.next/server/chunks/6820.js +99 -0
  276. package/dist/standalone/.next/server/chunks/6826.js +1 -1
  277. package/dist/standalone/.next/server/chunks/6839.js +81 -0
  278. package/dist/standalone/.next/server/chunks/6850.js +1 -1
  279. package/dist/standalone/.next/server/chunks/6909.js +1 -1
  280. package/dist/standalone/.next/server/chunks/6942.js +27 -0
  281. package/dist/standalone/.next/server/chunks/7139.js +82 -0
  282. package/dist/standalone/.next/server/chunks/7471.js +13 -13
  283. package/dist/standalone/.next/server/chunks/7644.js +2 -2
  284. package/dist/standalone/.next/server/chunks/7722.js +1 -1
  285. package/dist/standalone/.next/server/chunks/773.js +47 -0
  286. package/dist/standalone/.next/server/chunks/8263.js +81 -0
  287. package/dist/standalone/.next/server/chunks/8326.js +1 -0
  288. package/dist/standalone/.next/server/chunks/8444.js +1 -1
  289. package/dist/standalone/.next/server/chunks/8617.js +1 -1
  290. package/dist/standalone/.next/server/chunks/8817.js +1 -1
  291. package/dist/standalone/.next/server/chunks/8996.js +1 -1
  292. package/dist/standalone/.next/server/chunks/9307.js +1 -0
  293. package/dist/standalone/.next/server/chunks/9364.js +58 -58
  294. package/dist/standalone/.next/server/chunks/9381.js +42 -0
  295. package/dist/standalone/.next/server/chunks/9403.js +1 -0
  296. package/dist/standalone/.next/server/chunks/9434.js +3 -3
  297. package/dist/standalone/.next/server/chunks/9488.js +1 -0
  298. package/dist/standalone/.next/server/chunks/9750.js +1 -0
  299. package/dist/standalone/.next/server/chunks/9777.js +1 -0
  300. package/dist/standalone/.next/server/chunks/9937.js +1 -1
  301. package/dist/standalone/.next/server/chunks/9940.js +1 -1
  302. package/dist/standalone/.next/server/chunks/9998.js +1 -1
  303. package/dist/standalone/.next/server/files-response-worker.js +3 -3
  304. package/dist/standalone/.next/server/functions-config-manifest.json +3 -0
  305. package/dist/standalone/.next/server/instrumentation.js +1 -1
  306. package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
  307. package/dist/standalone/.next/server/pages/404.html +1 -1
  308. package/dist/standalone/.next/server/pages/500.html +1 -1
  309. package/dist/standalone/.next/server/resource-collector-worker.js +1 -1
  310. package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
  311. package/dist/standalone/.next/server/wakatime-sync-worker.js +2 -2
  312. package/dist/standalone/.next/static/94yAMfjyhUPRgarycP9y4/_buildManifest.js +1 -0
  313. package/dist/standalone/.next/static/chunks/app/_global-error/page-ae02882983617748.js +1 -0
  314. package/dist/standalone/.next/static/chunks/app/api/access/route-ae02882983617748.js +1 -0
  315. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-ae02882983617748.js +1 -0
  316. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-ae02882983617748.js +1 -0
  317. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-ae02882983617748.js +1 -0
  318. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-ae02882983617748.js +1 -0
  319. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-ae02882983617748.js +1 -0
  320. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-ae02882983617748.js +1 -0
  321. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-ae02882983617748.js +1 -0
  322. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-ae02882983617748.js +1 -0
  323. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-ae02882983617748.js +1 -0
  324. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-ae02882983617748.js +1 -0
  325. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-ae02882983617748.js +1 -0
  326. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-ae02882983617748.js +1 -0
  327. package/dist/standalone/.next/static/chunks/app/api/accounts/route-ae02882983617748.js +1 -0
  328. package/dist/standalone/.next/static/chunks/app/api/agent/route-ae02882983617748.js +1 -0
  329. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-ae02882983617748.js +1 -0
  330. package/dist/standalone/.next/static/chunks/app/api/answer/route-ae02882983617748.js +1 -0
  331. package/dist/standalone/.next/static/chunks/app/api/artifact/route-ae02882983617748.js +1 -0
  332. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-ae02882983617748.js +1 -0
  333. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-ae02882983617748.js +1 -0
  334. package/dist/standalone/.next/static/chunks/app/api/attention/route-ae02882983617748.js +1 -0
  335. package/dist/standalone/.next/static/chunks/app/api/board/route-ae02882983617748.js +1 -0
  336. package/dist/standalone/.next/static/chunks/app/api/bridge/route-ae02882983617748.js +1 -0
  337. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-ae02882983617748.js +1 -0
  338. package/dist/standalone/.next/static/chunks/app/api/conversations/route-ae02882983617748.js +1 -0
  339. package/dist/standalone/.next/static/chunks/app/api/files/route-ae02882983617748.js +1 -0
  340. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-ae02882983617748.js +1 -0
  341. package/dist/standalone/.next/static/chunks/app/api/flows/route-ae02882983617748.js +1 -0
  342. package/dist/standalone/.next/static/chunks/app/api/image/route-ae02882983617748.js +1 -0
  343. package/dist/standalone/.next/static/chunks/app/api/inbox/route-ae02882983617748.js +1 -0
  344. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-ae02882983617748.js +1 -0
  345. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-ae02882983617748.js +1 -0
  346. package/dist/standalone/.next/static/chunks/app/api/limits/route-ae02882983617748.js +1 -0
  347. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-ae02882983617748.js +1 -0
  348. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-ae02882983617748.js +1 -0
  349. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-ae02882983617748.js +1 -0
  350. package/dist/standalone/.next/static/chunks/app/api/log/route-ae02882983617748.js +1 -0
  351. package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-ae02882983617748.js +1 -0
  352. package/dist/standalone/.next/static/chunks/app/api/logs/route-ae02882983617748.js +1 -0
  353. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-ae02882983617748.js +1 -0
  354. package/dist/standalone/.next/static/chunks/app/api/monitor/lock/route-ae02882983617748.js +1 -0
  355. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-ae02882983617748.js +1 -0
  356. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-ae02882983617748.js +1 -0
  357. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-ae02882983617748.js +1 -0
  358. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-ae02882983617748.js +1 -0
  359. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-ae02882983617748.js +1 -0
  360. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-ae02882983617748.js +1 -0
  361. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-ae02882983617748.js +1 -0
  362. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-ae02882983617748.js +1 -0
  363. package/dist/standalone/.next/static/chunks/app/api/proc/route-ae02882983617748.js +1 -0
  364. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-ae02882983617748.js +1 -0
  365. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-ae02882983617748.js +1 -0
  366. package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-ae02882983617748.js +1 -0
  367. package/dist/standalone/.next/static/chunks/app/api/push/route-ae02882983617748.js +1 -0
  368. package/dist/standalone/.next/static/chunks/app/api/resources/route-ae02882983617748.js +1 -0
  369. package/dist/standalone/.next/static/chunks/app/api/roles/route-ae02882983617748.js +1 -0
  370. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-ae02882983617748.js +1 -0
  371. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-ae02882983617748.js +1 -0
  372. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-ae02882983617748.js +1 -0
  373. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-ae02882983617748.js +1 -0
  374. package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-ae02882983617748.js +1 -0
  375. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-ae02882983617748.js +1 -0
  376. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-ae02882983617748.js +1 -0
  377. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-ae02882983617748.js +1 -0
  378. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-ae02882983617748.js +1 -0
  379. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-ae02882983617748.js +1 -0
  380. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-ae02882983617748.js +1 -0
  381. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-ae02882983617748.js +1 -0
  382. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-ae02882983617748.js +1 -0
  383. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-ae02882983617748.js +1 -0
  384. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-ae02882983617748.js +1 -0
  385. package/dist/standalone/.next/static/chunks/app/api/session/route-ae02882983617748.js +1 -0
  386. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-ae02882983617748.js +1 -0
  387. package/dist/standalone/.next/static/chunks/app/api/session/title/route-ae02882983617748.js +1 -0
  388. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-ae02882983617748.js +1 -0
  389. package/dist/standalone/.next/static/chunks/app/api/spawn/route-ae02882983617748.js +1 -0
  390. package/dist/standalone/.next/static/chunks/app/api/staging/route-ae02882983617748.js +1 -0
  391. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-ae02882983617748.js +1 -0
  392. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-ae02882983617748.js +1 -0
  393. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-ae02882983617748.js +1 -0
  394. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-ae02882983617748.js +1 -0
  395. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-ae02882983617748.js +1 -0
  396. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-ae02882983617748.js +1 -0
  397. package/dist/standalone/.next/static/chunks/app/api/tasks/route-ae02882983617748.js +1 -0
  398. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-ae02882983617748.js +1 -0
  399. package/dist/standalone/.next/static/chunks/app/api/telegram/route-ae02882983617748.js +1 -0
  400. package/dist/standalone/.next/static/chunks/app/api/timeline/route-ae02882983617748.js +1 -0
  401. package/dist/standalone/.next/static/chunks/app/api/tmux/route-ae02882983617748.js +1 -0
  402. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-ae02882983617748.js +1 -0
  403. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-ae02882983617748.js +1 -0
  404. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-ae02882983617748.js +1 -0
  405. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-ae02882983617748.js +1 -0
  406. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-ae02882983617748.js +1 -0
  407. package/dist/standalone/.next/static/chunks/app/api/tts/route-ae02882983617748.js +1 -0
  408. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-ae02882983617748.js +1 -0
  409. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-ae02882983617748.js +1 -0
  410. package/dist/standalone/.next/static/chunks/app/api/workflows/route-ae02882983617748.js +1 -0
  411. package/dist/standalone/.next/static/chunks/app/page-1a141ae4aa9d31a9.js +85 -0
  412. package/dist/standalone/.next/static/chunks/{framework-d1de002210ddaaef.js → framework-04bc8c1a646a0097.js} +1 -1
  413. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-ae02882983617748.js +1 -0
  414. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-ae02882983617748.js +1 -0
  415. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-ae02882983617748.js +1 -0
  416. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ae02882983617748.js +1 -0
  417. package/dist/standalone/.next/static/css/dc96fb2edbd8742e.css +1 -0
  418. package/dist/standalone/node_modules/{nanoid → next/node_modules/postcss/node_modules/nanoid}/non-secure/index.cjs +2 -2
  419. package/dist/standalone/node_modules/{nanoid → next/node_modules/postcss/node_modules/nanoid}/package.json +1 -1
  420. package/dist/standalone/node_modules/react/cjs/react.development.js +1 -1
  421. package/dist/standalone/node_modules/react/cjs/react.production.js +1 -1
  422. package/dist/standalone/node_modules/react/package.json +3 -3
  423. package/dist/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +1 -1
  424. package/dist/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +1 -1
  425. package/dist/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +3 -3
  426. package/dist/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +3 -3
  427. package/dist/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +3 -3
  428. package/dist/standalone/node_modules/react-dom/cjs/react-dom.production.js +1 -1
  429. package/dist/standalone/node_modules/react-dom/package.json +4 -4
  430. package/dist/standalone/package.json +9 -8
  431. package/dist/standalone/src/lib/inboxFiles.ts +203 -0
  432. package/package.json +9 -8
  433. package/dist/standalone/.next/server/chunks/156.js +0 -2
  434. package/dist/standalone/.next/server/chunks/1920.js +0 -27
  435. package/dist/standalone/.next/server/chunks/2338.js +0 -12
  436. package/dist/standalone/.next/server/chunks/2904.js +0 -42
  437. package/dist/standalone/.next/server/chunks/2977.js +0 -1
  438. package/dist/standalone/.next/server/chunks/3139.js +0 -10
  439. package/dist/standalone/.next/server/chunks/3598.js +0 -81
  440. package/dist/standalone/.next/server/chunks/4968.js +0 -1
  441. package/dist/standalone/.next/server/chunks/6977.js +0 -1
  442. package/dist/standalone/.next/server/chunks/7295.js +0 -10
  443. package/dist/standalone/.next/server/chunks/7868.js +0 -1
  444. package/dist/standalone/.next/server/chunks/8026.js +0 -1
  445. package/dist/standalone/.next/server/chunks/8600.js +0 -12
  446. package/dist/standalone/.next/server/chunks/9246.js +0 -47
  447. package/dist/standalone/.next/server/chunks/9733.js +0 -42
  448. package/dist/standalone/.next/static/2ybXlxpylgBaGz43zp2fM/_buildManifest.js +0 -1
  449. package/dist/standalone/.next/static/chunks/app/_global-error/page-c132c5ba005ff29e.js +0 -1
  450. package/dist/standalone/.next/static/chunks/app/api/access/route-c132c5ba005ff29e.js +0 -1
  451. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-c132c5ba005ff29e.js +0 -1
  452. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-c132c5ba005ff29e.js +0 -1
  453. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-c132c5ba005ff29e.js +0 -1
  454. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-c132c5ba005ff29e.js +0 -1
  455. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-c132c5ba005ff29e.js +0 -1
  456. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-c132c5ba005ff29e.js +0 -1
  457. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-c132c5ba005ff29e.js +0 -1
  458. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-c132c5ba005ff29e.js +0 -1
  459. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-c132c5ba005ff29e.js +0 -1
  460. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-c132c5ba005ff29e.js +0 -1
  461. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-c132c5ba005ff29e.js +0 -1
  462. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-c132c5ba005ff29e.js +0 -1
  463. package/dist/standalone/.next/static/chunks/app/api/accounts/route-c132c5ba005ff29e.js +0 -1
  464. package/dist/standalone/.next/static/chunks/app/api/agent/route-c132c5ba005ff29e.js +0 -1
  465. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-c132c5ba005ff29e.js +0 -1
  466. package/dist/standalone/.next/static/chunks/app/api/answer/route-c132c5ba005ff29e.js +0 -1
  467. package/dist/standalone/.next/static/chunks/app/api/artifact/route-c132c5ba005ff29e.js +0 -1
  468. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-c132c5ba005ff29e.js +0 -1
  469. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-c132c5ba005ff29e.js +0 -1
  470. package/dist/standalone/.next/static/chunks/app/api/attention/route-c132c5ba005ff29e.js +0 -1
  471. package/dist/standalone/.next/static/chunks/app/api/board/route-c132c5ba005ff29e.js +0 -1
  472. package/dist/standalone/.next/static/chunks/app/api/bridge/route-c132c5ba005ff29e.js +0 -1
  473. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-c132c5ba005ff29e.js +0 -1
  474. package/dist/standalone/.next/static/chunks/app/api/conversations/route-c132c5ba005ff29e.js +0 -1
  475. package/dist/standalone/.next/static/chunks/app/api/files/route-c132c5ba005ff29e.js +0 -1
  476. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-c132c5ba005ff29e.js +0 -1
  477. package/dist/standalone/.next/static/chunks/app/api/flows/route-c132c5ba005ff29e.js +0 -1
  478. package/dist/standalone/.next/static/chunks/app/api/image/route-c132c5ba005ff29e.js +0 -1
  479. package/dist/standalone/.next/static/chunks/app/api/inbox/route-c132c5ba005ff29e.js +0 -1
  480. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-c132c5ba005ff29e.js +0 -1
  481. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-c132c5ba005ff29e.js +0 -1
  482. package/dist/standalone/.next/static/chunks/app/api/limits/route-c132c5ba005ff29e.js +0 -1
  483. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-c132c5ba005ff29e.js +0 -1
  484. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-c132c5ba005ff29e.js +0 -1
  485. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-c132c5ba005ff29e.js +0 -1
  486. package/dist/standalone/.next/static/chunks/app/api/log/route-c132c5ba005ff29e.js +0 -1
  487. package/dist/standalone/.next/static/chunks/app/api/logs/route-c132c5ba005ff29e.js +0 -1
  488. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-c132c5ba005ff29e.js +0 -1
  489. package/dist/standalone/.next/static/chunks/app/api/monitor/lock/route-c132c5ba005ff29e.js +0 -1
  490. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-c132c5ba005ff29e.js +0 -1
  491. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-c132c5ba005ff29e.js +0 -1
  492. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-c132c5ba005ff29e.js +0 -1
  493. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-c132c5ba005ff29e.js +0 -1
  494. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-c132c5ba005ff29e.js +0 -1
  495. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-c132c5ba005ff29e.js +0 -1
  496. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-c132c5ba005ff29e.js +0 -1
  497. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-c132c5ba005ff29e.js +0 -1
  498. package/dist/standalone/.next/static/chunks/app/api/proc/route-c132c5ba005ff29e.js +0 -1
  499. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-c132c5ba005ff29e.js +0 -1
  500. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-c132c5ba005ff29e.js +0 -1
  501. package/dist/standalone/.next/static/chunks/app/api/push/route-c132c5ba005ff29e.js +0 -1
  502. package/dist/standalone/.next/static/chunks/app/api/resources/route-c132c5ba005ff29e.js +0 -1
  503. package/dist/standalone/.next/static/chunks/app/api/roles/route-c132c5ba005ff29e.js +0 -1
  504. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-c132c5ba005ff29e.js +0 -1
  505. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-c132c5ba005ff29e.js +0 -1
  506. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-c132c5ba005ff29e.js +0 -1
  507. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-c132c5ba005ff29e.js +0 -1
  508. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-c132c5ba005ff29e.js +0 -1
  509. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-c132c5ba005ff29e.js +0 -1
  510. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-c132c5ba005ff29e.js +0 -1
  511. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-c132c5ba005ff29e.js +0 -1
  512. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-c132c5ba005ff29e.js +0 -1
  513. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-c132c5ba005ff29e.js +0 -1
  514. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-c132c5ba005ff29e.js +0 -1
  515. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-c132c5ba005ff29e.js +0 -1
  516. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-c132c5ba005ff29e.js +0 -1
  517. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-c132c5ba005ff29e.js +0 -1
  518. package/dist/standalone/.next/static/chunks/app/api/session/route-c132c5ba005ff29e.js +0 -1
  519. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-c132c5ba005ff29e.js +0 -1
  520. package/dist/standalone/.next/static/chunks/app/api/session/title/route-c132c5ba005ff29e.js +0 -1
  521. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-c132c5ba005ff29e.js +0 -1
  522. package/dist/standalone/.next/static/chunks/app/api/spawn/route-c132c5ba005ff29e.js +0 -1
  523. package/dist/standalone/.next/static/chunks/app/api/staging/route-c132c5ba005ff29e.js +0 -1
  524. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-c132c5ba005ff29e.js +0 -1
  525. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-c132c5ba005ff29e.js +0 -1
  526. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-c132c5ba005ff29e.js +0 -1
  527. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-c132c5ba005ff29e.js +0 -1
  528. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-c132c5ba005ff29e.js +0 -1
  529. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-c132c5ba005ff29e.js +0 -1
  530. package/dist/standalone/.next/static/chunks/app/api/tasks/route-c132c5ba005ff29e.js +0 -1
  531. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-c132c5ba005ff29e.js +0 -1
  532. package/dist/standalone/.next/static/chunks/app/api/telegram/route-c132c5ba005ff29e.js +0 -1
  533. package/dist/standalone/.next/static/chunks/app/api/timeline/route-c132c5ba005ff29e.js +0 -1
  534. package/dist/standalone/.next/static/chunks/app/api/tmux/route-c132c5ba005ff29e.js +0 -1
  535. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-c132c5ba005ff29e.js +0 -1
  536. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-c132c5ba005ff29e.js +0 -1
  537. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-c132c5ba005ff29e.js +0 -1
  538. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-c132c5ba005ff29e.js +0 -1
  539. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-c132c5ba005ff29e.js +0 -1
  540. package/dist/standalone/.next/static/chunks/app/api/tts/route-c132c5ba005ff29e.js +0 -1
  541. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-c132c5ba005ff29e.js +0 -1
  542. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-c132c5ba005ff29e.js +0 -1
  543. package/dist/standalone/.next/static/chunks/app/api/workflows/route-c132c5ba005ff29e.js +0 -1
  544. package/dist/standalone/.next/static/chunks/app/page-7ba2538fa87e3d62.js +0 -80
  545. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-c132c5ba005ff29e.js +0 -1
  546. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-c132c5ba005ff29e.js +0 -1
  547. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-c132c5ba005ff29e.js +0 -1
  548. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-c132c5ba005ff29e.js +0 -1
  549. package/dist/standalone/.next/static/css/498f12ddef7ecb0e.css +0 -1
  550. /package/dist/standalone/.next/static/{2ybXlxpylgBaGz43zp2fM → 94yAMfjyhUPRgarycP9y4}/_ssgManifest.js +0 -0
  551. /package/dist/standalone/node_modules/{nanoid → next/node_modules/postcss/node_modules/nanoid}/non-secure/package.json +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=5689,exports.ids=[5689],exports.modules={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};return!(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-"))&&(0,g.z9)(c.engine,c.effort)}(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:()=>j,ck:()=>g,ve:()=>i,z9:()=>e});let d={claude:["low","medium","high","xhigh","max"],codex:["low","medium","high","xhigh"]};function e(a,b){return d[a].includes(b)}let f=["minimal","low","medium","high","xhigh","max","ultra"];function g(a){return f.includes(a)}let h=[[/^gpt-5\.6-(sol|terra)\b/,["low","medium","high","xhigh","max","ultra"]],[/^gpt-5\.6\b/,["low","medium","high","xhigh","max"]]];function i(a,b){if("claude"===a)return d.claude;if("codex"!==a)return null;let c=(b??"").trim().toLowerCase();for(let[a,b]of h)if(a.test(c))return b;return d.codex}function j(a,b){let c="string"==typeof b.effort?b.effort.trim():"";return c&&!e(a,c)?{effort:null,fast:null,error:`effort for ${a} must be one of: ${d[a].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:()=>s,im:()=>t,rj:()=>p,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,f=e().createHash("sha256").update(`dir:${b}`).digest("hex").slice(0,32);return{project:`dir-${f}`,displayName:d}}function p(a){return a===l?m:a}function q(a){try{return g().statSync(k().join(a,"HEAD")).isFile()}catch{return!1}}function r(a){let b=k().join(a,".git");try{let c=g().lstatSync(b);if(c.isDirectory())return q(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 q(f)?f:null}catch{return null}}function s(a){let b=k().resolve(a);for(;;){if(r(b))return b;let a=k().dirname(b);if(a===b)return null;b=a}}function t(a){let b,c=r(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),f=(()=>{try{return g().realpathSync.native(a)}catch{return k().resolve(a)}})(),h=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:${f}`,i=h&&h.replace(/^file:/,"").split("/").filter(Boolean).at(-1)?.trim()||null;if(!h||!i)return null;let j=e().createHash("sha256").update(h).digest("hex").slice(0,32);return{project:`repo-${j}`,displayName:i,canonicalRemote:h}}},49048:(a,b,c)=>{c.d(b,{W:()=>h});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="Two 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.",g=`http://127.0.0.1:${process.env.PORT?.trim()||"8898"}`,h=[{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 API at ${g}. Use fresh empty sessions with src lineage; forks are disabled. Keep every worker visible and controllable in the Viewer.
1
+ "use strict";exports.id=5689,exports.ids=[5689],exports.modules={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};return!(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-"))&&(0,g.z9)(c.engine,c.effort)}(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,z9:()=>e});let d={claude:["low","medium","high","xhigh","max"],codex:["low","medium","high","xhigh"]};function e(a,b){return d[a].includes(b)}let f=["minimal","low","medium","high","xhigh","max","ultra"];function g(a){return f.includes(a)}let h=[[/^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.claude;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 d.codex}function k(a,b){let c="string"==typeof b.effort?b.effort.trim():"";return c&&!e(a,c)?{effort:null,fast:null,error:`effort for ${a} must be one of: ${d[a].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,im:()=>u,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,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),f=(()=>{try{return g().realpathSync.native(a)}catch{return k().resolve(a)}})(),h=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:${f}`,i=h&&h.replace(/^file:/,"").split("/").filter(Boolean).at(-1)?.trim()||null;if(!h||!i)return null;let j=e().createHash("sha256").update(h).digest("hex").slice(0,32);return{project:`repo-${j}`,displayName:i,canonicalRemote:h}}},49048:(a,b,c)=>{c.d(b,{W:()=>h});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="Two 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.",g=`http://127.0.0.1:${process.env.PORT?.trim()||"8898"}`,h=[{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 API at ${g}. 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}}
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=6333,exports.ids=[6333],exports.modules={8668:(a,b,c)=>{c.d(b,{Wp:()=>g,cz:()=>d,mq:()=>h,oM:()=>f,zv:()=>e});let d="Europe/Kyiv",e={enabled:!1,time:"10:00",groups:[],promptIsDefault:!0},f=60;function g(a){return"string"==typeof a&&/^([01]\d|2[0-3]):[0-5]\d$/.test(a)}function h(a){return"string"==typeof a&&/^-?\d{1,20}$/.test(a)}},35961:(a,b,c)=>{c.d(b,{W:()=>g});var d=c(23211);let e=["localhost","127.0.0.1","::1"];function f(a){if(a.startsWith("[")){let b=a.indexOf("]");return -1===b?a:a.slice(1,b)}let b=a.lastIndexOf(":");return -1===b?a:a.slice(0,b)}function g(a){let b=new Set(e),c=process.env.LLV_TS_HOST;c&&b.add(f(c));let d=a.headers.get("host");if(null===d||!b.has(f(d)))return h();let g=a.headers.get("origin");if(null!==g){let a;try{a=new URL(g).host}catch{a=null}if(null===a||!b.has(f(a)))return h()}let i=a.headers.get("sec-fetch-site");return null!==i&&"same-origin"!==i&&"none"!==i?h():null}function h(){return d.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}},43034:(a,b,c)=>{c.d(b,{tx:()=>s,$S:()=>l,Cl:()=>k});var d=c(68032),e=c(80338),f=c(88714),g=c(21962);function h(a){return"number"!=typeof a||!Number.isFinite(a)||a<=0?null:Math.round(1e3*a)}function i(a){return/^\d+$/.test(a)}async function j(a){let b=await a.listChats({kind:"user",limit:100}),c=new Set,d=[],e=!1;for(let a of b)!c.has(a.id)&&(c.add(a.id),(a.username??"").toLowerCase().endsWith("bot")||d.push({id:a.id,title:a.title}));for(let b=1;b<=3;b+=1){let f=await a.pageChats({page:b,pageSize:100});if(0===f.length)break;for(let a of f)!c.has(a.id)&&i(a.id)&&(c.add(a.id),d.push(a));if(f.length<100)break;3===b&&(e=!0)}return{candidates:d,truncated:e}}async function k(a,b){let c=Date.parse(b.windowStart),d=await a.feedDialogs({sinceMs:c}),e=[],f=new Set;for(let a of d.dialogs)f.has(a.id)||(f.add(a.id),e.push({id:a.id,title:a.title,lastMessageAt:a.lastMessageAt}));let g=await j(a),h=g.candidates.filter(a=>!f.has(a.id)),i=null!==d.coveredSinceMs&&d.coveredSinceMs<=c?300:150,k=0;for(let b of h){if(k>=i)break;let d=await a.lastMessageAt(b.id);k+=1;let f=d?Date.parse(d):NaN;Number.isFinite(f)&&!(f<c)&&e.push({id:b.id,title:b.title,lastMessageAt:new Date(f).toISOString()})}e.sort((a,b)=>Date.parse(b.lastMessageAt)-Date.parse(a.lastMessageAt));let l=k>=i&&h.length>k;if(l||g.truncated)throw Error("Telegram report sources cannot cover this window");return{version:1,promptVersion:b.promptVersion,windowStart:b.windowStart,windowEnd:b.windowEnd,privateDialogs:e.slice(0,25),groups:b.groups.map(a=>({...a})),probes:k,feedDialogs:f.size,truncated:e.length>25,probeBudgetExhausted:l}}async function l(a){let b=await a.listChats({kind:"group",limit:100}),c=new Set,d=[];for(let a of b)c.has(a.id)||(c.add(a.id),d.push({id:a.id,title:a.title}));for(let b=1;b<=3;b+=1){let e=await a.pageChats({page:b,pageSize:100});if(0===e.length)break;for(let a of e)c.has(a.id)||i(a.id)||(c.add(a.id),d.push(a));if(e.length<100)break}return d}function m(a){return(a?.content??[]).filter(a=>a?.type==="text").map(a=>a.text??"").join("\n")}function n(a){try{let b=JSON.parse(m(a));return Array.isArray(b?.results)?b.results:[]}catch{return[]}}async function o(a,b,d){let{Client:e}=await Promise.all([c.e(9901),c.e(9434)]).then(c.bind(c,79434)),{StreamableHTTPClientTransport:g}=await Promise.all([c.e(9901),c.e(7295)]).then(c.bind(c,59676)),h=new e({name:"agent-log-viewer",version:"1.0.0"}),i=new g(new URL((0,f.h3)()),{requestInit:{headers:{Authorization:`Bearer ${a.connectorToken}`}}});try{return await h.connect(i),await h.callTool({name:b,arguments:d})}finally{await h.close().catch(()=>void 0)}}let p={readSession:d.w0,callTool:o,ensureConnector:a=>(0,e.X8)(a),sleep:a=>new Promise(b=>setTimeout(b,a)),now:Date.now};function q(a,b){let c=b.readSession();if(!c)throw Error("Telegram is not connected");if(c.credentialRef!==a)throw Error("Telegram credential generation changed");return c}async function r(a,b,c,d=p){try{return await d.callTool(a,b,c)}catch{}let e=Math.max(1,d.readinessTimeoutMs??3e4),f=d.now()+e,g=250;for(;d.now()<f;){let e,h=q(a.credentialRef,d);try{e=await d.ensureConnector(h)}catch{e={ok:!1,code:"connector_failed"}}if(e.ok){let e=q(a.credentialRef,d);try{return await d.callTool(e,b,c)}catch{}}else if("connector_failed"!==e.code)break;let i=f-d.now();if(i<=0)break;await d.sleep(Math.min(g,i)),g=Math.min(2*g,2e3)}throw Error("Telegram connector is unavailable")}function s(a=null,b=p){let c=a,f=async(a,d)=>{let e=b.readSession();if(!e)throw Error("Telegram is not connected");if(c??=e.credentialRef,e.credentialRef!==c)throw Error("Telegram credential generation changed");return await r(e,a,d,b)};return{async getMe(){let a=JSON.parse(m(await f("get_me",{}))),b="string"==typeof a?.name?a.name.trim():"",c=(0,g.S)(a?.id);return b||c?{name:b,username:"string"==typeof a.username&&a.username?a.username:null,id:c}:null},async feedDialogs(a){let b=null;try{let a=m(await f("incoming_feed_status",{}));b=function(a,b){if(!b)return null;let c=function(a){let b;try{b=JSON.parse(a)}catch{return null}let c=b?.enabled===!0||b?.autostart_pending===!0,d="string"==typeof b?.feed_file?b.feed_file.trim():"";return c&&d?d:null}(a);return null!==c&&c===(0,d.ZI)(b)?c:null}(a,c)}catch{}if(!b)throw Error("Telegram incoming feed is unavailable");return{dialogs:function(a,b){if(!a)return[];let c=(0,d.Cx)(a,{chunkBytes:524288,maxBytes:8388608},a=>(function(a,b){for(let c of a.split("\n")){let a;if(!c.trim())continue;try{a=JSON.parse(c)}catch{continue}let d=h(a.ts);if(null!==d&&d<b)return!0}return!1})(a,b));if(null===c)return[];if(!c.complete)throw Error("Telegram incoming feed is larger than one report read");return function(a,b){let c=new Map,d=new Map;for(let f of a.split("\n")){var e;let a;if(!f.trim())continue;try{a=JSON.parse(f)}catch{continue}let g="number"==typeof(e=a.chat_id)?Number.isSafeInteger(e)&&e>0?String(e):null:"string"!=typeof e?null:/^[1-9]\d{0,18}$/.test(e.trim())?e.trim():null;if(!g||"string"==typeof a.username&&a.username.toLowerCase().endsWith("bot"))continue;let i=h(a.ts);if(null===i||i<b)continue;let j=c.get(g);void 0!==j&&j>=i||(c.set(g,i),d.set(g,"string"==typeof a.name&&a.name?a.name.slice(0,120):g))}return[...c.entries()].sort((a,b)=>b[1]-a[1]).map(([a,b])=>({id:a,title:d.get(a)??a,lastMessageAt:new Date(b).toISOString()}))}(c.text,b)}(b,a.sinceMs),coveredSinceMs:null===c?null:(0,e.Yb)(c)}},listChats:async a=>n(await f("list_chats",{chat_type:a.kind,limit:Math.min(a.limit,100)})).map(b=>(function(a,b){let c=a.chat_id;if("number"!=typeof c&&"string"!=typeof c)return null;let d="string"==typeof a.title?a.title:"string"==typeof a.name?a.name:String(c);return{id:String(c),kind:b,title:d,username:"string"==typeof a.username?a.username:null,unread:"number"==typeof a.unread?a.unread:0}})(b,a.kind)).filter(a=>null!==a),pageChats:async a=>n(await f("get_chats",{page:a.page,page_size:Math.min(a.pageSize,100)})).map(a=>{let b=a.chat_id;return"number"!=typeof b&&"string"!=typeof b?null:{id:String(b),title:"string"==typeof a.title?a.title:String(b)}}).filter(a=>null!==a),async lastMessageAt(a){let b=n(await f("list_messages",{chat_id:Number(a),limit:1}))[0],c=b?.date;if("string"!=typeof c)return null;let d=Date.parse(c);return Number.isFinite(d)?new Date(d).toISOString():null}}}},46453:(a,b,c)=>{c.d(b,{VD:()=>w,M2:()=>v});var d=c(77598),e=c.n(d),f=c(4837),g=c(8668),h=c(96101),i=c(55862),j=c(52538),k=c(43034),l=c(10230);function m(a){a().catch(()=>void 0)}let n="127.0.0.1";async function o(a){var b;let[{executeSpawnRequest:d,productionSpawnCommandDependencies:e},{ensureOperatorSpawnCapability:f},{VIEWER_SPAWN_CAPABILITY_HEADER:g}]=await Promise.all([Promise.all([c.e(8966),c.e(1617),c.e(9733),c.e(9940),c.e(4509),c.e(2977),c.e(8797),c.e(8996),c.e(3587),c.e(8176),c.e(6850),c.e(1858),c.e(9411),c.e(8617),c.e(6826),c.e(640),c.e(2190),c.e(4127),c.e(7471),c.e(7722),c.e(9937)]).then(c.bind(c,67722)),c.e(2318).then(c.bind(c,89937)),c.e(4012).then(c.bind(c,4012))]),h={headers:new Headers({host:n,origin:`http://${n}`,"sec-fetch-site":"same-origin",[g]:f()}),json:async()=>a.body},i=await d(h,{...e,...(b=a.grantActive,{defer:m,internalGrant:()=>({sessionClass:l.Vv,mcpServers:(0,l.FE)({grantActive:b()})})})});return{status:i.status,body:await i.json()}}var p=c(79554),q=c(68032);let r={now:Date.now,connection:()=>{try{return(0,q.Kd)()}catch{return{version:1,status:"error",credentialRef:null,identity:null,lastHealthCheckAt:null,errorCode:"session_unsafe",identityIdUpgradedAt:null}}},readPort:a=>(0,k.tx)(a),beginReadPhase:async()=>{let{telegramService:a}=await Promise.all([c.e(8966),c.e(849)]).then(c.bind(c,70849));return await a().beginReportReadPhase()},migrateIdentity:async function(){try{let{telegramService:a}=await Promise.all([c.e(8966),c.e(849)]).then(c.bind(c,70849));await a().checkHealth()}catch{}},spawn:o,reportRunConversation:async function(a){try{let{agentRegistry:b}=await Promise.all([c.e(9733),c.e(2962)]).then(c.bind(c,29733)),d=b(),e=d.spawnReceiptForClientAttempt((0,j.hS)(a));return e?d.canonicalConversationId(e.conversationId):null}catch{return null}},conversationLive:async function(a){try{let{agentRegistry:b}=await Promise.all([c.e(9733),c.e(2962)]).then(c.bind(c,29733)),d=b().conversation(a);if(!d)return!1;return d.turn?.state!=="terminal"}catch{return!0}},log:a=>console.error(`[telegram report] ${a}`)};function s(a){let b=a.identity?.id;return b&&a.credentialRef?{id:b,credentialRef:a.credentialRef}:null}class t{constructor(a=r){this.ports=a,this.running=!1,this.planning=new Set,this.pending=[]}grantActive(a=null){let b=this.ports.connection();return(null===a||b.credentialRef===a)&&(0,p.rD)().settings.enabled&&"connected"===b.status}payload(){var a;let b=(0,p.rD)(),c=b.active?[{id:(a=b.active).runId,trigger:a.trigger,startedAt:a.startedAt,finishedAt:null,windowStart:a.windowStart,windowEnd:a.windowEnd,status:"running",errorCode:null,conversationId:a.conversationId,hasReport:!1,promptVersion:a.promptVersion},...b.history]:b.history,d=(0,i.jF)({now:this.ports.now(),settings:b.settings,cursor:b.cursor});return{settings:{...b.settings,promptIsDefault:null===b.prompt},history:c,nextRunAt:null===d?null:new Date(d).toISOString()}}async tick(){if(!this.running){this.running=!0;try{this.reconcileDisconnected(),await this.finalizeActiveRun();let a=(0,p.rD)();if(a.active||!(0,i.z1)({now:this.ports.now(),settings:a.settings,cursor:a.cursor}))return;let b=(0,i.l)(this.ports.now(),g.cz);(0,p.k)(a=>{a.cursor.lastScheduledDay=b});let c=this.beginRun("scheduled");c.ok&&await this.execute(c.runId)}catch{this.ports.log("tick_failed")}finally{this.running=!1}}}async runNow(){let a;if(this.running)return{ok:!1,code:"run_in_progress"};this.running=!0;try{if(await this.finalizeActiveRun(),(0,p.rD)().active)return{ok:!1,code:"run_in_progress"};a=this.beginRun("manual")}finally{this.running=!1}if(!a.ok)return a;let b=this.execute(a.runId);return this.pending.push(b),b.finally(()=>{this.pending=this.pending.filter(a=>a!==b)}),a}async settled(){let a=this.pending;this.pending=[],await Promise.all(a)}reconcileDisconnected(){let a=this.ports.connection();if("disconnected"!==a.status||null!==a.credentialRef)return;let b=(0,p.rD)();(b.settings.enabled||0!==b.history.length||b.active)&&(0,p.mI)()}beginRun(a){let b=(0,p.rD)(),c=this.ports.connection();if(!b.settings.enabled)return this.recordFailure(a,"reports_disabled");if("connected"!==c.status)return this.recordFailure(a,"not_connected");let d=e().randomUUID(),f=(0,i.s)(this.ports.now(),b.cursor);return this.planning.add(d),(0,p.k)(b=>{b.active={runId:d,trigger:a,startedAt:new Date(this.ports.now()).toISOString(),windowStart:f.startAt,windowEnd:f.endAt,conversationId:null,promptVersion:h.BL}}),{ok:!0,runId:d}}async execute(a){try{await this.executeLocked(a)}catch{this.ports.log("run_failed"),this.settle(a,"failed","launch_failed",!1)}finally{this.planning.delete(a)}}async verifiedIdentity(){let a=this.ports.connection();if(a.identity?.id)return s(a);if(!a.identity||a.identityIdUpgradedAt)return null;await this.ports.migrateIdentity();let b=this.ports.connection();return"connected"!==b.status?null:s(b)}async executeLocked(a){let b,c,d,e=(0,p.rD)(),g=e.active;if(!g||g.runId!==a)return;let i={startAt:g.windowStart,endAt:g.windowEnd},l=await this.verifiedIdentity();if(!l){this.ports.log("account_check_failed"),this.settle(a,"failed","account_check_failed",!1);return}let m=this.ports.readPort(l.credentialRef);if(!this.ports.beginReadPhase)throw Error("Telegram report read lease is unavailable");let n=await this.ports.beginReadPhase();try{var o,q;try{b=await m.getMe()}catch{this.ports.log("account_check_failed"),this.settle(a,"failed","account_check_failed",!1);return}if(o=b,q=l,!(o?.id&&q?.id)||o.id!==q.id){this.ports.log("account_mismatch"),this.settle(a,"account-mismatch",null,!1);return}try{let b=await (0,k.Cl)(m,{windowStart:i.startAt,windowEnd:i.endAt,groups:e.settings.groups,promptVersion:h.BL});c=(0,p.uc)(a,b)}catch{this.ports.log("sources_failed"),this.settle(a,"failed","sources_failed",!1);return}}finally{n()}if((0,p.rD)().active?.runId!==a)return void(0,p.jc)(a);if(this.ports.connection().credentialRef!==l.credentialRef){this.ports.log("account_mismatch"),(0,p.jc)(a),this.settle(a,"account-mismatch",null,!1);return}let r=(0,h.Y_)({windowStart:i.startAt,windowEnd:i.endAt,sourcesPath:c,outputPath:(0,p.sk)(a),instructions:(0,p.kG)((0,p.rD)())});try{d=await this.ports.spawn({body:{engine:"codex",model:f.je,effort:"medium",cwd:(0,p.lN)(),clientAttemptId:(0,j.hS)(a),project:j.zg,prompt:r},grantActive:()=>this.grantActive(l.credentialRef)})}catch{this.ports.log("launch_failed"),this.settle(a,"failed","launch_failed",!1);return}let s="string"==typeof d.body.conversationId?d.body.conversationId:null;if(!(d.status>=200&&d.status<300&&!1!==d.body.ok&&null!==s)){this.ports.log("launch_rejected"),this.settle(a,"failed","launch_failed",!1);return}(0,p.k)(b=>{b.active?.runId===a&&(b.active.conversationId=s)})}async relinkActiveRun(a){if(this.planning.has(a))return null;let b=await this.ports.reportRunConversation(a);return b?((0,p.k)(c=>{c.active?.runId!==a||c.active.conversationId||(c.active.conversationId=b)}),b):null}async finalizeActiveRun(){let a=(0,p.rD)().active;if(!a)return;let b=(0,p.H$)(a.runId),c=(0,h.U$)(b);if("ok"===c.kind){(0,p.$H)(a.runId,c.report),this.settle(a.runId,"ok",null,!0);return}if("quiet"===c.kind)return void this.settle(a.runId,"quiet",null,!1);if("invalid"===c.kind&&null!==b)return void this.settle(a.runId,"failed","invalid_report",!1);let d=Date.parse(a.startedAt),e=Number.isFinite(d)&&this.ports.now()-d>27e5,f=a.conversationId??await this.relinkActiveRun(a.runId);f?await this.ports.conversationLive(f)?e&&this.settle(a.runId,"failed","timed_out",!1):this.settle(a.runId,"failed","run_ended_without_report",!1):this.planning.has(a.runId)?e&&this.settle(a.runId,"failed","timed_out",!1):this.settle(a.runId,"failed","launch_failed",!1)}settle(a,b,c,d){(0,p.k)(e=>{let f=e.active;if(!f||f.runId!==a)return;if(e.active=null,e.history=[{id:f.runId,trigger:f.trigger,startedAt:f.startedAt,finishedAt:new Date(this.ports.now()).toISOString(),windowStart:f.windowStart,windowEnd:f.windowEnd,status:b,errorCode:c,conversationId:f.conversationId,hasReport:d,promptVersion:f.promptVersion},...e.history],"ok"!==b&&"quiet"!==b){let a=e.cursor.unreportedSinceAt;(!a||Date.parse(f.windowStart)<Date.parse(a))&&(e.cursor.unreportedSinceAt=f.windowStart);return}e.cursor.lastSuccessfulWindowEndAt=f.windowEnd,e.cursor.unreportedSinceAt=null;let h=(0,i.l)(this.ports.now(),g.cz);this.ports.now()>=(0,i.wk)(h,e.settings.time,g.cz)&&(e.cursor.lastScheduledDay=h)}),d?(0,p.jc)(a):(0,p.FF)(a)}recordFailure(a,b,c=(0,i.s)(this.ports.now(),(0,p.rD)().cursor)){let d=new Date(this.ports.now()).toISOString();return(0,p.k)(f=>{if(f.history=[{id:e().randomUUID(),trigger:a,startedAt:d,finishedAt:d,windowStart:c.startAt,windowEnd:c.endAt,status:"failed",errorCode:b,conversationId:null,hasReport:!1,promptVersion:h.BL},...f.history],"reports_disabled"===b)return;let g=f.cursor.unreportedSinceAt;(!g||Date.parse(c.startAt)<Date.parse(g))&&(f.cursor.unreportedSinceAt=c.startAt)}),{ok:!1,code:b}}}let u=globalThis;function v(){return u.__llvTelegramReportRunner??=new t}function w(){u.__llvTelegramReportTimer||(u.__llvTelegramReportTimer=setInterval(()=>{v().tick()},6e4),u.__llvTelegramReportTimer.unref?.(),v().tick())}},52538:(a,b,c)=>{c.d(b,{hS:()=>f,jE:()=>g,zg:()=>d});let d="telegram-reports",e="telegram-report-";function f(a){return`${e}${a}`}function g(a){if("string"!=typeof a||!a.startsWith(e))return null;let b=a.slice(e.length);return/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(b)?b:null}},55862:(a,b,c)=>{c.d(b,{jF:()=>k,l:()=>g,s:()=>l,wk:()=>i,z1:()=>j});var d=c(8668);let e=new Map;function f(a,b){let c=e.get(b);c||(c=new Intl.DateTimeFormat("en-US",{timeZone:b,hour12:!1,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),e.set(b,c));let d={};for(let b of c.formatToParts(new Date(a)))d[b.type]=b.value;return{year:Number(d.year),month:Number(d.month),day:Number(d.day),hour:Number(d.hour)%24,minute:Number(d.minute),second:Number(d.second)}}function g(a,b=d.cz){let c=f(a,b);return`${String(c.year).padStart(4,"0")}-${String(c.month).padStart(2,"0")}-${String(c.day).padStart(2,"0")}`}function h(a,b){let c=f(a,b);return Date.UTC(c.year,c.month-1,c.day,c.hour,c.minute,c.second)-1e3*Math.floor(a/1e3)}function i(a,b,c=d.cz){let[e,f]=b.split(":").map(Number),[g,j,k]=a.split("-").map(Number),l=Date.UTC(g,j-1,k,e,f,0),m=l-h(l,c);return l-h(m,c)}function j(a){let b=a.timeZone??d.cz;if(!a.settings.enabled)return!1;let c=g(a.now,b);return a.cursor.lastScheduledDay!==c&&a.now>=i(c,a.settings.time,b)}function k(a){let b=a.timeZone??d.cz;if(!a.settings.enabled)return null;if(j(a))return a.now;let c=i(g(a.now,b),"12:00",b);for(let d=0;d<=8;d+=1){let e=g(c+864e5*d,b),f=i(e,a.settings.time,b);if(!(f<=a.now)&&a.cursor.lastScheduledDay!==e)return f}return null}function l(a,b){let c=b.unreportedSinceAt?Date.parse(b.unreportedSinceAt):NaN,d=b.lastSuccessfulWindowEndAt?Date.parse(b.lastSuccessfulWindowEndAt):NaN,e=Number.isFinite(c)?c:d;return{startAt:new Date(Number.isFinite(e)&&e<a?Math.max(e,a-2592e5):a-864e5).toISOString(),endAt:new Date(a).toISOString()}}},79554:(a,b,c)=>{c.d(b,{$H:()=>w,FF:()=>B,H$:()=>z,Kq:()=>x,Zc:()=>q,iZ:()=>r,jc:()=>A,k:()=>v,kG:()=>s,lN:()=>n,mI:()=>C,rD:()=>u,sk:()=>m,uc:()=>y});var d=c(73024),e=c.n(d);c(76760);var f=c(91724),g=c(8668),h=c(96101),i=c(68032);function j(){return(0,f.BQ)("telegram","reports.json")}function k(a){return(0,f.BQ)("telegram",`report-${a}.md`)}function l(a){return(0,f.BQ)("telegram",`run-${a}.sources.json`)}function m(a){return(0,f.BQ)("telegram",`run-${a}.out.md`)}function n(){let a=process.env.LLV_TELEGRAM_REPORT_CWD?.trim()||(0,f.BQ)("telegram","report-workspace");return e().mkdirSync(a,{recursive:!0,mode:448}),a}let o={version:1,settings:{enabled:g.zv.enabled,time:g.zv.time,groups:[]},prompt:null,cursor:{lastSuccessfulWindowEndAt:null,unreportedSinceAt:null,lastScheduledDay:null},active:null,history:[]};function p(a){return"string"==typeof a&&a?a:null}function q(a){let b=a&&"object"==typeof a?a:{};return{enabled:!0===b.enabled,time:(0,g.Wp)(b.time)?b.time:g.zv.time,groups:function(a){if(!Array.isArray(a))return[];let b=[];for(let c of a.slice(0,50))(0,g.mq)(c.id)&&b.push({id:c.id,title:"string"==typeof c.title?c.title.slice(0,120):c.id,mode:"light"===c.mode?"light":"full"});return b}(b.groups)}}function r(a){if("string"!=typeof a)return;let b=a.trim();return b&&b!==h.U8.trim()?b.slice(0,h.gW):null}function s(a){return a.prompt??h.U8}function t(a){let b=a&&"object"==typeof a?a:{},c=p(b.id),d=p(b.startedAt);if(!c||!d)return null;let e=b.status;return{id:c,trigger:"manual"===b.trigger?"manual":"scheduled",startedAt:d,finishedAt:p(b.finishedAt),windowStart:p(b.windowStart)??d,windowEnd:p(b.windowEnd)??d,status:"ok"===e||"quiet"===e||"failed"===e||"account-mismatch"===e||"running"===e?e:"failed",errorCode:p(b.errorCode)??null,conversationId:p(b.conversationId),hasReport:!0===b.hasReport,promptVersion:p(b.promptVersion)??"unknown"}}function u(){var a;let b,c,d,e=null;try{e=(0,i.ck)(j())}catch{return{...o,settings:{...o.settings},cursor:{...o.cursor},history:[]}}if(!e||"object"!=typeof e)return{...o,settings:{...o.settings},cursor:{...o.cursor},history:[]};let f=e,g=f.cursor&&"object"==typeof f.cursor?f.cursor:{};return{version:1,settings:q(f.settings),prompt:"string"==typeof f.prompt&&f.prompt.trim()?f.prompt.slice(0,h.gW):null,cursor:{lastSuccessfulWindowEndAt:p(g.lastSuccessfulWindowEndAt),unreportedSinceAt:p(g.unreportedSinceAt),lastScheduledDay:p(g.lastScheduledDay)},active:(c=p((b=(a=f.active)&&"object"==typeof a?a:{}).runId),d=p(b.startedAt),c&&d?{runId:c,trigger:"manual"===b.trigger?"manual":"scheduled",startedAt:d,windowStart:p(b.windowStart)??d,windowEnd:p(b.windowEnd)??d,conversationId:p(b.conversationId),promptVersion:p(b.promptVersion)??"unknown"}:null),history:Array.isArray(f.history)?f.history.map(t).filter(a=>null!==a):[]}}function v(a){let b=u();a(b);let c=b.history.slice(0,g.oM);for(let a of b.history.slice(g.oM))B(a.id);return b.history=c,(0,i.xh)(j(),JSON.stringify(b)),b}function w(a,b){(0,i.xh)(k(a),b)}function x(a){try{return(0,i.L0)(k(a))}catch{return null}}function y(a,b){let c=l(a);return(0,i.xh)(c,JSON.stringify(b,null,2)+"\n"),c}function z(a){let b=m(a);try{if(null===(0,i._q)(!1))return null;let a=e().lstatSync(b);if(a.isSymbolicLink()||!a.isFile()||"function"==typeof process.getuid&&a.uid!==process.getuid()||0===a.size||a.size>262144)return null;return e().readFileSync(b,"utf8")}catch{return null}finally{try{e().rmSync(b,{force:!0})}catch{}}}function A(a){try{(0,i.at)(l(a))}catch{}try{e().rmSync(m(a),{force:!0})}catch{}}function B(a){try{(0,i.at)(k(a))}catch{}A(a)}function C(){let a=u();for(let b of a.history)B(b.id);a.active&&B(a.active.runId);try{(0,i.at)(j())}catch{}try{let a=(0,f.BQ)("telegram","report-workspace");e().rmSync(a,{recursive:!0,force:!0})}catch{}}},80338:(a,b,c)=>{c.d(b,{TT:()=>I,UF:()=>J,X8:()=>H,Yb:()=>x,e4:()=>z});var d=c(31421),e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(91724),j=c(59683),k=c(2033),l=c(24962),m=c(88714),n=c(68032);let o=new Set([...new Set(["export_contacts","get_admins","get_banned_users","get_blocked_users","get_bot_info","get_chat","get_chats","get_common_chats","get_contact_chats","get_contact_ids","get_direct_chat_by_contact","get_drafts","get_folder","get_full_chat","get_full_user","get_gif_search","get_history","get_last_interaction","get_me","get_media_info","get_message_context","get_message_link","get_message_reactions","get_message_read_by","get_messages","get_participants","get_pinned_messages","get_privacy_settings","get_recent_actions","get_scheduled_messages","get_sticker_sets","get_user_photos","get_user_status","incoming_feed_status","list_accounts","list_chats","list_contact_aliases","list_contacts","list_folders","list_inline_buttons","list_messages","list_topics","resolve_username","search_contacts","search_global","search_messages","search_public_chats","wait_for_new_message","wait_for_settled_message"])].filter(a=>!m.vx.includes(a)));async function p(a,b,c){let d=f().randomBytes(32).toString("base64url"),e=new URL(a);e.pathname="/llv-telegram-proof",e.search="";try{let a=await fetch(e,{headers:{"x-llv-telegram-nonce":d},signal:c});if(!a.ok)return!1;let g=Buffer.from((await a.text()).trim(),"hex"),h=Buffer.from(f().createHmac("sha256",b).update(d).digest("hex"),"hex");return g.length===h.length&&f().timingSafeEqual(g,h)}catch{return!1}}let q={spawn(a){try{let b=(0,d.spawn)(a.command,a.args,{cwd:a.cwd,env:a.env,stdio:"ignore",detached:!0});return b.unref(),b}catch{return null}},probe:async function(a,b,d){try{if(!await p(a,b,d))return{ok:!1};let{Client:e}=await Promise.all([c.e(9901),c.e(9434)]).then(c.bind(c,79434)),{StreamableHTTPClientTransport:f}=await Promise.all([c.e(9901),c.e(7295)]).then(c.bind(c,59676)),g=new e({name:"agent-log-viewer",version:"1.0.0"}),h=new f(new URL(a),{requestInit:{headers:{Authorization:`Bearer ${b}`},signal:d}});try{await g.connect(h);let a=await g.listTools();return{ok:!0,serverName:g.getServerVersion()?.name??"",tools:a.tools.map(a=>({name:a.name,readOnly:a.annotations?.readOnlyHint===!0}))}}finally{await g.close().catch(()=>void 0)}}catch{return{ok:!1}}},sleep:a=>new Promise(b=>setTimeout(b,a)),now:()=>Date.now(),ownsProcess:y,recordProcess:B,stop:E,beginOperation:function(){let a=++t;return()=>a===t}};function r(){return(0,i.BQ)("telegram","connector.json")}let s=null,t=0;function u(a){return f().createHash("sha256").update(a).digest("hex")}function v(){try{if(null===(0,n._q)(!1))return null;let a=h().lstatSync(r());if(a.isSymbolicLink()||!a.isFile()||(63&a.mode)!=0||"function"==typeof process.getuid&&a.uid!==process.getuid())return null;let b=JSON.parse(h().readFileSync(r(),"utf8"));if(1!==b.version||"number"!=typeof b.pid||!Number.isInteger(b.pid)||b.pid<=1||"string"!=typeof b.identity||"string"!=typeof b.credentialRef||"string"!=typeof b.connectorTokenSha256||"string"!=typeof b.command||"string"!=typeof b.entrypoint||void 0!==b.feedFile&&"string"!=typeof b.feedFile||void 0!==b.feedSince&&"string"!=typeof b.feedSince||void 0!==b.logSinkVersion&&1!==b.logSinkVersion)return null;return b}catch{return null}}function w(a){let b=j.B.readArgv(a.pid);return b[0]===a.command&&b[1]===a.entrypoint&&a.command===(0,m.jd)()&&a.entrypoint===(0,m.Kn)()}function x(a){let b=v();if(!b||b.feedFile!==(0,n.ZI)(a)||!b.feedSince)return null;let c=Date.parse(b.feedSince);return Number.isFinite(c)?c:null}function y(a){let b=v();return!!(b&&b.credentialRef===a.credentialRef&&b.connectorTokenSha256===u(a.connectorToken)&&j.B.processIdentity(b.pid)===b.identity&&w(b))}function z(a){return y(a)}function A(a){try{a.kill("SIGKILL")}catch{}}function B(a,b,c){let d=a.pid,e=d?j.B.processIdentity(d):null;if(!d||!e||!b.args[0])return A(a),!1;s={child:a,pid:d,identity:e};let f={version:1,pid:d,identity:e,credentialRef:c.credentialRef,connectorTokenSha256:u(c.connectorToken),command:b.command,entrypoint:b.args[0],...b.env?.TELEGRAM_EVENT_FEED_FILE?{feedFile:b.env.TELEGRAM_EVENT_FEED_FILE,feedSince:new Date().toISOString()}:{},...b.env?.LLV_TELEGRAM_CONNECTOR_LOG===(0,l.cO)()&&b.env.LLV_TELEGRAM_CONNECTOR_LOG_MAX_BYTES===String(l.yb)?{logSinkVersion:1}:{}},g=`${r()}.${process.pid}.tmp`;try{let a=(0,n._q)(!0);h().writeFileSync(g,JSON.stringify(f),{mode:384});let b=h().openSync(g,"r");try{h().fsyncSync(b)}finally{h().closeSync(b)}h().renameSync(g,r());let c=h().openSync(a,"r");try{h().fsyncSync(c)}finally{h().closeSync(c)}let d=h().lstatSync(r());if(!d.isFile()||d.isSymbolicLink()||(63&d.mode)!=0)throw Error("unsafe connector record");return!0}catch{h().rmSync(g,{force:!0});try{h().rmSync(r(),{force:!0})}catch{}return s=null,A(a),!1}}function C(a){return j.B.processIdentity(a.pid)===a.identity}async function D(a,b){let c=Date.now()+b;for(;a.some(C)&&Date.now()<c;)await new Promise(a=>setTimeout(a,25));return a.every(a=>!C(a))}async function E(){t+=1;let a=new Map,b=s;b&&C(b)&&a.set(b.pid,{pid:b.pid,identity:b.identity,term:()=>{try{b.child.kill("SIGTERM")}catch{}},kill:()=>A(b.child)});let c=v(),d=!1;c&&C(c)&&!a.has(c.pid)&&(w(c)?a.set(c.pid,{pid:c.pid,identity:c.identity,term:()=>{try{process.kill(c.pid,"SIGTERM")}catch{}},kill:()=>{try{process.kill(c.pid,"SIGKILL")}catch{}}}):d=!0);let e=[...a.values()];for(let a of e)a.term();if(!await D(e,2e3)){for(let a of e.filter(C))a.kill();if(!await D(e,2e3))throw Error("Telegram connector did not terminate")}if(d)throw Error("Telegram connector ownership could not be verified");s=null;try{null!==(0,n._q)(!1)&&h().rmSync(r(),{force:!0})}catch{}}async function F(a){return(0,n._q)(!0),await (0,k.pM)((0,i.BQ)("telegram","connector-supervisor"),"Telegram connector supervisor is busy",a)}async function G(a,b,c,d=1/0){let e=new AbortController,g=Math.max(1,Math.min(c.probeTimeoutMs??5e3,d)),h=c.probe(a,b,e.signal).catch(()=>({ok:!1})),i=null,j=new Promise(a=>{i=setTimeout(()=>{e.abort(),a("timeout")},g),i.unref?.()}),k=await Promise.race([h,j]);return(i&&clearTimeout(i),"timeout"===k)?"timeout":(e.abort(),k.ok)?k.serverName!==`telegram-${f().createHash("sha256").update(b).digest("hex")}`?{ok:!1,code:"connector_failed"}:function(a,b=o){let c=a.filter(a=>!a.readOnly||!b.has(a.name)).map(a=>a.name);return{ok:a.length>0&&0===c.length,offending:c}}(k.tools).ok?{ok:!0,url:a}:{ok:!1,code:"not_read_only"}:null}async function H(a,b=q){let c=(0,m.h3)(),d={credentialRef:a.credentialRef,connectorToken:a.connectorToken},e=b.stop??E,f=b.ownsProcess??y,g=b.beginOperation?.()??(()=>!0),h=await F(async()=>{let h;if(f(d)){let d=await G(c,a.connectorToken,b);if(!g())return{ok:!1,code:"connector_failed"};if(d&&"timeout"!==d)return d.ok||await e(),d}await e(),g=b.beginOperation?.()??(()=>!0);let i=(0,m.w5)();if(!i)return{ok:!1,code:"credentials_missing"};try{h=(0,m.ue)({credentialRef:a.credentialRef,sessionString:a.sessionString,connectorToken:a.connectorToken,credentials:i})}catch{return{ok:!1,code:"connector_failed"}}if(!g())return{ok:!1,code:"connector_failed"};let j=b.spawn(h);return j?(b.recordProcess??B)(j,h,d)?"spawned":(A(j),{ok:!1,code:"connector_failed"}):{ok:!1,code:"connector_failed"}});if("spawned"!==h)return h;let i=async()=>{await F(async()=>{f(d)&&await e()})},j=b.now()+3e4;for(;b.now()<j;){let d=await G(c,a.connectorToken,b,j-b.now());if(!g())return{ok:!1,code:"connector_failed"};if("timeout"===d)break;if(d)return d.ok||await i(),d;await b.sleep(500)}return await i(),{ok:!1,code:"connector_failed"}}async function I(){await F(E)}async function J(a,b={}){let c=b.ownsProcess??y,d=b.stop??E;return await F(async()=>!!c(a)&&(await d(),!0))}},96101:(a,b,c)=>{c.d(b,{BL:()=>d,U$:()=>j,U8:()=>f,Y_:()=>h,gW:()=>g});let d="v1",e="QUIET",f=`Write one report on the operator's Telegram for this window.
1
+ "use strict";exports.id=6333,exports.ids=[6333],exports.modules={8668:(a,b,c)=>{c.d(b,{Wp:()=>g,cz:()=>d,mq:()=>h,oM:()=>f,zv:()=>e});let d="Europe/Kyiv",e={enabled:!1,time:"10:00",groups:[],promptIsDefault:!0},f=60;function g(a){return"string"==typeof a&&/^([01]\d|2[0-3]):[0-5]\d$/.test(a)}function h(a){return"string"==typeof a&&/^-?\d{1,20}$/.test(a)}},35961:(a,b,c)=>{c.d(b,{W:()=>g});var d=c(23211);let e=["localhost","127.0.0.1","::1"];function f(a){if(a.startsWith("[")){let b=a.indexOf("]");return -1===b?a:a.slice(1,b)}let b=a.lastIndexOf(":");return -1===b?a:a.slice(0,b)}function g(a){let b=new Set(e),c=process.env.LLV_TS_HOST;c&&b.add(f(c));let d=a.headers.get("host");if(null===d||!b.has(f(d)))return h();let g=a.headers.get("origin");if(null!==g){let a;try{a=new URL(g).host}catch{a=null}if(null===a||!b.has(f(a)))return h()}let i=a.headers.get("sec-fetch-site");return null!==i&&"same-origin"!==i&&"none"!==i?h():null}function h(){return d.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}},43034:(a,b,c)=>{c.d(b,{wZ:()=>s,tx:()=>t,$S:()=>l,Cl:()=>k});var d=c(68032),e=c(80338),f=c(88714),g=c(21962);function h(a){return"number"!=typeof a||!Number.isFinite(a)||a<=0?null:Math.round(1e3*a)}function i(a){return/^\d+$/.test(a)}async function j(a){let b=await a.listChats({kind:"user",limit:100}),c=new Set,d=[],e=!1;for(let a of b)!c.has(a.id)&&(c.add(a.id),(a.username??"").toLowerCase().endsWith("bot")||d.push({id:a.id,title:a.title}));for(let b=1;b<=3;b+=1){let f=await a.pageChats({page:b,pageSize:100});if(0===f.length)break;for(let a of f)!c.has(a.id)&&i(a.id)&&(c.add(a.id),d.push(a));if(f.length<100)break;3===b&&(e=!0)}return{candidates:d,truncated:e}}async function k(a,b){let c=Date.parse(b.windowStart),d=await a.feedDialogs({sinceMs:c}),e=[],f=new Set;for(let a of d.dialogs)f.has(a.id)||(f.add(a.id),e.push({id:a.id,title:a.title,lastMessageAt:a.lastMessageAt}));let g=await j(a),h=g.candidates.filter(a=>!f.has(a.id)),i=null!==d.coveredSinceMs&&d.coveredSinceMs<=c?300:150,k=0;for(let b of h){if(k>=i)break;let d=await a.lastMessageAt(b.id);k+=1;let f=d?Date.parse(d):NaN;Number.isFinite(f)&&!(f<c)&&e.push({id:b.id,title:b.title,lastMessageAt:new Date(f).toISOString()})}e.sort((a,b)=>Date.parse(b.lastMessageAt)-Date.parse(a.lastMessageAt));let l=k>=i&&h.length>k;if(l||g.truncated)throw Error("Telegram report sources cannot cover this window");return{version:1,promptVersion:b.promptVersion,windowStart:b.windowStart,windowEnd:b.windowEnd,privateDialogs:e.slice(0,25),groups:b.groups.map(a=>({...a})),probes:k,feedDialogs:f.size,truncated:e.length>25,probeBudgetExhausted:l}}async function l(a){let b=await a.listChats({kind:"group",limit:100}),c=new Set,d=[];for(let a of b)c.has(a.id)||(c.add(a.id),d.push({id:a.id,title:a.title}));for(let b=1;b<=3;b+=1){let e=await a.pageChats({page:b,pageSize:100});if(0===e.length)break;for(let a of e)c.has(a.id)||i(a.id)||(c.add(a.id),d.push(a));if(e.length<100)break}return d}function m(a){return(a?.content??[]).filter(a=>a?.type==="text").map(a=>a.text??"").join("\n")}function n(a){try{let b=JSON.parse(m(a));return Array.isArray(b?.results)?b.results:[]}catch{return[]}}async function o(a,b,d){let{Client:e}=await Promise.all([c.e(9901),c.e(9434)]).then(c.bind(c,79434)),{StreamableHTTPClientTransport:g}=await Promise.all([c.e(9901),c.e(5103)]).then(c.bind(c,27484)),h=new e({name:"agent-log-viewer",version:"1.0.0"}),i=new g(new URL((0,f.h3)()),{requestInit:{headers:{Authorization:`Bearer ${a.connectorToken}`}}});try{return await h.connect(i),await h.callTool({name:b,arguments:d})}finally{await h.close().catch(()=>void 0)}}let p={readSession:d.w0,callTool:o,ensureConnector:a=>(0,e.X8)(a),sleep:a=>new Promise(b=>setTimeout(b,a)),now:Date.now};function q(a,b){let c=b.readSession();if(!c)throw Error("Telegram is not connected");if(c.credentialRef!==a)throw Error("Telegram credential generation changed");return c}async function r(a,b,c,d=p){try{return await d.callTool(a,b,c)}catch{}let e=Math.max(1,d.readinessTimeoutMs??3e4),f=d.now()+e,g=250;for(;d.now()<f;){let e,h=q(a.credentialRef,d);try{e=await d.ensureConnector(h)}catch{e={ok:!1,code:"connector_failed"}}if(e.ok){let e=q(a.credentialRef,d);try{return await d.callTool(e,b,c)}catch{}}else if("connector_failed"!==e.code)break;let i=f-d.now();if(i<=0)break;await d.sleep(Math.min(g,i)),g=Math.min(2*g,2e3)}throw Error("Telegram connector is unavailable")}async function s(a,b=p){let c=Math.max(1,b.readinessTimeoutMs??9e4),d=b.now()+c,e=250;for(;b.now()<d;){let c,f;try{c=q(a,b)}catch{return{ready:!1,reason:"refused"}}try{f=await b.ensureConnector(c)}catch{f={ok:!1,code:"connector_failed"}}if(f.ok)return{ready:!0};if("connector_failed"!==f.code)return{ready:!1,reason:"refused"};let g=d-b.now();if(g<=0)break;await b.sleep(Math.min(e,g)),e=Math.min(2*e,2e3)}return{ready:!1,reason:"unavailable"}}function t(a=null,b=p){let c=a,f=async(a,d)=>{let e=b.readSession();if(!e)throw Error("Telegram is not connected");if(c??=e.credentialRef,e.credentialRef!==c)throw Error("Telegram credential generation changed");return await r(e,a,d,b)};return{async getMe(){let a=JSON.parse(m(await f("get_me",{}))),b="string"==typeof a?.name?a.name.trim():"",c=(0,g.S)(a?.id);return b||c?{name:b,username:"string"==typeof a.username&&a.username?a.username:null,id:c}:null},async feedDialogs(a){let b=null;try{let a=m(await f("incoming_feed_status",{}));b=function(a,b){if(!b)return null;let c=function(a){let b;try{b=JSON.parse(a)}catch{return null}let c=b?.enabled===!0||b?.autostart_pending===!0,d="string"==typeof b?.feed_file?b.feed_file.trim():"";return c&&d?d:null}(a);return null!==c&&c===(0,d.ZI)(b)?c:null}(a,c)}catch{}if(!b)throw Error("Telegram incoming feed is unavailable");return{dialogs:function(a,b){if(!a)return[];let c=(0,d.Cx)(a,{chunkBytes:524288,maxBytes:8388608},a=>(function(a,b){for(let c of a.split("\n")){let a;if(!c.trim())continue;try{a=JSON.parse(c)}catch{continue}let d=h(a.ts);if(null!==d&&d<b)return!0}return!1})(a,b));if(null===c)return[];if(!c.complete)throw Error("Telegram incoming feed is larger than one report read");return function(a,b){let c=new Map,d=new Map;for(let f of a.split("\n")){var e;let a;if(!f.trim())continue;try{a=JSON.parse(f)}catch{continue}let g="number"==typeof(e=a.chat_id)?Number.isSafeInteger(e)&&e>0?String(e):null:"string"!=typeof e?null:/^[1-9]\d{0,18}$/.test(e.trim())?e.trim():null;if(!g||"string"==typeof a.username&&a.username.toLowerCase().endsWith("bot"))continue;let i=h(a.ts);if(null===i||i<b)continue;let j=c.get(g);void 0!==j&&j>=i||(c.set(g,i),d.set(g,"string"==typeof a.name&&a.name?a.name.slice(0,120):g))}return[...c.entries()].sort((a,b)=>b[1]-a[1]).map(([a,b])=>({id:a,title:d.get(a)??a,lastMessageAt:new Date(b).toISOString()}))}(c.text,b)}(b,a.sinceMs),coveredSinceMs:null===c?null:(0,e.Yb)(c)}},listChats:async a=>n(await f("list_chats",{chat_type:a.kind,limit:Math.min(a.limit,100)})).map(b=>(function(a,b){let c=a.chat_id;if("number"!=typeof c&&"string"!=typeof c)return null;let d="string"==typeof a.title?a.title:"string"==typeof a.name?a.name:String(c);return{id:String(c),kind:b,title:d,username:"string"==typeof a.username?a.username:null,unread:"number"==typeof a.unread?a.unread:0}})(b,a.kind)).filter(a=>null!==a),pageChats:async a=>n(await f("get_chats",{page:a.page,page_size:Math.min(a.pageSize,100)})).map(a=>{let b=a.chat_id;return"number"!=typeof b&&"string"!=typeof b?null:{id:String(b),title:"string"==typeof a.title?a.title:String(b)}}).filter(a=>null!==a),async lastMessageAt(a){let b=n(await f("list_messages",{chat_id:Number(a),limit:1}))[0],c=b?.date;if("string"!=typeof c)return null;let d=Date.parse(c);return Number.isFinite(d)?new Date(d).toISOString():null}}}},46453:(a,b,c)=>{c.d(b,{VD:()=>w,M2:()=>v});var d=c(77598),e=c.n(d),f=c(4837),g=c(8668),h=c(96101),i=c(55862),j=c(52538),k=c(43034),l=c(10230);function m(a){a().catch(()=>void 0)}let n="127.0.0.1";async function o(a){var b;let[{executeSpawnRequest:d,productionSpawnCommandDependencies:e},{ensureOperatorSpawnCapability:f},{VIEWER_SPAWN_CAPABILITY_HEADER:g}]=await Promise.all([Promise.all([c.e(8966),c.e(1617),c.e(1872),c.e(9940),c.e(4509),c.e(4565),c.e(8797),c.e(8996),c.e(107),c.e(3587),c.e(8176),c.e(6850),c.e(9411),c.e(1100),c.e(8617),c.e(6826),c.e(640),c.e(2190),c.e(4127),c.e(7471),c.e(4191),c.e(2318),c.e(7722),c.e(3302)]).then(c.bind(c,67722)),c.e(9937).then(c.bind(c,89937)),c.e(4012).then(c.bind(c,4012))]),h={headers:new Headers({host:n,origin:`http://${n}`,"sec-fetch-site":"same-origin",[g]:f()}),json:async()=>a.body},i=await d(h,{...e,...(b=a.grantActive,{defer:m,internalGrant:()=>({sessionClass:l.Vv,mcpServers:(0,l.FE)({grantActive:b()})})})});return{status:i.status,body:await i.json()}}var p=c(79554),q=c(68032);let r={now:Date.now,connection:()=>{try{return(0,q.Kd)()}catch{return{version:1,status:"error",credentialRef:null,identity:null,lastHealthCheckAt:null,errorCode:"session_unsafe",identityIdUpgradedAt:null}}},readPort:a=>(0,k.tx)(a),beginReadPhase:async()=>{let{telegramService:a}=await Promise.all([c.e(8966),c.e(849)]).then(c.bind(c,70849));return await a().beginReportReadPhase()},connectorReady:a=>(0,k.wZ)(a),migrateIdentity:async function(){try{let{telegramService:a}=await Promise.all([c.e(8966),c.e(849)]).then(c.bind(c,70849));await a().checkHealth()}catch{}},spawn:o,reportRunConversation:async function(a){try{let{agentRegistry:b}=await Promise.all([c.e(1872),c.e(2962)]).then(c.bind(c,21872)),d=b(),e=d.spawnReceiptForClientAttempt((0,j.hS)(a));return e?d.canonicalConversationId(e.conversationId):null}catch{return null}},conversationLive:async function(a){try{let{agentRegistry:b}=await Promise.all([c.e(1872),c.e(2962)]).then(c.bind(c,21872)),d=b().conversation(a);if(!d)return!1;return d.turn?.state!=="terminal"}catch{return!0}},log:a=>console.error(`[telegram report] ${a}`)};function s(a){let b=a.identity?.id;return b&&a.credentialRef?{id:b,credentialRef:a.credentialRef}:null}class t{constructor(a=r){this.ports=a,this.running=!1,this.planning=new Set,this.pending=[]}grantActive(a=null){let b=this.ports.connection();return(null===a||b.credentialRef===a)&&(0,p.rD)().settings.enabled&&"connected"===b.status}payload(){var a;let b=(0,p.rD)(),c=b.active?[{id:(a=b.active).runId,trigger:a.trigger,startedAt:a.startedAt,finishedAt:null,windowStart:a.windowStart,windowEnd:a.windowEnd,status:"running",errorCode:null,conversationId:a.conversationId,hasReport:!1,promptVersion:a.promptVersion},...b.history]:b.history,d=(0,i.jF)({now:this.ports.now(),settings:b.settings,cursor:b.cursor});return{settings:{...b.settings,promptIsDefault:null===b.prompt},history:c,nextRunAt:null===d?null:new Date(d).toISOString()}}async tick(){if(!this.running){this.running=!0;try{this.reconcileDisconnected(),await this.finalizeActiveRun();let a=(0,p.rD)();if(a.active||await this.runOwedConnectorRetry(a)||!(0,i.z1)({now:this.ports.now(),settings:a.settings,cursor:a.cursor}))return;let b=(0,i.l)(this.ports.now(),g.cz);(0,p.k)(a=>{a.cursor.lastScheduledDay=b});let c=this.beginRun("scheduled");c.ok&&await this.execute(c.runId)}catch{this.ports.log("tick_failed")}finally{this.running=!1}}}async runNow(){let a;if(this.running)return{ok:!1,code:"run_in_progress"};this.running=!0;try{if(await this.finalizeActiveRun(),(0,p.rD)().active)return{ok:!1,code:"run_in_progress"};a=this.beginRun("manual")}finally{this.running=!1}if(!a.ok)return a;let b=this.execute(a.runId);return this.pending.push(b),b.finally(()=>{this.pending=this.pending.filter(a=>a!==b)}),a}async settled(){let a=this.pending;this.pending=[],await Promise.all(a)}async runOwedConnectorRetry(a){let b=a.retry;if(!b)return!1;let c=Date.parse(b.armedAt);if(!Number.isFinite(c)||this.ports.now()-c>18e5||!a.settings.enabled)return(0,p.k)(a=>{a.retry?.runId===b.runId&&(a.retry=null)}),!1;if("connected"!==this.ports.connection().status)return!1;(0,p.k)(a=>{a.retry?.runId===b.runId&&(a.retry=null)});let d=this.beginRun(b.trigger,{retry:!0});return d.ok&&await this.execute(d.runId),!0}reconcileDisconnected(){let a=this.ports.connection();if("disconnected"!==a.status||null!==a.credentialRef)return;let b=(0,p.rD)();(b.settings.enabled||0!==b.history.length||b.active)&&(0,p.mI)()}beginRun(a,b={}){let c=(0,p.rD)(),d=this.ports.connection();if(!c.settings.enabled)return this.recordFailure(a,"reports_disabled");if("connected"!==d.status)return this.recordFailure(a,"not_connected");let f=e().randomUUID(),g=(0,i.s)(this.ports.now(),c.cursor);return this.planning.add(f),(0,p.k)(c=>{c.retry=null,c.active={runId:f,trigger:a,startedAt:new Date(this.ports.now()).toISOString(),windowStart:g.startAt,windowEnd:g.endAt,conversationId:null,promptVersion:h.BL,...b.retry?{retry:!0}:{}}}),{ok:!0,runId:f}}async execute(a){try{await this.executeLocked(a)}catch{this.ports.log("run_failed"),this.settle(a,"failed","launch_failed",!1)}finally{this.planning.delete(a)}}async verifiedIdentity(){let a=this.ports.connection();if(a.identity?.id)return s(a);if(!a.identity||a.identityIdUpgradedAt)return null;await this.ports.migrateIdentity();let b=this.ports.connection();return"connected"!==b.status?null:s(b)}async executeLocked(a){let b,c,d,e=(0,p.rD)(),g=e.active;if(!g||g.runId!==a)return;let i={startAt:g.windowStart,endAt:g.windowEnd},l=await this.verifiedIdentity();if(!l){this.ports.log("account_check_failed"),this.settle(a,"failed","account_check_failed",!1);return}let m=this.ports.readPort(l.credentialRef);if(!this.ports.beginReadPhase)throw Error("Telegram report read lease is unavailable");let n=await this.ports.beginReadPhase();try{var o,q;let d=await this.ports.connectorReady(l.credentialRef);if(!d.ready){this.ports.log("connector_unavailable"),this.settle(a,"failed","connector_unavailable",!1,{requeue:"unavailable"===d.reason});return}try{b=await m.getMe()}catch{this.ports.log("account_check_failed"),this.settle(a,"failed","account_check_failed",!1);return}if(o=b,q=l,!(o?.id&&q?.id)||o.id!==q.id){this.ports.log("account_mismatch"),this.settle(a,"account-mismatch",null,!1);return}try{let b=await (0,k.Cl)(m,{windowStart:i.startAt,windowEnd:i.endAt,groups:e.settings.groups,promptVersion:h.BL});c=(0,p.uc)(a,b)}catch{this.ports.log("sources_failed"),this.settle(a,"failed","sources_failed",!1);return}}finally{n()}if((0,p.rD)().active?.runId!==a)return void(0,p.jc)(a);if(this.ports.connection().credentialRef!==l.credentialRef){this.ports.log("account_mismatch"),(0,p.jc)(a),this.settle(a,"account-mismatch",null,!1);return}let r=(0,h.Y_)({windowStart:i.startAt,windowEnd:i.endAt,sourcesPath:c,outputPath:(0,p.sk)(a),instructions:(0,p.kG)((0,p.rD)())});try{d=await this.ports.spawn({body:{engine:"codex",model:f.je,effort:"medium",cwd:(0,p.lN)(),title:(0,h.sg)({windowStart:i.startAt,windowEnd:i.endAt}),clientAttemptId:(0,j.hS)(a),project:j.zg,prompt:r},grantActive:()=>this.grantActive(l.credentialRef)})}catch{this.ports.log("launch_failed"),this.settle(a,"failed","launch_failed",!1);return}let s="string"==typeof d.body.conversationId?d.body.conversationId:null;if(!(d.status>=200&&d.status<300&&!1!==d.body.ok&&null!==s)){this.ports.log("launch_rejected"),this.settle(a,"failed","launch_failed",!1);return}(0,p.k)(b=>{b.active?.runId===a&&(b.active.conversationId=s)})}async relinkActiveRun(a){if(this.planning.has(a))return null;let b=await this.ports.reportRunConversation(a);return b?((0,p.k)(c=>{c.active?.runId!==a||c.active.conversationId||(c.active.conversationId=b)}),b):null}async finalizeActiveRun(){let a=(0,p.rD)().active;if(!a)return;let b=(0,p.H$)(a.runId),c=(0,h.U$)(b);if("ok"===c.kind){(0,p.$H)(a.runId,c.report),this.settle(a.runId,"ok",null,!0);return}if("quiet"===c.kind)return void this.settle(a.runId,"quiet",null,!1);if("invalid"===c.kind&&null!==b)return void this.settle(a.runId,"failed","invalid_report",!1);let d=Date.parse(a.startedAt),e=Number.isFinite(d)&&this.ports.now()-d>27e5,f=a.conversationId??await this.relinkActiveRun(a.runId);f?await this.ports.conversationLive(f)?e&&this.settle(a.runId,"failed","timed_out",!1):this.settle(a.runId,"failed","run_ended_without_report",!1):this.planning.has(a.runId)?e&&this.settle(a.runId,"failed","timed_out",!1):this.settle(a.runId,"failed","launch_failed",!1)}settle(a,b,c,d,e={}){(0,p.k)(f=>{let h=f.active;if(!h||h.runId!==a)return;if(f.active=null,f.retry=e.requeue&&!h.retry?{runId:h.runId,trigger:h.trigger,armedAt:new Date(this.ports.now()).toISOString()}:null,f.history=[{id:h.runId,trigger:h.trigger,startedAt:h.startedAt,finishedAt:new Date(this.ports.now()).toISOString(),windowStart:h.windowStart,windowEnd:h.windowEnd,status:b,errorCode:c,conversationId:h.conversationId,hasReport:d,promptVersion:h.promptVersion},...f.history],"ok"!==b&&"quiet"!==b){let a=f.cursor.unreportedSinceAt;(!a||Date.parse(h.windowStart)<Date.parse(a))&&(f.cursor.unreportedSinceAt=h.windowStart);return}f.cursor.lastSuccessfulWindowEndAt=h.windowEnd,f.cursor.unreportedSinceAt=null;let j=(0,i.l)(this.ports.now(),g.cz);this.ports.now()>=(0,i.wk)(j,f.settings.time,g.cz)&&(f.cursor.lastScheduledDay=j)}),d?(0,p.jc)(a):(0,p.FF)(a)}recordFailure(a,b,c=(0,i.s)(this.ports.now(),(0,p.rD)().cursor)){let d=new Date(this.ports.now()).toISOString();return(0,p.k)(f=>{if(f.history=[{id:e().randomUUID(),trigger:a,startedAt:d,finishedAt:d,windowStart:c.startAt,windowEnd:c.endAt,status:"failed",errorCode:b,conversationId:null,hasReport:!1,promptVersion:h.BL},...f.history],"reports_disabled"===b)return;let g=f.cursor.unreportedSinceAt;(!g||Date.parse(c.startAt)<Date.parse(g))&&(f.cursor.unreportedSinceAt=c.startAt)}),{ok:!1,code:b}}}let u=globalThis;function v(){return u.__llvTelegramReportRunner??=new t}function w(){u.__llvTelegramReportTimer||(u.__llvTelegramReportTimer=setInterval(()=>{v().tick()},6e4),u.__llvTelegramReportTimer.unref?.(),v().tick())}},52538:(a,b,c)=>{c.d(b,{hS:()=>f,jE:()=>g,zg:()=>d});let d="telegram-reports",e="telegram-report-";function f(a){return`${e}${a}`}function g(a){if("string"!=typeof a||!a.startsWith(e))return null;let b=a.slice(e.length);return/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(b)?b:null}},55862:(a,b,c)=>{c.d(b,{jF:()=>k,l:()=>g,s:()=>l,wk:()=>i,z1:()=>j});var d=c(8668);let e=new Map;function f(a,b){let c=e.get(b);c||(c=new Intl.DateTimeFormat("en-US",{timeZone:b,hour12:!1,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),e.set(b,c));let d={};for(let b of c.formatToParts(new Date(a)))d[b.type]=b.value;return{year:Number(d.year),month:Number(d.month),day:Number(d.day),hour:Number(d.hour)%24,minute:Number(d.minute),second:Number(d.second)}}function g(a,b=d.cz){let c=f(a,b);return`${String(c.year).padStart(4,"0")}-${String(c.month).padStart(2,"0")}-${String(c.day).padStart(2,"0")}`}function h(a,b){let c=f(a,b);return Date.UTC(c.year,c.month-1,c.day,c.hour,c.minute,c.second)-1e3*Math.floor(a/1e3)}function i(a,b,c=d.cz){let[e,f]=b.split(":").map(Number),[g,j,k]=a.split("-").map(Number),l=Date.UTC(g,j-1,k,e,f,0),m=l-h(l,c);return l-h(m,c)}function j(a){let b=a.timeZone??d.cz;if(!a.settings.enabled)return!1;let c=g(a.now,b);return a.cursor.lastScheduledDay!==c&&a.now>=i(c,a.settings.time,b)}function k(a){let b=a.timeZone??d.cz;if(!a.settings.enabled)return null;if(j(a))return a.now;let c=i(g(a.now,b),"12:00",b);for(let d=0;d<=8;d+=1){let e=g(c+864e5*d,b),f=i(e,a.settings.time,b);if(!(f<=a.now)&&a.cursor.lastScheduledDay!==e)return f}return null}function l(a,b){let c=b.unreportedSinceAt?Date.parse(b.unreportedSinceAt):NaN,d=b.lastSuccessfulWindowEndAt?Date.parse(b.lastSuccessfulWindowEndAt):NaN,e=Number.isFinite(c)?c:d;return{startAt:new Date(Number.isFinite(e)&&e<a?Math.max(e,a-2592e5):a-864e5).toISOString(),endAt:new Date(a).toISOString()}}},79554:(a,b,c)=>{c.d(b,{$H:()=>w,FF:()=>B,H$:()=>z,Kq:()=>x,Zc:()=>q,iZ:()=>r,jc:()=>A,k:()=>v,kG:()=>s,lN:()=>n,mI:()=>C,rD:()=>u,sk:()=>m,uc:()=>y});var d=c(73024),e=c.n(d);c(76760);var f=c(91724),g=c(8668),h=c(96101),i=c(68032);function j(){return(0,f.BQ)("telegram","reports.json")}function k(a){return(0,f.BQ)("telegram",`report-${a}.md`)}function l(a){return(0,f.BQ)("telegram",`run-${a}.sources.json`)}function m(a){return(0,f.BQ)("telegram",`run-${a}.out.md`)}function n(){let a=process.env.LLV_TELEGRAM_REPORT_CWD?.trim()||(0,f.BQ)("telegram","report-workspace");return e().mkdirSync(a,{recursive:!0,mode:448}),a}let o={version:1,settings:{enabled:g.zv.enabled,time:g.zv.time,groups:[]},prompt:null,cursor:{lastSuccessfulWindowEndAt:null,unreportedSinceAt:null,lastScheduledDay:null},active:null,retry:null,history:[]};function p(a){return"string"==typeof a&&a?a:null}function q(a){let b=a&&"object"==typeof a?a:{};return{enabled:!0===b.enabled,time:(0,g.Wp)(b.time)?b.time:g.zv.time,groups:function(a){if(!Array.isArray(a))return[];let b=[];for(let c of a.slice(0,50))(0,g.mq)(c.id)&&b.push({id:c.id,title:"string"==typeof c.title?c.title.slice(0,120):c.id,mode:"light"===c.mode?"light":"full"});return b}(b.groups)}}function r(a){if("string"!=typeof a)return;let b=a.trim();return b&&b!==h.U8.trim()?b.slice(0,h.gW):null}function s(a){return a.prompt??h.U8}function t(a){let b=a&&"object"==typeof a?a:{},c=p(b.id),d=p(b.startedAt);if(!c||!d)return null;let e=b.status;return{id:c,trigger:"manual"===b.trigger?"manual":"scheduled",startedAt:d,finishedAt:p(b.finishedAt),windowStart:p(b.windowStart)??d,windowEnd:p(b.windowEnd)??d,status:"ok"===e||"quiet"===e||"failed"===e||"account-mismatch"===e||"running"===e?e:"failed",errorCode:p(b.errorCode)??null,conversationId:p(b.conversationId),hasReport:!0===b.hasReport,promptVersion:p(b.promptVersion)??"unknown"}}function u(){var a,b;let c,d,e,f,g,k,l=null;try{l=(0,i.ck)(j())}catch{return{...o,settings:{...o.settings},cursor:{...o.cursor},retry:null,history:[]}}if(!l||"object"!=typeof l)return{...o,settings:{...o.settings},cursor:{...o.cursor},retry:null,history:[]};let m=l,n=m.cursor&&"object"==typeof m.cursor?m.cursor:{};return{version:1,settings:q(m.settings),prompt:"string"==typeof m.prompt&&m.prompt.trim()?m.prompt.slice(0,h.gW):null,cursor:{lastSuccessfulWindowEndAt:p(n.lastSuccessfulWindowEndAt),unreportedSinceAt:p(n.unreportedSinceAt),lastScheduledDay:p(n.lastScheduledDay)},active:(d=p((c=(a=m.active)&&"object"==typeof a?a:{}).runId),e=p(c.startedAt),d&&e?{runId:d,trigger:"manual"===c.trigger?"manual":"scheduled",startedAt:e,windowStart:p(c.windowStart)??e,windowEnd:p(c.windowEnd)??e,conversationId:p(c.conversationId),promptVersion:p(c.promptVersion)??"unknown",...!0===c.retry?{retry:!0}:{}}:null),retry:(g=p((f=(b=m.retry)&&"object"==typeof b?b:{}).runId),k=p(f.armedAt),g&&k&&Number.isFinite(Date.parse(k))?{runId:g,trigger:"manual"===f.trigger?"manual":"scheduled",armedAt:k}:null),history:Array.isArray(m.history)?m.history.map(t).filter(a=>null!==a):[]}}function v(a){let b=u();a(b);let c=b.history.slice(0,g.oM);for(let a of b.history.slice(g.oM))B(a.id);return b.history=c,(0,i.xh)(j(),JSON.stringify(b)),b}function w(a,b){(0,i.xh)(k(a),b)}function x(a){try{return(0,i.L0)(k(a))}catch{return null}}function y(a,b){let c=l(a);return(0,i.xh)(c,JSON.stringify(b,null,2)+"\n"),c}function z(a){let b=m(a);try{if(null===(0,i._q)(!1))return null;let a=e().lstatSync(b);if(a.isSymbolicLink()||!a.isFile()||"function"==typeof process.getuid&&a.uid!==process.getuid()||0===a.size||a.size>262144)return null;return e().readFileSync(b,"utf8")}catch{return null}finally{try{e().rmSync(b,{force:!0})}catch{}}}function A(a){try{(0,i.at)(l(a))}catch{}try{e().rmSync(m(a),{force:!0})}catch{}}function B(a){try{(0,i.at)(k(a))}catch{}A(a)}function C(){let a=u();for(let b of a.history)B(b.id);a.active&&B(a.active.runId);try{(0,i.at)(j())}catch{}try{let a=(0,f.BQ)("telegram","report-workspace");e().rmSync(a,{recursive:!0,force:!0})}catch{}}},80338:(a,b,c)=>{c.d(b,{TT:()=>I,UF:()=>J,X8:()=>H,Yb:()=>x,e4:()=>z});var d=c(31421),e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(91724),j=c(59683),k=c(2033),l=c(24962),m=c(88714),n=c(68032);let o=new Set([...new Set(["export_contacts","get_admins","get_banned_users","get_blocked_users","get_bot_info","get_chat","get_chats","get_common_chats","get_contact_chats","get_contact_ids","get_direct_chat_by_contact","get_drafts","get_folder","get_full_chat","get_full_user","get_gif_search","get_history","get_last_interaction","get_me","get_media_info","get_message_context","get_message_link","get_message_reactions","get_message_read_by","get_messages","get_participants","get_pinned_messages","get_privacy_settings","get_recent_actions","get_scheduled_messages","get_sticker_sets","get_user_photos","get_user_status","incoming_feed_status","list_accounts","list_chats","list_contact_aliases","list_contacts","list_folders","list_inline_buttons","list_messages","list_topics","resolve_username","search_contacts","search_global","search_messages","search_public_chats","wait_for_new_message","wait_for_settled_message"])].filter(a=>!m.vx.includes(a)));async function p(a,b,c){let d=f().randomBytes(32).toString("base64url"),e=new URL(a);e.pathname="/llv-telegram-proof",e.search="";try{let a=await fetch(e,{headers:{"x-llv-telegram-nonce":d},signal:c});if(!a.ok)return!1;let g=Buffer.from((await a.text()).trim(),"hex"),h=Buffer.from(f().createHmac("sha256",b).update(d).digest("hex"),"hex");return g.length===h.length&&f().timingSafeEqual(g,h)}catch{return!1}}let q={spawn(a){try{let b=(0,d.spawn)(a.command,a.args,{cwd:a.cwd,env:a.env,stdio:"ignore",detached:!0});return b.unref(),b}catch{return null}},probe:async function(a,b,d){try{if(!await p(a,b,d))return{ok:!1};let{Client:e}=await Promise.all([c.e(9901),c.e(9434)]).then(c.bind(c,79434)),{StreamableHTTPClientTransport:f}=await Promise.all([c.e(9901),c.e(5103)]).then(c.bind(c,27484)),g=new e({name:"agent-log-viewer",version:"1.0.0"}),h=new f(new URL(a),{requestInit:{headers:{Authorization:`Bearer ${b}`},signal:d}});try{await g.connect(h);let a=await g.listTools();return{ok:!0,serverName:g.getServerVersion()?.name??"",tools:a.tools.map(a=>({name:a.name,readOnly:a.annotations?.readOnlyHint===!0}))}}finally{await g.close().catch(()=>void 0)}}catch{return{ok:!1}}},sleep:a=>new Promise(b=>setTimeout(b,a)),now:()=>Date.now(),ownsProcess:y,recordProcess:B,stop:E,beginOperation:function(){let a=++t;return()=>a===t}};function r(){return(0,i.BQ)("telegram","connector.json")}let s=null,t=0;function u(a){return f().createHash("sha256").update(a).digest("hex")}function v(){try{if(null===(0,n._q)(!1))return null;let a=h().lstatSync(r());if(a.isSymbolicLink()||!a.isFile()||(63&a.mode)!=0||"function"==typeof process.getuid&&a.uid!==process.getuid())return null;let b=JSON.parse(h().readFileSync(r(),"utf8"));if(1!==b.version||"number"!=typeof b.pid||!Number.isInteger(b.pid)||b.pid<=1||"string"!=typeof b.identity||"string"!=typeof b.credentialRef||"string"!=typeof b.connectorTokenSha256||"string"!=typeof b.command||"string"!=typeof b.entrypoint||void 0!==b.feedFile&&"string"!=typeof b.feedFile||void 0!==b.feedSince&&"string"!=typeof b.feedSince||void 0!==b.logSinkVersion&&1!==b.logSinkVersion)return null;return b}catch{return null}}function w(a){let b=j.B.readArgv(a.pid);return b[0]===a.command&&b[1]===a.entrypoint&&a.command===(0,m.jd)()&&a.entrypoint===(0,m.Kn)()}function x(a){let b=v();if(!b||b.feedFile!==(0,n.ZI)(a)||!b.feedSince)return null;let c=Date.parse(b.feedSince);return Number.isFinite(c)?c:null}function y(a){let b=v();return!!(b&&b.credentialRef===a.credentialRef&&b.connectorTokenSha256===u(a.connectorToken)&&j.B.processIdentity(b.pid)===b.identity&&w(b))}function z(a){return y(a)}function A(a){try{a.kill("SIGKILL")}catch{}}function B(a,b,c){let d=a.pid,e=d?j.B.processIdentity(d):null;if(!d||!e||!b.args[0])return A(a),!1;s={child:a,pid:d,identity:e};let f={version:1,pid:d,identity:e,credentialRef:c.credentialRef,connectorTokenSha256:u(c.connectorToken),command:b.command,entrypoint:b.args[0],...b.env?.TELEGRAM_EVENT_FEED_FILE?{feedFile:b.env.TELEGRAM_EVENT_FEED_FILE,feedSince:new Date().toISOString()}:{},...b.env?.LLV_TELEGRAM_CONNECTOR_LOG===(0,l.cO)()&&b.env.LLV_TELEGRAM_CONNECTOR_LOG_MAX_BYTES===String(l.yb)?{logSinkVersion:1}:{}},g=`${r()}.${process.pid}.tmp`;try{let a=(0,n._q)(!0);h().writeFileSync(g,JSON.stringify(f),{mode:384});let b=h().openSync(g,"r");try{h().fsyncSync(b)}finally{h().closeSync(b)}h().renameSync(g,r());let c=h().openSync(a,"r");try{h().fsyncSync(c)}finally{h().closeSync(c)}let d=h().lstatSync(r());if(!d.isFile()||d.isSymbolicLink()||(63&d.mode)!=0)throw Error("unsafe connector record");return!0}catch{h().rmSync(g,{force:!0});try{h().rmSync(r(),{force:!0})}catch{}return s=null,A(a),!1}}function C(a){return j.B.processIdentity(a.pid)===a.identity}async function D(a,b){let c=Date.now()+b;for(;a.some(C)&&Date.now()<c;)await new Promise(a=>setTimeout(a,25));return a.every(a=>!C(a))}async function E(){t+=1;let a=new Map,b=s;b&&C(b)&&a.set(b.pid,{pid:b.pid,identity:b.identity,term:()=>{try{b.child.kill("SIGTERM")}catch{}},kill:()=>A(b.child)});let c=v(),d=!1;c&&C(c)&&!a.has(c.pid)&&(w(c)?a.set(c.pid,{pid:c.pid,identity:c.identity,term:()=>{try{process.kill(c.pid,"SIGTERM")}catch{}},kill:()=>{try{process.kill(c.pid,"SIGKILL")}catch{}}}):d=!0);let e=[...a.values()];for(let a of e)a.term();if(!await D(e,2e3)){for(let a of e.filter(C))a.kill();if(!await D(e,2e3))throw Error("Telegram connector did not terminate")}if(d)throw Error("Telegram connector ownership could not be verified");s=null;try{null!==(0,n._q)(!1)&&h().rmSync(r(),{force:!0})}catch{}}async function F(a){return(0,n._q)(!0),await (0,k.pM)((0,i.BQ)("telegram","connector-supervisor"),"Telegram connector supervisor is busy",a)}async function G(a,b,c,d=1/0){let e=new AbortController,g=Math.max(1,Math.min(c.probeTimeoutMs??5e3,d)),h=c.probe(a,b,e.signal).catch(()=>({ok:!1})),i=null,j=new Promise(a=>{i=setTimeout(()=>{e.abort(),a("timeout")},g),i.unref?.()}),k=await Promise.race([h,j]);return(i&&clearTimeout(i),"timeout"===k)?"timeout":(e.abort(),k.ok)?k.serverName!==`telegram-${f().createHash("sha256").update(b).digest("hex")}`?{ok:!1,code:"connector_failed"}:function(a,b=o){let c=a.filter(a=>!a.readOnly||!b.has(a.name)).map(a=>a.name);return{ok:a.length>0&&0===c.length,offending:c}}(k.tools).ok?{ok:!0,url:a}:{ok:!1,code:"not_read_only"}:null}async function H(a,b=q){let c=(0,m.h3)(),d={credentialRef:a.credentialRef,connectorToken:a.connectorToken},e=b.stop??E,f=b.ownsProcess??y,g=b.beginOperation?.()??(()=>!0),h=await F(async()=>{let h;if(f(d)){let d=await G(c,a.connectorToken,b);if(!g())return{ok:!1,code:"connector_failed"};if(d&&"timeout"!==d)return d.ok||await e(),d}await e(),g=b.beginOperation?.()??(()=>!0);let i=(0,m.w5)();if(!i)return{ok:!1,code:"credentials_missing"};try{h=(0,m.ue)({credentialRef:a.credentialRef,sessionString:a.sessionString,connectorToken:a.connectorToken,credentials:i})}catch{return{ok:!1,code:"connector_failed"}}if(!g())return{ok:!1,code:"connector_failed"};let j=b.spawn(h);return j?(b.recordProcess??B)(j,h,d)?"spawned":(A(j),{ok:!1,code:"connector_failed"}):{ok:!1,code:"connector_failed"}});if("spawned"!==h)return h;let i=async()=>{await F(async()=>{f(d)&&await e()})},j=b.now()+3e4;for(;b.now()<j;){let d=await G(c,a.connectorToken,b,j-b.now());if(!g())return{ok:!1,code:"connector_failed"};if("timeout"===d)break;if(d)return d.ok||await i(),d;await b.sleep(500)}return await i(),{ok:!1,code:"connector_failed"}}async function I(){await F(E)}async function J(a,b={}){let c=b.ownsProcess??y,d=b.stop??E;return await F(async()=>!!c(a)&&(await d(),!0))}},96101:(a,b,c)=>{c.d(b,{BL:()=>d,U$:()=>k,U8:()=>f,Y_:()=>i,gW:()=>g,sg:()=>h});let d="v1",e="QUIET",f=`Write one report on the operator's Telegram for this window.
2
2
 
3
3
  The first line of the report is exactly:
4
4
 
@@ -20,7 +20,7 @@ Every item states its substance, the person or chat it came from, and a link htt
20
20
 
21
21
  Write the items in the language their conversation used, and keep the section titles exactly as written above. Full sentences: no abbreviations, no compressed jargon, no telegraphic style. Each item must be understandable without opening Telegram.
22
22
 
23
- No methodology preamble, no closing summary, no "not X but Y" constructions, no praise of the operator.`,g=2e4;function h(a){return`${`Telegram daily report — window ${a.windowStart} → ${a.windowEnd} (UTC).
23
+ No methodology preamble, no closing summary, no "not X but Y" constructions, no praise of the operator.`,g=2e4;function h(a){return`Telegram daily report — window ${a.windowStart} → ${a.windowEnd} (UTC).`}function i(a){return`${`${h(a)}
24
24
 
25
25
  You have the read-only \`telegram\` MCP connector for the operator's own account. Work through it only; do not install anything and do not write to Telegram — the connector exposes no write tools. The Viewer has already verified with \`get_me\` that the connector holds the account this report belongs to.
26
26
 
@@ -44,4 +44,4 @@ ${e}
44
44
 
45
45
  YOUR INSTRUCTIONS (from the operator)`}
46
46
 
47
- ${a.instructions.trim()}`}let i=/^(?:[-*•]\s*)?\[(\d{1,3})\]/;function j(a){let b=(a??"").trim();if(!b)return{kind:"invalid"};let c=b.split(/\r?\n/).map(a=>a.trim());if(!c[0].startsWith("#"))return{kind:"invalid"};let d=c.slice(1).filter(a=>""!==a);return 0===d.length?{kind:"invalid"}:1===d.length&&d[0].toUpperCase()===e?{kind:"quiet"}:d.map(a=>i.exec(a)).filter(a=>null!==a).map(a=>Number(a[1])).every((a,b)=>a===b+1)?{kind:"ok",report:b}:{kind:"invalid"}}}};
47
+ ${a.instructions.trim()}`}let j=/^(?:[-*•]\s*)?\[(\d{1,3})\]/;function k(a){let b=(a??"").trim();if(!b)return{kind:"invalid"};let c=b.split(/\r?\n/).map(a=>a.trim());if(!c[0].startsWith("#"))return{kind:"invalid"};let d=c.slice(1).filter(a=>""!==a);return 0===d.length?{kind:"invalid"}:1===d.length&&d[0].toUpperCase()===e?{kind:"quiet"}:d.map(a=>j.exec(a)).filter(a=>null!==a).map(a=>Number(a[1])).every((a,b)=>a===b+1)?{kind:"ok",report:b}:{kind:"invalid"}}}};
@@ -0,0 +1,10 @@
1
+ "use strict";exports.id=6487,exports.ids=[6487],exports.modules={56487:(a,b,c)=>{let d;c.d(b,{StreamableHTTPClientTransport:()=>at});var e,f=c(94941);function g(a){return a?a instanceof Headers?Object.fromEntries(a.entries()):Array.isArray(a)?Object.fromEntries(a):{...a}:{}}var h=c(9676);async function i(a){return(await d).getRandomValues(new Uint8Array(a))}async function j(a){let b="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",c=256-256%b.length,d="";for(;d.length<a;)for(let e of(await i(a-d.length)))e<c&&(d+=b[e%b.length]);return d}async function k(a){return await j(a)}async function l(a){return btoa(String.fromCharCode(...new Uint8Array(await (await d).subtle.digest("SHA-256",new TextEncoder().encode(a))))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function m(a){if(a||(a=43),a<43||a>128)throw`Expected a length between 43 and 128. Received ${a}.`;let b=await k(a),c=await l(b);return{code_verifier:b,code_challenge:c}}d=globalThis.crypto?.webcrypto??globalThis.crypto??Promise.resolve().then(c.t.bind(c,77598,19)).then(a=>a.webcrypto);var n=c(45218);e||(e={});var o=c(46462),p=c(99449);let q=n.OZ().superRefine((a,b)=>{if(!URL.canParse(a))return b.addIssue({code:"custom",message:"URL must be parseable",fatal:!0}),o.tm}).refine(a=>{let b=new URL(a);return"javascript:"!==b.protocol&&"data:"!==b.protocol&&"vbscript:"!==b.protocol},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),r=n._H({resource:n.Yj().url(),authorization_servers:n.YO(q).optional(),jwks_uri:n.Yj().url().optional(),scopes_supported:n.YO(n.Yj()).optional(),bearer_methods_supported:n.YO(n.Yj()).optional(),resource_signing_alg_values_supported:n.YO(n.Yj()).optional(),resource_name:n.Yj().optional(),resource_documentation:n.Yj().optional(),resource_policy_uri:n.Yj().url().optional(),resource_tos_uri:n.Yj().url().optional(),tls_client_certificate_bound_access_tokens:n.zM().optional(),authorization_details_types_supported:n.YO(n.Yj()).optional(),dpop_signing_alg_values_supported:n.YO(n.Yj()).optional(),dpop_bound_access_tokens_required:n.zM().optional()}),s=n._H({issuer:n.Yj(),authorization_endpoint:q,token_endpoint:q,registration_endpoint:q.optional(),scopes_supported:n.YO(n.Yj()).optional(),response_types_supported:n.YO(n.Yj()),response_modes_supported:n.YO(n.Yj()).optional(),grant_types_supported:n.YO(n.Yj()).optional(),token_endpoint_auth_methods_supported:n.YO(n.Yj()).optional(),token_endpoint_auth_signing_alg_values_supported:n.YO(n.Yj()).optional(),service_documentation:q.optional(),revocation_endpoint:q.optional(),revocation_endpoint_auth_methods_supported:n.YO(n.Yj()).optional(),revocation_endpoint_auth_signing_alg_values_supported:n.YO(n.Yj()).optional(),introspection_endpoint:n.Yj().optional(),introspection_endpoint_auth_methods_supported:n.YO(n.Yj()).optional(),introspection_endpoint_auth_signing_alg_values_supported:n.YO(n.Yj()).optional(),code_challenge_methods_supported:n.YO(n.Yj()).optional(),client_id_metadata_document_supported:n.zM().optional()}),t=n._H({issuer:n.Yj(),authorization_endpoint:q,token_endpoint:q,userinfo_endpoint:q.optional(),jwks_uri:q,registration_endpoint:q.optional(),scopes_supported:n.YO(n.Yj()).optional(),response_types_supported:n.YO(n.Yj()),response_modes_supported:n.YO(n.Yj()).optional(),grant_types_supported:n.YO(n.Yj()).optional(),acr_values_supported:n.YO(n.Yj()).optional(),subject_types_supported:n.YO(n.Yj()),id_token_signing_alg_values_supported:n.YO(n.Yj()),id_token_encryption_alg_values_supported:n.YO(n.Yj()).optional(),id_token_encryption_enc_values_supported:n.YO(n.Yj()).optional(),userinfo_signing_alg_values_supported:n.YO(n.Yj()).optional(),userinfo_encryption_alg_values_supported:n.YO(n.Yj()).optional(),userinfo_encryption_enc_values_supported:n.YO(n.Yj()).optional(),request_object_signing_alg_values_supported:n.YO(n.Yj()).optional(),request_object_encryption_alg_values_supported:n.YO(n.Yj()).optional(),request_object_encryption_enc_values_supported:n.YO(n.Yj()).optional(),token_endpoint_auth_methods_supported:n.YO(n.Yj()).optional(),token_endpoint_auth_signing_alg_values_supported:n.YO(n.Yj()).optional(),display_values_supported:n.YO(n.Yj()).optional(),claim_types_supported:n.YO(n.Yj()).optional(),claims_supported:n.YO(n.Yj()).optional(),service_documentation:n.Yj().optional(),claims_locales_supported:n.YO(n.Yj()).optional(),ui_locales_supported:n.YO(n.Yj()).optional(),claims_parameter_supported:n.zM().optional(),request_parameter_supported:n.zM().optional(),request_uri_parameter_supported:n.zM().optional(),require_request_uri_registration:n.zM().optional(),op_policy_uri:q.optional(),op_tos_uri:q.optional(),client_id_metadata_document_supported:n.zM().optional()}),u=n.Ik({...t.shape,...s.pick({code_challenge_methods_supported:!0}).shape}),v=n.Ik({access_token:n.Yj(),id_token:n.Yj().optional(),token_type:n.Yj(),expires_in:p.qG(n.rS,void 0).optional(),scope:n.Yj().optional(),refresh_token:n.Yj().optional()}).strip(),w=n.Ik({error:n.Yj(),error_description:n.Yj().optional(),error_uri:n.Yj().optional()}),x=q.optional().or(n.eu("").transform(()=>void 0)),y=n.Ik({redirect_uris:n.YO(q),token_endpoint_auth_method:n.Yj().optional(),grant_types:n.YO(n.Yj()).optional(),response_types:n.YO(n.Yj()).optional(),client_name:n.Yj().optional(),client_uri:q.optional(),logo_uri:x,scope:n.Yj().optional(),contacts:n.YO(n.Yj()).optional(),tos_uri:x,policy_uri:n.Yj().optional(),jwks_uri:q.optional(),jwks:n.bz().optional(),software_id:n.Yj().optional(),software_version:n.Yj().optional(),software_statement:n.Yj().optional()}).strip(),z=n.Ik({client_id:n.Yj(),client_secret:n.Yj().optional(),client_id_issued_at:n.ai().optional(),client_secret_expires_at:n.ai().optional()}).strip(),A=y.merge(z);n.Ik({error:n.Yj(),error_description:n.Yj().optional()}).strip(),n.Ik({token:n.Yj(),token_type_hint:n.Yj().optional()}).strip();class B extends Error{constructor(a,b){super(a),this.errorUri=b,this.name=this.constructor.name}toResponseObject(){let a={error:this.errorCode,error_description:this.message};return this.errorUri&&(a.error_uri=this.errorUri),a}get errorCode(){return this.constructor.errorCode}}class C extends B{}C.errorCode="invalid_request";class D extends B{}D.errorCode="invalid_client";class E extends B{}E.errorCode="invalid_grant";class F extends B{}F.errorCode="unauthorized_client";class G extends B{}G.errorCode="unsupported_grant_type";class H extends B{}H.errorCode="invalid_scope";class I extends B{}I.errorCode="access_denied";class J extends B{}J.errorCode="server_error";class K extends B{}K.errorCode="temporarily_unavailable";class L extends B{}L.errorCode="unsupported_response_type";class M extends B{}M.errorCode="unsupported_token_type";class N extends B{}N.errorCode="invalid_token";class O extends B{}O.errorCode="method_not_allowed";class P extends B{}P.errorCode="too_many_requests";class Q extends B{}Q.errorCode="invalid_client_metadata";class R extends B{}R.errorCode="insufficient_scope";class S extends B{}S.errorCode="invalid_target";let T={[C.errorCode]:C,[D.errorCode]:D,[E.errorCode]:E,[F.errorCode]:F,[G.errorCode]:G,[H.errorCode]:H,[I.errorCode]:I,[J.errorCode]:J,[K.errorCode]:K,[L.errorCode]:L,[M.errorCode]:M,[N.errorCode]:N,[O.errorCode]:O,[P.errorCode]:P,[Q.errorCode]:Q,[R.errorCode]:R,[S.errorCode]:S};class U extends Error{constructor(a){super(a??"Unauthorized")}}let V="code",W="S256";async function X(a){let b=a instanceof Response?a.status:void 0,c=a instanceof Response?await a.text():a;try{let{error:a,error_description:b,error_uri:d}=w.parse(JSON.parse(c));return new(T[a]||J)(b||"",d)}catch(a){return new J(`${b?`HTTP ${b}: `:""}Invalid OAuth error response: ${a}. Raw body: ${c}`)}}async function Y(a,b){try{return await Z(a,b)}catch(c){if(c instanceof D||c instanceof F)return await a.invalidateCredentials?.("all"),await Z(a,b);if(c instanceof E)return await a.invalidateCredentials?.("tokens"),await Z(a,b);throw c}}async function Z(a,{serverUrl:b,authorizationCode:c,scope:d,resourceMetadataUrl:e,fetchFn:f}){let g,h,i,j=await a.discoveryState?.(),k=e;if(!k&&j?.resourceMetadataUrl&&(k=new URL(j.resourceMetadataUrl)),j?.authorizationServerUrl){if(h=j.authorizationServerUrl,g=j.resourceMetadata,i=j.authorizationServerMetadata??await af(h,{fetchFn:f}),!g)try{g=await ab(b,{resourceMetadataUrl:k},f)}catch{}(i!==j.authorizationServerMetadata||g!==j.resourceMetadata)&&await a.saveDiscoveryState?.({authorizationServerUrl:String(h),resourceMetadataUrl:k?.toString(),resourceMetadata:g,authorizationServerMetadata:i})}else{let c=await ag(b,{resourceMetadataUrl:k,fetchFn:f});h=c.authorizationServerUrl,i=c.authorizationServerMetadata,g=c.resourceMetadata,await a.saveDiscoveryState?.({authorizationServerUrl:String(h),resourceMetadataUrl:k?.toString(),resourceMetadata:g,authorizationServerMetadata:i})}let l=await $(b,a,g),m=d||g?.scopes_supported?.join(" ")||a.clientMetadata.scope,n=await Promise.resolve(a.clientInformation());if(!n){if(void 0!==c)throw Error("Existing OAuth client information is required when exchanging an authorization code");let b=i?.client_id_metadata_document_supported===!0,d=a.clientMetadataUrl;if(d&&!function(a){if(!a)return!1;try{let b=new URL(a);return"https:"===b.protocol&&"/"!==b.pathname}catch{return!1}}(d))throw new Q(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${d}`);if(b&&d)n={client_id:d},await a.saveClientInformation?.(n);else{if(!a.saveClientInformation)throw Error("OAuth client information must be saveable for dynamic registration");let b=await al(h,{metadata:i,clientMetadata:a.clientMetadata,scope:m,fetchFn:f});await a.saveClientInformation(b),n=b}}let o=!a.redirectUrl;if(void 0!==c||o){let b=await ak(a,h,{metadata:i,resource:l,authorizationCode:c,fetchFn:f});return await a.saveTokens(b),"AUTHORIZED"}let p=await a.tokens();if(p?.refresh_token)try{let b=await aj(h,{metadata:i,clientInformation:n,refreshToken:p.refresh_token,resource:l,addClientAuthentication:a.addClientAuthentication,fetchFn:f});return await a.saveTokens(b),"AUTHORIZED"}catch(a){if(!(a instanceof B)||a instanceof J);else throw a}let q=a.state?await a.state():void 0,{authorizationUrl:r,codeVerifier:s}=await ah(h,{metadata:i,clientInformation:n,state:q,redirectUrl:a.redirectUrl,scope:m,resource:l});return await a.saveCodeVerifier(s),await a.redirectToAuthorization(r),"REDIRECT"}async function $(a,b,c){let d,e=((d=new URL("string"==typeof a?a:a.href)).hash="",d);if(b.validateResourceURL)return await b.validateResourceURL(e,c?.resource);if(c){if(!function({requestedResource:a,configuredResource:b}){let c=new URL("string"==typeof a?a:a.href),d=new URL("string"==typeof b?b:b.href);if(c.origin!==d.origin||c.pathname.length<d.pathname.length)return!1;let e=c.pathname.endsWith("/")?c.pathname:c.pathname+"/",f=d.pathname.endsWith("/")?d.pathname:d.pathname+"/";return e.startsWith(f)}({requestedResource:e,configuredResource:c.resource}))throw Error(`Protected resource ${c.resource} does not match expected ${e} (or origin)`);return new URL(c.resource)}}function _(a){let b,c=a.headers.get("WWW-Authenticate");if(!c)return{};let[d,e]=c.split(" ");if("bearer"!==d.toLowerCase()||!e)return{};let f=aa(a,"resource_metadata")||void 0;if(f)try{b=new URL(f)}catch{}return{resourceMetadataUrl:b,scope:aa(a,"scope")||void 0,error:aa(a,"error")||void 0}}function aa(a,b){let c=a.headers.get("WWW-Authenticate");if(!c)return null;let d=RegExp(`${b}=(?:"([^"]+)"|([^\\s,]+))`),e=c.match(d);return e?e[1]||e[2]:null}async function ab(a,b,c=fetch){let d=await ae(a,"oauth-protected-resource",c,{protocolVersion:b?.protocolVersion,metadataUrl:b?.resourceMetadataUrl});if(!d||404===d.status)throw await d?.body?.cancel(),Error("Resource server does not implement OAuth 2.0 Protected Resource Metadata.");if(!d.ok)throw await d.body?.cancel(),Error(`HTTP ${d.status} trying to load well-known OAuth protected resource metadata.`);return r.parse(await d.json())}async function ac(a,b,c=fetch){try{return await c(a,{headers:b})}catch(d){if(d instanceof TypeError)if(b)return ac(a,void 0,c);else return;throw d}}async function ad(a,b,c=fetch){return await ac(a,{"MCP-Protocol-Version":b},c)}async function ae(a,b,c,d){var e,f;let g,i=new URL(a),j=d?.protocolVersion??h.aE;d?.metadataUrl?g=new URL(d.metadataUrl):(g=new URL(function(a,b="",c={}){return b.endsWith("/")&&(b=b.slice(0,-1)),c.prependPathname?`${b}/.well-known/${a}`:`/.well-known/${a}${b}`}(b,i.pathname),d?.metadataServerUrl??i)).search=i.search;let k=await ad(g,j,c);if(!d?.metadataUrl&&(e=k,f=i.pathname,!e||e.status>=400&&e.status<500&&"/"!==f)){let a=new URL(`/.well-known/${b}`,i);k=await ad(a,j,c)}return k}async function af(a,{fetchFn:b=fetch,protocolVersion:c=h.aE}={}){let d={"MCP-Protocol-Version":c,Accept:"application/json"};for(let{url:c,type:e}of function(a){let b="string"==typeof a?new URL(a):a,c="/"!==b.pathname,d=[];if(!c)return d.push({url:new URL("/.well-known/oauth-authorization-server",b.origin),type:"oauth"}),d.push({url:new URL("/.well-known/openid-configuration",b.origin),type:"oidc"}),d;let e=b.pathname;return e.endsWith("/")&&(e=e.slice(0,-1)),d.push({url:new URL(`/.well-known/oauth-authorization-server${e}`,b.origin),type:"oauth"}),d.push({url:new URL(`/.well-known/openid-configuration${e}`,b.origin),type:"oidc"}),d.push({url:new URL(`${e}/.well-known/openid-configuration`,b.origin),type:"oidc"}),d}(a)){let a=await ac(c,d,b);if(a){if(!a.ok){if(await a.body?.cancel(),a.status>=400&&a.status<500)continue;throw Error(`HTTP ${a.status} trying to load ${"oauth"===e?"OAuth":"OpenID provider"} metadata from ${c}`)}if("oauth"===e)return s.parse(await a.json());return u.parse(await a.json())}}}async function ag(a,b){let c,d;try{(c=await ab(a,{resourceMetadataUrl:b?.resourceMetadataUrl},b?.fetchFn)).authorization_servers&&c.authorization_servers.length>0&&(d=c.authorization_servers[0])}catch{}d||(d=String(new URL("/",a)));let e=await af(d,{fetchFn:b?.fetchFn});return{authorizationServerUrl:d,authorizationServerMetadata:e,resourceMetadata:c}}async function ah(a,{metadata:b,clientInformation:c,redirectUrl:d,scope:e,state:f,resource:g}){let h;if(b){if(h=new URL(b.authorization_endpoint),!b.response_types_supported.includes(V))throw Error(`Incompatible auth server: does not support response type ${V}`);if(b.code_challenge_methods_supported&&!b.code_challenge_methods_supported.includes(W))throw Error(`Incompatible auth server: does not support code challenge method ${W}`)}else h=new URL("/authorize",a);let i=await m(),j=i.code_verifier,k=i.code_challenge;return h.searchParams.set("response_type",V),h.searchParams.set("client_id",c.client_id),h.searchParams.set("code_challenge",k),h.searchParams.set("code_challenge_method",W),h.searchParams.set("redirect_uri",String(d)),f&&h.searchParams.set("state",f),e&&h.searchParams.set("scope",e),e?.includes("offline_access")&&h.searchParams.append("prompt","consent"),g&&h.searchParams.set("resource",g.href),{authorizationUrl:h,codeVerifier:j}}async function ai(a,{metadata:b,tokenRequestParams:c,clientInformation:d,addClientAuthentication:e,resource:f,fetchFn:g}){var h,i;let j,k=b?.token_endpoint?new URL(b.token_endpoint):new URL("/token",a),l=new Headers({"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"});f&&c.set("resource",f.href),e?await e(l,c,k,b):d&&function(a,b,c,d){let{client_id:e,client_secret:f}=b;switch(a){case"client_secret_basic":var g,h,i,j,k=e,l=f,m=c;if(!l)throw Error("client_secret_basic authentication requires a client_secret");let n=btoa(`${k}:${l}`);m.set("Authorization",`Basic ${n}`);return;case"client_secret_post":g=e,h=f,(i=d).set("client_id",g),h&&i.set("client_secret",h);return;case"none":j=e,d.set("client_id",j);return;default:throw Error(`Unsupported client authentication method: ${a}`)}}((h=d,i=b?.token_endpoint_auth_methods_supported??[],j=void 0!==h.client_secret,"token_endpoint_auth_method"in h&&h.token_endpoint_auth_method&&["client_secret_basic","client_secret_post","none"].includes(h.token_endpoint_auth_method)&&(0===i.length||i.includes(h.token_endpoint_auth_method))?h.token_endpoint_auth_method:0===i.length?j?"client_secret_basic":"none":j&&i.includes("client_secret_basic")?"client_secret_basic":j&&i.includes("client_secret_post")?"client_secret_post":i.includes("none")?"none":j?"client_secret_post":"none"),d,l,c);let m=await (g??fetch)(k,{method:"POST",headers:l,body:c});if(!m.ok)throw await X(m);return v.parse(await m.json())}async function aj(a,{metadata:b,clientInformation:c,refreshToken:d,resource:e,addClientAuthentication:f,fetchFn:g}){let h=new URLSearchParams({grant_type:"refresh_token",refresh_token:d});return{refresh_token:d,...await ai(a,{metadata:b,tokenRequestParams:h,clientInformation:c,addClientAuthentication:f,resource:e,fetchFn:g})}}async function ak(a,b,{metadata:c,resource:d,authorizationCode:e,fetchFn:f}={}){let g,h=a.clientMetadata.scope;if(a.prepareTokenRequest&&(g=await a.prepareTokenRequest(h)),!g){if(!e)throw Error("Either provider.prepareTokenRequest() or authorizationCode is required");if(!a.redirectUrl)throw Error("redirectUrl is required for authorization_code flow");g=new URLSearchParams({grant_type:"authorization_code",code:e,code_verifier:await a.codeVerifier(),redirect_uri:String(a.redirectUrl)})}return ai(b,{metadata:c,tokenRequestParams:g,clientInformation:await a.clientInformation()??void 0,addClientAuthentication:a.addClientAuthentication,resource:d,fetchFn:f})}async function al(a,{metadata:b,clientMetadata:c,scope:d,fetchFn:e}){let f;if(b){if(!b.registration_endpoint)throw Error("Incompatible auth server: does not support dynamic client registration");f=new URL(b.registration_endpoint)}else f=new URL("/register",a);let g=await (e??fetch)(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...c,...void 0!==d?{scope:d}:{}})});if(!g.ok)throw await X(g);return A.parse(await g.json())}class am extends Error{constructor(a,b){super(a),this.name="ParseError",this.type=b.type,this.field=b.field,this.value=b.value,this.line=b.line}}function an(a){}function ao(a,b,c){return 100===c&&97===a.charCodeAt(b+1)&&116===a.charCodeAt(b+2)&&97===a.charCodeAt(b+3)&&58===a.charCodeAt(b+4)}function ap(a,b,c){return 101===c&&118===a.charCodeAt(b+1)&&101===a.charCodeAt(b+2)&&110===a.charCodeAt(b+3)&&116===a.charCodeAt(b+4)&&58===a.charCodeAt(b+5)}class aq extends TransformStream{constructor({onError:a,onRetry:b,onComment:c,maxBufferSize:d}={}){let e;super({start(f){e=function(a){if("function"==typeof a)throw TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:b=an,onError:c=an,onRetry:d=an,onComment:e,maxBufferSize:f}=a,g=[],h=0,i=!0,j,k="",l=0,m,n=!1;function o(){void 0!==f&&(h+k.length<=f||(n=!0,g.length=0,h=0,j=void 0,k="",l=0,m=void 0,c(new am(`Buffered data exceeded max buffer size of ${f} characters`,{type:"max-buffer-size-exceeded"}))))}function p(a){let c=0;if(-1===a.indexOf("\r")){let d=a.indexOf(`
2
+ `,c);for(;-1!==d;){if(c===d){l>0&&b({id:j,event:m,data:k}),j=void 0,k="",l=0,m=void 0,c=d+1,d=a.indexOf(`
3
+ `,c);continue}let e=a.charCodeAt(c);if(ao(a,c,e)){let e=32===a.charCodeAt(c+5)?c+6:c+5,f=a.slice(e,d);if(0===l&&10===a.charCodeAt(d+1)){b({id:j,event:m,data:f}),j=void 0,k="",m=void 0,c=d+2,d=a.indexOf(`
4
+ `,c);continue}k=0===l?f:`${k}
5
+ ${f}`,l++}else ap(a,c,e)?m=a.slice(32===a.charCodeAt(c+6)?c+7:c+6,d)||void 0:q(a,c,d);c=d+1,d=a.indexOf(`
6
+ `,c)}return a.slice(c)}for(;c<a.length;){let b=a.indexOf("\r",c),d=a.indexOf(`
7
+ `,c),e=-1;if(-1!==b&&-1!==d?e=b<d?b:d:-1!==b?e=b===a.length-1?-1:b:-1!==d&&(e=d),-1===e)break;q(a,c,e),c=e+1,13===a.charCodeAt(c-1)&&10===a.charCodeAt(c)&&c++}return a.slice(c)}function q(a,c,d){if(c===d)return void(l>0&&b({id:j,event:m,data:k}),j=void 0,k="",l=0,m=void 0);let f=a.charCodeAt(c);if(ao(a,c,f)){let b=32===a.charCodeAt(c+5)?c+6:c+5,e=a.slice(b,d);k=0===l?e:`${k}
8
+ ${e}`,l++;return}if(ap(a,c,f)){m=a.slice(32===a.charCodeAt(c+6)?c+7:c+6,d)||void 0;return}if(105===f&&100===a.charCodeAt(c+1)&&58===a.charCodeAt(c+2)){let b=a.slice(32===a.charCodeAt(c+3)?c+4:c+3,d);j=b.includes("\0")?void 0:b;return}if(58===f){e&&e(a.slice(c,d).slice(32===a.charCodeAt(c+1)?2:1));return}let g=a.slice(c,d),h=g.indexOf(":");if(-1===h)return void r(g,"",g);let i=g.slice(0,h),n=32===g.charCodeAt(h+1)?2:1;r(i,g.slice(h+n),g)}function r(a,b,e){switch(a){case"event":m=b||void 0;break;case"data":k=0===l?b:`${k}
9
+ ${b}`,l++;break;case"id":j=b.includes("\0")?void 0:b;break;case"retry":/^\d+$/.test(b)?d(parseInt(b,10)):c(new am(`Invalid \`retry\` value: "${b}"`,{type:"invalid-retry",value:b,line:e}));break;default:c(new am(`Unknown field "${a.length>20?`${a.slice(0,20)}\u2026`:a}"`,{type:"unknown-field",field:a,value:b,line:e}))}}return{feed:function(a){if(n)throw Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(i&&(i=!1,239===a.charCodeAt(0)&&187===a.charCodeAt(1)&&191===a.charCodeAt(2)&&(a=a.slice(3))),0===g.length){let b=p(a);""!==b&&(g.push(b),h=b.length),o();return}if(-1===a.indexOf(`
10
+ `)&&-1===a.indexOf("\r")){g.push(a),h+=a.length,o();return}g.push(a);let b=g.join("");g.length=0,h=0;let c=p(b);""!==c&&(g.push(c),h=c.length),o()},reset:function(a={}){if(a.consume&&g.length>0){let a=g.join("");q(a,0,a.length)}i=!0,j=void 0,k="",l=0,m=void 0,g.length=0,h=0,n=!1}}}({onEvent:a=>{f.enqueue(a)},onError(b){"function"==typeof a&&a(b),("terminate"===a||"max-buffer-size-exceeded"===b.type)&&f.error(b)},onRetry:b,onComment:c,maxBufferSize:d})},transform(a){e.feed(a)}})}}let ar={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2};class as extends Error{constructor(a,b){super(`Streamable HTTP error: ${b}`),this.code=a}}class at{constructor(a,b){this._hasCompletedAuthFlow=!1,this._url=a,this._resourceMetadataUrl=void 0,this._scope=void 0,this._requestInit=b?.requestInit,this._authProvider=b?.authProvider,this._fetch=b?.fetch,this._fetchWithInit=function(a=fetch,b){return b?async(c,d)=>a(c,{...b,...d,headers:d?.headers?{...g(b.headers),...g(d.headers)}:b.headers}):a}(b?.fetch,b?.requestInit),this._sessionId=b?.sessionId,this._reconnectionOptions=b?.reconnectionOptions??ar}async _authThenStart(){let a;if(!this._authProvider)throw new U("No auth provider");try{a=await Y(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(a){throw this.onerror?.(a),a}if("AUTHORIZED"!==a)throw new U;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){let a={};if(this._authProvider){let b=await this._authProvider.tokens();b&&(a.Authorization=`Bearer ${b.access_token}`)}this._sessionId&&(a["mcp-session-id"]=this._sessionId),this._protocolVersion&&(a["mcp-protocol-version"]=this._protocolVersion);let b=g(this._requestInit?.headers);return new Headers({...a,...b})}async _startOrAuthSse(a){let{resumptionToken:b}=a;try{let c=await this._commonHeaders();c.set("Accept","text/event-stream"),b&&c.set("last-event-id",b);let d=await (this._fetch??fetch)(this._url,{method:"GET",headers:c,signal:this._abortController?.signal});if(!d.ok){if(await d.body?.cancel(),401===d.status&&this._authProvider)return await this._authThenStart();if(405===d.status)return;throw new as(d.status,`Failed to open SSE stream: ${d.statusText}`)}this._handleSseStream(d.body,a,!0)}catch(a){throw this.onerror?.(a),a}}_getNextReconnectionDelay(a){return void 0!==this._serverRetryMs?this._serverRetryMs:Math.min(this._reconnectionOptions.initialReconnectionDelay*Math.pow(this._reconnectionOptions.reconnectionDelayGrowFactor,a),this._reconnectionOptions.maxReconnectionDelay)}_scheduleReconnection(a,b=0){let c=this._reconnectionOptions.maxRetries;if(b>=c)return void this.onerror?.(Error(`Maximum reconnection attempts (${c}) exceeded.`));let d=this._getNextReconnectionDelay(b);this._reconnectionTimeout=setTimeout(()=>{this._startOrAuthSse(a).catch(c=>{this.onerror?.(Error(`Failed to reconnect SSE stream: ${c instanceof Error?c.message:String(c)}`)),this._scheduleReconnection(a,b+1)})},d)}_handleSseStream(a,b,c){let d;if(!a)return;let{onresumptiontoken:e,replayMessageId:f}=b,g=!1,i=!1;(async()=>{try{let b=a.pipeThrough(new TextDecoderStream).pipeThrough(new aq({onRetry:a=>{this._serverRetryMs=a}})).getReader();for(;;){let{value:a,done:c}=await b.read();if(c)break;if((a.id&&(d=a.id,g=!0,e?.(a.id)),a.data)&&(!a.event||"message"===a.event))try{let b=h.OR.parse(JSON.parse(a.data));(0,h.ig)(b)&&(i=!0,void 0!==f&&(b.id=f)),this.onmessage?.(b)}catch(a){this.onerror?.(a)}}(c||g)&&!i&&this._abortController&&!this._abortController.signal.aborted&&this._scheduleReconnection({resumptionToken:d,onresumptiontoken:e,replayMessageId:f},0)}catch(a){if(this.onerror?.(Error(`SSE stream disconnected: ${a}`)),(c||g)&&!i&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:d,onresumptiontoken:e,replayMessageId:f},0)}catch(a){this.onerror?.(Error(`Failed to reconnect: ${a instanceof Error?a.message:String(a)}`))}}})()}async start(){if(this._abortController)throw Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(a){if(!this._authProvider)throw new U("No auth provider");if("AUTHORIZED"!==await Y(this._authProvider,{serverUrl:this._url,authorizationCode:a,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit}))throw new U("Failed to authorize")}async close(){this._reconnectionTimeout&&(clearTimeout(this._reconnectionTimeout),this._reconnectionTimeout=void 0),this._abortController?.abort(),this.onclose?.()}async send(a,b){try{let{resumptionToken:c,onresumptiontoken:d}=b||{};if(c)return void this._startOrAuthSse({resumptionToken:c,replayMessageId:(0,h.vo)(a)?a.id:void 0}).catch(a=>this.onerror?.(a));let e=await this._commonHeaders();e.set("content-type","application/json"),e.set("accept","application/json, text/event-stream");let g={...this._requestInit,method:"POST",headers:e,body:JSON.stringify(a),signal:this._abortController?.signal},i=await (this._fetch??fetch)(this._url,g),j=i.headers.get("mcp-session-id");if(j&&(this._sessionId=j),!i.ok){let b=await i.text().catch(()=>null);if(401===i.status&&this._authProvider){if(this._hasCompletedAuthFlow)throw new as(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:b,scope:c}=_(i);this._resourceMetadataUrl=b,this._scope=c;let d=await Y(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit});if("AUTHORIZED"!==d)throw new U;return this._hasCompletedAuthFlow=!0,this.send(a)}if(403===i.status&&this._authProvider){let{resourceMetadataUrl:b,scope:c,error:d}=_(i);if("insufficient_scope"===d){let d=i.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===d)throw new as(403,"Server returned 403 after trying upscoping");c&&(this._scope=c),b&&(this._resourceMetadataUrl=b),this._lastUpscopingHeader=d??void 0;let e=await Y(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch});if("AUTHORIZED"!==e)throw new U;return this.send(a)}}throw new as(i.status,`Error POSTing to endpoint: ${b}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,202===i.status){await i.body?.cancel(),(0,h.wU)(a)&&this._startOrAuthSse({resumptionToken:void 0}).catch(a=>this.onerror?.(a));return}let k=(Array.isArray(a)?a:[a]).filter(a=>"method"in a&&"id"in a&&void 0!==a.id).length>0,l=i.headers.get("content-type"),m=function(a){if(a)try{return f.parse(a).type}catch{let b=(a.split(";",1)[0]??"").trim().toLowerCase();if(""===b||a.slice(b.length).includes(","))return;return b}}(l);if(k)if("text/event-stream"===m)this._handleSseStream(i.body,{onresumptiontoken:d},!1);else if("application/json"===m){let a=await i.json();for(let b of Array.isArray(a)?a.map(a=>h.OR.parse(a)):[h.OR.parse(a)])this.onmessage?.(b)}else throw await i.body?.cancel(),new as(-1,`Unexpected content type: ${l}`);else await i.body?.cancel()}catch(a){throw this.onerror?.(a),a}}get sessionId(){return this._sessionId}async terminateSession(){if(this._sessionId)try{let a=await this._commonHeaders(),b={...this._requestInit,method:"DELETE",headers:a,signal:this._abortController?.signal},c=await (this._fetch??fetch)(this._url,b);if(await c.body?.cancel(),!c.ok&&405!==c.status)throw new as(c.status,`Failed to terminate session: ${c.statusText}`);this._sessionId=void 0}catch(a){throw this.onerror?.(a),a}}setProtocolVersion(a){this._protocolVersion=a}get protocolVersion(){return this._protocolVersion}async resumeStream(a,b){await this._startOrAuthSse({resumptionToken:a,onresumptiontoken:b?.onresumptiontoken})}}},94941:(a,b)=>{var c=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,d=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,e=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,f=/\\([\u000b\u0020-\u00ff])/g,g=/([\\"])/g,h=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function i(a){this.parameters=Object.create(null),this.type=a}b.format=function(a){if(!a||"object"!=typeof a)throw TypeError("argument obj is required");var b=a.parameters,c=a.type;if(!c||!h.test(c))throw TypeError("invalid type");var f=c;if(b&&"object"==typeof b)for(var i,j=Object.keys(b).sort(),k=0;k<j.length;k++){if(i=j[k],!e.test(i))throw TypeError("invalid parameter name");f+="; "+i+"="+function(a){var b=String(a);if(e.test(b))return b;if(b.length>0&&!d.test(b))throw TypeError("invalid parameter value");return'"'+b.replace(g,"\\$1")+'"'}(b[i])}return f},b.parse=function(a){if(!a)throw TypeError("argument string is required");var b,d,e,g="object"==typeof a?function(a){var b;if("function"==typeof a.getHeader?b=a.getHeader("content-type"):"object"==typeof a.headers&&(b=a.headers&&a.headers["content-type"]),"string"!=typeof b)throw TypeError("content-type header is missing from object");return b}(a):a;if("string"!=typeof g)throw TypeError("argument string is required to be a string");var j=g.indexOf(";"),k=-1!==j?g.slice(0,j).trim():g.trim();if(!h.test(k))throw TypeError("invalid media type");var l=new i(k.toLowerCase());if(-1!==j){for(c.lastIndex=j;d=c.exec(g);){if(d.index!==j)throw TypeError("invalid parameter format");j+=d[0].length,b=d[1].toLowerCase(),34===(e=d[2]).charCodeAt(0)&&-1!==(e=e.slice(1,-1)).indexOf("\\")&&(e=e.replace(f,"$1")),l.parameters[b]=e}if(j!==g.length)throw TypeError("invalid parameter format")}return l}}};
@@ -1 +1 @@
1
- "use strict";exports.id=6796,exports.ids=[6796],exports.modules={96796:(a,b,c)=>{c.r(b),c.d(b,{DEFAULT_FIXER:()=>v,SEEDED_TEMPLATES:()=>z,buildWorkflow:()=>ae,checkpointWorkflowRollbackMirrorForDemotion:()=>R,defaultFixerFromRoles:()=>u,loadTemplates:()=>ab,loadWorkflows:()=>K,mergeSeededTemplates:()=>ad,normalizeStage:()=>D,normalizeStages:()=>E,normalizeTemplate:()=>G,planWorkflowStateMigration:()=>M,reconcileWorkflowConversationOwnership:()=>X,reconcileWorkflowConversationOwnershipCooperatively:()=>Y,roleConfigFromReference:()=>C,saveTemplates:()=>ac,saveWorkflows:()=>_,seededTemplatesFromRoles:()=>y,setupExitPath:()=>ai,setupStderrPath:()=>ah,setupStdoutPath:()=>ag,validateWorkflowLaunchModels:()=>F,withWorkflowMutation:()=>aa,workflowArtifactsDir:()=>af,workflowStateCollectionSeed:()=>P});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(51888),i=c(27146),j=c(38751),k=c(12904),l=c(43237),m=c(98817),n=c(49048),o=c(97386),p=c(22371),q=c(14928);let r=()=>(0,i.BQ)("workflows.json"),s=()=>(0,i.BQ)("workflow-templates.json");function t(a,b={},c=(0,p.e3)()){if("builder"!==a)return{...c.find(b=>b.id===a).config};let d=(0,o.fy)(a,b,{},c);return d.ok?{...d.value.config}:{...n.W.find(b=>b.id===a).config}}function u(a){let b=t("cleaner",{},a);return{..."codex"===b.engine?b:{...n.W.find(a=>"cleaner"===a.id).config},effort:"low"}}let v=u(),w=[{name:"fullstack",setup:"bun install",verify:"bun test && bun run build",finish:"pr",stages:[{kind:"implement",agent:{engine:"codex",model:null,effort:"high"},scope:"Backend/API: server logic, data layer, API routes. Leave UI components alone."},{kind:"implement",agent:{engine:"claude",model:"fable",effort:null},scope:"UI/frontend: components, hooks, styling, i18n labels. Build on the backend contract from the previous stage."},{kind:"review-loop",reviewer:{engine:"codex",model:null,effort:"xhigh"},fixer:{engine:"codex",model:null,effort:"low"},roundLimit:5,reviewerMode:"headless"}]}],x=[{name:"fullstack",setup:"bun install",verify:"bun test && bun run build",finish:"pr",stages:[{kind:"implement",agent:{engine:"codex",model:"gpt-5.6-terra",effort:"high"},scope:"Backend/API: server logic, data layer, API routes. Leave UI components alone."},{kind:"implement",agent:{engine:"claude",model:"fable",effort:null},scope:"UI/frontend: components, hooks, styling, i18n labels. Build on the backend contract from the previous stage."},{kind:"review-loop",reviewer:{engine:"codex",model:"gpt-5.6-sol",effort:"xhigh"},fixer:{engine:"codex",model:"gpt-5.6-terra",effort:"low"},roundLimit:5,reviewerMode:"headless"}]},{name:"Terra → Sol review",verify:"bun test && bun run build",finish:"pr",stages:[{kind:"implement",agent:{engine:"codex",model:"gpt-5.6-terra",effort:"high"},scope:"Implement the requested change end to end, including focused tests and documentation updates."},{kind:"review-loop",reviewer:{engine:"codex",model:"gpt-5.6-sol",effort:"xhigh"},fixer:{engine:"codex",model:"gpt-5.6-terra",effort:"low"},roundLimit:5,reviewerMode:"headless"}]}];function y(){let a=(0,p.e3)(),b=t("builder",{},a),c=t("builder",{mode:"plain",domain:"frontend"},a),d=t("reviewer",{},a),e=u(a);return[{name:"fullstack",setup:"bun install",verify:"bun test && bun run build",finish:"pr",stages:[{kind:"implement",agent:b,scope:"Backend/API: server logic, data layer, API routes. Leave UI components alone."},{kind:"implement",agent:c,scope:"UI/frontend: components, hooks, styling, i18n labels. Build on the backend contract from the previous stage."},{kind:"review-loop",reviewer:d,fixer:e,roundLimit:5,reviewerMode:"headless"}]},{name:"Sol medium → Sol xhigh review",verify:"bun test && bun run build",finish:"pr",stages:[{kind:"implement",agent:b,scope:"Implement the requested change end to end, including focused tests and documentation updates."},{kind:"review-loop",reviewer:d,fixer:e,roundLimit:5,reviewerMode:"headless"}]}].map(a=>({...a,managed:"role-registry"}))}let z=y();function A(a,b){(0,m.atomicWriteText)(a,JSON.stringify(b,null,2)+"\n")}function B(a){return!a||"object"!=typeof a||Array.isArray(a)||"claude"!==a.engine&&"codex"!==a.engine?null:{engine:a.engine,model:"string"==typeof a.model&&a.model.trim()?a.model.trim():null,effort:"string"==typeof a.effort&&a.effort.trim()?a.effort.trim():null}}function C(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.role)return null;let b=a.overrides;if(void 0!==b&&(!b||"object"!=typeof b||Array.isArray(b)))return null;let c=b??{},d={..."claude"===c.engine||"codex"===c.engine?{engine:c.engine}:{},..."string"==typeof c.model?{model:c.model}:{},..."string"==typeof c.effort?{effort:c.effort}:{}},e=(0,o.fy)(a.role,a.roleParams,d);return e.ok?e.value.config:null}function D(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=a.kind;if("implement"===b){let b;return(b=B(a.agent)??C(a))&&"string"==typeof a.scope&&a.scope.trim()?{kind:"implement",agent:b,scope:a.scope.trim()}:null}if("review-loop"===b){let b,c=B(a.reviewer)??C(a);return c?{kind:"review-loop",reviewer:c,fixer:(b=B(a.fixer))&&"codex"===b.engine?{engine:"codex",model:b.model,effort:"low"}:u(),roundLimit:Number.isInteger(a.roundLimit)&&a.roundLimit>=0?Math.min(a.roundLimit,50):5,reviewerMode:"pane"===a.reviewerMode?"pane":"headless"}:null}return null}function E(a){if(!Array.isArray(a)||a.length<2)return{error:"a workflow needs at least one implement stage and a closing review-loop"};let b=[];for(let c of a){let a=D(c);if(!a)return{error:"invalid stage definition"};b.push(a)}return 1!==b.filter(a=>"review-loop"===a.kind).length||b.at(-1)?.kind!=="review-loop"?{error:"stages must be implement+ followed by exactly one review-loop last"}:{stages:b}}function F(a){for(let b of a)for(let a of"implement"===b.kind?[b.agent]:[b.reviewer,b.fixer]){if(!a.model)continue;let b=(0,h.RC)(a.engine,a.model);if("error"in b)return b;a.model=b.model}return{stages:a}}function G(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.name||!a.name.trim())return null;let b=E(a.stages);if("error"in b)return null;let c="merge"===a.finish?"merge":"pr";return{name:a.name.trim(),stages:b.stages,finish:c,..."role-registry"===a.managed?{managed:a.managed}:{},..."string"==typeof a.setup&&a.setup.trim()?{setup:a.setup.trim()}:{},..."string"==typeof a.verify&&a.verify.trim()?{verify:a.verify.trim()}:{}}}function H(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.id&&"string"==typeof a.task&&"string"==typeof a.repoDir&&"string"==typeof a.worktreeDir&&"string"==typeof a.branch&&Array.isArray(a.stageRuns)&&"number"==typeof a.stageIndex&&null!==G(a.template)}let I=new WeakMap;function J(a){return I.set(a,new Map(a.map(a=>[a.id,JSON.stringify(a)]))),a}function K(){return J(Q().snapshot())}function L(){let a=function(){let a;try{a=e().readFileSync(r(),"utf8")}catch(a){if("ENOENT"===a.code)return null;throw Error("could not read legacy workflow state",{cause:a})}try{return JSON.parse(a)}catch(a){throw Error("legacy workflow state contains malformed JSON",{cause:a})}}();if(null===a)return[];if(!a||"object"!=typeof a||Array.isArray(a))throw Error("legacy workflow state must be an object");if(!Array.isArray(a.workflows)||!a.workflows.every(H))throw Error("legacy workflow state contains malformed records");return a.workflows.map(N)}function M(){let a=L();return{records:a.length,keys:a.map(a=>a.id)}}function N(a){return{...a,project:(0,j.G$)(a.project??""),pausedState:a.pausedState??null,setupPid:a.setupPid??null,srcPath:a.srcPath??null,srcConversationId:a.srcConversationId??null,flowId:a.flowId??null,fixerPath:a.fixerPath??null,fixerConversationId:a.fixerConversationId??null,stageRuns:a.stageRuns.map(a=>({...a,agentConversationId:a.agentConversationId??null})),prUrl:a.prUrl??null}}let O=new Map;function P(){return{collection:"workflows",schemaVersion:1,migrationId:"workflows-json-v1",loadRecords:L,key:a=>a.id}}function Q(){let a=(0,i.BQ)("state.sqlite"),b=O.get(a);if(b)return b;(0,q.t0)(a,[P()]);let c=new q.UY(a,{collection:"workflows",schemaVersion:1,busyMessage:"workflow state is busy",key:a=>a.id,decode:a=>H(a)?N(a):null,clone:a=>N(structuredClone(a)),strictDecode:!0,decodeError:a=>Error("workflow SQLite state contains a malformed row",{cause:a}),validate:a=>{if(!H(a))throw Error("refusing to persist a malformed workflow record")}});return O.set(a,c),c}function R(){return Q().checkpointMirrorForDemotion((a,b)=>{A(r(),{_sqliteRevision:b,workflows:a})})}function S(a,b){if(a.conversationId?.startsWith("conversation_")){let c=b.conversation(a.conversationId)?.generations.at(-1)?.path??a.path;return{path:c,conversationId:a.conversationId,changed:c!==a.path}}if(!a.path)return{path:a.path,conversationId:a.conversationId??null,changed:!1};let c=b.conversationForPath(a.path);return c?{path:a.path,conversationId:c.id,changed:!0}:{path:a.path,conversationId:a.conversationId??null,changed:!1}}function T(a,b){let c=S({path:a.agentPath,conversationId:a.agentConversationId},b);return a.agentPath=c.path,a.agentConversationId=c.conversationId,c.changed}function U(a,b){let c=S({path:a.srcPath??null,conversationId:a.srcConversationId},b);a.srcPath=c.path,a.srcConversationId=c.conversationId;let d=S({path:a.fixerPath,conversationId:a.fixerConversationId},b);return a.fixerPath=d.path,a.fixerConversationId=d.conversationId,c.changed||d.changed}function V(a,b,c){return a===c.path&&(b??null)===c.conversationId}function W(a,b){return a.path!==b.path||a.conversationId!==b.conversationId}function X(a=(0,k.agentRegistry)()){let b=K(),c=!1;for(let d of b)for(let b of(c=U(d,a)||c,d.stageRuns))c=T(b,a)||c;c&&_(b)}async function Y(a=(0,k.agentRegistry)()){let b=K(),c=[];await (0,l.pV)(b,async b=>{let d={path:b.srcPath??null,conversationId:b.srcConversationId??null},e={path:b.fixerPath,conversationId:b.fixerConversationId??null};U(b,a);let f={path:b.srcPath??null,conversationId:b.srcConversationId??null},g={path:b.fixerPath,conversationId:b.fixerConversationId??null},h=[];await (0,l.pV)(b.stageRuns,b=>{let c={path:b.agentPath,conversationId:b.agentConversationId??null};T(b,a)&&h.push({index:b.index,before:c,after:{path:b.agentPath,conversationId:b.agentConversationId??null}})});let i=W(d,f),j=W(e,g);(i||j||h.length>0)&&c.push({id:b.id,source:i?{before:d,after:f}:null,fixer:j?{before:e,after:g}:null,runs:h})}),function(a){if(0===a.length)return;let b=K(),c=new Map(b.map(a=>[a.id,a])),d=!1;for(let b of a){let a=c.get(b.id);if(a)for(let c of(b.source&&V(a.srcPath??null,a.srcConversationId,b.source.before)&&(a.srcPath=b.source.after.path,a.srcConversationId=b.source.after.conversationId,d=!0),b.fixer&&V(a.fixerPath,a.fixerConversationId,b.fixer.before)&&(a.fixerPath=b.fixer.after.path,a.fixerConversationId=b.fixer.after.conversationId,d=!0),b.runs)){let b=a.stageRuns.find(a=>a.index===c.index);b&&V(b.agentPath,b.agentConversationId,c.before)&&(b.agentPath=c.after.path,b.agentConversationId=c.after.conversationId,d=!0)}}d&&_(b)}(c)}function Z(a,b){return JSON.stringify(a)===JSON.stringify(b)}function $(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function _(a){let b=I.get(a);if(!b){Q().replaceSync(a),J(a);return}let c=new Set(a.map(a=>a.id)),d=a.filter(a=>b.get(a.id)!==JSON.stringify(a)),e=[...b.keys()].filter(a=>!c.has(a));Q().patchSync(()=>{let a=[],c=[];for(let c of d){let d=b.get(c.id),e=Q().get(c.id);if(void 0!==d&&e&&JSON.stringify(e)!==d){let b=N(function a(b,c,d){if(Z(c,b))return structuredClone(d);if(Z(d,b))return structuredClone(c);if($(b)&&$(c)&&$(d)){let e={};for(let f of new Set([...Object.keys(b),...Object.keys(c),...Object.keys(d)]))e[f]=a(b[f],c[f],d[f]);return e}return Array.isArray(b)&&Array.isArray(c)&&Array.isArray(d)?Array.from({length:Math.max(b.length,c.length,d.length)},(e,f)=>a(b[f],c[f],d[f])):structuredClone(d)}(JSON.parse(d),c,e));for(let a of Object.keys(c))delete c[a];Object.assign(c,b),JSON.stringify(b)!==JSON.stringify(e)&&a.push(b)}else a.push(c)}for(let a of e){let d=Q().get(a);d&&JSON.stringify(d)===b.get(a)&&c.push(a)}return{records:a,deleteKeys:c}}),J(a)}async function aa(a){return Q().mutate(a)}function ab(){let a=function(a){try{return JSON.parse(e().readFileSync(a,"utf8"))}catch{return null}}(s()),b=Array.isArray(a?.templates)?a.templates.map(G).filter(a=>null!==a):[],c=ad(b);return JSON.stringify(c)!==JSON.stringify(b)&&ac(c),c}function ac(a){A(s(),{templates:a})}function ad(a,b=y()){let c=new Set([...w,...x].map(a=>JSON.stringify(G(a)))),d=a.filter(a=>"role-registry"!==a.managed&&!c.has(JSON.stringify(a))),e=new Set(d.map(a=>a.name));return[...b.filter(a=>!e.has(a.name)),...d]}function ae(a){let b=g().basename(a.repoDir);return{id:a.id,name:a.name,task:a.task,project:a.project,repoDir:a.repoDir,worktreeDir:g().join(g().dirname(a.repoDir),`${b}-wf-${a.id}`),branch:`wf/${a.task.toLowerCase().replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"").slice(0,40).replace(/-+$/,"")||"task"}-${a.id}`,baseBranch:"",baseRef:"",template:JSON.parse(JSON.stringify(a.template)),stageRuns:a.template.stages.map((a,b)=>({index:b,agentPath:null,agentConversationId:null,paneId:null,startedAt:null,doneAt:null,doneNote:null})),stageIndex:0,flowId:null,fixerPath:null,fixerConversationId:null,state:"provisioning",pausedState:null,stateDetail:null,mode:a.mode,setupPid:null,srcPath:null,srcConversationId:null,prUrl:null,createdAt:a.now,closedAt:null}}function af(a){return g().join((0,i.BQ)("workflows"),a)}function ag(a){return g().join(af(a),"setup-stdout.log")}function ah(a){return g().join(af(a),"setup-stderr.log")}function ai(a){return g().join(af(a),"setup-exit")}}};
1
+ "use strict";exports.id=6796,exports.ids=[6796],exports.modules={96796:(a,b,c)=>{c.r(b),c.d(b,{DEFAULT_FIXER:()=>v,SEEDED_TEMPLATES:()=>z,buildWorkflow:()=>ae,checkpointWorkflowRollbackMirrorForDemotion:()=>R,defaultFixerFromRoles:()=>u,loadTemplates:()=>ab,loadWorkflows:()=>K,mergeSeededTemplates:()=>ad,normalizeStage:()=>D,normalizeStages:()=>E,normalizeTemplate:()=>G,planWorkflowStateMigration:()=>M,reconcileWorkflowConversationOwnership:()=>X,reconcileWorkflowConversationOwnershipCooperatively:()=>Y,roleConfigFromReference:()=>C,saveTemplates:()=>ac,saveWorkflows:()=>_,seededTemplatesFromRoles:()=>y,setupExitPath:()=>ai,setupStderrPath:()=>ah,setupStdoutPath:()=>ag,validateWorkflowLaunchModels:()=>F,withWorkflowMutation:()=>aa,workflowArtifactsDir:()=>af,workflowStateCollectionSeed:()=>P});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(51888),i=c(27146),j=c(38751),k=c(29381),l=c(43237),m=c(98817),n=c(49048),o=c(97386),p=c(22371),q=c(14928);let r=()=>(0,i.BQ)("workflows.json"),s=()=>(0,i.BQ)("workflow-templates.json");function t(a,b={},c=(0,p.e3)()){if("builder"!==a)return{...c.find(b=>b.id===a).config};let d=(0,o.fy)(a,b,{},c);return d.ok?{...d.value.config}:{...n.W.find(b=>b.id===a).config}}function u(a){let b=t("cleaner",{},a);return{..."codex"===b.engine?b:{...n.W.find(a=>"cleaner"===a.id).config},effort:"low"}}let v=u(),w=[{name:"fullstack",setup:"bun install",verify:"bun test && bun run build",finish:"pr",stages:[{kind:"implement",agent:{engine:"codex",model:null,effort:"high"},scope:"Backend/API: server logic, data layer, API routes. Leave UI components alone."},{kind:"implement",agent:{engine:"claude",model:"fable",effort:null},scope:"UI/frontend: components, hooks, styling, i18n labels. Build on the backend contract from the previous stage."},{kind:"review-loop",reviewer:{engine:"codex",model:null,effort:"xhigh"},fixer:{engine:"codex",model:null,effort:"low"},roundLimit:5,reviewerMode:"headless"}]}],x=[{name:"fullstack",setup:"bun install",verify:"bun test && bun run build",finish:"pr",stages:[{kind:"implement",agent:{engine:"codex",model:"gpt-5.6-terra",effort:"high"},scope:"Backend/API: server logic, data layer, API routes. Leave UI components alone."},{kind:"implement",agent:{engine:"claude",model:"fable",effort:null},scope:"UI/frontend: components, hooks, styling, i18n labels. Build on the backend contract from the previous stage."},{kind:"review-loop",reviewer:{engine:"codex",model:"gpt-5.6-sol",effort:"xhigh"},fixer:{engine:"codex",model:"gpt-5.6-terra",effort:"low"},roundLimit:5,reviewerMode:"headless"}]},{name:"Terra → Sol review",verify:"bun test && bun run build",finish:"pr",stages:[{kind:"implement",agent:{engine:"codex",model:"gpt-5.6-terra",effort:"high"},scope:"Implement the requested change end to end, including focused tests and documentation updates."},{kind:"review-loop",reviewer:{engine:"codex",model:"gpt-5.6-sol",effort:"xhigh"},fixer:{engine:"codex",model:"gpt-5.6-terra",effort:"low"},roundLimit:5,reviewerMode:"headless"}]}];function y(){let a=(0,p.e3)(),b=t("builder",{},a),c=t("builder",{mode:"plain",domain:"frontend"},a),d=t("reviewer",{},a),e=u(a);return[{name:"fullstack",setup:"bun install",verify:"bun test && bun run build",finish:"pr",stages:[{kind:"implement",agent:b,scope:"Backend/API: server logic, data layer, API routes. Leave UI components alone."},{kind:"implement",agent:c,scope:"UI/frontend: components, hooks, styling, i18n labels. Build on the backend contract from the previous stage."},{kind:"review-loop",reviewer:d,fixer:e,roundLimit:5,reviewerMode:"headless"}]},{name:"Sol medium → Sol xhigh review",verify:"bun test && bun run build",finish:"pr",stages:[{kind:"implement",agent:b,scope:"Implement the requested change end to end, including focused tests and documentation updates."},{kind:"review-loop",reviewer:d,fixer:e,roundLimit:5,reviewerMode:"headless"}]}].map(a=>({...a,managed:"role-registry"}))}let z=y();function A(a,b){(0,m.atomicWriteText)(a,JSON.stringify(b,null,2)+"\n")}function B(a){return!a||"object"!=typeof a||Array.isArray(a)||"claude"!==a.engine&&"codex"!==a.engine?null:{engine:a.engine,model:"string"==typeof a.model&&a.model.trim()?a.model.trim():null,effort:"string"==typeof a.effort&&a.effort.trim()?a.effort.trim():null}}function C(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.role)return null;let b=a.overrides;if(void 0!==b&&(!b||"object"!=typeof b||Array.isArray(b)))return null;let c=b??{},d={..."claude"===c.engine||"codex"===c.engine?{engine:c.engine}:{},..."string"==typeof c.model?{model:c.model}:{},..."string"==typeof c.effort?{effort:c.effort}:{}},e=(0,o.fy)(a.role,a.roleParams,d);return e.ok?e.value.config:null}function D(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=a.kind;if("implement"===b){let b;return(b=B(a.agent)??C(a))&&"string"==typeof a.scope&&a.scope.trim()?{kind:"implement",agent:b,scope:a.scope.trim()}:null}if("review-loop"===b){let b,c=B(a.reviewer)??C(a);return c?{kind:"review-loop",reviewer:c,fixer:(b=B(a.fixer))&&"codex"===b.engine?{engine:"codex",model:b.model,effort:"low"}:u(),roundLimit:Number.isInteger(a.roundLimit)&&a.roundLimit>=0?Math.min(a.roundLimit,50):5,reviewerMode:"pane"===a.reviewerMode?"pane":"headless"}:null}return null}function E(a){if(!Array.isArray(a)||a.length<2)return{error:"a workflow needs at least one implement stage and a closing review-loop"};let b=[];for(let c of a){let a=D(c);if(!a)return{error:"invalid stage definition"};b.push(a)}return 1!==b.filter(a=>"review-loop"===a.kind).length||b.at(-1)?.kind!=="review-loop"?{error:"stages must be implement+ followed by exactly one review-loop last"}:{stages:b}}function F(a){for(let b of a)for(let a of"implement"===b.kind?[b.agent]:[b.reviewer,b.fixer]){if(!a.model)continue;let b=(0,h.RC)(a.engine,a.model);if("error"in b)return b;a.model=b.model}return{stages:a}}function G(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.name||!a.name.trim())return null;let b=E(a.stages);if("error"in b)return null;let c="merge"===a.finish?"merge":"pr";return{name:a.name.trim(),stages:b.stages,finish:c,..."role-registry"===a.managed?{managed:a.managed}:{},..."string"==typeof a.setup&&a.setup.trim()?{setup:a.setup.trim()}:{},..."string"==typeof a.verify&&a.verify.trim()?{verify:a.verify.trim()}:{}}}function H(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.id&&"string"==typeof a.task&&"string"==typeof a.repoDir&&"string"==typeof a.worktreeDir&&"string"==typeof a.branch&&Array.isArray(a.stageRuns)&&"number"==typeof a.stageIndex&&null!==G(a.template)}let I=new WeakMap;function J(a){return I.set(a,new Map(a.map(a=>[a.id,JSON.stringify(a)]))),a}function K(){return J(Q().snapshot())}function L(){let a=function(){let a;try{a=e().readFileSync(r(),"utf8")}catch(a){if("ENOENT"===a.code)return null;throw Error("could not read legacy workflow state",{cause:a})}try{return JSON.parse(a)}catch(a){throw Error("legacy workflow state contains malformed JSON",{cause:a})}}();if(null===a)return[];if(!a||"object"!=typeof a||Array.isArray(a))throw Error("legacy workflow state must be an object");if(!Array.isArray(a.workflows)||!a.workflows.every(H))throw Error("legacy workflow state contains malformed records");return a.workflows.map(N)}function M(){let a=L();return{records:a.length,keys:a.map(a=>a.id)}}function N(a){return{...a,project:(0,j.G$)(a.project??""),pausedState:a.pausedState??null,setupPid:a.setupPid??null,srcPath:a.srcPath??null,srcConversationId:a.srcConversationId??null,flowId:a.flowId??null,fixerPath:a.fixerPath??null,fixerConversationId:a.fixerConversationId??null,stageRuns:a.stageRuns.map(a=>({...a,agentConversationId:a.agentConversationId??null})),prUrl:a.prUrl??null}}let O=new Map;function P(){return{collection:"workflows",schemaVersion:1,migrationId:"workflows-json-v1",loadRecords:L,key:a=>a.id}}function Q(){let a=(0,i.BQ)("state.sqlite"),b=O.get(a);if(b)return b;(0,q.t0)(a,[P()]);let c=new q.UY(a,{collection:"workflows",schemaVersion:1,busyMessage:"workflow state is busy",key:a=>a.id,decode:a=>H(a)?N(a):null,clone:a=>N(structuredClone(a)),strictDecode:!0,decodeError:a=>Error("workflow SQLite state contains a malformed row",{cause:a}),validate:a=>{if(!H(a))throw Error("refusing to persist a malformed workflow record")}});return O.set(a,c),c}function R(){return Q().checkpointMirrorForDemotion((a,b)=>{A(r(),{_sqliteRevision:b,workflows:a})})}function S(a,b){if(a.conversationId?.startsWith("conversation_")){let c=b.conversation(a.conversationId)?.generations.at(-1)?.path??a.path;return{path:c,conversationId:a.conversationId,changed:c!==a.path}}if(!a.path)return{path:a.path,conversationId:a.conversationId??null,changed:!1};let c=b.conversationForPath(a.path);return c?{path:a.path,conversationId:c.id,changed:!0}:{path:a.path,conversationId:a.conversationId??null,changed:!1}}function T(a,b){let c=S({path:a.agentPath,conversationId:a.agentConversationId},b);return a.agentPath=c.path,a.agentConversationId=c.conversationId,c.changed}function U(a,b){let c=S({path:a.srcPath??null,conversationId:a.srcConversationId},b);a.srcPath=c.path,a.srcConversationId=c.conversationId;let d=S({path:a.fixerPath,conversationId:a.fixerConversationId},b);return a.fixerPath=d.path,a.fixerConversationId=d.conversationId,c.changed||d.changed}function V(a,b,c){return a===c.path&&(b??null)===c.conversationId}function W(a,b){return a.path!==b.path||a.conversationId!==b.conversationId}function X(a=(0,k.agentRegistry)()){let b=K(),c=!1;for(let d of b)for(let b of(c=U(d,a)||c,d.stageRuns))c=T(b,a)||c;c&&_(b)}async function Y(a=(0,k.agentRegistry)()){let b=K(),c=[];await (0,l.pV)(b,async b=>{let d={path:b.srcPath??null,conversationId:b.srcConversationId??null},e={path:b.fixerPath,conversationId:b.fixerConversationId??null};U(b,a);let f={path:b.srcPath??null,conversationId:b.srcConversationId??null},g={path:b.fixerPath,conversationId:b.fixerConversationId??null},h=[];await (0,l.pV)(b.stageRuns,b=>{let c={path:b.agentPath,conversationId:b.agentConversationId??null};T(b,a)&&h.push({index:b.index,before:c,after:{path:b.agentPath,conversationId:b.agentConversationId??null}})});let i=W(d,f),j=W(e,g);(i||j||h.length>0)&&c.push({id:b.id,source:i?{before:d,after:f}:null,fixer:j?{before:e,after:g}:null,runs:h})}),function(a){if(0===a.length)return;let b=K(),c=new Map(b.map(a=>[a.id,a])),d=!1;for(let b of a){let a=c.get(b.id);if(a)for(let c of(b.source&&V(a.srcPath??null,a.srcConversationId,b.source.before)&&(a.srcPath=b.source.after.path,a.srcConversationId=b.source.after.conversationId,d=!0),b.fixer&&V(a.fixerPath,a.fixerConversationId,b.fixer.before)&&(a.fixerPath=b.fixer.after.path,a.fixerConversationId=b.fixer.after.conversationId,d=!0),b.runs)){let b=a.stageRuns.find(a=>a.index===c.index);b&&V(b.agentPath,b.agentConversationId,c.before)&&(b.agentPath=c.after.path,b.agentConversationId=c.after.conversationId,d=!0)}}d&&_(b)}(c)}function Z(a,b){return JSON.stringify(a)===JSON.stringify(b)}function $(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function _(a){let b=I.get(a);if(!b){Q().replaceSync(a),J(a);return}let c=new Set(a.map(a=>a.id)),d=a.filter(a=>b.get(a.id)!==JSON.stringify(a)),e=[...b.keys()].filter(a=>!c.has(a));Q().patchSync(()=>{let a=[],c=[];for(let c of d){let d=b.get(c.id),e=Q().get(c.id);if(void 0!==d&&e&&JSON.stringify(e)!==d){let b=N(function a(b,c,d){if(Z(c,b))return structuredClone(d);if(Z(d,b))return structuredClone(c);if($(b)&&$(c)&&$(d)){let e={};for(let f of new Set([...Object.keys(b),...Object.keys(c),...Object.keys(d)]))e[f]=a(b[f],c[f],d[f]);return e}return Array.isArray(b)&&Array.isArray(c)&&Array.isArray(d)?Array.from({length:Math.max(b.length,c.length,d.length)},(e,f)=>a(b[f],c[f],d[f])):structuredClone(d)}(JSON.parse(d),c,e));for(let a of Object.keys(c))delete c[a];Object.assign(c,b),JSON.stringify(b)!==JSON.stringify(e)&&a.push(b)}else a.push(c)}for(let a of e){let d=Q().get(a);d&&JSON.stringify(d)===b.get(a)&&c.push(a)}return{records:a,deleteKeys:c}}),J(a)}async function aa(a){return Q().mutate(a)}function ab(){let a=function(a){try{return JSON.parse(e().readFileSync(a,"utf8"))}catch{return null}}(s()),b=Array.isArray(a?.templates)?a.templates.map(G).filter(a=>null!==a):[],c=ad(b);return JSON.stringify(c)!==JSON.stringify(b)&&ac(c),c}function ac(a){A(s(),{templates:a})}function ad(a,b=y()){let c=new Set([...w,...x].map(a=>JSON.stringify(G(a)))),d=a.filter(a=>"role-registry"!==a.managed&&!c.has(JSON.stringify(a))),e=new Set(d.map(a=>a.name));return[...b.filter(a=>!e.has(a.name)),...d]}function ae(a){let b=g().basename(a.repoDir);return{id:a.id,name:a.name,task:a.task,project:a.project,repoDir:a.repoDir,worktreeDir:g().join(g().dirname(a.repoDir),`${b}-wf-${a.id}`),branch:`wf/${a.task.toLowerCase().replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"").slice(0,40).replace(/-+$/,"")||"task"}-${a.id}`,baseBranch:"",baseRef:"",template:JSON.parse(JSON.stringify(a.template)),stageRuns:a.template.stages.map((a,b)=>({index:b,agentPath:null,agentConversationId:null,paneId:null,startedAt:null,doneAt:null,doneNote:null})),stageIndex:0,flowId:null,fixerPath:null,fixerConversationId:null,state:"provisioning",pausedState:null,stateDetail:null,mode:a.mode,setupPid:null,srcPath:null,srcConversationId:null,prUrl:null,createdAt:a.now,closedAt:null}}function af(a){return g().join((0,i.BQ)("workflows"),a)}function ag(a){return g().join(af(a),"setup-stdout.log")}function ah(a){return g().join(af(a),"setup-stderr.log")}function ai(a){return g().join(af(a),"setup-exit")}}};