agent-log-viewer 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) hide show
  1. package/README.md +12 -21
  2. package/bin/cli.mjs +28 -4
  3. package/bin/mcp-server.mjs +7 -0
  4. package/bin/mcp-server.test.ts +2 -0
  5. package/bin/provision-telegram-connector.mjs +193 -0
  6. package/bin/server-runtime.mjs +4 -8
  7. package/bin/server-runtime.test.ts +46 -7
  8. package/bin/telegram-login-bridge.py +253 -0
  9. package/bin/telegram-mcp-server.py +106 -0
  10. package/bin/telegram-session-reader.mjs +6 -0
  11. package/bin/telegram-session-validator.mjs +71 -0
  12. package/dist/mcp-server.mjs +31771 -25627
  13. package/dist/standalone/.next/BUILD_ID +1 -1
  14. package/dist/standalone/.next/app-path-routes-manifest.json +22 -15
  15. package/dist/standalone/.next/build-manifest.json +3 -3
  16. package/dist/standalone/.next/prerender-manifest.json +3 -3
  17. package/dist/standalone/.next/react-loadable-manifest.json +19 -0
  18. package/dist/standalone/.next/required-server-files.json +4 -1
  19. package/dist/standalone/.next/routes-manifest.json +48 -6
  20. package/dist/standalone/.next/server/account-migration-controller-worker.js +1 -0
  21. package/dist/standalone/.next/server/app/_global-error/page.js +3 -3
  22. package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  23. package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  24. package/dist/standalone/.next/server/app/_global-error.html +1 -1
  25. package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
  26. package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  27. package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  28. package/dist/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  29. package/dist/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  30. package/dist/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  31. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  32. package/dist/standalone/.next/server/app/_not-found/page.js +2 -2
  33. package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  34. package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  35. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  36. package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
  37. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  38. package/dist/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  39. package/dist/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  40. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  41. package/dist/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  42. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  43. package/dist/standalone/.next/server/app/api/access/route.js +1 -1
  44. package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
  45. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
  46. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
  47. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +4 -1
  48. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -1
  49. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js +1 -1
  50. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -1
  51. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js +4 -1
  52. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -1
  53. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js +4 -1
  54. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -1
  55. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js +1 -1
  56. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -1
  57. package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -1
  58. package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -1
  59. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js +4 -1
  60. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -1
  61. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js +1 -1
  62. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -1
  63. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js +1 -1
  64. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
  65. package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
  66. package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
  67. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +4 -1
  68. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -1
  69. package/dist/standalone/.next/server/app/api/accounts/route.js +1 -1
  70. package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -1
  71. package/dist/standalone/.next/server/app/api/agent/route.js +1 -1
  72. package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
  73. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -1
  74. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -1
  75. package/dist/standalone/.next/server/app/api/answer/route.js +1 -1
  76. package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
  77. package/dist/standalone/.next/server/app/api/artifact/route.js +1 -0
  78. package/dist/standalone/.next/server/app/api/{orchestrator → artifact}/route.js.nft.json +1 -1
  79. package/dist/standalone/.next/server/app/api/artifact/route_client-reference-manifest.js +1 -0
  80. package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -1
  81. package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -1
  82. package/dist/standalone/.next/server/app/api/attention/[id]/route.js +1 -1
  83. package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -1
  84. package/dist/standalone/.next/server/app/api/attention/route.js +1 -1
  85. package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -1
  86. package/dist/standalone/.next/server/app/api/board/route.js +1 -1
  87. package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -1
  88. package/dist/standalone/.next/server/app/api/bridge/route.js +2 -2
  89. package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
  90. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
  91. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
  92. package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
  93. package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
  94. package/dist/standalone/.next/server/app/api/files/route.js +2 -2
  95. package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  96. package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
  97. package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
  98. package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
  99. package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
  100. package/dist/standalone/.next/server/app/api/image/route.js +1 -1
  101. package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
  102. package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
  103. package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  104. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
  105. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
  106. package/dist/standalone/.next/server/app/api/limits/history/route.js +4 -1
  107. package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -1
  108. package/dist/standalone/.next/server/app/api/limits/route.js +4 -1
  109. package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
  110. package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -1
  111. package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -1
  112. package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -1
  113. package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -1
  114. package/dist/standalone/.next/server/app/api/log/provenance/route.js +1 -0
  115. package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -0
  116. package/dist/standalone/.next/server/app/api/log/provenance/route_client-reference-manifest.js +1 -0
  117. package/dist/standalone/.next/server/app/api/log/route.js +1 -1
  118. package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
  119. package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
  120. package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  121. package/dist/standalone/.next/server/app/api/logs/stream/route.js +2 -2
  122. package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  123. package/dist/standalone/.next/server/app/api/monitor/lock/route.js +2 -2
  124. package/dist/standalone/.next/server/app/api/monitor/lock/route.js.nft.json +1 -1
  125. package/dist/standalone/.next/server/app/api/monitor/runs/route.js +1 -1
  126. package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
  127. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
  128. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
  129. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
  130. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
  131. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +3 -0
  132. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -0
  133. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route_client-reference-manifest.js +1 -0
  134. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -1
  135. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -1
  136. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js +1 -1
  137. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -1
  138. package/dist/standalone/.next/server/app/api/pipelines/route.js +2 -2
  139. package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
  140. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +2 -2
  141. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
  142. package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
  143. package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
  144. package/dist/standalone/.next/server/app/api/projects/create/route.js +3 -0
  145. package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -0
  146. package/dist/standalone/.next/server/app/api/projects/create/route_client-reference-manifest.js +1 -0
  147. package/dist/standalone/.next/server/app/api/projects/crown/route.js +1 -0
  148. package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -0
  149. package/dist/standalone/.next/server/app/api/projects/crown/route_client-reference-manifest.js +1 -0
  150. package/dist/standalone/.next/server/app/api/push/route.js +2 -2
  151. package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
  152. package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
  153. package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
  154. package/dist/standalone/.next/server/app/api/roles/route.js +2 -2
  155. package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
  156. package/dist/standalone/.next/server/app/api/runtime/answer/route.js +1 -1
  157. package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -1
  158. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js +1 -1
  159. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -1
  160. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js +1 -1
  161. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -1
  162. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js +1 -1
  163. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -1
  164. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +1 -1
  165. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -1
  166. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +1 -1
  167. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
  168. package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -1
  169. package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
  170. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +1 -1
  171. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
  172. package/dist/standalone/.next/server/app/api/runtime/send/route.js +1 -1
  173. package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -1
  174. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js +1 -1
  175. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -1
  176. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +1 -1
  177. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -1
  178. package/dist/standalone/.next/server/app/api/runtime/steer/route.js +1 -1
  179. package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -1
  180. package/dist/standalone/.next/server/app/api/runtime/stream/route.js +2 -2
  181. package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -1
  182. package/dist/standalone/.next/server/app/api/search/transcripts/route.js +2 -0
  183. package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -0
  184. package/dist/standalone/.next/server/app/api/search/transcripts/route_client-reference-manifest.js +1 -0
  185. package/dist/standalone/.next/server/app/api/session/route.js +1 -1
  186. package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  187. package/dist/standalone/.next/server/app/api/session/supersedence/route.js +1 -1
  188. package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -1
  189. package/dist/standalone/.next/server/app/api/session/title/route.js +1 -1
  190. package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -1
  191. package/dist/standalone/.next/server/app/api/spawn/policy/route.js +6 -3
  192. package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -1
  193. package/dist/standalone/.next/server/app/api/spawn/route.js +2 -2
  194. package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
  195. package/dist/standalone/.next/server/app/api/staging/route.js +2 -2
  196. package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
  197. package/dist/standalone/.next/server/app/api/task-attachments/route.js +2 -2
  198. package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
  199. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
  200. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
  201. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  202. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  203. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +1 -1
  204. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
  205. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +1 -1
  206. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
  207. package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
  208. package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
  209. package/dist/standalone/.next/server/app/api/tasks/route.js +2 -2
  210. package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  211. package/dist/standalone/.next/server/app/api/telegram/reports/route.js +1 -0
  212. package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -0
  213. package/dist/standalone/.next/server/app/api/telegram/reports/route_client-reference-manifest.js +1 -0
  214. package/dist/standalone/.next/server/app/api/telegram/route.js +1 -0
  215. package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -0
  216. package/dist/standalone/.next/server/app/api/telegram/route_client-reference-manifest.js +1 -0
  217. package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
  218. package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
  219. package/dist/standalone/.next/server/app/api/tmux/route.js +1 -1
  220. package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
  221. package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
  222. package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
  223. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js +2 -2
  224. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
  225. package/dist/standalone/.next/server/app/api/transcribe/route.js +2 -2
  226. package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
  227. package/dist/standalone/.next/server/app/api/transcribe/token/route.js +2 -2
  228. package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
  229. package/dist/standalone/.next/server/app/api/tts/backend/route.js +1 -1
  230. package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -1
  231. package/dist/standalone/.next/server/app/api/tts/route.js +3 -3
  232. package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -1
  233. package/dist/standalone/.next/server/app/api/view/presence/route.js +1 -2
  234. package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -1
  235. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
  236. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
  237. package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
  238. package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  239. package/dist/standalone/.next/server/app/favicon.ico/route.js +1 -1
  240. package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  241. package/dist/standalone/.next/server/app/index.html +1 -1
  242. package/dist/standalone/.next/server/app/index.rsc +3 -3
  243. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  244. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  245. package/dist/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  246. package/dist/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  247. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  248. package/dist/standalone/.next/server/app/page.js +41 -24
  249. package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
  250. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  251. package/dist/standalone/.next/server/app-paths-manifest.json +22 -15
  252. package/dist/standalone/.next/server/chunks/156.js +2 -2
  253. package/dist/standalone/.next/server/chunks/1617.js +2 -0
  254. package/dist/standalone/.next/server/chunks/1858.js +91 -0
  255. package/dist/standalone/.next/server/chunks/1888.js +1 -0
  256. package/dist/standalone/.next/server/chunks/1920.js +1 -1
  257. package/dist/standalone/.next/server/chunks/2190.js +1 -1
  258. package/dist/standalone/.next/server/chunks/230.js +1 -0
  259. package/dist/standalone/.next/server/chunks/2318.js +2 -0
  260. package/dist/standalone/.next/server/chunks/2324.js +1 -0
  261. package/dist/standalone/.next/server/chunks/2338.js +9 -0
  262. package/dist/standalone/.next/server/chunks/2904.js +42 -0
  263. package/dist/standalone/.next/server/chunks/2923.js +1 -0
  264. package/dist/standalone/.next/server/chunks/2962.js +1 -0
  265. package/dist/standalone/.next/server/chunks/2977.js +1 -1
  266. package/dist/standalone/.next/server/chunks/306.js +3 -3
  267. package/dist/standalone/.next/server/chunks/3086.js +1 -0
  268. package/dist/standalone/.next/server/chunks/3139.js +10 -0
  269. package/dist/standalone/.next/server/chunks/3214.js +82 -0
  270. package/dist/standalone/.next/server/chunks/3336.js +1 -1
  271. package/dist/standalone/.next/server/chunks/3558.js +1 -1
  272. package/dist/standalone/.next/server/chunks/3587.js +1 -1
  273. package/dist/standalone/.next/server/chunks/3598.js +81 -0
  274. package/dist/standalone/.next/server/chunks/3740.js +126 -0
  275. package/dist/standalone/.next/server/chunks/3793.js +6 -0
  276. package/dist/standalone/.next/server/chunks/3916.js +1 -0
  277. package/dist/standalone/.next/server/chunks/3953.js +1 -0
  278. package/dist/standalone/.next/server/chunks/4012.js +2 -2
  279. package/dist/standalone/.next/server/chunks/4191.js +1 -1
  280. package/dist/standalone/.next/server/chunks/4260.js +2 -2
  281. package/dist/standalone/.next/server/chunks/4509.js +1 -1
  282. package/dist/standalone/.next/server/chunks/4968.js +1 -1
  283. package/dist/standalone/.next/server/chunks/4972.js +130 -2
  284. package/dist/standalone/.next/server/chunks/5689.js +11 -0
  285. package/dist/standalone/.next/server/chunks/6333.js +47 -0
  286. package/dist/standalone/.next/server/chunks/6796.js +1 -0
  287. package/dist/standalone/.next/server/chunks/6826.js +2 -2
  288. package/dist/standalone/.next/server/chunks/6850.js +1 -1
  289. package/dist/standalone/.next/server/chunks/6909.js +1 -0
  290. package/dist/standalone/.next/server/chunks/6977.js +1 -0
  291. package/dist/standalone/.next/server/chunks/7126.js +1 -0
  292. package/dist/standalone/.next/server/chunks/7159.js +1 -0
  293. package/dist/standalone/.next/server/chunks/7270.js +45 -0
  294. package/dist/standalone/.next/server/chunks/7295.js +10 -0
  295. package/dist/standalone/.next/server/chunks/7471.js +16 -14
  296. package/dist/standalone/.next/server/chunks/7563.js +1 -1
  297. package/dist/standalone/.next/server/chunks/7644.js +13 -0
  298. package/dist/standalone/.next/server/chunks/7722.js +1 -1
  299. package/dist/standalone/.next/server/chunks/7733.js +4 -0
  300. package/dist/standalone/.next/server/chunks/7868.js +1 -0
  301. package/dist/standalone/.next/server/chunks/8026.js +1 -0
  302. package/dist/standalone/.next/server/chunks/8176.js +1 -1
  303. package/dist/standalone/.next/server/chunks/8444.js +1 -1
  304. package/dist/standalone/.next/server/chunks/8465.js +2 -0
  305. package/dist/standalone/.next/server/chunks/849.js +6 -0
  306. package/dist/standalone/.next/server/chunks/8600.js +12 -0
  307. package/dist/standalone/.next/server/chunks/8617.js +2 -0
  308. package/dist/standalone/.next/server/chunks/8797.js +1 -1
  309. package/dist/standalone/.next/server/chunks/8817.js +5 -0
  310. package/dist/standalone/.next/server/chunks/8966.js +2 -2
  311. package/dist/standalone/.next/server/chunks/8996.js +1 -0
  312. package/dist/standalone/.next/server/chunks/9246.js +47 -0
  313. package/dist/standalone/.next/server/chunks/9364.js +310 -0
  314. package/dist/standalone/.next/server/chunks/9411.js +3 -3
  315. package/dist/standalone/.next/server/chunks/9434.js +13 -0
  316. package/dist/standalone/.next/server/chunks/9507.js +1 -0
  317. package/dist/standalone/.next/server/chunks/9676.js +62 -0
  318. package/dist/standalone/.next/server/chunks/9733.js +6 -3
  319. package/dist/standalone/.next/server/chunks/9901.js +62 -0
  320. package/dist/standalone/.next/server/chunks/9937.js +2 -0
  321. package/dist/standalone/.next/server/chunks/9940.js +128 -0
  322. package/dist/standalone/.next/server/chunks/static/media/pdf.worker.min.65fe1ff1.mjs +6 -0
  323. package/dist/standalone/.next/server/file-scanner-worker.js +2 -2
  324. package/dist/standalone/.next/server/files-response-worker.js +5 -5
  325. package/dist/standalone/.next/server/functions-config-manifest.json +8 -1
  326. package/dist/standalone/.next/server/instrumentation.js +1 -1
  327. package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
  328. package/dist/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  329. package/dist/standalone/.next/server/pages/404.html +1 -1
  330. package/dist/standalone/.next/server/pages/500.html +1 -1
  331. package/dist/standalone/.next/server/resource-collector-worker.js +1 -1
  332. package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
  333. package/dist/standalone/.next/server/wakatime-sync-worker.js +2 -0
  334. package/dist/standalone/.next/server/webpack-runtime.js +1 -1
  335. package/dist/standalone/.next/static/chunks/2619.fd64e7a5bd9005d5.js +1 -0
  336. package/dist/standalone/.next/static/chunks/8293.5545fdbde0213c98.js +1 -0
  337. package/dist/standalone/.next/static/chunks/9178-e32f088e89b55503.js +1 -0
  338. package/dist/standalone/.next/static/chunks/9b0008ae.eb7a9c4c1c92a63b.js +45 -0
  339. package/dist/standalone/.next/static/chunks/app/_global-error/page-c132c5ba005ff29e.js +1 -0
  340. package/dist/standalone/.next/static/chunks/app/api/access/route-c132c5ba005ff29e.js +1 -0
  341. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-c132c5ba005ff29e.js +1 -0
  342. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-c132c5ba005ff29e.js +1 -0
  343. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-c132c5ba005ff29e.js +1 -0
  344. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-c132c5ba005ff29e.js +1 -0
  345. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-c132c5ba005ff29e.js +1 -0
  346. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-c132c5ba005ff29e.js +1 -0
  347. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-c132c5ba005ff29e.js +1 -0
  348. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-c132c5ba005ff29e.js +1 -0
  349. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-c132c5ba005ff29e.js +1 -0
  350. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-c132c5ba005ff29e.js +1 -0
  351. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-c132c5ba005ff29e.js +1 -0
  352. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-c132c5ba005ff29e.js +1 -0
  353. package/dist/standalone/.next/static/chunks/app/api/accounts/route-c132c5ba005ff29e.js +1 -0
  354. package/dist/standalone/.next/static/chunks/app/api/agent/route-c132c5ba005ff29e.js +1 -0
  355. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-c132c5ba005ff29e.js +1 -0
  356. package/dist/standalone/.next/static/chunks/app/api/answer/route-c132c5ba005ff29e.js +1 -0
  357. package/dist/standalone/.next/static/chunks/app/api/artifact/route-c132c5ba005ff29e.js +1 -0
  358. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-c132c5ba005ff29e.js +1 -0
  359. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-c132c5ba005ff29e.js +1 -0
  360. package/dist/standalone/.next/static/chunks/app/api/attention/route-c132c5ba005ff29e.js +1 -0
  361. package/dist/standalone/.next/static/chunks/app/api/board/route-c132c5ba005ff29e.js +1 -0
  362. package/dist/standalone/.next/static/chunks/app/api/bridge/route-c132c5ba005ff29e.js +1 -0
  363. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-c132c5ba005ff29e.js +1 -0
  364. package/dist/standalone/.next/static/chunks/app/api/conversations/route-c132c5ba005ff29e.js +1 -0
  365. package/dist/standalone/.next/static/chunks/app/api/files/route-c132c5ba005ff29e.js +1 -0
  366. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-c132c5ba005ff29e.js +1 -0
  367. package/dist/standalone/.next/static/chunks/app/api/flows/route-c132c5ba005ff29e.js +1 -0
  368. package/dist/standalone/.next/static/chunks/app/api/image/route-c132c5ba005ff29e.js +1 -0
  369. package/dist/standalone/.next/static/chunks/app/api/inbox/route-c132c5ba005ff29e.js +1 -0
  370. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-c132c5ba005ff29e.js +1 -0
  371. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-c132c5ba005ff29e.js +1 -0
  372. package/dist/standalone/.next/static/chunks/app/api/limits/route-c132c5ba005ff29e.js +1 -0
  373. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-c132c5ba005ff29e.js +1 -0
  374. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-c132c5ba005ff29e.js +1 -0
  375. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-c132c5ba005ff29e.js +1 -0
  376. package/dist/standalone/.next/static/chunks/app/api/log/route-c132c5ba005ff29e.js +1 -0
  377. package/dist/standalone/.next/static/chunks/app/api/logs/route-c132c5ba005ff29e.js +1 -0
  378. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-c132c5ba005ff29e.js +1 -0
  379. package/dist/standalone/.next/static/chunks/app/api/monitor/lock/route-c132c5ba005ff29e.js +1 -0
  380. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-c132c5ba005ff29e.js +1 -0
  381. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-c132c5ba005ff29e.js +1 -0
  382. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-c132c5ba005ff29e.js +1 -0
  383. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-c132c5ba005ff29e.js +1 -0
  384. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-c132c5ba005ff29e.js +1 -0
  385. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-c132c5ba005ff29e.js +1 -0
  386. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-c132c5ba005ff29e.js +1 -0
  387. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-c132c5ba005ff29e.js +1 -0
  388. package/dist/standalone/.next/static/chunks/app/api/proc/route-c132c5ba005ff29e.js +1 -0
  389. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-c132c5ba005ff29e.js +1 -0
  390. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-c132c5ba005ff29e.js +1 -0
  391. package/dist/standalone/.next/static/chunks/app/api/push/route-c132c5ba005ff29e.js +1 -0
  392. package/dist/standalone/.next/static/chunks/app/api/resources/route-c132c5ba005ff29e.js +1 -0
  393. package/dist/standalone/.next/static/chunks/app/api/roles/route-c132c5ba005ff29e.js +1 -0
  394. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-c132c5ba005ff29e.js +1 -0
  395. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-c132c5ba005ff29e.js +1 -0
  396. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-c132c5ba005ff29e.js +1 -0
  397. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-c132c5ba005ff29e.js +1 -0
  398. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-c132c5ba005ff29e.js +1 -0
  399. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-c132c5ba005ff29e.js +1 -0
  400. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-c132c5ba005ff29e.js +1 -0
  401. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-c132c5ba005ff29e.js +1 -0
  402. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-c132c5ba005ff29e.js +1 -0
  403. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-c132c5ba005ff29e.js +1 -0
  404. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-c132c5ba005ff29e.js +1 -0
  405. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-c132c5ba005ff29e.js +1 -0
  406. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-c132c5ba005ff29e.js +1 -0
  407. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-c132c5ba005ff29e.js +1 -0
  408. package/dist/standalone/.next/static/chunks/app/api/session/route-c132c5ba005ff29e.js +1 -0
  409. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-c132c5ba005ff29e.js +1 -0
  410. package/dist/standalone/.next/static/chunks/app/api/session/title/route-c132c5ba005ff29e.js +1 -0
  411. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-c132c5ba005ff29e.js +1 -0
  412. package/dist/standalone/.next/static/chunks/app/api/spawn/route-c132c5ba005ff29e.js +1 -0
  413. package/dist/standalone/.next/static/chunks/app/api/staging/route-c132c5ba005ff29e.js +1 -0
  414. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-c132c5ba005ff29e.js +1 -0
  415. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-c132c5ba005ff29e.js +1 -0
  416. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-c132c5ba005ff29e.js +1 -0
  417. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-c132c5ba005ff29e.js +1 -0
  418. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-c132c5ba005ff29e.js +1 -0
  419. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-c132c5ba005ff29e.js +1 -0
  420. package/dist/standalone/.next/static/chunks/app/api/tasks/route-c132c5ba005ff29e.js +1 -0
  421. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-c132c5ba005ff29e.js +1 -0
  422. package/dist/standalone/.next/static/chunks/app/api/telegram/route-c132c5ba005ff29e.js +1 -0
  423. package/dist/standalone/.next/static/chunks/app/api/timeline/route-c132c5ba005ff29e.js +1 -0
  424. package/dist/standalone/.next/static/chunks/app/api/tmux/route-c132c5ba005ff29e.js +1 -0
  425. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-c132c5ba005ff29e.js +1 -0
  426. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-c132c5ba005ff29e.js +1 -0
  427. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-c132c5ba005ff29e.js +1 -0
  428. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-c132c5ba005ff29e.js +1 -0
  429. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-c132c5ba005ff29e.js +1 -0
  430. package/dist/standalone/.next/static/chunks/app/api/tts/route-c132c5ba005ff29e.js +1 -0
  431. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-c132c5ba005ff29e.js +1 -0
  432. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-c132c5ba005ff29e.js +1 -0
  433. package/dist/standalone/.next/static/chunks/app/api/workflows/route-c132c5ba005ff29e.js +1 -0
  434. package/dist/standalone/.next/static/chunks/app/page-ac9463b910bf83fe.js +77 -0
  435. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-c132c5ba005ff29e.js +1 -0
  436. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-c132c5ba005ff29e.js +1 -0
  437. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-c132c5ba005ff29e.js +1 -0
  438. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-c132c5ba005ff29e.js +1 -0
  439. package/dist/standalone/.next/static/chunks/webpack-1637988d4c7cf23c.js +1 -0
  440. package/dist/standalone/.next/static/css/498f12ddef7ecb0e.css +1 -0
  441. package/dist/standalone/.next/static/kt9OPe8iwfpNcdOX9ygvb/_buildManifest.js +1 -0
  442. package/dist/standalone/.next/static/media/pdf.worker.min.e890bf87.mjs +6 -0
  443. package/dist/standalone/package.json +9 -5
  444. package/dist/standalone/server.bun.js +38 -0
  445. package/dist/standalone/server.js +18 -37
  446. package/package.json +9 -5
  447. package/vendor/telegram-mcp/.python-version +1 -0
  448. package/vendor/telegram-mcp/LICENSE +201 -0
  449. package/vendor/telegram-mcp/PROVENANCE.md +70 -0
  450. package/vendor/telegram-mcp/SHA256SUMS +24 -0
  451. package/vendor/telegram-mcp/main.py +67 -0
  452. package/vendor/telegram-mcp/pyproject.toml +100 -0
  453. package/vendor/telegram-mcp/requirements.txt +7 -0
  454. package/vendor/telegram-mcp/sanitize.py +143 -0
  455. package/vendor/telegram-mcp/session_string_generator.py +259 -0
  456. package/vendor/telegram-mcp/telegram_mcp/__init__.py +15 -0
  457. package/vendor/telegram-mcp/telegram_mcp/client_identity.py +31 -0
  458. package/vendor/telegram-mcp/telegram_mcp/install_guard.py +209 -0
  459. package/vendor/telegram-mcp/telegram_mcp/runner.py +198 -0
  460. package/vendor/telegram-mcp/telegram_mcp/runtime.py +1812 -0
  461. package/vendor/telegram-mcp/telegram_mcp/singleton.py +143 -0
  462. package/vendor/telegram-mcp/telegram_mcp/tools/__init__.py +13 -0
  463. package/vendor/telegram-mcp/telegram_mcp/tools/accounts.py +31 -0
  464. package/vendor/telegram-mcp/telegram_mcp/tools/chats.py +1163 -0
  465. package/vendor/telegram-mcp/telegram_mcp/tools/contacts.py +802 -0
  466. package/vendor/telegram-mcp/telegram_mcp/tools/events.py +485 -0
  467. package/vendor/telegram-mcp/telegram_mcp/tools/folders.py +600 -0
  468. package/vendor/telegram-mcp/telegram_mcp/tools/groups.py +1286 -0
  469. package/vendor/telegram-mcp/telegram_mcp/tools/media.py +470 -0
  470. package/vendor/telegram-mcp/telegram_mcp/tools/messages.py +2041 -0
  471. package/vendor/telegram-mcp/telegram_mcp/tools/profile.py +449 -0
  472. package/vendor/telegram-mcp/uv.lock +1693 -0
  473. package/dist/standalone/.next/server/app/api/orchestrator/route.js +0 -1
  474. package/dist/standalone/.next/server/app/api/orchestrator/route_client-reference-manifest.js +0 -1
  475. package/dist/standalone/.next/server/chunks/1699.js +0 -1
  476. package/dist/standalone/.next/server/chunks/2596.js +0 -1
  477. package/dist/standalone/.next/server/chunks/3886.js +0 -1
  478. package/dist/standalone/.next/server/chunks/4792.js +0 -101
  479. package/dist/standalone/.next/server/chunks/5622.js +0 -2
  480. package/dist/standalone/.next/server/chunks/616.js +0 -42
  481. package/dist/standalone/.next/server/chunks/620.js +0 -1
  482. package/dist/standalone/.next/server/chunks/6299.js +0 -4
  483. package/dist/standalone/.next/server/chunks/9598.js +0 -1
  484. package/dist/standalone/.next/server/chunks/9936.js +0 -6
  485. package/dist/standalone/.next/static/5aZdjqUDNxpxX8nVsuO2S/_buildManifest.js +0 -1
  486. package/dist/standalone/.next/static/chunks/9260-0e7e550c65609f11.js +0 -1
  487. package/dist/standalone/.next/static/chunks/app/_global-error/page-483eb859fba02a43.js +0 -1
  488. package/dist/standalone/.next/static/chunks/app/api/access/route-483eb859fba02a43.js +0 -1
  489. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-483eb859fba02a43.js +0 -1
  490. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-483eb859fba02a43.js +0 -1
  491. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-483eb859fba02a43.js +0 -1
  492. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-483eb859fba02a43.js +0 -1
  493. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-483eb859fba02a43.js +0 -1
  494. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-483eb859fba02a43.js +0 -1
  495. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-483eb859fba02a43.js +0 -1
  496. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-483eb859fba02a43.js +0 -1
  497. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-483eb859fba02a43.js +0 -1
  498. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-483eb859fba02a43.js +0 -1
  499. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-483eb859fba02a43.js +0 -1
  500. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-483eb859fba02a43.js +0 -1
  501. package/dist/standalone/.next/static/chunks/app/api/accounts/route-483eb859fba02a43.js +0 -1
  502. package/dist/standalone/.next/static/chunks/app/api/agent/route-483eb859fba02a43.js +0 -1
  503. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-483eb859fba02a43.js +0 -1
  504. package/dist/standalone/.next/static/chunks/app/api/answer/route-483eb859fba02a43.js +0 -1
  505. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-483eb859fba02a43.js +0 -1
  506. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-483eb859fba02a43.js +0 -1
  507. package/dist/standalone/.next/static/chunks/app/api/attention/route-483eb859fba02a43.js +0 -1
  508. package/dist/standalone/.next/static/chunks/app/api/board/route-483eb859fba02a43.js +0 -1
  509. package/dist/standalone/.next/static/chunks/app/api/bridge/route-483eb859fba02a43.js +0 -1
  510. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-483eb859fba02a43.js +0 -1
  511. package/dist/standalone/.next/static/chunks/app/api/conversations/route-483eb859fba02a43.js +0 -1
  512. package/dist/standalone/.next/static/chunks/app/api/files/route-483eb859fba02a43.js +0 -1
  513. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-483eb859fba02a43.js +0 -1
  514. package/dist/standalone/.next/static/chunks/app/api/flows/route-483eb859fba02a43.js +0 -1
  515. package/dist/standalone/.next/static/chunks/app/api/image/route-483eb859fba02a43.js +0 -1
  516. package/dist/standalone/.next/static/chunks/app/api/inbox/route-483eb859fba02a43.js +0 -1
  517. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-483eb859fba02a43.js +0 -1
  518. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-483eb859fba02a43.js +0 -1
  519. package/dist/standalone/.next/static/chunks/app/api/limits/route-483eb859fba02a43.js +0 -1
  520. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-483eb859fba02a43.js +0 -1
  521. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-483eb859fba02a43.js +0 -1
  522. package/dist/standalone/.next/static/chunks/app/api/log/route-483eb859fba02a43.js +0 -1
  523. package/dist/standalone/.next/static/chunks/app/api/logs/route-483eb859fba02a43.js +0 -1
  524. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-483eb859fba02a43.js +0 -1
  525. package/dist/standalone/.next/static/chunks/app/api/monitor/lock/route-483eb859fba02a43.js +0 -1
  526. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-483eb859fba02a43.js +0 -1
  527. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-483eb859fba02a43.js +0 -1
  528. package/dist/standalone/.next/static/chunks/app/api/orchestrator/route-483eb859fba02a43.js +0 -1
  529. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-483eb859fba02a43.js +0 -1
  530. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-483eb859fba02a43.js +0 -1
  531. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-483eb859fba02a43.js +0 -1
  532. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-483eb859fba02a43.js +0 -1
  533. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-483eb859fba02a43.js +0 -1
  534. package/dist/standalone/.next/static/chunks/app/api/proc/route-483eb859fba02a43.js +0 -1
  535. package/dist/standalone/.next/static/chunks/app/api/push/route-483eb859fba02a43.js +0 -1
  536. package/dist/standalone/.next/static/chunks/app/api/resources/route-483eb859fba02a43.js +0 -1
  537. package/dist/standalone/.next/static/chunks/app/api/roles/route-483eb859fba02a43.js +0 -1
  538. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-483eb859fba02a43.js +0 -1
  539. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-483eb859fba02a43.js +0 -1
  540. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-483eb859fba02a43.js +0 -1
  541. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-483eb859fba02a43.js +0 -1
  542. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-483eb859fba02a43.js +0 -1
  543. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-483eb859fba02a43.js +0 -1
  544. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-483eb859fba02a43.js +0 -1
  545. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-483eb859fba02a43.js +0 -1
  546. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-483eb859fba02a43.js +0 -1
  547. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-483eb859fba02a43.js +0 -1
  548. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-483eb859fba02a43.js +0 -1
  549. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-483eb859fba02a43.js +0 -1
  550. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-483eb859fba02a43.js +0 -1
  551. package/dist/standalone/.next/static/chunks/app/api/session/route-483eb859fba02a43.js +0 -1
  552. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-483eb859fba02a43.js +0 -1
  553. package/dist/standalone/.next/static/chunks/app/api/session/title/route-483eb859fba02a43.js +0 -1
  554. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-483eb859fba02a43.js +0 -1
  555. package/dist/standalone/.next/static/chunks/app/api/spawn/route-483eb859fba02a43.js +0 -1
  556. package/dist/standalone/.next/static/chunks/app/api/staging/route-483eb859fba02a43.js +0 -1
  557. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-483eb859fba02a43.js +0 -1
  558. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-483eb859fba02a43.js +0 -1
  559. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-483eb859fba02a43.js +0 -1
  560. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-483eb859fba02a43.js +0 -1
  561. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-483eb859fba02a43.js +0 -1
  562. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-483eb859fba02a43.js +0 -1
  563. package/dist/standalone/.next/static/chunks/app/api/tasks/route-483eb859fba02a43.js +0 -1
  564. package/dist/standalone/.next/static/chunks/app/api/timeline/route-483eb859fba02a43.js +0 -1
  565. package/dist/standalone/.next/static/chunks/app/api/tmux/route-483eb859fba02a43.js +0 -1
  566. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-483eb859fba02a43.js +0 -1
  567. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-483eb859fba02a43.js +0 -1
  568. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-483eb859fba02a43.js +0 -1
  569. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-483eb859fba02a43.js +0 -1
  570. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-483eb859fba02a43.js +0 -1
  571. package/dist/standalone/.next/static/chunks/app/api/tts/route-483eb859fba02a43.js +0 -1
  572. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-483eb859fba02a43.js +0 -1
  573. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-483eb859fba02a43.js +0 -1
  574. package/dist/standalone/.next/static/chunks/app/api/workflows/route-483eb859fba02a43.js +0 -1
  575. package/dist/standalone/.next/static/chunks/app/page-45fd788b5dbb86eb.js +0 -57
  576. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-483eb859fba02a43.js +0 -1
  577. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-483eb859fba02a43.js +0 -1
  578. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-483eb859fba02a43.js +0 -1
  579. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-483eb859fba02a43.js +0 -1
  580. package/dist/standalone/.next/static/chunks/webpack-46c1a0323c2ca312.js +0 -1
  581. package/dist/standalone/.next/static/css/b5b2fbc52caf460a.css +0 -1
  582. /package/dist/standalone/.next/static/{5aZdjqUDNxpxX8nVsuO2S → kt9OPe8iwfpNcdOX9ygvb}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";exports.id=6826,exports.ids=[6826],exports.modules={23921:(a,b,c)=>{c.d(b,{$L:()=>s,$U:()=>r,$w:()=>n,BB:()=>q,Bj:()=>x,FQ:()=>p,Fe:()=>t,Ib:()=>w,SP:()=>o,Vt:()=>v,pl:()=>m});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(59683),i=c(89333);let j=null,k=null,l=null;function m(a){return Number.isInteger(a)&&a>0&&h.B.pidAlive(a)}function n(a=!1){let b=Date.now();if(!a&&j&&b-j.at<12e3)return j.map;let c=new Map;return h.B.scanFdTargetsUnder(i.GH["claude-tasks"],(a,b)=>{a.endsWith(".output")&&!c.has(a)&&c.set(a,b)}),j={at:b,map:c},c}function o(a,b=!1){let c=new Map;for(let b of a){if(c.size>=512)break;if(!b)continue;c.set(b,b);let a=function(a){try{return e().realpathSync(a)}catch{return null}}(b);a&&c.set(a,b)}let d=[...c.keys()].sort().join("\0"),f=Date.now();if(!b&&k&&k.key===d&&f-k.at<12e3)return k.map;let g=new Map;return c.size>0&&h.B.scanFdTargetsFor([...c.keys()],(a,b,d)=>{let e=c.get(a);e&&!g.has(e)&&d()&&g.set(e,b)}),k={at:f,key:d,map:g},g}function p(a,b){return h.B.pidWritesPath(a,b)}function q(a,b){return h.B.pidHoldsPath(a,b)}function r(a){return h.B.readArgv(a)}function s(a){return h.B.readCwd(a)}function t(a){for(let b of a.slice(0,2)){let a=g().basename(b);if("claude"===a||"claude.exe"===a)return"claude";if("codex"===a||"codex.exe"===a)return"codex"}return null}let u=new Set(["daemon","--bg-pty-host","--bg-spare"]);function v(a){return a.some(a=>u.has(a))}function w(a){return h.B.readPpid(a)}function x(a=!1){let b=Date.now();if(!a&&l&&b-l.at<12e3)return l.list;let c=[];for(let a of h.B.listProcesses()){let b=t(a.argv);null===b||v(a.argv)||null!==a.cwd&&c.push({pid:a.pid,engine:b,argv:a.argv,cwd:a.cwd,tty:a.tty})}return l={at:b,list:c},c}},25123:(a,b,c)=>{c.d(b,{Ix:()=>l,ae:()=>o,ot:()=>m});var d=c(31421),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(23921),j=c(92806),k=c(46825);let l=(a,b,c)=>{let e=(0,d.spawnSync)(a,b,{cwd:c,encoding:"utf8"});return e.error?{code:null,stdout:"",stderr:e.error.message}:{code:e.status,stdout:e.stdout??"",stderr:e.stderr??""}};function m(a){let b=a.template.setup;if(!b)return{pid:null,error:"workflow has no setup command"};let c=(0,k.VO)(a.id);f().mkdirSync(h().dirname(c),{recursive:!0}),f().rmSync(c,{force:!0});let e=f().openSync((0,k._F)(a.id),"w"),g=f().openSync((0,k.RK)(a.id),"w");try{let f=(0,d.spawn)("sh",["-c",'sh -c "$LLV_SETUP_CMD"; printf \'%s\' "$?" > "$LLV_SETUP_EXIT"'],{cwd:a.worktreeDir,env:{...(0,j.Fd)(process.env),LLV_SETUP_CMD:b,LLV_SETUP_EXIT:c},detached:!0,stdio:["ignore",e,g]});return f.unref(),{pid:f.pid??null}}catch(a){return{pid:null,error:a instanceof Error?a.message:String(a)}}finally{f().closeSync(e),f().closeSync(g)}}function n(a){try{return f().readFileSync(a,"utf8")}catch{return""}}function o(a,b=Date.now()){let c=n((0,k.VO)(a.id)).trim();if(""!==c){if("0"===c)return{status:"done",detail:""};let b=n((0,k.RK)(a.id)).trim().split("\n").slice(-3).join("\n");return{status:"failed",detail:`setup exited with code ${c}${b?`: ${b}`:""}`}}if(null!=a.setupPid&&(0,i.pl)(a.setupPid))return{status:"running",detail:""};let d=function(a,b){try{return b-f().statSync(a).mtimeMs}catch{return null}}((0,k._F)(a.id),b);return null!==d&&d<3e3?{status:"running",detail:""}:{status:"failed",detail:"setup was interrupted before it finished"}}},46825:(a,b,c)=>{c.d(b,{Fl:()=>y,K8:()=>D,Ny:()=>B,RK:()=>H,VO:()=>I,_F:()=>G,aL:()=>E,co:()=>C});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(91724),i=c(89940);c(29733),c(12770);var j=c(98590),k=c(18797),l=c(99411),m=c(89822);let n=()=>(0,h.BQ)("workflows.json"),o=()=>(0,h.BQ)("workflow-templates.json");function p(a,b={},c=(0,m.e3)()){if("builder"!==a)return{...c.find(b=>b.id===a).config};let d=(0,l.fy)(a,b,{},c);return d.ok?{...d.value.config}:{...k.W.find(b=>b.id===a).config}}function q(a){let b=p("cleaner",{},a);return{..."codex"===b.engine?b:{...k.W.find(a=>"cleaner"===a.id).config},effort:"low"}}q();let r=[{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"}]}],s=[{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 t(){let a=(0,m.e3)(),b=p("builder",{},a),c=p("builder",{mode:"plain",domain:"frontend"},a),d=p("reviewer",{},a),e=q(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"}))}function u(a,b){(0,j.Yj)(a,JSON.stringify(b,null,2)+"\n")}function v(a){try{return JSON.parse(e().readFileSync(a,"utf8"))}catch{return null}}function w(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 x(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,l.fy)(a.role,a.roleParams,d);return e.ok?e.value.config:null}function y(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=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=a.kind;if("implement"===b){let b;return(b=w(a.agent)??x(a))&&"string"==typeof a.scope&&a.scope.trim()?{kind:"implement",agent:b,scope:a.scope.trim()}:null}if("review-loop"===b){let b,c=w(a.reviewer)??x(a);return c?{kind:"review-loop",reviewer:c,fixer:(b=w(a.fixer))&&"codex"===b.engine?{engine:"codex",model:b.model,effort:"low"}:q(),roundLimit:Number.isInteger(a.roundLimit)&&a.roundLimit>=0?Math.min(a.roundLimit,50):5,reviewerMode:"pane"===a.reviewerMode?"pane":"headless"}:null}return null}(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 z(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.name||!a.name.trim())return null;let b=y(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 A(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!==z(a.template)}function B(){let a=v(n());return(Array.isArray(a?.workflows)?a.workflows.filter(A):[]).map(a=>({...a,project:(0,i.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}))}function C(a){u(n(),{workflows:a})}function D(){var a;let b=v(o()),c=Array.isArray(b?.templates)?b.templates.map(z).filter(a=>null!==a):[],d=function(a,b=t()){let c=new Set([...r,...s].map(a=>JSON.stringify(z(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]}(c);return JSON.stringify(d)!==JSON.stringify(c)&&(a=d,u(o(),{templates:a})),d}function E(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 F(a){return g().join((0,h.BQ)("workflows"),a)}function G(a){return g().join(F(a),"setup-stdout.log")}function H(a){return g().join(F(a),"setup-stderr.log")}function I(a){return g().join(F(a),"setup-exit")}t()},96826:(a,b,c)=>{c.d(b,{ML:()=>t,OF:()=>r,oT:()=>s});var d=c(31421),e=c(73024),f=c.n(e),g=c(48161),h=c.n(g),i=c(76760),j=c.n(i),k=c(25123);let l={homeDir:h().homedir,stat:f().statSync,access:f().accessSync,exec:(a,b,c)=>{if("git"!==a)return(0,k.Ix)(a,b,c);let e=(0,d.spawnSync)(a,b,{cwd:c,encoding:"utf8",timeout:4e3});return e.error?{code:null,stdout:"",stderr:"ETIMEDOUT"===e.error.code?`git ${b.join(" ")} timed out after 4000ms`:e.error.message}:{code:e.status,stdout:e.stdout??"",stderr:e.stderr??""}}},m=/not a (?:git )?repository/i;function n(a,b){return"not_git"===a.failCode?{ok:!1,code:"not_git",path:b}:{ok:!1,code:"probe_failed",path:b,detail:a.detail}}function o(a){let b=a.stdout.trim();if(0===a.code&&b)return{value:b};let c=(a.stderr||a.stdout||"").trim();return null!==a.code&&0!==a.code&&m.test(a.stderr)?{failCode:"not_git",detail:c||"not a git repository"}:{failCode:"probe_failed",detail:c||"the git repository probe failed"}}let p=new Map;function q(a,b,c){try{return a.access(b,c),!1}catch{return!0}}function r(a,b=l,c={}){var d,e;let g,h,i,k=(d=b.homeDir(),i="~"===(h=a.trim())||h.startsWith("~/")?j().join(d,h.slice(1)):h,j().resolve(i)),m=c.now??Date.now;if(c.cache){let a,b=(e=m(),(a=p.get(k))?e-a.at>5e3?(p.delete(k),null):a.result:null);if(b)return b}try{g=b.stat(k)}catch(a){return{ok:!1,code:"ENOENT"===a.code?"missing":"repo_untraversable",path:k}}if(!g.isDirectory())return{ok:!1,code:"not_directory",path:k};if(q(b,k,f().constants.R_OK))return{ok:!1,code:"repo_unreadable",path:k};if(q(b,k,f().constants.X_OK))return{ok:!1,code:"repo_untraversable",path:k};let s=o(b.exec("git",["rev-parse","--show-toplevel"],k));if("failCode"in s)return n(s,k);let t=j().resolve(s.value);if(t!==k){if(q(b,t,f().constants.R_OK))return{ok:!1,code:"repo_unreadable",path:t};if(q(b,t,f().constants.X_OK))return{ok:!1,code:"repo_untraversable",path:t}}let u=o(b.exec("git",["rev-parse","--path-format=absolute","--git-common-dir"],t));if("failCode"in u)return n(u,t);let v=j().resolve(t,u.value);if(q(b,v,f().constants.W_OK|f().constants.X_OK))return{ok:!1,code:"git_metadata_unwritable",path:v};let w=j().dirname(t);if(q(b,w,f().constants.W_OK|f().constants.X_OK))return{ok:!1,code:"worktree_parent_unwritable",path:w};let x={ok:!0,repoDir:t,gitCommonDir:v,worktreeParent:w};return c.cache&&function(a,b,c){for(let d of a)p.delete(d),p.set(d,{result:b,at:c});for(;p.size>32;){let a=p.keys().next().value;if(void 0===a)break;p.delete(a)}}([...new Set([k,t])],x,m()),x}function s(a){return"probe_failed"===a?503:"missing"===a||"not_directory"===a||"not_git"===a?400:403}function t(a){switch(a.code){case"missing":return`directory does not exist: ${a.path}`;case"not_directory":return`not a directory: ${a.path}`;case"repo_unreadable":return`repository is not readable: ${a.path}`;case"repo_untraversable":return`repository cannot be traversed: ${a.path}`;case"not_git":return`not a git repository: ${a.path}`;case"probe_failed":return`the git repository probe failed for ${a.path}${a.detail?`: ${a.detail}`:""}`;case"git_metadata_unwritable":return`Git metadata is not writable: ${a.path}`;case"worktree_parent_unwritable":return`pipeline worktree parent is not writable: ${a.path}`}}},98590:(a,b,c)=>{c.d(b,{Ml:()=>N,NO:()=>M,Sn:()=>O,Vd:()=>I,WJ:()=>L,Yj:()=>x,ay:()=>v,ke:()=>H,mL:()=>D,tR:()=>K,tu:()=>G});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724);c(29733),c(12770);var k=c(2033),l=c(18797),m=c(89940),n=c(99411),o=c(89822);let p=()=>(0,j.BQ)("flows.json"),q=()=>(0,j.BQ)("review-loop-presets.json"),r=[{name:"Codex high → Fable",implementer:{engine:"codex",model:null,effort:"high"},reviewer:{engine:"claude",model:"fable",effort:null}},{name:"Fable → Codex xhigh",implementer:{engine:"claude",model:"fable",effort:null},reviewer:{engine:"codex",model:null,effort:"xhigh"}},{name:"Sonnet → Codex xhigh",implementer:{engine:"claude",model:"sonnet",effort:null},reviewer:{engine:"codex",model:null,effort:"xhigh"}},{name:"Codex high → Codex xhigh",implementer:{engine:"codex",model:null,effort:"high"},reviewer:{engine:"codex",model:null,effort:"xhigh"}}],s=[{name:"Terra high → Sol xhigh",implementer:{engine:"codex",model:"gpt-5.6-terra",effort:"high"},reviewer:{engine:"codex",model:"gpt-5.6-sol",effort:"xhigh"}},{name:"Terra low → Sol xhigh",implementer:{engine:"codex",model:"gpt-5.6-terra",effort:"low"},reviewer:{engine:"codex",model:"gpt-5.6-sol",effort:"xhigh"}},{name:"Terra high → Fable",implementer:{engine:"codex",model:"gpt-5.6-terra",effort:"high"},reviewer:{engine:"claude",model:"fable",effort:null}},{name:"Fable → Sol xhigh",implementer:{engine:"claude",model:"fable",effort:null},reviewer:{engine:"codex",model:"gpt-5.6-sol",effort:"xhigh"}},{name:"Sonnet → Sol xhigh",implementer:{engine:"claude",model:"sonnet",effort:null},reviewer:{engine:"codex",model:"gpt-5.6-sol",effort:"xhigh"}}];function t(a,b,c={}){if("builder"!==b)return{...a.find(a=>a.id===b).config};let d=(0,n.fy)(b,c,{},a);return d.ok?{...d.value.config}:{...l.W.find(a=>a.id===b).config}}function u(){let a=(0,o.e3)(),b=t(a,"builder"),c=t(a,"builder",{mode:"apply-fixes",domain:"general"}),d=t(a,"reviewer"),e=t(a,"architect");return[{name:"Sol medium → Sol xhigh",implementer:b,reviewer:d},{name:"Terra low → Sol xhigh",implementer:c,reviewer:d},{name:"Sol medium → Opus 5",implementer:b,reviewer:e},{name:"Opus 5 → Sol xhigh",implementer:e,reviewer:d},{name:"Sonnet → Sol xhigh",implementer:{engine:"claude",model:"sonnet",effort:"high"},reviewer:d}].map(a=>({...a,managed:"role-registry"}))}function v(){return t((0,o.e3)(),"architect")}function w(a,b){g().mkdirSync(i().dirname(a),{recursive:!0});let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`);g().writeFileSync(c,JSON.stringify(b,null,2)+"\n","utf8"),g().renameSync(c,a)}function x(a,b){g().mkdirSync(i().dirname(a),{recursive:!0});let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`);g().writeFileSync(c,b,"utf8"),g().renameSync(c,a)}function y(a){try{return JSON.parse(g().readFileSync(a,"utf8"))}catch{return null}}function z(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.id&&"implement-review-loop"===a.template&&"string"==typeof a.cwd&&"string"==typeof a.implementerPath&&"string"==typeof a.baseRef&&(void 0===a.headRef||null===a.headRef||"string"==typeof a.headRef)&&(void 0===a.targetSha||null===a.targetSha||"string"==typeof a.targetSha)&&(void 0===a.spec||"string"==typeof a.spec)&&Array.isArray(a.rounds)}function A(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.name&&B(a.implementer)&&B(a.reviewer)&&(void 0===a.managed||"role-registry"===a.managed)}function B(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&("claude"===a.engine||"codex"===a.engine)&&(null===a.model||"string"==typeof a.model)&&(null===a.effort||"string"==typeof a.effort)}function C(a,b){return a.engine===b.engine&&a.model===b.model&&a.effort===b.effort}function D(){let a=y(p());return(Array.isArray(a?.flows)?a.flows.filter(z):[]).map(a=>({...a,project:(0,m.G$)(a.project),revision:a.revision??0,targetSha:a.targetSha??null,implementerConversationId:a.implementerConversationId??null,reviewerFallback:void 0===a.reviewerFallback&&"codex"===a.roles.reviewer.engine?v():a.reviewerFallback??null,pausedState:a.pausedState??null,kickoffDelivery:a.kickoffDelivery??null,rounds:a.rounds.map(a=>({...a,reviewerConversationId:a.reviewerConversationId??null,reviewerRole:a.reviewerRole??null,attemptedAccounts:a.attemptedAccounts??[],autoRetryCount:a.autoRetryCount??0,sessionId:a.sessionId??null,reviewerPid:a.reviewerPid??null,reviewerIdentity:a.reviewerIdentity??null,reviewHeadSha:a.reviewHeadSha??null,spawnStartedAt:a.spawnStartedAt??null,launchId:a.launchId??null,launchLeaseUntil:a.launchLeaseUntil??null,relayStartedAt:a.relayStartedAt??null,relayDelivery:a.relayDelivery??null,terminalAt:a.terminalAt??null,error:a.error??null}))}))}function E(a){let b={...a};return delete b.revision,JSON.stringify(b)}function F(a){let b=new Map(D().map(a=>[a.id,a]));for(let c of a){let a=b.get(c.id);if(a&&void 0!==c.revision&&c.revision<(a.revision??0)){for(let a of Object.keys(c))delete c[a];Object.assign(c,structuredClone(a));continue}c.revision=a&&E(a)===E(c)?a.revision??0:(a?.revision??0)+1}w(p(),{schemaVersion:3,flows:a})}function G(a){(0,k.Ol)(p(),"flow state is busy",()=>F(a))}async function H(a){return await (0,k.pM)(p(),"flow state is busy",()=>{let b=D();return a(b,()=>F(b))})}function I(){var a;let b=y(q()),c=Array.isArray(b?.presets)?b.presets.filter(A):[],d=function(a,b=u()){let c=a.filter(a=>"role-registry"!==a.managed&&![...r,...s].some(b=>a.name===b.name&&C(a.implementer,b.implementer)&&C(a.reviewer,b.reviewer))),d=new Set(c.map(a=>a.name));return[...b.filter(a=>!d.has(a.name)),...c]}(c);return JSON.stringify(d)!==JSON.stringify(c)&&(a=d,w(q(),{presets:a})),d}function J(a){return i().join((0,j.BQ)("flows"),a)}function K(a,b){return i().join(J(a),`round-${b}-review.md`)}function L(a,b){return i().join(J(a),`round-${b}-last-message.md`)}function M(a,b){return i().join(J(a),`round-${b}-stderr.txt`)}function N(a,b){return i().join(J(a),`round-${b}-stdout.log`)}function O(a,b){let c=b.replace(/^\s*VERDICT:\s*(APPROVE|REQUEST_CHANGES|COMMENT)\s*$/im,"").trim();return`VERDICT: ${a}
2
- ${c?"\n"+c+"\n":"\n"}`}u()}};
1
+ "use strict";exports.id=6826,exports.ids=[6826],exports.modules={25123:(a,b,c)=>{c.d(b,{Ix:()=>l,ae:()=>o,ot:()=>m});var d=c(31421),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(23921),j=c(92806),k=c(46825);let l=(a,b,c)=>{let e=(0,d.spawnSync)(a,b,{cwd:c,encoding:"utf8"});return e.error?{code:null,stdout:"",stderr:e.error.message}:{code:e.status,stdout:e.stdout??"",stderr:e.stderr??""}};function m(a){let b=a.template.setup;if(!b)return{pid:null,error:"workflow has no setup command"};let c=(0,k.VO)(a.id);f().mkdirSync(h().dirname(c),{recursive:!0}),f().rmSync(c,{force:!0});let e=f().openSync((0,k._F)(a.id),"w"),g=f().openSync((0,k.RK)(a.id),"w");try{let f=(0,d.spawn)("sh",["-c",'sh -c "$LLV_SETUP_CMD"; printf \'%s\' "$?" > "$LLV_SETUP_EXIT"'],{cwd:a.worktreeDir,env:{...(0,j.Fd)(process.env),LLV_SETUP_CMD:b,LLV_SETUP_EXIT:c},detached:!0,stdio:["ignore",e,g]});return f.unref(),{pid:f.pid??null}}catch(a){return{pid:null,error:a instanceof Error?a.message:String(a)}}finally{f().closeSync(e),f().closeSync(g)}}function n(a){try{return f().readFileSync(a,"utf8")}catch{return""}}function o(a,b=Date.now()){let c=n((0,k.VO)(a.id)).trim();if(""!==c){if("0"===c)return{status:"done",detail:""};let b=n((0,k.RK)(a.id)).trim().split("\n").slice(-3).join("\n");return{status:"failed",detail:`setup exited with code ${c}${b?`: ${b}`:""}`}}if(null!=a.setupPid&&(0,i.pl)(a.setupPid))return{status:"running",detail:""};let d=function(a,b){try{return b-f().statSync(a).mtimeMs}catch{return null}}((0,k._F)(a.id),b);return null!==d&&d<3e3?{status:"running",detail:""}:{status:"failed",detail:"setup was interrupted before it finished"}}},46825:(a,b,c)=>{c.d(b,{Fl:()=>x,K8:()=>L,Ny:()=>D,RK:()=>P,VO:()=>Q,_F:()=>O,aL:()=>M,co:()=>K,xV:()=>y});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(4837),i=c(91724),j=c(89940);c(29733),c(12770);var k=c(98590),l=c(18797),m=c(99411),n=c(89822),o=c(13117);let p=()=>(0,i.BQ)("workflow-templates.json");function q(a,b={},c=(0,n.e3)()){if("builder"!==a)return{...c.find(b=>b.id===a).config};let d=(0,m.fy)(a,b,{},c);return d.ok?{...d.value.config}:{...l.W.find(b=>b.id===a).config}}function r(a){let b=q("cleaner",{},a);return{..."codex"===b.engine?b:{...l.W.find(a=>"cleaner"===a.id).config},effort:"low"}}r();let s=[{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"}]}],t=[{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 u(){let a=(0,n.e3)(),b=q("builder",{},a),c=q("builder",{mode:"plain",domain:"frontend"},a),d=q("reviewer",{},a),e=r(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"}))}function v(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 w(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,m.fy)(a.role,a.roleParams,d);return e.ok?e.value.config:null}function x(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=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=a.kind;if("implement"===b){let b;return(b=v(a.agent)??w(a))&&"string"==typeof a.scope&&a.scope.trim()?{kind:"implement",agent:b,scope:a.scope.trim()}:null}if("review-loop"===b){let b,c=v(a.reviewer)??w(a);return c?{kind:"review-loop",reviewer:c,fixer:(b=v(a.fixer))&&"codex"===b.engine?{engine:"codex",model:b.model,effort:"low"}:r(),roundLimit:Number.isInteger(a.roundLimit)&&a.roundLimit>=0?Math.min(a.roundLimit,50):5,reviewerMode:"pane"===a.reviewerMode?"pane":"headless"}:null}return null}(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 y(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 z(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.name||!a.name.trim())return null;let b=x(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 A(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!==z(a.template)}u();let B=new WeakMap;function C(a){return B.set(a,new Map(a.map(a=>[a.id,JSON.stringify(a)]))),a}function D(){return C(H().snapshot())}function E(){let a=function(){let a;try{a=e().readFileSync((0,i.BQ)("workflows.json"),"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(A))throw Error("legacy workflow state contains malformed records");return a.workflows.map(F)}function F(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 G=new Map;function H(){let a=(0,i.BQ)("state.sqlite"),b=G.get(a);if(b)return b;(0,o.t0)(a,[{collection:"workflows",schemaVersion:1,migrationId:"workflows-json-v1",loadRecords:E,key:a=>a.id}]);let c=new o.UY(a,{collection:"workflows",schemaVersion:1,busyMessage:"workflow state is busy",key:a=>a.id,decode:a=>A(a)?F(a):null,clone:a=>F(structuredClone(a)),strictDecode:!0,decodeError:a=>Error("workflow SQLite state contains a malformed row",{cause:a}),validate:a=>{if(!A(a))throw Error("refusing to persist a malformed workflow record")}});return G.set(a,c),c}function I(a,b){return JSON.stringify(a)===JSON.stringify(b)}function J(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function K(a){let b=B.get(a);if(!b){H().replaceSync(a),C(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));H().patchSync(()=>{let a=[],c=[];for(let c of d){let d=b.get(c.id),e=H().get(c.id);if(void 0!==d&&e&&JSON.stringify(e)!==d){let b=F(function a(b,c,d){if(I(c,b))return structuredClone(d);if(I(d,b))return structuredClone(c);if(J(b)&&J(c)&&J(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=H().get(a);d&&JSON.stringify(d)===b.get(a)&&c.push(a)}return{records:a,deleteKeys:c}}),C(a)}function L(){let a=function(a){try{return JSON.parse(e().readFileSync(a,"utf8"))}catch{return null}}(p()),b=Array.isArray(a?.templates)?a.templates.map(z).filter(a=>null!==a):[],c=function(a,b=u()){let c=new Set([...s,...t].map(a=>JSON.stringify(z(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]}(b);return JSON.stringify(c)!==JSON.stringify(b)&&function(a){var b;b=p(),(0,k.Yj)(b,JSON.stringify({templates:a},null,2)+"\n")}(c),c}function M(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 N(a){return g().join((0,i.BQ)("workflows"),a)}function O(a){return g().join(N(a),"setup-stdout.log")}function P(a){return g().join(N(a),"setup-stderr.log")}function Q(a){return g().join(N(a),"setup-exit")}},96826:(a,b,c)=>{c.d(b,{ML:()=>t,OF:()=>r,oT:()=>s});var d=c(31421),e=c(73024),f=c.n(e),g=c(48161),h=c.n(g),i=c(76760),j=c.n(i),k=c(25123);let l={homeDir:h().homedir,stat:f().statSync,access:f().accessSync,exec:(a,b,c)=>{if("git"!==a)return(0,k.Ix)(a,b,c);let e=(0,d.spawnSync)(a,b,{cwd:c,encoding:"utf8",timeout:4e3});return e.error?{code:null,stdout:"",stderr:"ETIMEDOUT"===e.error.code?`git ${b.join(" ")} timed out after 4000ms`:e.error.message}:{code:e.status,stdout:e.stdout??"",stderr:e.stderr??""}}},m=/not a (?:git )?repository/i;function n(a,b){return"not_git"===a.failCode?{ok:!1,code:"not_git",path:b}:{ok:!1,code:"probe_failed",path:b,detail:a.detail}}function o(a){let b=a.stdout.trim();if(0===a.code&&b)return{value:b};let c=(a.stderr||a.stdout||"").trim();return null!==a.code&&0!==a.code&&m.test(a.stderr)?{failCode:"not_git",detail:c||"not a git repository"}:{failCode:"probe_failed",detail:c||"the git repository probe failed"}}let p=new Map;function q(a,b,c){try{return a.access(b,c),!1}catch{return!0}}function r(a,b=l,c={}){var d,e;let g,h,i,k=(d=b.homeDir(),i="~"===(h=a.trim())||h.startsWith("~/")?j().join(d,h.slice(1)):h,j().resolve(i)),m=c.now??Date.now;if(c.cache){let a,b=(e=m(),(a=p.get(k))?e-a.at>5e3?(p.delete(k),null):a.result:null);if(b)return b}try{g=b.stat(k)}catch(a){return{ok:!1,code:"ENOENT"===a.code?"missing":"repo_untraversable",path:k}}if(!g.isDirectory())return{ok:!1,code:"not_directory",path:k};if(q(b,k,f().constants.R_OK))return{ok:!1,code:"repo_unreadable",path:k};if(q(b,k,f().constants.X_OK))return{ok:!1,code:"repo_untraversable",path:k};let s=o(b.exec("git",["rev-parse","--show-toplevel"],k));if("failCode"in s)return n(s,k);let t=j().resolve(s.value);if(t!==k){if(q(b,t,f().constants.R_OK))return{ok:!1,code:"repo_unreadable",path:t};if(q(b,t,f().constants.X_OK))return{ok:!1,code:"repo_untraversable",path:t}}let u=o(b.exec("git",["rev-parse","--path-format=absolute","--git-common-dir"],t));if("failCode"in u)return n(u,t);let v=j().resolve(t,u.value);if(q(b,v,f().constants.W_OK|f().constants.X_OK))return{ok:!1,code:"git_metadata_unwritable",path:v};let w=j().dirname(t);if(q(b,w,f().constants.W_OK|f().constants.X_OK))return{ok:!1,code:"worktree_parent_unwritable",path:w};let x={ok:!0,repoDir:t,gitCommonDir:v,worktreeParent:w};return c.cache&&function(a,b,c){for(let d of a)p.delete(d),p.set(d,{result:b,at:c});for(;p.size>32;){let a=p.keys().next().value;if(void 0===a)break;p.delete(a)}}([...new Set([k,t])],x,m()),x}function s(a){return"probe_failed"===a?503:"missing"===a||"not_directory"===a||"not_git"===a?400:403}function t(a){switch(a.code){case"missing":return`directory does not exist: ${a.path}`;case"not_directory":return`not a directory: ${a.path}`;case"repo_unreadable":return`repository is not readable: ${a.path}`;case"repo_untraversable":return`repository cannot be traversed: ${a.path}`;case"not_git":return`not a git repository: ${a.path}`;case"probe_failed":return`the git repository probe failed for ${a.path}${a.detail?`: ${a.detail}`:""}`;case"git_metadata_unwritable":return`Git metadata is not writable: ${a.path}`;case"worktree_parent_unwritable":return`pipeline worktree parent is not writable: ${a.path}`}}},98590:(a,b,c)=>{c.d(b,{Ml:()=>Y,NO:()=>X,Sn:()=>Z,Su:()=>R,Vd:()=>T,WJ:()=>W,Yj:()=>x,ay:()=>u,ke:()=>S,mL:()=>I,ov:()=>K,tR:()=>V,tu:()=>Q});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724);c(29733),c(12770);var k=c(13117),l=c(18797),m=c(89940),n=c(99411),o=c(89822);let p=()=>(0,j.BQ)("review-loop-presets.json"),q=[{name:"Codex high → Fable",implementer:{engine:"codex",model:null,effort:"high"},reviewer:{engine:"claude",model:"fable",effort:null}},{name:"Fable → Codex xhigh",implementer:{engine:"claude",model:"fable",effort:null},reviewer:{engine:"codex",model:null,effort:"xhigh"}},{name:"Sonnet → Codex xhigh",implementer:{engine:"claude",model:"sonnet",effort:null},reviewer:{engine:"codex",model:null,effort:"xhigh"}},{name:"Codex high → Codex xhigh",implementer:{engine:"codex",model:null,effort:"high"},reviewer:{engine:"codex",model:null,effort:"xhigh"}}],r=[{name:"Terra high → Sol xhigh",implementer:{engine:"codex",model:"gpt-5.6-terra",effort:"high"},reviewer:{engine:"codex",model:"gpt-5.6-sol",effort:"xhigh"}},{name:"Terra low → Sol xhigh",implementer:{engine:"codex",model:"gpt-5.6-terra",effort:"low"},reviewer:{engine:"codex",model:"gpt-5.6-sol",effort:"xhigh"}},{name:"Terra high → Fable",implementer:{engine:"codex",model:"gpt-5.6-terra",effort:"high"},reviewer:{engine:"claude",model:"fable",effort:null}},{name:"Fable → Sol xhigh",implementer:{engine:"claude",model:"fable",effort:null},reviewer:{engine:"codex",model:"gpt-5.6-sol",effort:"xhigh"}},{name:"Sonnet → Sol xhigh",implementer:{engine:"claude",model:"sonnet",effort:null},reviewer:{engine:"codex",model:"gpt-5.6-sol",effort:"xhigh"}}];function s(a,b,c={}){if("builder"!==b)return{...a.find(a=>a.id===b).config};let d=(0,n.fy)(b,c,{},a);return d.ok?{...d.value.config}:{...l.W.find(a=>a.id===b).config}}function t(){let a=(0,o.e3)(),b=s(a,"builder"),c=s(a,"builder",{mode:"apply-fixes",domain:"general"}),d=s(a,"reviewer"),e=s(a,"architect");return[{name:"Sol medium → Sol xhigh",implementer:b,reviewer:d},{name:"Terra low → Sol xhigh",implementer:c,reviewer:d},{name:"Sol medium → Opus 5",implementer:b,reviewer:e},{name:"Opus 5 → Sol xhigh",implementer:e,reviewer:d},{name:"Sonnet → Sol xhigh",implementer:{engine:"claude",model:"sonnet",effort:"high"},reviewer:d}].map(a=>({...a,managed:"role-registry"}))}function u(){return s((0,o.e3)(),"architect")}t();let v=/^(?:claude|codex):[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,w=/^(?:default|unknown|managed:[0-9a-f]{12})$/;function x(a,b){g().mkdirSync(i().dirname(a),{recursive:!0});let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`);g().writeFileSync(c,b,"utf8"),g().renameSync(c,a)}function y(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.id&&"implement-review-loop"===a.template&&"string"==typeof a.cwd&&"string"==typeof a.implementerPath&&"string"==typeof a.baseRef&&(void 0===a.headRef||null===a.headRef||"string"==typeof a.headRef)&&(void 0===a.targetSha||null===a.targetSha||"string"==typeof a.targetSha)&&(void 0===a.spec||"string"==typeof a.spec)&&(void 0===a.hostClaim||null===a.hostClaim||v.test(a.hostClaim.sessionKey)&&w.test(a.hostClaim.accountRef))&&Array.isArray(a.rounds)}function z(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.name&&A(a.implementer)&&A(a.reviewer)&&(void 0===a.managed||"role-registry"===a.managed)}function A(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&("claude"===a.engine||"codex"===a.engine)&&(null===a.model||"string"==typeof a.model)&&(null===a.effort||"string"==typeof a.effort)}function B(a,b){return a.engine===b.engine&&a.model===b.model&&a.effort===b.effort}let C=null,D=new Map,E=new WeakMap;function F(a){return E.set(a,new Map(a.map(a=>[a.id,JSON.stringify(a)]))),a}function G(){return N().signature()}function H(a){return a.map(a=>({...a,hostClaim:a.hostClaim?{...a.hostClaim}:null,rounds:a.rounds.map(a=>({...a}))}))}function I(){let a=G();if(C?.signature===a)return F(H(C.flows));let b=N().snapshot(),c=G();return a===c&&(C={signature:c,flows:b}),F(H(b))}function J(a){return!["approved","done_comment","needs_decision","closed"].includes(a.state)}function K(){return N().snapshotForController()}function L(){let a=function(){let a;try{a=g().readFileSync((0,j.BQ)("flows.json"),"utf8")}catch(a){if("ENOENT"===a.code)return null;throw Error("could not read legacy flow state",{cause:a})}try{return JSON.parse(a)}catch(a){throw Error("legacy flow state contains malformed JSON",{cause:a})}}();if(null===a)return[];if(!a||"object"!=typeof a||Array.isArray(a))throw Error("legacy flow state must be an object");if(!Array.isArray(a.flows)||!a.flows.every(y))throw Error("legacy flow state contains malformed records");return a.flows.map(a=>({...a,project:(0,m.G$)(a.project),revision:a.revision??0,targetSha:a.targetSha??null,implementerConversationId:a.implementerConversationId??null,reviewerFallback:void 0===a.reviewerFallback&&"codex"===a.roles.reviewer.engine?u():a.reviewerFallback??null,pausedState:a.pausedState??null,kickoffDelivery:a.kickoffDelivery??null,hostClaim:a.hostClaim??null,rounds:a.rounds.map(a=>({...a,reviewerConversationId:a.reviewerConversationId??null,reviewerRole:a.reviewerRole??null,attemptedAccounts:a.attemptedAccounts??[],autoRetryCount:a.autoRetryCount??0,sessionId:a.sessionId??null,reviewerPid:a.reviewerPid??null,reviewerIdentity:a.reviewerIdentity??null,reviewHeadSha:a.reviewHeadSha??null,spawnStartedAt:a.spawnStartedAt??null,launchId:a.launchId??null,launchLeaseUntil:a.launchLeaseUntil??null,relayStartedAt:a.relayStartedAt??null,relayRetryCount:a.relayRetryCount??0,relayDeliveryAttempt:a.relayDeliveryAttempt??0,relayDeliveryTransport:a.relayDeliveryTransport??null,relayRetryAt:a.relayRetryAt??null,relayRetryRequiresIdempotency:a.relayRetryRequiresIdempotency??!1,relayDelivery:a.relayDelivery??null,relayPendingSettlement:a.relayPendingSettlement??null,terminalAt:a.terminalAt??null,error:a.error??null}))}))}function M(a){return y(a)?{...a,project:(0,m.G$)(a.project),revision:a.revision??0,targetSha:a.targetSha??null,implementerConversationId:a.implementerConversationId??null,reviewerFallback:void 0===a.reviewerFallback&&"codex"===a.roles.reviewer.engine?u():a.reviewerFallback??null,pausedState:a.pausedState??null,kickoffDelivery:a.kickoffDelivery??null,hostClaim:a.hostClaim??null,rounds:a.rounds.map(a=>({...a,reviewerConversationId:a.reviewerConversationId??null,reviewerRole:a.reviewerRole??null,attemptedAccounts:a.attemptedAccounts??[],autoRetryCount:a.autoRetryCount??0,sessionId:a.sessionId??null,reviewerPid:a.reviewerPid??null,reviewerIdentity:a.reviewerIdentity??null,reviewHeadSha:a.reviewHeadSha??null,spawnStartedAt:a.spawnStartedAt??null,launchId:a.launchId??null,launchLeaseUntil:a.launchLeaseUntil??null,relayStartedAt:a.relayStartedAt??null,relayRetryCount:a.relayRetryCount??0,relayDeliveryAttempt:a.relayDeliveryAttempt??0,relayDeliveryTransport:a.relayDeliveryTransport??null,relayRetryAt:a.relayRetryAt??null,relayRetryRequiresIdempotency:a.relayRetryRequiresIdempotency??!1,relayDelivery:a.relayDelivery??null,relayPendingSettlement:a.relayPendingSettlement??null,terminalAt:a.terminalAt??null,error:a.error??null}))}:null}function N(){let a=(0,j.BQ)("state.sqlite"),b=D.get(a);if(b)return b;(0,k.t0)(a,[{collection:"flows",schemaVersion:3,migrationId:"flows-json-v1",loadRecords:L,key:a=>a.id,controllerActive:J}]);let c=new k.UY(a,{collection:"flows",schemaVersion:3,busyMessage:"flow state is busy",key:a=>a.id,decode:M,clone:a=>H([a])[0],controllerActive:J,strictDecode:!0,decodeError:a=>Error("flow SQLite state contains a malformed row",{cause:a})});return D.set(a,c),c}function O(a){let b={...a};return delete b.revision,JSON.stringify(b)}function P(a){for(let b of a){let a=N().get(b.id)??void 0;if(a&&void 0!==b.revision&&b.revision<(a.revision??0)){for(let a of Object.keys(b))delete b[a];Object.assign(b,structuredClone(a));continue}b.revision=a&&O(a)===O(b)?a.revision??0:(a?.revision??0)+1}}function Q(a){let b=E.get(a);if(!b){N().replaceSync(a,{beforePersist:P}),F(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));N().patchSync(()=>(P(d),{records:d,deleteKeys:e.filter(a=>{let c=N().get(a);return null!==c&&JSON.stringify(c)===b.get(a)})})),F(a)}function R(a,b){let c=[...new Set(a)];if(0===c.length)return;let d=N();d.patchSync(()=>{let a=b(c.flatMap(a=>{let b=d.get(a);return b?[b]:[]}));return P(a),{records:a}})}async function S(a){return await N().mutate(a,({dirtyRecords:a})=>P(a))}function T(){let a=function(a){try{return JSON.parse(g().readFileSync(a,"utf8"))}catch{return null}}(p()),b=Array.isArray(a?.presets)?a.presets.filter(z):[],c=function(a,b=t()){let c=a.filter(a=>"role-registry"!==a.managed&&![...q,...r].some(b=>a.name===b.name&&B(a.implementer,b.implementer)&&B(a.reviewer,b.reviewer))),d=new Set(c.map(a=>a.name));return[...b.filter(a=>!d.has(a.name)),...c]}(b);return JSON.stringify(c)!==JSON.stringify(b)&&function(a){var b;let c;b=p(),g().mkdirSync(i().dirname(b),{recursive:!0}),c=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`),g().writeFileSync(c,JSON.stringify({presets:a},null,2)+"\n","utf8"),g().renameSync(c,b)}(c),c}function U(a){return i().join((0,j.BQ)("flows"),a)}function V(a,b){return i().join(U(a),`round-${b}-review.md`)}function W(a,b){return i().join(U(a),`round-${b}-last-message.md`)}function X(a,b){return i().join(U(a),`round-${b}-stderr.txt`)}function Y(a,b){return i().join(U(a),`round-${b}-stdout.log`)}function Z(a,b){let c=b.replace(/^\s*VERDICT:\s*(APPROVE|REQUEST_CHANGES|COMMENT)\s*$/im,"").trim();return`VERDICT: ${a}
2
+ ${c?"\n"+c+"\n":"\n"}`}}};
@@ -1 +1 @@
1
- "use strict";exports.id=6850,exports.ids=[6850],exports.modules={5602:(a,b,c)=>{c.d(b,{KP:()=>A,dJ:()=>E});var d=c(76760),e=c.n(d),f=c(620),g=c(30096),h=c(77598),i=c.n(h),j=c(73024),k=c.n(j);let l=new Set(["https://beacon.claude-ai.staging.ant.dev","https://claude.fedstart.com","https://claude-staging.fedstart.com"]),m=["user:profile","user:inference","user:sessions:claude_code","user:mcp_servers","user:file_upload"],n=new Set(["user:projects:read","user:projects:write"]);function o(a){return e().join(a.home,".credentials.json")}function p(a){if(!a.authPresent)return null;try{let b=JSON.parse(k().readFileSync(o(a),"utf8"));return b&&"object"==typeof b&&!Array.isArray(b)?b:null}catch{return null}}function q(a){let b=p(a)?.claudeAiOauth;return"string"==typeof b?.accessToken&&b.accessToken.length>0&&"number"==typeof b.expiresAt&&Number.isFinite(b.expiresAt)?{expiresAt:b.expiresAt,refreshable:"string"==typeof b.refreshToken&&b.refreshToken.length>0}:null}let r={now:Date.now,fetch:globalThis.fetch};function s(a,b,c){let d=p(a)?.claudeAiOauth;if(!d||d.accessToken===b)return!1;let e=q(a);return null!==e&&e.expiresAt>c}async function t(a,b,c){for(;;)try{k().mkdirSync(a,{mode:448});let b=k().openSync(a,"r"),c=k().fstatSync(b);return()=>{try{let b=k().statSync(a);b.dev===c.dev&&b.ino===c.ino&&k().rmdirSync(a)}catch{}finally{k().closeSync(b)}}}catch(d){if("EEXIST"!==d.code)return null;let a=c-(Date.now()-b);if(a<=0)return null;await new Promise(b=>setTimeout(b,Math.min(25,a)))}}async function u(a,b){let c,d=Date.now(),f=await t(e().join(a.home,".oauth_refresh.lock"),d,b);if(!f)return null;try{c=k().realpathSync(a.home)}catch{c=a.home}let g=await t(`${c}.lock`,d,b);return g?()=>{g(),f()}:(f(),null)}async function v(a){try{let b=await a.json();return b?.error==="invalid_grant"?"invalid":"unknown"}catch{return"unknown"}}async function w(a){if(400!==a.status)return!1;try{let b=await a.clone().json();return b?.error==="invalid_scope"}catch{return!1}}async function x(a,b=r){let c=await u(a,b.lockWaitMs??8e3);if(!c)return"unknown";try{return await y(a,b)}finally{c()}}async function y(a,b){let c,d,f=p(a),g=f?.claudeAiOauth;if(!f||!g||"string"!=typeof g.accessToken||0===g.accessToken.length||"string"!=typeof g.refreshToken||0===g.refreshToken.length)return"invalid";if("number"==typeof g.expiresAt&&Number.isFinite(g.expiresAt)&&g.expiresAt>b.now())return"refreshed";let h=g.accessToken,j=Array.isArray(g.scopes)&&g.scopes.every(a=>"string"==typeof a)?g.scopes:[],q="string"==typeof g.clientId&&g.clientId.length>0,r=q?g.clientId:process.env.CLAUDE_CODE_OAUTH_CLIENT_ID||"9d1c250a-e61b-44d9-88ed-5944d1962f5e",t=!q&&(j.includes("user:inference")||!!g.subscriptionType),u=j.length>0?j:m;t&&(u=[...new Set([...m,...j.filter(a=>n.has(a))])]);let x=function(){let a=process.env.CLAUDE_CODE_CUSTOM_OAUTH_URL;if(!a)return"https://platform.claude.com/v1/oauth/token";let b=a.replace(/\/+$/,"");return l.has(b)?`${b}/v1/oauth/token`:null}();if(!x)return"unknown";let y=AbortSignal.timeout(8e3),z=a=>b.fetch(x,{method:"POST",redirect:"manual",headers:{"content-type":"application/json"},body:JSON.stringify({grant_type:"refresh_token",refresh_token:g.refreshToken,client_id:r,scope:a.join(" ")}),signal:y});try{c=await z(u),t&&j.length>0&&j.includes("user:inference")&&await w(c)&&(c=await z(j))}catch{return"unknown"}if(400===c.status||401===c.status)return s(a,h,b.now())?"refreshed":await v(c);if(!c.ok)return"unknown";try{let a=await c.json();if(!a||"object"!=typeof a||Array.isArray(a))return"unknown";d=a}catch{return"unknown"}if("string"!=typeof d.access_token||0===d.access_token.length||"number"!=typeof d.expires_in||!Number.isFinite(d.expires_in)||d.expires_in<=0)return"unknown";let A=p(a),B=A?.claudeAiOauth;if(!A||!B)return"unknown";if(B.accessToken!==h)return s(a,h,b.now())?"refreshed":"unknown";let C={...B,accessToken:d.access_token,refreshToken:"string"==typeof d.refresh_token&&d.refresh_token.length>0?d.refresh_token:g.refreshToken,expiresAt:b.now()+1e3*d.expires_in};"string"==typeof d.scope&&d.scope.trim()&&(C.scopes=d.scope.trim().split(/\s+/)),"number"==typeof d.refresh_token_expires_in&&Number.isFinite(d.refresh_token_expires_in)&&(C.refreshTokenExpiresAt=b.now()+1e3*d.refresh_token_expires_in);try{return!function(a,b){let c=o(a),d=e().join(a.home,`.${e().basename(c)}.${process.pid}.${i().randomUUID()}.tmp`);try{let e=k().openSync(d,"wx",384);try{k().writeFileSync(e,JSON.stringify(b),"utf8"),k().fsyncSync(e)}finally{k().closeSync(e)}k().renameSync(d,c);let f=k().openSync(a.home,"r");try{k().fsyncSync(f)}finally{k().closeSync(f)}}finally{k().rmSync(d,{force:!0})}}(a,{...A,claudeAiOauth:C}),"refreshed"}catch{return"unknown"}}let z=globalThis;class A extends Error{constructor(a){const b=[...new Set(a)].sort(),c=1===b.length?`account ${b[0]}`:b.length>1?`accounts ${b.join(", ")}`:"a Claude account";super(`No healthy Claude account is available. Re-login ${c} in Accounts and retry.`),this.name="NoHealthyClaudeAccountError",this.accountIds=b}}async function B(a){var b;return"live"===(b=await (0,f.nn)(e().join(a.home,".credentials.json"),Date.now,600)).source||b.reason===g.u1?"valid":b.reason===g.e4||"credentials missing access token"===b.reason||b.reason?.startsWith("credentials unreadable:")?"invalid":"unknown"}async function C(a){let b=await x(a);return"invalid"===b?"invalid":"unknown"===b?"unknown":await B(a)}let D={now:Date.now,probe:B,refresh:C};async function E(a,b,c=D){let d=c.now(),f=a.map(a=>{let b=q(a);return{account:a,oauth:b}}),g=a=>"valid"===a?2:+("unknown"===a),h=a=>a.filter(a=>g(a.health)>0).sort((a,c)=>g(c.health)-g(a.health)||Number(c.account.id===b)-Number(a.account.id===b)||a.account.id.localeCompare(c.account.id))[0],i=h(await Promise.all(f.filter(a=>a.oauth&&a.oauth.expiresAt>d).map(async({account:a})=>({account:a,health:await c.probe(a)}))));if(i)return i.account;let j=h(await Promise.all(f.filter(a=>a.oauth?.expiresAt&&a.oauth.expiresAt<=d&&a.oauth.refreshable).map(async({account:a})=>({account:a,health:await function(a,b){let c=z.__llvClaudeRefreshInflight??=new Map,d=`${a.id}\0${e().resolve(a.home)}`,f=c.get(d);if(f)return f;let g=Promise.resolve().then(()=>b(a)).catch(()=>"unknown").finally(()=>{c.get(d)===g&&c.delete(d)});return c.set(d,g),g}(a,c.refresh)}))));if(j)return j.account;throw new A(a.map(a=>a.id))}},86850:(a,b,c)=>{c.d(b,{$7:()=>o,oA:()=>p,lD:()=>r,ax:()=>m});var d=c(41617),e=c(78966),f=c(32977),g=c(68797),h=c(22962),i=c(29733),j=c(5602),k=c(92806);function l(a,b){if("claude"===a){let c=(0,e.ob)(b);return{engine:a,accountId:c.id,kind:c.kind,home:c.home,transcriptRoot:c.projectsDir,env:"managed"===c.kind?(0,e.x0)(c.home):(0,k.Fd)(process.env)}}let c=(0,d.O$)(b);return{engine:a,accountId:c.id,kind:c.kind,home:c.home,transcriptRoot:c.sessionsDir,env:{...(0,k.Fd)(process.env),CODEX_HOME:c.home}}}async function m(a,b){let c=b??(0,i.tk)().engineRouting(a).activeAccountId??void 0;if("codex"===a)return l(a,c);let d=(0,e.Fn)();if(c&&!d.some(a=>a.id===c))throw new e.UV(c);return l(a,(await (0,j.dJ)(d,c)).id)}function n(a,b){let c=("claude"===a?(0,e.Fn)():(0,d.Sq)()).find(a=>a.id===b);if(!c)throw Error(`unknown ${a} account: ${b}`);return{id:c.id,label:c.label,kind:c.kind,active:("claude"===a?(0,e.No)():(0,d.O)())===b,auth:{state:c.authPresent?"authenticated":"signed_out",method:null,email:null,plan:null,checkedAt:null},limits:{state:"unavailable",session:null,weekly:null,checkedAt:null},login:null}}class o extends Error{constructor(a,b){super(`${a} account requires authentication`),this.engine=a,this.accountId=b,this.name="AccountAuthenticationRequiredError"}}class p extends Error{constructor(a,b){super(`${a} account login is in progress`),this.engine=a,this.accountId=b,this.name="AccountLoginPendingError"}}async function q(a,b,c=(0,i.tk)()){return await (0,h.Cu)(async()=>(function(a,b,c){let h;if("claude"===a?(0,e.kK)():(0,d.J0)()){if("claude"===a)throw new e.OL;throw new d.NE}let i=("claude"===a?(0,e.Fn)():(0,d.Sq)()).find(a=>a.id===b);if(!i){if("claude"===a)throw new e.UV(b);throw new d.m1(b)}if("claude"===a?null!==(h=f.s4.forAccount(b))&&f.VO.has(h.phase):null!==i.loginPane||"pending"===(0,g.VD)().peekLogin(i).attemptState)throw new p(a,b);if(!i.authPresent)throw new o(a,b);let j="claude"===a?(0,e.No)():(0,d.O)(),k=c.engineRouting(a).activeAccountId;"claude"===a?(0,e.ss)(b):(0,d.b0)(b);try{c.setEngineRouting(a,b)}catch(f){let b=[];try{c.engineRouting(a).activeAccountId!==k&&c.setEngineRouting(a,k??j)}catch(a){b.push(a)}try{"claude"===a?(0,e.ss)(j):(0,d.b0)(j)}catch(a){b.push(a)}if(b.length>0)throw AggregateError([f,...b],"account selection rollback failed");throw f}return n(a,b)})(a,b,c))}let r={list:async()=>({claude:{active:(0,e.No)(),accounts:(0,e.Fn)().map(a=>n("claude",a.id))},codex:{active:(0,d.O)(),accounts:(0,d.Sq)().map(a=>n("codex",a.id))}}),add:async(a,b)=>await (0,h.Cu)(async()=>{let c="claude"===a?(0,e.fM)(b):(0,d.Ut)(b);return n(a,c.id)}),select:async(a,b)=>q(a,b),status:async(a,b)=>n(a,b),async submitLoginInput(){throw Error("login input is Claude-operation specific")},async cancelLogin(){throw Error("login cancellation is Claude-operation specific")},resolveSpawn:(a,b)=>l(a,b??(0,i.tk)().engineRouting(a).activeAccountId??void 0),resolveHeadlessSpawn(a,b,c=[]){let f=function(a,b,c,d,e=Date.now()){let f=new Map(b.map(a=>[a.accountId,a])),g=new Set(d),h=a.filter(a=>a.authPresent).map(a=>({account:a,capacity:function(a,b){if(!a||"live"!==a.provenance.source)return{kind:"unknown"};let c=Date.parse(a.observedAt),d=Date.parse(a.authCheckedAt);if(!Number.isFinite(c)||!Number.isFinite(d)||b<c||b<d||b-c>3e5||b-d>3e5)return{kind:"unknown"};if(!a.authenticated)return{kind:"unavailable"};if(!a.limits)return{kind:"unknown"};let e=[a.limits.session,a.limits.weekly].filter(a=>null!==a);if(!e.length||e.some(a=>!Number.isFinite(a.usedPercent)||a.usedPercent<0||a.usedPercent>100||null!==a.resetsAt&&(!Number.isSafeInteger(a.resetsAt)||a.resetsAt<0)))return{kind:"unknown"};let f=Math.min(...e.map(a=>100-a.usedPercent));if(f>0)return{kind:"available",remaining:f};let g=e.filter(a=>a.usedPercent>=100),h=Math.floor(b/1e3);return g.some(a=>null===a.resetsAt||a.resetsAt<=h)?{kind:"exhausted",resetsAt:null}:{kind:"exhausted",resetsAt:Math.max(...g.map(a=>a.resetsAt))}}(f.get(a.id),e)})).filter(a=>"unavailable"!==a.capacity.kind);if(!h.length)return{kind:"unavailable"};for(let a of[!1,!0]){let b=h.filter(b=>g.has(b.account.id)===a),d=b.flatMap(a=>"available"===a.capacity.kind?[{...a,remaining:a.capacity.remaining}]:[]).sort((a,b)=>b.remaining-a.remaining||Number(b.account.id===c)-Number(a.account.id===c)||a.account.id.localeCompare(b.account.id));if(d[0])return{kind:"available",accountId:d[0].account.id};let e=b.filter(a=>"unknown"===a.capacity.kind).sort((a,b)=>Number(b.account.id===c)-Number(a.account.id===c)||a.account.id.localeCompare(b.account.id));if(e[0])return{kind:"available",accountId:e[0].account.id}}let i=h.flatMap(a=>"exhausted"===a.capacity.kind&&null!==a.capacity.resetsAt?[a.capacity.resetsAt]:[]);return{kind:"exhausted",resetsAt:i.length?Math.min(...i):null}}("claude"===a?(0,e.Fn)():(0,d.Sq)(),(0,i.tk)().quotaObservations(a),b??(0,i.tk)().engineRouting(a).activeAccountId,c);return"available"===f.kind?{kind:"available",account:l(a,f.accountId)}:f},resolveTranscriptOwner(a,b){if("claude"===a){let c=(0,e.y3)(b);if(!c)return null;let d=(0,e.Fn)().find(a=>a.home===c);return d?{engine:a,accountId:d.id,kind:d.kind,home:c,transcriptRoot:d.projectsDir,env:"managed"===d.kind?(0,e.x0)(c):(0,k.Fd)(process.env)}:null}let c=(0,d.yN)(b);if(!c)return null;let f=(0,d.Sq)().find(a=>a.home===c);return f?{engine:a,accountId:f.id,kind:f.kind,home:c,transcriptRoot:f.sessionsDir,env:{...(0,k.Fd)(process.env),CODEX_HOME:c}}:null}}}};
1
+ "use strict";exports.id=6850,exports.ids=[6850],exports.modules={5602:(a,b,c)=>{c.d(b,{KP:()=>C,Kw:()=>D,dJ:()=>H});var d=c(76760),e=c.n(d),f=c(25617),g=c(58996),h=c(30096),i=c(77598),j=c.n(i),k=c(73024),l=c.n(k);let m=new Set(["https://beacon.claude-ai.staging.ant.dev","https://claude.fedstart.com","https://claude-staging.fedstart.com"]),n=["user:profile","user:inference","user:sessions:claude_code","user:mcp_servers","user:file_upload"],o=new Set(["user:projects:read","user:projects:write"]);function p(a){return e().join(a.home,".credentials.json")}function q(a){if(!a.authPresent)return null;try{let b=JSON.parse(l().readFileSync(p(a),"utf8"));return b&&"object"==typeof b&&!Array.isArray(b)?b:null}catch{return null}}function r(a){let b=q(a)?.claudeAiOauth;return"string"==typeof b?.accessToken&&b.accessToken.length>0&&"number"==typeof b.expiresAt&&Number.isFinite(b.expiresAt)?{expiresAt:b.expiresAt,refreshable:"string"==typeof b.refreshToken&&b.refreshToken.length>0}:null}let s={now:Date.now,fetch:globalThis.fetch};function t(a,b,c){let d=q(a)?.claudeAiOauth;if(!d||d.accessToken===b)return!1;let e=r(a);return null!==e&&e.expiresAt>c}async function u(a,b,c){for(;;)try{l().mkdirSync(a,{mode:448});let b=l().openSync(a,"r"),c=l().fstatSync(b);return()=>{try{let b=l().statSync(a);b.dev===c.dev&&b.ino===c.ino&&l().rmdirSync(a)}catch{}finally{l().closeSync(b)}}}catch(d){if("EEXIST"!==d.code)return null;let a=c-(Date.now()-b);if(a<=0)return null;await new Promise(b=>setTimeout(b,Math.min(25,a)))}}async function v(a,b){let c,d=Date.now(),f=await u(e().join(a.home,".oauth_refresh.lock"),d,b);if(!f)return null;try{c=l().realpathSync(a.home)}catch{c=a.home}let g=await u(`${c}.lock`,d,b);return g?()=>{g(),f()}:(f(),null)}async function w(a){try{let b=await a.json();return b?.error==="invalid_grant"?"invalid":"unknown"}catch{return"unknown"}}async function x(a){if(400!==a.status)return!1;try{let b=await a.clone().json();return b?.error==="invalid_scope"}catch{return!1}}async function y(a,b=s){let c=await v(a,b.lockWaitMs??8e3);if(!c)return"unknown";try{return await z(a,b)}finally{c()}}async function z(a,b){let c,d,f=q(a),g=f?.claudeAiOauth;if(!f||!g||"string"!=typeof g.accessToken||0===g.accessToken.length||"string"!=typeof g.refreshToken||0===g.refreshToken.length)return"invalid";if("number"==typeof g.expiresAt&&Number.isFinite(g.expiresAt)&&g.expiresAt>b.now())return"refreshed";let h=g.accessToken,i=Array.isArray(g.scopes)&&g.scopes.every(a=>"string"==typeof a)?g.scopes:[],k="string"==typeof g.clientId&&g.clientId.length>0,r=k?g.clientId:process.env.CLAUDE_CODE_OAUTH_CLIENT_ID||"9d1c250a-e61b-44d9-88ed-5944d1962f5e",s=!k&&(i.includes("user:inference")||!!g.subscriptionType),u=i.length>0?i:n;s&&(u=[...new Set([...n,...i.filter(a=>o.has(a))])]);let v=function(){let a=process.env.CLAUDE_CODE_CUSTOM_OAUTH_URL;if(!a)return"https://platform.claude.com/v1/oauth/token";let b=a.replace(/\/+$/,"");return m.has(b)?`${b}/v1/oauth/token`:null}();if(!v)return"unknown";let y=AbortSignal.timeout(8e3),z=a=>b.fetch(v,{method:"POST",redirect:"manual",headers:{"content-type":"application/json"},body:JSON.stringify({grant_type:"refresh_token",refresh_token:g.refreshToken,client_id:r,scope:a.join(" ")}),signal:y});try{c=await z(u),s&&i.length>0&&i.includes("user:inference")&&await x(c)&&(c=await z(i))}catch{return"unknown"}if(400===c.status||401===c.status)return t(a,h,b.now())?"refreshed":await w(c);if(!c.ok)return"unknown";try{let a=await c.json();if(!a||"object"!=typeof a||Array.isArray(a))return"unknown";d=a}catch{return"unknown"}if("string"!=typeof d.access_token||0===d.access_token.length||"number"!=typeof d.expires_in||!Number.isFinite(d.expires_in)||d.expires_in<=0)return"unknown";let A=q(a),B=A?.claudeAiOauth;if(!A||!B)return"unknown";if(B.accessToken!==h)return t(a,h,b.now())?"refreshed":"unknown";let C={...B,accessToken:d.access_token,refreshToken:"string"==typeof d.refresh_token&&d.refresh_token.length>0?d.refresh_token:g.refreshToken,expiresAt:b.now()+1e3*d.expires_in};"string"==typeof d.scope&&d.scope.trim()&&(C.scopes=d.scope.trim().split(/\s+/)),"number"==typeof d.refresh_token_expires_in&&Number.isFinite(d.refresh_token_expires_in)&&(C.refreshTokenExpiresAt=b.now()+1e3*d.refresh_token_expires_in);try{return!function(a,b){let c=p(a),d=e().join(a.home,`.${e().basename(c)}.${process.pid}.${j().randomUUID()}.tmp`);try{let e=l().openSync(d,"wx",384);try{l().writeFileSync(e,JSON.stringify(b),"utf8"),l().fsyncSync(e)}finally{l().closeSync(e)}l().renameSync(d,c);let f=l().openSync(a.home,"r");try{l().fsyncSync(f)}finally{l().closeSync(f)}}finally{l().rmSync(d,{force:!0})}}(a,{...A,claudeAiOauth:C}),"refreshed"}catch{return"unknown"}}let A=globalThis;function B(a,b){let c=A.__llvClaudeRefreshInflight??=new Map,d=`${a.id}\0${e().resolve(a.home)}`,g=c.get(d);if(g)return g;let h=Promise.resolve().then(()=>b(a)).catch(()=>(0,f.Oh)({enabled:!0,authentication:"unknown",limits:"unknown",stale:!0,retryAt:null})).finally(()=>{c.get(d)===h&&c.delete(d)});return c.set(d,h),h}class C extends Error{constructor(a){const b=[...new Set(a)].sort(),c=1===b.length?`account ${b[0]}`:b.length>1?`accounts ${b.join(", ")}`:"a Claude account";super(`No healthy Claude account is available. Re-login ${c} in Accounts and retry.`),this.name="NoHealthyClaudeAccountError",this.accountIds=b}}function D(a,b=Date.now()){let c=a.reason===h.e4||"credentials missing access token"===a.reason||a.reason?.startsWith("credentials unreadable:")?"failed":"live"===a.source?"authenticated":"unknown",d=a.data?[a.data.session,a.data.weekly].filter(a=>null!==a):[],e=d.filter(a=>Number.isFinite(a.usedPercent)&&a.usedPercent>=100),g=e.length>0?"exhausted":d.length>0?"available":"unknown",i=null;return e.length>0&&e.every(a=>Number.isSafeInteger(a.resetsAt)&&1e3*a.resetsAt>b)?i=new Date(1e3*Math.max(...e.map(a=>a.resetsAt))).toISOString():"number"==typeof a.retryAt&&Number.isFinite(a.retryAt)?i=new Date(a.retryAt).toISOString():"string"==typeof a.retryAt&&(i=a.retryAt),(0,f.Oh)({enabled:!0,authentication:c,limits:g,stale:"live"!==a.source,retryAt:i},b)}async function E(a){return D(await (0,g.nn)(e().join(a.home,".credentials.json"),Date.now,600))}async function F(a){let b=await y(a);return"invalid"===b?(0,f.Oh)({enabled:!0,authentication:"failed",limits:"unknown",stale:!1,retryAt:null}):"unknown"===b?(0,f.Oh)({enabled:!0,authentication:"unknown",limits:"unknown",stale:!0,retryAt:null}):await E(a)}let G={now:Date.now,probe:E,refresh:F};async function H(a,b,c=G,d=!0,e=b){let f=c.now(),g=a.map(a=>{let b=r(a);return{account:a,oauth:b}}),h=a=>"admissible"===a.kind?"current"===a.basis?2:1:0,i=a=>a.filter(a=>h(a.admission)>0).sort((a,b)=>h(b.admission)-h(a.admission)||Number(b.account.id===e)-Number(a.account.id===e)||a.account.id.localeCompare(b.account.id))[0],j=(a,c)=>({account:a.account,admission:a.admission,...d&&b&&c?{requestedAdmission:c.admission}:{}}),k=await Promise.all(g.filter(a=>a.oauth&&a.oauth.expiresAt>f).map(async({account:a})=>({account:a,admission:await c.probe(a)}))),l=b?k.find(a=>a.account.id===b)??null:null;if(d&&l?.admission.kind==="admissible")return j(l,l);let m=d&&b?g.find(a=>a.account.id===b&&a.oauth?.expiresAt&&a.oauth.expiresAt<=f&&a.oauth.refreshable):null;if(m&&"admissible"===(l={account:m.account,admission:await B(m.account,c.refresh)}).admission.kind)return j(l,l);let n=i(k);if(n)return j(n,l);let o=i([...k,...l?[l]:[],...await Promise.all(g.filter(a=>a.oauth?.expiresAt&&a.oauth.expiresAt<=f&&a.oauth.refreshable).filter(a=>a.account.id!==m?.account.id).map(async({account:a})=>({account:a,admission:await B(a,c.refresh)})))]);if(o)return j(o,l);throw new C(a.map(a=>a.id))}},86850:(a,b,c)=>{c.d(b,{$7:()=>p,oA:()=>q,lD:()=>s,ax:()=>n});var d=c(41617),e=c(78966),f=c(32977),g=c(68797),h=c(22962),i=c(29733),j=c(5602),k=c(92806),l=c(25617);function m(a,b){if("claude"===a){let c=(0,e.ob)(b);return{engine:a,accountId:c.id,kind:c.kind,home:c.home,transcriptRoot:c.projectsDir,env:"managed"===c.kind?(0,e.x0)(c.home):(0,k.Fd)(process.env)}}let c=(0,d.O$)(b);return{engine:a,accountId:c.id,kind:c.kind,home:c.home,transcriptRoot:c.sessionsDir,env:{...(0,k.Fd)(process.env),CODEX_HOME:c.home}}}async function n(a,b){let c=(0,i.agentRegistry)().engineRouting(a).activeAccountId??void 0,f=b??c,g=(0,l.Oh)({enabled:!1,authentication:"unknown",limits:"unknown",stale:!1,retryAt:null});if("codex"===a)try{return m(a,f)}catch(e){if(null==b||!(e instanceof d.m1))throw e;return{...m(a,c),requestedAdmission:g}}let h=(0,e.Fn)(),k=null==b||h.some(a=>a.id===b),n=await (0,j.dJ)(h,k?f:c,void 0,null!=b&&k,c);return{...m(a,n.account.id),admission:n.admission,...null!=b&&!k?{requestedAdmission:g}:n.requestedAdmission?{requestedAdmission:n.requestedAdmission}:{}}}function o(a,b){let c=("claude"===a?(0,e.Fn)():(0,d.Sq)()).find(a=>a.id===b);if(!c)throw Error(`unknown ${a} account: ${b}`);return{id:c.id,label:c.label,kind:c.kind,active:("claude"===a?(0,e.No)():(0,d.O)())===b,auth:{state:c.authPresent?"authenticated":"signed_out",method:null,email:null,plan:null,checkedAt:null},limits:{state:"unavailable",session:null,weekly:null,checkedAt:null},login:null}}class p extends Error{constructor(a,b){super(`${a} account requires authentication`),this.engine=a,this.accountId=b,this.name="AccountAuthenticationRequiredError"}}class q extends Error{constructor(a,b){super(`${a} account login is in progress`),this.engine=a,this.accountId=b,this.name="AccountLoginPendingError"}}async function r(a,b,c=(0,i.agentRegistry)()){return await (0,h.Cu)(async()=>(function(a,b,c){let h;if("claude"===a?(0,e.kK)():(0,d.J0)()){if("claude"===a)throw new e.OL;throw new d.NE}let i=("claude"===a?(0,e.Fn)():(0,d.Sq)()).find(a=>a.id===b);if(!i){if("claude"===a)throw new e.UV(b);throw new d.m1(b)}if("claude"===a?null!==(h=f.s4.forAccount(b))&&f.VO.has(h.phase):null!==i.loginPane||"pending"===(0,g.VD)().peekLogin(i).attemptState)throw new q(a,b);if(!i.authPresent)throw new p(a,b);let j="claude"===a?(0,e.No)():(0,d.O)(),k=c.engineRouting(a).activeAccountId;"claude"===a?(0,e.ss)(b):(0,d.b0)(b);try{c.setEngineRouting(a,b)}catch(f){let b=[];try{c.engineRouting(a).activeAccountId!==k&&c.setEngineRouting(a,k??j)}catch(a){b.push(a)}try{"claude"===a?(0,e.ss)(j):(0,d.b0)(j)}catch(a){b.push(a)}if(b.length>0)throw AggregateError([f,...b],"account selection rollback failed");throw f}return o(a,b)})(a,b,c))}let s={list:async()=>({claude:{active:(0,e.No)(),accounts:(0,e.Fn)().map(a=>o("claude",a.id))},codex:{active:(0,d.O)(),accounts:(0,d.Sq)().map(a=>o("codex",a.id))}}),add:async(a,b)=>await (0,h.Cu)(async()=>{let c="claude"===a?(0,e.fM)(b):(0,d.Ut)(b);return o(a,c.id)}),select:async(a,b)=>r(a,b),status:async(a,b)=>o(a,b),async submitLoginInput(){throw Error("login input is Claude-operation specific")},async cancelLogin(){throw Error("login cancellation is Claude-operation specific")},resolveSpawn:(a,b)=>m(a,b??(0,i.agentRegistry)().engineRouting(a).activeAccountId??void 0),resolveHeadlessSpawn(a,b,c=[]){let f=function(a,b,c,d,e=Date.now()){let f=new Map(b.map(a=>[a.accountId,a])),g=new Set(d),h=a.filter(a=>a.authPresent).map(a=>({account:a,capacity:function(a,b){if(!a||"live"!==a.provenance.source)return{kind:"unknown"};let c=Date.parse(a.observedAt),d=Date.parse(a.authCheckedAt);if(!Number.isFinite(c)||!Number.isFinite(d)||b<c||b<d||b-c>3e5||b-d>3e5)return{kind:"unknown"};if(!a.authenticated)return{kind:"unavailable"};if(!a.limits)return{kind:"unknown"};let e=[a.limits.session,a.limits.weekly].filter(a=>null!==a);if(!e.length||e.some(a=>!Number.isFinite(a.usedPercent)||a.usedPercent<0||a.usedPercent>100||null!==a.resetsAt&&(!Number.isSafeInteger(a.resetsAt)||a.resetsAt<0)))return{kind:"unknown"};let f=Math.min(...e.map(a=>100-a.usedPercent));if(f>0)return{kind:"available",remaining:f};let g=e.filter(a=>a.usedPercent>=100),h=Math.floor(b/1e3);return g.some(a=>null===a.resetsAt||a.resetsAt<=h)?{kind:"exhausted",resetsAt:null}:{kind:"exhausted",resetsAt:Math.max(...g.map(a=>a.resetsAt))}}(f.get(a.id),e)})).filter(a=>"unavailable"!==a.capacity.kind);if(!h.length)return{kind:"unavailable"};for(let a of[!1,!0]){let b=h.filter(b=>g.has(b.account.id)===a),d=b.flatMap(a=>"available"===a.capacity.kind?[{...a,remaining:a.capacity.remaining}]:[]).sort((a,b)=>b.remaining-a.remaining||Number(b.account.id===c)-Number(a.account.id===c)||a.account.id.localeCompare(b.account.id));if(d[0])return{kind:"available",accountId:d[0].account.id};let e=b.filter(a=>"unknown"===a.capacity.kind).sort((a,b)=>Number(b.account.id===c)-Number(a.account.id===c)||a.account.id.localeCompare(b.account.id));if(e[0])return{kind:"available",accountId:e[0].account.id}}let i=h.flatMap(a=>"exhausted"===a.capacity.kind&&null!==a.capacity.resetsAt?[a.capacity.resetsAt]:[]);return{kind:"exhausted",resetsAt:i.length?Math.min(...i):null}}("claude"===a?(0,e.Fn)():(0,d.Sq)(),(0,i.agentRegistry)().quotaObservations(a),b??(0,i.agentRegistry)().engineRouting(a).activeAccountId,c);return"available"===f.kind?{kind:"available",account:m(a,f.accountId)}:f},resolveTranscriptOwner(a,b){let c=(0,i.agentRegistry)().transcriptAccountId(a,b);if(c)if("claude"===a){let b=(0,e.Fn)().find(a=>a.id===c);if(b)return{engine:a,accountId:b.id,kind:b.kind,home:b.home,transcriptRoot:b.projectsDir,env:"managed"===b.kind?(0,e.x0)(b.home):(0,k.Fd)(process.env)}}else{let b=(0,d.Sq)().find(a=>a.id===c);if(b)return{engine:a,accountId:b.id,kind:b.kind,home:b.home,transcriptRoot:b.sessionsDir,env:{...(0,k.Fd)(process.env),CODEX_HOME:b.home}}}if("claude"===a){let c=(0,e.y3)(b);if(!c)return null;let d=(0,e.Fn)().find(a=>a.home===c);return d?{engine:a,accountId:d.id,kind:d.kind,home:c,transcriptRoot:d.projectsDir,env:"managed"===d.kind?(0,e.x0)(c):(0,k.Fd)(process.env)}:null}let f=(0,d.yN)(b);if(!f)return null;let g=(0,d.Sq)().find(a=>a.home===f);return g?{engine:a,accountId:g.id,kind:g.kind,home:f,transcriptRoot:g.sessionsDir,env:{...(0,k.Fd)(process.env),CODEX_HOME:f}}:null}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6909,exports.ids=[6909],exports.modules={56909:(a,b,c)=>{c.d(b,{applyConversationAction:()=>w});var d=c(55883),e=c(50887),f=c(29966),g=c(61899),h=c(2208),i=c(53133),j=c(10456),k=c(31973),l=c(88602),m=c(65862),n=c(873),o=c(96694),p=c(58874);let q=new Set(["interrupt","kill","reconfigure","compact"]);async function r(a,b={}){if(!a.action||!(b.enabled??(()=>(0,f.cM)()))())return null;let c=b.registry??(0,d.tk)(),e=a.path?c.conversationForPath(a.path):a.conversationId.startsWith("conversation_")?c.conversation(a.conversationId):null,s=e?.generations.at(-1);if(!e||!s)return null;let t=c.readOnlySnapshot(),u=t.entries[(0,k.pp)({engine:e.engine,sessionId:s.id})];if(!u)return null;let v="kill"===a.action&&!u.host,w="reconfigure"===a.action&&!u.host&&Object.values(t.receipts).some(a=>"structured"===a.transport&&"completed"===a.state&&c.canonicalConversationId(a.conversationId)===e.id),x="reconfigure"===a.action&&!u.host&&(e.reconfigure?.status==="applying"||w);if(!u.structuredHost&&!v&&!x)return null;if(!q.has(a.action)){if("resume"===a.action){if("dead"===u.status||"unhosted"===u.status)return null;try{if((b.hostProcessAlive??p.structuredHostProcessAlive)(u.structuredHost?.process??null)){if(!await (b.republish??n.A)({engine:e.engine,sessionId:s.id}))return{status:503,body:{error:"structured recovery ownership is unavailable"}};return{status:200,body:{ok:!0,structured:!0,target:e.id,outcome:"resumed",spawned:!1}}}let d=await (b.recover??p.recoverDeadStructuredConversation)({path:a.path||s.path,conversationId:e.id},{registry:c});if(!d)return{status:503,body:{error:"structured recovery ownership is unavailable"}};return{status:200,body:{ok:!0,structured:!0,target:e.id,outcome:"resumed",spawned:d.spawned}}}catch(a){return{status:503,body:{error:a instanceof Error?a.message:String(a)}}}}let d=["dialog-key","kill","reconfigure"].includes(a.action)?a.action:"requested";return{status:409,body:{error:`structured host does not support the ${d} control`}}}if("compact"===a.action){let a=(0,m.s_)(e.engine);if(!a.supported||u.structuredHost?.kind!=="codex-app-server")return{status:409,body:{error:a.reason??`the ${e.engine} structured host does not expose a compact control`,code:"unsupported-capability",capability:a}}}if(v&&!u.structuredHost?.process&&("dead"===u.status||"unhosted"===u.status))return{status:200,body:{ok:!0,structured:!0,target:e.id,outcome:"delivered"}};let y=void 0===b.client?(0,l.sS)():b.client;if(!y)return{status:503,body:{error:"structured runtime host is unavailable"}};let z=a.operationId??(b.operationId??m.Lu)();try{let c="reconfigure"===a.action?function(a,b){let c="string"==typeof b.model?b.model.trim():"",d="claude"===a?(0,h.OV)(c):(0,h.g9)(c)?c:null,e=h.cC[a].some(a=>a.id===d);if(!d||!e)return{error:`model is not supported by ${a}`};let f="string"==typeof b.effort?b.effort.trim():"";if(!(0,g.ve)(a,d)?.includes(f))return{error:`effort is not supported by ${a} model ${d}`};if("claude"===a&&void 0!==b.fast&&null!==b.fast)return{error:"speed is only supported by codex"};if("codex"===a&&"boolean"!=typeof b.fast)return{error:"speed must be selected for codex"};let i=void 0===b.accountId||null===b.accountId||""===b.accountId?void 0:"string"==typeof b.accountId?b.accountId.trim():"";return void 0===i||/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/.test(i)?{value:{model:d,effort:f,fast:"codex"===a?b.fast:null,...i?{accountId:i}:{}}}:{error:"account is invalid"}}(e.engine,a.reconfiguration??{}):null;if(c&&!c.value)return{status:400,body:{error:c.error??"invalid configuration"}};if(c?.value?.accountId&&!(b.accountExists??((a,b)=>("claude"===a?(0,i.Fn)():(0,j.Sq)()).some(a=>a.id===b)))(e.engine,c.value.accountId))return{status:400,body:{error:`account is not available for ${e.engine}`}};let d={engine:e.engine,sessionId:s.id},f="kill"===a.action?{kind:"kill",operationId:z,idempotencyKey:z,conversationId:e.id,sessionKey:d}:"compact"===a.action?{kind:"compact",operationId:z,idempotencyKey:z,conversationId:e.id,sessionKey:d}:"reconfigure"===a.action?{kind:"reconfigure",operationId:z,idempotencyKey:z,conversationId:e.id,sessionKey:d,...c.value,previousProfile:{model:s.launchProfile.model,effort:s.launchProfile.effort,fast:s.launchProfile.fast}}:{kind:"interrupt",operationId:z,idempotencyKey:z,conversationId:e.id,turnId:u.structuredHost?.activeTurnRef??null},k=await y.command(f);return(b.kick??o.l)(),{status:"delivered"===k.receipt.status?200:202,body:{ok:!0,structured:!0,target:e.id,operationId:z,receipt:k.receipt}}}catch(c){if(("kill"===a.action||"reconfigure"===a.action||"compact"===a.action)&&(0,l.o7)(c)){let a=await y.operationStatus(z).catch(()=>null);if(a)return(b.kick??o.l)(),{status:"delivered"===a.receipt.status?200:202,body:{ok:!0,structured:!0,target:e.id,operationId:a.operationId,receipt:a.receipt}}}return{status:503,body:{error:c instanceof Error?c.message:String(c)}}}}let s=["interrupt","kill","resume","compact","dialog-key"],t={registry:d.tk,structuredEnabled:()=>(0,f.cM)(),dispatchStructuredControl:r,interruptConversation:e.F5,killConversation:e.yv,resumeConversation:e.X$,compactConversation:e.LJ,answerDialogKey:e.m3};function u(a,b){return{status:b,body:{error:a}}}function v(a){if(a.ok)return{status:200,body:a};let{status:b,...c}=a;return{status:b,body:c}}async function w(a,b=t){if(!s.includes(a.action))return u("unsupported conversation action",400);if(a.conversationId&&!a.conversationId.startsWith("conversation_"))return u("invalid conversation id",400);let c=b.registry(),d=a.conversationId?c.conversation(a.conversationId):null,e=a.transcriptPath?c.conversationForPath(a.transcriptPath):null;if(a.conversationId&&!d)return u("viewer conversation is unknown",404);if(d&&a.transcriptPath&&(!new Set([...d.generations.map(a=>a.path),...d.continuityPaths]).has(a.transcriptPath)||e?.id!==d.id))return u("conversation identity does not own transcript path",409);let f=d??e,g=d?.generations.at(-1)?.path??a.transcriptPath;if(b.structuredEnabled()){let c=await b.dispatchStructuredControl({path:g,conversationId:f?.id??a.conversationId,action:a.action,operationId:a.operationId});if(c)return c}if(!g)return u("conversationId or transcriptPath is required",400);if("interrupt"===a.action)return v(await b.interruptConversation(g));if("kill"===a.action){let a=await b.killConversation(g);return a.ok&&!a.target?v({ok:!1,outcome:"failed",error:"kill resolved no registered pane",status:409}):v(a)}return"resume"===a.action?v(await b.resumeConversation(g)):"compact"===a.action?v(await b.compactConversation(g)):v(await b.answerDialogKey(g,a.key??"",a.label,a.question))}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6977,exports.ids=[6977],exports.modules={15408:(a,b,c)=>{c.d(b,{$p:()=>t,Cp:()=>v,HS:()=>s,Kp:()=>x,ho:()=>u,js:()=>w,ut:()=>m});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(89940);let l=()=>(0,j.BQ)("orchestrator-seats.json");function m(a){return(0,k.G$)(a.trim())}function n(){return{schemaVersion:1,nextSeatEpoch:1,seats:{},pending:{},revocations:[],history:[]}}function o(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.project||!a.project||"number"!=typeof a.seatEpoch||!Number.isInteger(a.seatEpoch)||a.seatEpoch<1||null!==a.conversationId&&"string"!=typeof a.conversationId||null!==a.path&&"string"!=typeof a.path||"string"!=typeof a.mandate||"pending"!==a.state&&"active"!==a.state)return null;let b=a.intent;return b&&"string"==typeof b.clientRequestId&&b.clientRequestId&&("spawn"===b.mode||"existing"===b.mode)&&"string"==typeof a.designatedAt&&(null===a.activatedAt||"string"==typeof a.activatedAt)?{project:a.project,seatEpoch:a.seatEpoch,conversationId:a.conversationId??null,path:a.path??null,mandate:a.mandate,promptVersion:"number"==typeof a.promptVersion&&Number.isInteger(a.promptVersion)?a.promptVersion:null,predecessorConversationId:"string"==typeof a.predecessorConversationId?a.predecessorConversationId:null,state:a.state,intent:{clientRequestId:b.clientRequestId,mode:b.mode,launchId:"string"==typeof b.launchId?b.launchId:null,error:"string"==typeof b.error?b.error:null},designatedAt:a.designatedAt,activatedAt:a.activatedAt??null}:null}function p(a,b){let c=a[b.project];(!c||b.seatEpoch>c.seatEpoch)&&(a[b.project]=b)}function q(){let a;try{a=g().readFileSync(l(),"utf8")}catch{return n()}try{let b=JSON.parse(a);if(1!==b.schemaVersion)return n();let c=n();for(let[a,d]of(c.nextSeatEpoch="number"==typeof b.nextSeatEpoch&&Number.isInteger(b.nextSeatEpoch)&&b.nextSeatEpoch>=1?b.nextSeatEpoch:1,Object.entries(b.seats??{}))){let b=o(d);b&&b.project===a&&"active"===b.state&&b.conversationId&&p(c.seats,{...b,project:m(a)})}for(let[a,d]of Object.entries(b.pending??{})){let b=o(d);b&&b.project===a&&"pending"===b.state&&p(c.pending,{...b,project:m(a)})}for(let a of Array.isArray(b.revocations)?b.revocations:[])"string"==typeof a.project&&"string"==typeof a.conversationId&&"number"==typeof a.seatEpoch&&Number.isInteger(a.seatEpoch)&&"string"==typeof a.revokedAt&&c.revocations.push({project:m(a.project),conversationId:a.conversationId,seatEpoch:a.seatEpoch,revokedAt:a.revokedAt,successorConversationId:"string"==typeof a.successorConversationId?a.successorConversationId:null});for(let a of Array.isArray(b.history)?b.history:[]){let b=o(a.seat);b&&("terminal_error"===a.reason||"superseded_epoch"===a.reason)&&"string"==typeof a.terminalizedAt&&c.history.push({seat:{...b,project:m(b.project)},reason:a.reason,terminalizedAt:a.terminalizedAt})}let d=Math.max(0,...Object.values(c.seats).map(a=>a.seatEpoch),...Object.values(c.pending).map(a=>a.seatEpoch),...c.revocations.map(a=>a.seatEpoch),...c.history.map(a=>a.seat.seatEpoch));return c.nextSeatEpoch<=d&&(c.nextSeatEpoch=d+1),c}catch{return n()}}function r(a){var b;let c;b=l(),g().mkdirSync(i().dirname(b),{recursive:!0}),c=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`),g().writeFileSync(c,JSON.stringify(a,null,2)+"\n","utf8"),g().renameSync(c,b)}function s(a){let b=q(),c=m(a);return{active:b.seats[c]??null,pending:b.pending[c]??null,history:b.history.filter(a=>a.seat.project===c)}}function t(a){let b,c=q(),d=m(a.project),e=c.seats[d];if(e&&e.intent.clientRequestId===a.clientRequestId)return{kind:"completed",seat:e};let f=c.pending[d];if(f&&f.intent.clientRequestId===a.clientRequestId)return{kind:"replay",seat:f};if(f){if(!(null!==f.intent.error||void 0!==e&&f.seatEpoch<e.seatEpoch))return{kind:"in_progress",seat:f};b={seat:f,reason:null!==f.intent.error?"terminal_error":"superseded_epoch",terminalizedAt:a.now??new Date().toISOString()},c.history.push(b),c.history.length>50&&c.history.splice(0,c.history.length-50),delete c.pending[d]}let g={project:d,seatEpoch:c.nextSeatEpoch,conversationId:a.conversationId??null,path:null,mandate:a.mandate,promptVersion:a.promptVersion??null,predecessorConversationId:null,state:"pending",intent:{clientRequestId:a.clientRequestId,mode:a.mode,launchId:null,error:null},designatedAt:a.now??new Date().toISOString(),activatedAt:null};return c.nextSeatEpoch+=1,c.pending[d]=g,r(c),{kind:"begun",seat:g,...b?{terminalized:b}:{}}}function u(a){let b=q(),c=m(a.project),d=b.seats[c];if(d&&d.intent.clientRequestId===a.clientRequestId)return{kind:"replay",seat:d};let e=b.pending[c];if(!e||e.intent.clientRequestId!==a.clientRequestId)return{kind:"missing"};let f=a.now??new Date().toISOString(),g=null;d&&d.conversationId&&d.conversationId!==a.conversationId&&(g={project:c,conversationId:d.conversationId,seatEpoch:d.seatEpoch,revokedAt:f,successorConversationId:a.conversationId},b.revocations.push(g));let h={...e,conversationId:a.conversationId,path:a.path,predecessorConversationId:g?.conversationId??e.predecessorConversationId,state:"active",intent:{...e.intent,launchId:a.launchId??e.intent.launchId,error:null},activatedAt:f};return delete b.pending[c],b.seats[c]=h,r(b),{kind:"activated",seat:h,revoked:g}}function v(a,b,c){let d=q(),e=m(a),f=d.pending[e];f&&f.intent.clientRequestId===b&&(f.intent.error=c.slice(0,500),r(d))}function w(){return Object.values(q().seats)}function x(){return q().revocations}},33302:(a,b,c)=>{c.d(b,{Tj:()=>l,mn:()=>j});var d=c(77598),e=c.n(d),f=c(29733),g=c(4012);let h=/^[A-Za-z0-9_-]{43}$/;function i(a){let b,c=a.headers.get(g.VIEWER_SPAWN_CAPABILITY_HEADER)?.trim()??"";return c&&h.test(c)?(b=e().createHash("sha256").update(c).digest("hex"),(0,f.agentRegistry)().conversationIdForSpawnCapabilityDigest(b)):null}function j(a){return null===i(a)}let k={ok:!1,status:403,error:"this is an operator-only action; an agent may not perform it, whatever role it holds"};function l(a){return i(a)?k:{ok:!0}}},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})}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=7126,exports.ids=[1888,7126,9507],exports.modules={51888:(a,b,c)=>{c.d(b,{JL:()=>h,OV:()=>l,RC:()=>j,cC:()=>i,fC:()=>e,g9:()=>m,je:()=>d,wi:()=>n});let d="gpt-5.6-sol",e="gpt-5.6-terra",f="gpt-5.6-luna",g=new Set([d,e,f,"gpt-5.5","gpt-5.4","gpt-5.4-mini"]);function h(a){return!a?.trim()||g.has(a.trim())}let i={claude:[{id:"opus",label:"Opus 5",shortLabel:"Opus 5",use:"review"},{id:"fable",label:"Fable",shortLabel:"Fable",use:"general"},{id:"sonnet",label:"Sonnet",shortLabel:"Sonnet",use:"implement"},{id:"haiku",label:"Haiku",shortLabel:"Haiku",use:"general"}],codex:[{id:d,label:"GPT-5.6-Sol",shortLabel:"5.6-Sol",use:"review"},{id:e,label:"GPT-5.6-Terra",shortLabel:"5.6-Terra",use:"implement"},{id:f,label:"GPT-5.6-Luna",shortLabel:"5.6-Luna",use:"general"}]};function j(a,b){let c=b.trim(),d=i[a].map(a=>a.id);return d.includes(c)?{model:c}:{error:`invalid ${a} model id ${JSON.stringify(c)}; valid ${a} model ids: ${d.join(", ")}`}}let k=["fable","opus","sonnet","haiku"];function l(a){if("string"!=typeof a)return null;let b=a.trim().toLowerCase();if(!b||b.length>128||/[\u0000-\u001f\u007f]/.test(b))return null;for(let a of k)if(b===a||RegExp(`(?:^|[-_.])${a}(?:[-_.]|$)`).test(b))return a;return null}function m(a){if("string"!=typeof a)return!1;let b=a.trim();return b.startsWith("gpt-")&&b.length<=128&&!/[\u0000-\u001f\u007f]/.test(b)}function n(a){if(void 0===a.model||null===a.model||""===a.model)return{model:null};if("string"!=typeof a.model)return{model:null,error:"model must be a string"};let b=a.model.trim();return b?b.length>128||/[\u0000-\u001f\u007f]/.test(b)?{model:null,error:"model must be a printable id up to 128 characters"}:{model:b}:{model:null}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=7159,exports.ids=[1888,7126,7159,9507],exports.modules={25682:(a,b,c)=>{c.d(b,{hotStateMigrationApplied:()=>j,hotStateMigrationDryRun:()=>k});var d=c(27146),e=c(98817),f=c(3916),g=c(14928),h=c(96796);function i(a,b){let c=new Set;for(let d of b.keys){if(!d||c.has(d))throw Error(`duplicate or empty ${a} migration key: ${d}`);c.add(d)}return b}function j(){return(0,g.bG)((0,d.BQ)("state.sqlite"),[(0,e.flowStateCollectionSeed)(),...(0,f.pipelineStateCollectionSeeds)(),(0,h.workflowStateCollectionSeed)()])}function k(){let a=(0,f.planPipelineStateMigration)();return{flows:i("flows",(0,e.planFlowStateMigration)()),pipelines:i("pipelines",a.pipelines),pipelinesArchive:i("pipelines_archive",a.archive),workflows:i("workflows",(0,h.planWorkflowStateMigration)())}}},51888:(a,b,c)=>{c.d(b,{JL:()=>h,OV:()=>l,RC:()=>j,cC:()=>i,fC:()=>e,g9:()=>m,je:()=>d,wi:()=>n});let d="gpt-5.6-sol",e="gpt-5.6-terra",f="gpt-5.6-luna",g=new Set([d,e,f,"gpt-5.5","gpt-5.4","gpt-5.4-mini"]);function h(a){return!a?.trim()||g.has(a.trim())}let i={claude:[{id:"opus",label:"Opus 5",shortLabel:"Opus 5",use:"review"},{id:"fable",label:"Fable",shortLabel:"Fable",use:"general"},{id:"sonnet",label:"Sonnet",shortLabel:"Sonnet",use:"implement"},{id:"haiku",label:"Haiku",shortLabel:"Haiku",use:"general"}],codex:[{id:d,label:"GPT-5.6-Sol",shortLabel:"5.6-Sol",use:"review"},{id:e,label:"GPT-5.6-Terra",shortLabel:"5.6-Terra",use:"implement"},{id:f,label:"GPT-5.6-Luna",shortLabel:"5.6-Luna",use:"general"}]};function j(a,b){let c=b.trim(),d=i[a].map(a=>a.id);return d.includes(c)?{model:c}:{error:`invalid ${a} model id ${JSON.stringify(c)}; valid ${a} model ids: ${d.join(", ")}`}}let k=["fable","opus","sonnet","haiku"];function l(a){if("string"!=typeof a)return null;let b=a.trim().toLowerCase();if(!b||b.length>128||/[\u0000-\u001f\u007f]/.test(b))return null;for(let a of k)if(b===a||RegExp(`(?:^|[-_.])${a}(?:[-_.]|$)`).test(b))return a;return null}function m(a){if("string"!=typeof a)return!1;let b=a.trim();return b.startsWith("gpt-")&&b.length<=128&&!/[\u0000-\u001f\u007f]/.test(b)}function n(a){if(void 0===a.model||null===a.model||""===a.model)return{model:null};if("string"!=typeof a.model)return{model:null,error:"model must be a string"};let b=a.model.trim();return b?b.length>128||/[\u0000-\u001f\u007f]/.test(b)?{model:null,error:"model must be a printable id up to 128 characters"}:{model:b}:{model:null}}}};