agent-log-viewer 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (635) hide show
  1. package/bin/cli.mjs +4 -0
  2. package/bin/server-runtime.test.ts +63 -12
  3. package/dist/mcp-server.mjs +31365 -26173
  4. package/dist/runtime-host.mjs +15618 -7081
  5. package/dist/standalone/.next/BUILD_ID +1 -1
  6. package/dist/standalone/.next/app-path-routes-manifest.json +21 -16
  7. package/dist/standalone/.next/build-manifest.json +3 -3
  8. package/dist/standalone/.next/prerender-manifest.json +4 -4
  9. package/dist/standalone/.next/react-loadable-manifest.json +1 -1
  10. package/dist/standalone/.next/required-server-files.json +1 -1
  11. package/dist/standalone/.next/routes-manifest.json +30 -0
  12. package/dist/standalone/.next/server/account-migration-controller-worker.js +1 -1
  13. package/dist/standalone/.next/server/app/_global-error/page.js +2 -2
  14. package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  15. package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  16. package/dist/standalone/.next/server/app/_global-error.html +1 -1
  17. package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
  18. package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  19. package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  20. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  21. package/dist/standalone/.next/server/app/_not-found/page.js +1 -1
  22. package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  23. package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  24. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  25. package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
  26. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  27. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  28. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  29. package/dist/standalone/.next/server/app/api/access/route.js +1 -1
  30. package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
  31. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
  32. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
  33. package/dist/standalone/.next/server/app/api/account-project-bindings/route.js +1 -1
  34. package/dist/standalone/.next/server/app/api/account-project-bindings/route.js.nft.json +1 -1
  35. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +1 -1
  36. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -1
  37. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js +1 -1
  38. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -1
  39. package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js +1 -1
  40. package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js.nft.json +1 -1
  41. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js +1 -1
  42. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -1
  43. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js +1 -1
  44. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -1
  45. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js +1 -1
  46. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -1
  47. package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -1
  48. package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -1
  49. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js +1 -1
  50. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -1
  51. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js +1 -1
  52. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -1
  53. package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js +1 -1
  54. package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js.nft.json +1 -1
  55. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js +1 -1
  56. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
  57. package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js +2 -2
  58. package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js.nft.json +1 -1
  59. package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
  60. package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
  61. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +1 -1
  62. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -1
  63. package/dist/standalone/.next/server/app/api/accounts/route.js +1 -1
  64. package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -1
  65. package/dist/standalone/.next/server/app/api/agent/route.js +1 -1
  66. package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
  67. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -1
  68. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -1
  69. package/dist/standalone/.next/server/app/api/answer/route.js +1 -2
  70. package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
  71. package/dist/standalone/.next/server/app/api/artifact/route.js +1 -1
  72. package/dist/standalone/.next/server/app/api/artifact/route.js.nft.json +1 -1
  73. package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -1
  74. package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -1
  75. package/dist/standalone/.next/server/app/api/attention/[id]/route.js +1 -1
  76. package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -1
  77. package/dist/standalone/.next/server/app/api/attention/route.js +1 -1
  78. package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -1
  79. package/dist/standalone/.next/server/app/api/board/route.js +1 -1
  80. package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -1
  81. package/dist/standalone/.next/server/app/api/bridge/route.js +1 -2
  82. package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
  83. package/dist/standalone/.next/server/app/api/conversation-host/route.js +1 -1
  84. package/dist/standalone/.next/server/app/api/conversation-host/route.js.nft.json +1 -1
  85. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js +1 -1
  86. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js.nft.json +1 -1
  87. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
  88. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
  89. package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
  90. package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
  91. package/dist/standalone/.next/server/app/api/files/route.js +3 -2
  92. package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  93. package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
  94. package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
  95. package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
  96. package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
  97. package/dist/standalone/.next/server/app/api/image/route.js +1 -1
  98. package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
  99. package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
  100. package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  101. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
  102. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
  103. package/dist/standalone/.next/server/app/api/limits/history/route.js +1 -1
  104. package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -1
  105. package/dist/standalone/.next/server/app/api/limits/route.js +1 -1
  106. package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
  107. package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -1
  108. package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -1
  109. package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -1
  110. package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -1
  111. package/dist/standalone/.next/server/app/api/log/provenance/route.js +107 -1
  112. package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -1
  113. package/dist/standalone/.next/server/app/api/log/route.js +1 -1
  114. package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
  115. package/dist/standalone/.next/server/app/api/log/suggestions/route.js +2 -4
  116. package/dist/standalone/.next/server/app/api/log/suggestions/route.js.nft.json +1 -1
  117. package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
  118. package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  119. package/dist/standalone/.next/server/app/api/logs/stream/route.js +2 -2
  120. package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  121. package/dist/standalone/.next/server/app/api/monitor/runs/route.js +3 -3
  122. package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
  123. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js +25 -0
  124. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js.nft.json +1 -0
  125. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route_client-reference-manifest.js +1 -0
  126. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js +2 -0
  127. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js.nft.json +1 -0
  128. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route_client-reference-manifest.js +1 -0
  129. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
  130. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
  131. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
  132. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
  133. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +2 -2
  134. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -1
  135. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -1
  136. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -1
  137. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js +1 -1
  138. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -1
  139. package/dist/standalone/.next/server/app/api/pipelines/route.js +1 -2
  140. package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
  141. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +2 -2
  142. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
  143. package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
  144. package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
  145. package/dist/standalone/.next/server/app/api/projects/create/route.js +2 -2
  146. package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -1
  147. package/dist/standalone/.next/server/app/api/projects/crown/route.js +1 -1
  148. package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -1
  149. package/dist/standalone/.next/server/app/api/projects/directories/route.js +1 -1
  150. package/dist/standalone/.next/server/app/api/projects/directories/route.js.nft.json +1 -1
  151. package/dist/standalone/.next/server/app/api/push/route.js +2 -2
  152. package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
  153. package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
  154. package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
  155. package/dist/standalone/.next/server/app/api/roles/route.js +2 -2
  156. package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
  157. package/dist/standalone/.next/server/app/api/runtime/answer/route.js +1 -1
  158. package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -1
  159. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js +1 -1
  160. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -1
  161. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js +1 -1
  162. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -1
  163. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js +1 -1
  164. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -1
  165. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js +1 -1
  166. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js.nft.json +1 -1
  167. package/dist/standalone/.next/server/app/api/runtime/inject/route.js +1 -0
  168. package/dist/standalone/.next/server/app/api/runtime/inject/route.js.nft.json +1 -0
  169. package/dist/standalone/.next/server/app/api/runtime/inject/route_client-reference-manifest.js +1 -0
  170. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +1 -1
  171. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -1
  172. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +1 -1
  173. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
  174. package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -1
  175. package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
  176. package/dist/standalone/.next/server/app/api/runtime/queue/route.js +1 -0
  177. package/dist/standalone/.next/server/app/api/runtime/queue/route.js.nft.json +1 -0
  178. package/dist/standalone/.next/server/app/api/runtime/queue/route_client-reference-manifest.js +1 -0
  179. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +1 -2
  180. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
  181. package/dist/standalone/.next/server/app/api/runtime/send/route.js +1 -1
  182. package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -1
  183. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js +1 -1
  184. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -1
  185. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +1 -1
  186. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -1
  187. package/dist/standalone/.next/server/app/api/runtime/steer/route.js +1 -1
  188. package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -1
  189. package/dist/standalone/.next/server/app/api/runtime/stream/route.js +2 -2
  190. package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -1
  191. package/dist/standalone/.next/server/app/api/search/transcripts/route.js +2 -2
  192. package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -1
  193. package/dist/standalone/.next/server/app/api/session/route.js +1 -1
  194. package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  195. package/dist/standalone/.next/server/app/api/session/supersedence/route.js +1 -1
  196. package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -1
  197. package/dist/standalone/.next/server/app/api/session/title/route.js +1 -1
  198. package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -1
  199. package/dist/standalone/.next/server/app/api/spawn/policy/route.js +3 -3
  200. package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -1
  201. package/dist/standalone/.next/server/app/api/spawn/route.js +1 -2
  202. package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
  203. package/dist/standalone/.next/server/app/api/spawn/validate/route.js +1 -0
  204. package/dist/standalone/.next/server/app/api/spawn/validate/route.js.nft.json +1 -0
  205. package/dist/standalone/.next/server/app/api/spawn/validate/route_client-reference-manifest.js +1 -0
  206. package/dist/standalone/.next/server/app/api/staging/route.js +2 -2
  207. package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
  208. package/dist/standalone/.next/server/app/api/task-attachments/route.js +2 -2
  209. package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
  210. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
  211. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
  212. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  213. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  214. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +1 -2
  215. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
  216. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +1 -2
  217. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
  218. package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
  219. package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
  220. package/dist/standalone/.next/server/app/api/tasks/route.js +1 -1
  221. package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  222. package/dist/standalone/.next/server/app/api/telegram/reports/route.js +1 -1
  223. package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -1
  224. package/dist/standalone/.next/server/app/api/telegram/route.js +1 -1
  225. package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -1
  226. package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
  227. package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
  228. package/dist/standalone/.next/server/app/api/tmux/route.js +1 -1
  229. package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
  230. package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
  231. package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
  232. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js +2 -2
  233. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
  234. package/dist/standalone/.next/server/app/api/transcribe/route.js +2 -2
  235. package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
  236. package/dist/standalone/.next/server/app/api/transcribe/token/route.js +2 -2
  237. package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
  238. package/dist/standalone/.next/server/app/api/tts/backend/route.js +1 -1
  239. package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -1
  240. package/dist/standalone/.next/server/app/api/tts/route.js +3 -3
  241. package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -1
  242. package/dist/standalone/.next/server/app/api/view/presence/route.js +1 -1
  243. package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -1
  244. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
  245. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
  246. package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
  247. package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  248. package/dist/standalone/.next/server/app/favicon.ico/route.js +1 -1
  249. package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  250. package/dist/standalone/.next/server/app/index.html +1 -1
  251. package/dist/standalone/.next/server/app/index.rsc +3 -3
  252. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  253. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  254. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  255. package/dist/standalone/.next/server/app/page.js +59 -30
  256. package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
  257. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  258. package/dist/standalone/.next/server/app-paths-manifest.json +21 -16
  259. package/dist/standalone/.next/server/chunks/107.js +1 -1
  260. package/dist/standalone/.next/server/chunks/1100.js +29 -10
  261. package/dist/standalone/.next/server/chunks/1406.js +399 -0
  262. package/dist/standalone/.next/server/chunks/1585.js +108 -0
  263. package/dist/standalone/.next/server/chunks/160.js +4 -4
  264. package/dist/standalone/.next/server/chunks/1617.js +2 -2
  265. package/dist/standalone/.next/server/chunks/1849.js +1 -0
  266. package/dist/standalone/.next/server/chunks/1888.js +1 -1
  267. package/dist/standalone/.next/server/chunks/193.js +1 -0
  268. package/dist/standalone/.next/server/chunks/1952.js +1 -0
  269. package/dist/standalone/.next/server/chunks/2549.js +1 -1
  270. package/dist/standalone/.next/server/chunks/2555.js +1 -0
  271. package/dist/standalone/.next/server/chunks/2647.js +1 -1
  272. package/dist/standalone/.next/server/chunks/2857.js +1 -0
  273. package/dist/standalone/.next/server/chunks/2914.js +24 -0
  274. package/dist/standalone/.next/server/chunks/3034.js +1 -0
  275. package/dist/standalone/.next/server/chunks/3086.js +1 -1
  276. package/dist/standalone/.next/server/chunks/3131.js +1 -0
  277. package/dist/standalone/.next/server/chunks/3214.js +1 -1
  278. package/dist/standalone/.next/server/chunks/3302.js +1 -2
  279. package/dist/standalone/.next/server/chunks/3407.js +1 -0
  280. package/dist/standalone/.next/server/chunks/3422.js +1 -0
  281. package/dist/standalone/.next/server/chunks/3558.js +1 -0
  282. package/dist/standalone/.next/server/chunks/3570.js +81 -0
  283. package/dist/standalone/.next/server/chunks/3587.js +1 -1
  284. package/dist/standalone/.next/server/chunks/3743.js +74 -24
  285. package/dist/standalone/.next/server/chunks/3830.js +1 -1
  286. package/dist/standalone/.next/server/chunks/3896.js +1 -0
  287. package/dist/standalone/.next/server/chunks/4127.js +1 -1
  288. package/dist/standalone/.next/server/chunks/4509.js +1 -1
  289. package/dist/standalone/.next/server/chunks/4637.js +62 -0
  290. package/dist/standalone/.next/server/chunks/4651.js +1 -1
  291. package/dist/standalone/.next/server/chunks/4783.js +1 -0
  292. package/dist/standalone/.next/server/chunks/480.js +126 -0
  293. package/dist/standalone/.next/server/chunks/4972.js +3 -3
  294. package/dist/standalone/.next/server/chunks/{4756.js → 4995.js} +3 -5
  295. package/dist/standalone/.next/server/chunks/5480.js +1 -1
  296. package/dist/standalone/.next/server/chunks/5545.js +1 -1
  297. package/dist/standalone/.next/server/chunks/568.js +1 -2
  298. package/dist/standalone/.next/server/chunks/5682.js +1 -0
  299. package/dist/standalone/.next/server/chunks/5771.js +1 -0
  300. package/dist/standalone/.next/server/chunks/5847.js +1 -0
  301. package/dist/standalone/.next/server/chunks/6023.js +1 -0
  302. package/dist/standalone/.next/server/chunks/6277.js +81 -0
  303. package/dist/standalone/.next/server/chunks/6289.js +2 -0
  304. package/dist/standalone/.next/server/chunks/644.js +81 -0
  305. package/dist/standalone/.next/server/chunks/6453.js +1 -0
  306. package/dist/standalone/.next/server/chunks/6522.js +1 -0
  307. package/dist/standalone/.next/server/chunks/6665.js +1 -1
  308. package/dist/standalone/.next/server/chunks/6809.js +3 -0
  309. package/dist/standalone/.next/server/chunks/6826.js +1 -1
  310. package/dist/standalone/.next/server/chunks/6926.js +1 -1
  311. package/dist/standalone/.next/server/chunks/{1920.js → 6942.js} +1 -1
  312. package/dist/standalone/.next/server/chunks/6978.js +1 -0
  313. package/dist/standalone/.next/server/chunks/7008.js +114 -9
  314. package/dist/standalone/.next/server/chunks/7192.js +1 -0
  315. package/dist/standalone/.next/server/chunks/7238.js +2 -0
  316. package/dist/standalone/.next/server/chunks/7361.js +22 -0
  317. package/dist/standalone/.next/server/chunks/7644.js +3 -3
  318. package/dist/standalone/.next/server/chunks/7722.js +1 -1
  319. package/dist/standalone/.next/server/chunks/781.js +55 -0
  320. package/dist/standalone/.next/server/chunks/7826.js +62 -0
  321. package/dist/standalone/.next/server/chunks/8027.js +11 -1
  322. package/dist/standalone/.next/server/chunks/8444.js +1 -1
  323. package/dist/standalone/.next/server/chunks/8512.js +1 -0
  324. package/dist/standalone/.next/server/chunks/8513.js +2 -0
  325. package/dist/standalone/.next/server/chunks/8617.js +1 -1
  326. package/dist/standalone/.next/server/chunks/8817.js +1 -1
  327. package/dist/standalone/.next/server/chunks/8991.js +1 -1
  328. package/dist/standalone/.next/server/chunks/8996.js +1 -1
  329. package/dist/standalone/.next/server/chunks/9296.js +104 -0
  330. package/dist/standalone/.next/server/chunks/{7139.js → 9298.js} +2 -2
  331. package/dist/standalone/.next/server/chunks/9307.js +1 -1
  332. package/dist/standalone/.next/server/chunks/9360.js +197 -0
  333. package/dist/standalone/.next/server/chunks/9403.js +1 -1
  334. package/dist/standalone/.next/server/chunks/9517.js +1 -1
  335. package/dist/standalone/.next/server/chunks/9554.js +47 -0
  336. package/dist/standalone/.next/server/chunks/9676.js +1 -62
  337. package/dist/standalone/.next/server/chunks/9822.js +11 -1
  338. package/dist/standalone/.next/server/chunks/9901.js +1 -62
  339. package/dist/standalone/.next/server/chunks/9940.js +3 -3
  340. package/dist/standalone/.next/server/chunks/9998.js +1 -1
  341. package/dist/standalone/.next/server/file-scanner-worker.js +3 -3
  342. package/dist/standalone/.next/server/files-response-worker.js +6 -6
  343. package/dist/standalone/.next/server/functions-config-manifest.json +5 -0
  344. package/dist/standalone/.next/server/instrumentation.js +1 -1
  345. package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
  346. package/dist/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  347. package/dist/standalone/.next/server/middleware.js +4 -4
  348. package/dist/standalone/.next/server/pages/404.html +1 -1
  349. package/dist/standalone/.next/server/pages/500.html +1 -1
  350. package/dist/standalone/.next/server/resource-collector-worker.js +1 -1
  351. package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
  352. package/dist/standalone/.next/server/wakatime-sync-worker.js +2 -2
  353. package/dist/standalone/.next/static/chunks/{3794-d1854fdd0e41dc44.js → 3794-0ef35fddac53cd9a.js} +1 -1
  354. package/dist/standalone/.next/static/chunks/6976-016b6947195a6ed2.js +1 -0
  355. package/dist/standalone/.next/static/chunks/app/_global-error/page-60a25d1c4cbf0128.js +1 -0
  356. package/dist/standalone/.next/static/chunks/app/api/access/route-60a25d1c4cbf0128.js +1 -0
  357. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-60a25d1c4cbf0128.js +1 -0
  358. package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-60a25d1c4cbf0128.js +1 -0
  359. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-60a25d1c4cbf0128.js +1 -0
  360. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-60a25d1c4cbf0128.js +1 -0
  361. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-60a25d1c4cbf0128.js +1 -0
  362. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-60a25d1c4cbf0128.js +1 -0
  363. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-60a25d1c4cbf0128.js +1 -0
  364. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-60a25d1c4cbf0128.js +1 -0
  365. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-60a25d1c4cbf0128.js +1 -0
  366. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-60a25d1c4cbf0128.js +1 -0
  367. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-60a25d1c4cbf0128.js +1 -0
  368. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-60a25d1c4cbf0128.js +1 -0
  369. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-60a25d1c4cbf0128.js +1 -0
  370. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-60a25d1c4cbf0128.js +1 -0
  371. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-60a25d1c4cbf0128.js +1 -0
  372. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-60a25d1c4cbf0128.js +1 -0
  373. package/dist/standalone/.next/static/chunks/app/api/accounts/route-60a25d1c4cbf0128.js +1 -0
  374. package/dist/standalone/.next/static/chunks/app/api/agent/route-60a25d1c4cbf0128.js +1 -0
  375. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-60a25d1c4cbf0128.js +1 -0
  376. package/dist/standalone/.next/static/chunks/app/api/answer/route-60a25d1c4cbf0128.js +1 -0
  377. package/dist/standalone/.next/static/chunks/app/api/artifact/route-60a25d1c4cbf0128.js +1 -0
  378. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-60a25d1c4cbf0128.js +1 -0
  379. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-60a25d1c4cbf0128.js +1 -0
  380. package/dist/standalone/.next/static/chunks/app/api/attention/route-60a25d1c4cbf0128.js +1 -0
  381. package/dist/standalone/.next/static/chunks/app/api/board/route-60a25d1c4cbf0128.js +1 -0
  382. package/dist/standalone/.next/static/chunks/app/api/bridge/route-60a25d1c4cbf0128.js +1 -0
  383. package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-60a25d1c4cbf0128.js +1 -0
  384. package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-60a25d1c4cbf0128.js +1 -0
  385. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-60a25d1c4cbf0128.js +1 -0
  386. package/dist/standalone/.next/static/chunks/app/api/conversations/route-60a25d1c4cbf0128.js +1 -0
  387. package/dist/standalone/.next/static/chunks/app/api/files/route-60a25d1c4cbf0128.js +1 -0
  388. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-60a25d1c4cbf0128.js +1 -0
  389. package/dist/standalone/.next/static/chunks/app/api/flows/route-60a25d1c4cbf0128.js +1 -0
  390. package/dist/standalone/.next/static/chunks/app/api/image/route-60a25d1c4cbf0128.js +1 -0
  391. package/dist/standalone/.next/static/chunks/app/api/inbox/route-60a25d1c4cbf0128.js +1 -0
  392. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-60a25d1c4cbf0128.js +1 -0
  393. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-60a25d1c4cbf0128.js +1 -0
  394. package/dist/standalone/.next/static/chunks/app/api/limits/route-60a25d1c4cbf0128.js +1 -0
  395. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-60a25d1c4cbf0128.js +1 -0
  396. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-60a25d1c4cbf0128.js +1 -0
  397. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-60a25d1c4cbf0128.js +1 -0
  398. package/dist/standalone/.next/static/chunks/app/api/log/route-60a25d1c4cbf0128.js +1 -0
  399. package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-60a25d1c4cbf0128.js +1 -0
  400. package/dist/standalone/.next/static/chunks/app/api/logs/route-60a25d1c4cbf0128.js +1 -0
  401. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-60a25d1c4cbf0128.js +1 -0
  402. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-60a25d1c4cbf0128.js +1 -0
  403. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/route-60a25d1c4cbf0128.js +1 -0
  404. package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/settings/route-60a25d1c4cbf0128.js +1 -0
  405. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-60a25d1c4cbf0128.js +1 -0
  406. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-60a25d1c4cbf0128.js +1 -0
  407. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-60a25d1c4cbf0128.js +1 -0
  408. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-60a25d1c4cbf0128.js +1 -0
  409. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-60a25d1c4cbf0128.js +1 -0
  410. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-60a25d1c4cbf0128.js +1 -0
  411. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-60a25d1c4cbf0128.js +1 -0
  412. package/dist/standalone/.next/static/chunks/app/api/proc/route-60a25d1c4cbf0128.js +1 -0
  413. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-60a25d1c4cbf0128.js +1 -0
  414. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-60a25d1c4cbf0128.js +1 -0
  415. package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-60a25d1c4cbf0128.js +1 -0
  416. package/dist/standalone/.next/static/chunks/app/api/push/route-60a25d1c4cbf0128.js +1 -0
  417. package/dist/standalone/.next/static/chunks/app/api/resources/route-60a25d1c4cbf0128.js +1 -0
  418. package/dist/standalone/.next/static/chunks/app/api/roles/route-60a25d1c4cbf0128.js +1 -0
  419. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-60a25d1c4cbf0128.js +1 -0
  420. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-60a25d1c4cbf0128.js +1 -0
  421. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-60a25d1c4cbf0128.js +1 -0
  422. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-60a25d1c4cbf0128.js +1 -0
  423. package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-60a25d1c4cbf0128.js +1 -0
  424. package/dist/standalone/.next/static/chunks/app/api/runtime/inject/route-60a25d1c4cbf0128.js +1 -0
  425. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-60a25d1c4cbf0128.js +1 -0
  426. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-60a25d1c4cbf0128.js +1 -0
  427. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-60a25d1c4cbf0128.js +1 -0
  428. package/dist/standalone/.next/static/chunks/app/api/runtime/queue/route-60a25d1c4cbf0128.js +1 -0
  429. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-60a25d1c4cbf0128.js +1 -0
  430. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-60a25d1c4cbf0128.js +1 -0
  431. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-60a25d1c4cbf0128.js +1 -0
  432. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-60a25d1c4cbf0128.js +1 -0
  433. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-60a25d1c4cbf0128.js +1 -0
  434. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-60a25d1c4cbf0128.js +1 -0
  435. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-60a25d1c4cbf0128.js +1 -0
  436. package/dist/standalone/.next/static/chunks/app/api/session/route-60a25d1c4cbf0128.js +1 -0
  437. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-60a25d1c4cbf0128.js +1 -0
  438. package/dist/standalone/.next/static/chunks/app/api/session/title/route-60a25d1c4cbf0128.js +1 -0
  439. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-60a25d1c4cbf0128.js +1 -0
  440. package/dist/standalone/.next/static/chunks/app/api/spawn/route-60a25d1c4cbf0128.js +1 -0
  441. package/dist/standalone/.next/static/chunks/app/api/spawn/validate/route-60a25d1c4cbf0128.js +1 -0
  442. package/dist/standalone/.next/static/chunks/app/api/staging/route-60a25d1c4cbf0128.js +1 -0
  443. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-60a25d1c4cbf0128.js +1 -0
  444. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-60a25d1c4cbf0128.js +1 -0
  445. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-60a25d1c4cbf0128.js +1 -0
  446. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-60a25d1c4cbf0128.js +1 -0
  447. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-60a25d1c4cbf0128.js +1 -0
  448. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-60a25d1c4cbf0128.js +1 -0
  449. package/dist/standalone/.next/static/chunks/app/api/tasks/route-60a25d1c4cbf0128.js +1 -0
  450. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-60a25d1c4cbf0128.js +1 -0
  451. package/dist/standalone/.next/static/chunks/app/api/telegram/route-60a25d1c4cbf0128.js +1 -0
  452. package/dist/standalone/.next/static/chunks/app/api/timeline/route-60a25d1c4cbf0128.js +1 -0
  453. package/dist/standalone/.next/static/chunks/app/api/tmux/route-60a25d1c4cbf0128.js +1 -0
  454. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-60a25d1c4cbf0128.js +1 -0
  455. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-60a25d1c4cbf0128.js +1 -0
  456. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-60a25d1c4cbf0128.js +1 -0
  457. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-60a25d1c4cbf0128.js +1 -0
  458. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-60a25d1c4cbf0128.js +1 -0
  459. package/dist/standalone/.next/static/chunks/app/api/tts/route-60a25d1c4cbf0128.js +1 -0
  460. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-60a25d1c4cbf0128.js +1 -0
  461. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-60a25d1c4cbf0128.js +1 -0
  462. package/dist/standalone/.next/static/chunks/app/api/workflows/route-60a25d1c4cbf0128.js +1 -0
  463. package/dist/standalone/.next/static/chunks/app/page-16384e540b4c0a90.js +125 -0
  464. package/dist/standalone/.next/static/chunks/{main-8691b7dc3557ef3f.js → main-7e65147ff5ce0866.js} +1 -1
  465. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-60a25d1c4cbf0128.js +1 -0
  466. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-60a25d1c4cbf0128.js +1 -0
  467. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-60a25d1c4cbf0128.js +1 -0
  468. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-60a25d1c4cbf0128.js +1 -0
  469. package/dist/standalone/.next/static/css/496211a19557b7ee.css +1 -0
  470. package/dist/standalone/.next/static/e4qE_aCE0s0KQnnU6IWRw/_buildManifest.js +1 -0
  471. package/dist/standalone/AGENTS.md +20 -0
  472. package/dist/standalone/node_modules/@next/env/package.json +1 -1
  473. package/dist/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  474. package/dist/standalone/node_modules/next/dist/build/webpack-config.js +3 -3
  475. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +1 -1
  476. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +1 -1
  477. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +1 -1
  478. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +1 -1
  479. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +1 -1
  480. package/dist/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +5 -5
  481. package/dist/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +5 -5
  482. package/dist/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  483. package/dist/standalone/node_modules/next/dist/server/config.js +1 -1
  484. package/dist/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  485. package/dist/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  486. package/dist/standalone/node_modules/next/dist/server/image-optimizer.js +2 -2
  487. package/dist/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  488. package/dist/standalone/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +17 -4
  489. package/dist/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  490. package/dist/standalone/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +1 -1
  491. package/dist/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  492. package/dist/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  493. package/dist/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  494. package/dist/standalone/node_modules/next/package.json +10 -10
  495. package/dist/standalone/package.json +5 -5
  496. package/dist/standalone/server.bun.js +1 -1
  497. package/dist/standalone/src/lib/viewerInstrumentation.ts +809 -0
  498. package/package.json +5 -5
  499. package/dist/standalone/.next/server/chunks/112.js +0 -1
  500. package/dist/standalone/.next/server/chunks/2190.js +0 -1
  501. package/dist/standalone/.next/server/chunks/2318.js +0 -2
  502. package/dist/standalone/.next/server/chunks/2371.js +0 -1
  503. package/dist/standalone/.next/server/chunks/2500.js +0 -55
  504. package/dist/standalone/.next/server/chunks/2799.js +0 -1
  505. package/dist/standalone/.next/server/chunks/2870.js +0 -104
  506. package/dist/standalone/.next/server/chunks/3598.js +0 -81
  507. package/dist/standalone/.next/server/chunks/3740.js +0 -126
  508. package/dist/standalone/.next/server/chunks/3953.js +0 -1
  509. package/dist/standalone/.next/server/chunks/411.js +0 -1
  510. package/dist/standalone/.next/server/chunks/4191.js +0 -1
  511. package/dist/standalone/.next/server/chunks/461.js +0 -1
  512. package/dist/standalone/.next/server/chunks/4968.js +0 -2
  513. package/dist/standalone/.next/server/chunks/5408.js +0 -1
  514. package/dist/standalone/.next/server/chunks/6333.js +0 -47
  515. package/dist/standalone/.next/server/chunks/6839.js +0 -81
  516. package/dist/standalone/.next/server/chunks/7045.js +0 -319
  517. package/dist/standalone/.next/server/chunks/7159.js +0 -1
  518. package/dist/standalone/.next/server/chunks/8176.js +0 -1
  519. package/dist/standalone/.next/server/chunks/8263.js +0 -81
  520. package/dist/standalone/.next/server/chunks/8392.js +0 -126
  521. package/dist/standalone/.next/server/chunks/9120.js +0 -78
  522. package/dist/standalone/.next/server/chunks/9507.js +0 -1
  523. package/dist/standalone/.next/static/6jhPk8sOUI3wRf_j1l5vY/_buildManifest.js +0 -1
  524. package/dist/standalone/.next/static/chunks/3021-9ced2d55bf2cbf77.js +0 -1
  525. package/dist/standalone/.next/static/chunks/app/_global-error/page-3e358516d279299e.js +0 -1
  526. package/dist/standalone/.next/static/chunks/app/api/access/route-3e358516d279299e.js +0 -1
  527. package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-3e358516d279299e.js +0 -1
  528. package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-3e358516d279299e.js +0 -1
  529. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-3e358516d279299e.js +0 -1
  530. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-3e358516d279299e.js +0 -1
  531. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-3e358516d279299e.js +0 -1
  532. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-3e358516d279299e.js +0 -1
  533. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-3e358516d279299e.js +0 -1
  534. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-3e358516d279299e.js +0 -1
  535. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-3e358516d279299e.js +0 -1
  536. package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-3e358516d279299e.js +0 -1
  537. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-3e358516d279299e.js +0 -1
  538. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-3e358516d279299e.js +0 -1
  539. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-3e358516d279299e.js +0 -1
  540. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-3e358516d279299e.js +0 -1
  541. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-3e358516d279299e.js +0 -1
  542. package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-3e358516d279299e.js +0 -1
  543. package/dist/standalone/.next/static/chunks/app/api/accounts/route-3e358516d279299e.js +0 -1
  544. package/dist/standalone/.next/static/chunks/app/api/agent/route-3e358516d279299e.js +0 -1
  545. package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-3e358516d279299e.js +0 -1
  546. package/dist/standalone/.next/static/chunks/app/api/answer/route-3e358516d279299e.js +0 -1
  547. package/dist/standalone/.next/static/chunks/app/api/artifact/route-3e358516d279299e.js +0 -1
  548. package/dist/standalone/.next/static/chunks/app/api/attach-command/route-3e358516d279299e.js +0 -1
  549. package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-3e358516d279299e.js +0 -1
  550. package/dist/standalone/.next/static/chunks/app/api/attention/route-3e358516d279299e.js +0 -1
  551. package/dist/standalone/.next/static/chunks/app/api/board/route-3e358516d279299e.js +0 -1
  552. package/dist/standalone/.next/static/chunks/app/api/bridge/route-3e358516d279299e.js +0 -1
  553. package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-3e358516d279299e.js +0 -1
  554. package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-3e358516d279299e.js +0 -1
  555. package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-3e358516d279299e.js +0 -1
  556. package/dist/standalone/.next/static/chunks/app/api/conversations/route-3e358516d279299e.js +0 -1
  557. package/dist/standalone/.next/static/chunks/app/api/files/route-3e358516d279299e.js +0 -1
  558. package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-3e358516d279299e.js +0 -1
  559. package/dist/standalone/.next/static/chunks/app/api/flows/route-3e358516d279299e.js +0 -1
  560. package/dist/standalone/.next/static/chunks/app/api/image/route-3e358516d279299e.js +0 -1
  561. package/dist/standalone/.next/static/chunks/app/api/inbox/route-3e358516d279299e.js +0 -1
  562. package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-3e358516d279299e.js +0 -1
  563. package/dist/standalone/.next/static/chunks/app/api/limits/history/route-3e358516d279299e.js +0 -1
  564. package/dist/standalone/.next/static/chunks/app/api/limits/route-3e358516d279299e.js +0 -1
  565. package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-3e358516d279299e.js +0 -1
  566. package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-3e358516d279299e.js +0 -1
  567. package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-3e358516d279299e.js +0 -1
  568. package/dist/standalone/.next/static/chunks/app/api/log/route-3e358516d279299e.js +0 -1
  569. package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-3e358516d279299e.js +0 -1
  570. package/dist/standalone/.next/static/chunks/app/api/logs/route-3e358516d279299e.js +0 -1
  571. package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-3e358516d279299e.js +0 -1
  572. package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-3e358516d279299e.js +0 -1
  573. package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-3e358516d279299e.js +0 -1
  574. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-3e358516d279299e.js +0 -1
  575. package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-3e358516d279299e.js +0 -1
  576. package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-3e358516d279299e.js +0 -1
  577. package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-3e358516d279299e.js +0 -1
  578. package/dist/standalone/.next/static/chunks/app/api/pipelines/route-3e358516d279299e.js +0 -1
  579. package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-3e358516d279299e.js +0 -1
  580. package/dist/standalone/.next/static/chunks/app/api/proc/route-3e358516d279299e.js +0 -1
  581. package/dist/standalone/.next/static/chunks/app/api/projects/create/route-3e358516d279299e.js +0 -1
  582. package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-3e358516d279299e.js +0 -1
  583. package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-3e358516d279299e.js +0 -1
  584. package/dist/standalone/.next/static/chunks/app/api/push/route-3e358516d279299e.js +0 -1
  585. package/dist/standalone/.next/static/chunks/app/api/resources/route-3e358516d279299e.js +0 -1
  586. package/dist/standalone/.next/static/chunks/app/api/roles/route-3e358516d279299e.js +0 -1
  587. package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-3e358516d279299e.js +0 -1
  588. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-3e358516d279299e.js +0 -1
  589. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-3e358516d279299e.js +0 -1
  590. package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-3e358516d279299e.js +0 -1
  591. package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-3e358516d279299e.js +0 -1
  592. package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-3e358516d279299e.js +0 -1
  593. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-3e358516d279299e.js +0 -1
  594. package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-3e358516d279299e.js +0 -1
  595. package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-3e358516d279299e.js +0 -1
  596. package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-3e358516d279299e.js +0 -1
  597. package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-3e358516d279299e.js +0 -1
  598. package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-3e358516d279299e.js +0 -1
  599. package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-3e358516d279299e.js +0 -1
  600. package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-3e358516d279299e.js +0 -1
  601. package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-3e358516d279299e.js +0 -1
  602. package/dist/standalone/.next/static/chunks/app/api/session/route-3e358516d279299e.js +0 -1
  603. package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-3e358516d279299e.js +0 -1
  604. package/dist/standalone/.next/static/chunks/app/api/session/title/route-3e358516d279299e.js +0 -1
  605. package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-3e358516d279299e.js +0 -1
  606. package/dist/standalone/.next/static/chunks/app/api/spawn/route-3e358516d279299e.js +0 -1
  607. package/dist/standalone/.next/static/chunks/app/api/staging/route-3e358516d279299e.js +0 -1
  608. package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-3e358516d279299e.js +0 -1
  609. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-3e358516d279299e.js +0 -1
  610. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-3e358516d279299e.js +0 -1
  611. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-3e358516d279299e.js +0 -1
  612. package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-3e358516d279299e.js +0 -1
  613. package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-3e358516d279299e.js +0 -1
  614. package/dist/standalone/.next/static/chunks/app/api/tasks/route-3e358516d279299e.js +0 -1
  615. package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-3e358516d279299e.js +0 -1
  616. package/dist/standalone/.next/static/chunks/app/api/telegram/route-3e358516d279299e.js +0 -1
  617. package/dist/standalone/.next/static/chunks/app/api/timeline/route-3e358516d279299e.js +0 -1
  618. package/dist/standalone/.next/static/chunks/app/api/tmux/route-3e358516d279299e.js +0 -1
  619. package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-3e358516d279299e.js +0 -1
  620. package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-3e358516d279299e.js +0 -1
  621. package/dist/standalone/.next/static/chunks/app/api/transcribe/route-3e358516d279299e.js +0 -1
  622. package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-3e358516d279299e.js +0 -1
  623. package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-3e358516d279299e.js +0 -1
  624. package/dist/standalone/.next/static/chunks/app/api/tts/route-3e358516d279299e.js +0 -1
  625. package/dist/standalone/.next/static/chunks/app/api/view/presence/route-3e358516d279299e.js +0 -1
  626. package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-3e358516d279299e.js +0 -1
  627. package/dist/standalone/.next/static/chunks/app/api/workflows/route-3e358516d279299e.js +0 -1
  628. package/dist/standalone/.next/static/chunks/app/page-dbe7cb010b4941d6.js +0 -96
  629. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-3e358516d279299e.js +0 -1
  630. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-3e358516d279299e.js +0 -1
  631. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-3e358516d279299e.js +0 -1
  632. package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-3e358516d279299e.js +0 -1
  633. package/dist/standalone/.next/static/css/282596e2aaee1aa4.css +0 -1
  634. package/dist/standalone/src/lib/inboxFiles.ts +0 -203
  635. /package/dist/standalone/.next/static/{6jhPk8sOUI3wRf_j1l5vY → e4qE_aCE0s0KQnnU6IWRw}/_ssgManifest.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-log-viewer",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "bin": {
5
5
  "agent-log-viewer": "bin/cli.mjs",
6
6
  "agent-log-viewer-mcp": "bin/mcp-server.mjs"
@@ -46,7 +46,7 @@
46
46
  "entities": "^8.0.0",
47
47
  "highlight.js": "^11.11.1",
48
48
  "lucide-react": "^1.23.0",
49
- "next": "16.3.2",
49
+ "next": "16.3.3",
50
50
  "pdfjs-dist": "^6.2.108",
51
51
  "qrcode": "^1.5.4",
52
52
  "qrcode-terminal": "^0.12.0",
@@ -82,10 +82,10 @@
82
82
  "url": "git+https://github.com/Latand/live-log-viewer-next.git"
83
83
  },
84
84
  "license": "MIT",
85
- "patchedDependencies": {
86
- "next@16.3.2": "patches/next-16.3.2.patch"
87
- },
88
85
  "overrides": {
89
86
  "fast-uri": "^3.1.6"
87
+ },
88
+ "patchedDependencies": {
89
+ "next@16.3.3": "patches/next-16.3.3.patch"
90
90
  }
91
91
  }
@@ -1 +0,0 @@
1
- "use strict";exports.id=112,exports.ids=[112,1888,9507],exports.modules={38751:(a,b,c)=>{c.d(b,{E2:()=>s,G$:()=>r,JC:()=>v,YX:()=>x,oh:()=>y});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(14928),l=c(46211);let m=null;function n(){return(0,j.BQ)("project-aliases.json")}function o(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=Object.entries(a);return b.every(([a,b])=>!!a.trim()&&"string"==typeof b&&!!b.trim())?Object.fromEntries(b):null}function p(){let a,b=n();try{a=g().statSync(b)}catch{return(m={file:b,mtimeMs:-1,size:-1,snapshot:{aliases:{},displayNames:{}}}).snapshot}if(m&&m.file===b&&m.mtimeMs===a.mtimeMs&&m.size===a.size)return m.snapshot;try{let c=JSON.parse(g().readFileSync(b,"utf8")),d=1===c.schemaVersion?o(c.aliases):null,e=1===c.schemaVersion?o(c.displayNames):null,f=d&&e?{aliases:d,displayNames:e}:{aliases:{},displayNames:{}};return m={file:b,mtimeMs:a.mtimeMs,size:a.size,snapshot:f},f}catch{let c={aliases:{},displayNames:{}};return m={file:b,mtimeMs:a.mtimeMs,size:a.size,snapshot:c},c}}function q(a,b){let c=a,d=new Set;for(;b[c]&&!d.has(c);)d.add(c),c=b[c];return d.has(c)?a:c}function r(a){return q(a,p().aliases)}function s(){let a=p();return{aliases:{...a.aliases},displayNames:{...a.displayNames}}}function t(a){try{let b=JSON.parse(g().readFileSync((0,j.BQ)(a),"utf8"));return b&&"object"==typeof b&&!Array.isArray(b)?b:null}catch{return null}}function u(a,b,c){let d=(["flows","pipelines","workflows"].includes(b)?(0,k.Vx)((0,j.BQ)("state.sqlite"),b):null)??t(a)?.[b];if(!Array.isArray(d))return[];let e=[];for(let a of d)!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.project&&a.project.trim()&&"string"==typeof a[c]&&a[c].trim()&&e.push([a.project,a[c]]);return e}function v(){let a=function(){let a=t("worktree-map.json");if(!a)return new Map;let b=new Map;for(let[c,d]of Object.entries(a)){if(!d||"object"!=typeof d||Array.isArray(d))continue;let a=d.repo;"string"==typeof a&&a.trim()&&b.set(c,a)}return b}(),b=[...u("flows.json","flows","cwd"),...u("pipelines.json","pipelines","repoDir"),...u("workflows.json","workflows","repoDir")],c=new Map;for(let[d,e]of b){let b=(0,l.V5)(e)??a.get(e),f=b?(0,l.im)(b):null;if(!f)continue;let g=c.get(d)??new Map,h=g.get(f.project)??{registration:{source:d,target:f.project,displayName:f.displayName},records:0};h.records+=1,g.set(f.project,h),c.set(d,g)}let d=[],e=[];for(let[a,b]of c){if(b.has(a)){b.size>1&&e.push(a);continue}let c=[...b.values()].sort((a,b)=>b.records-a.records),f=c.reduce((a,b)=>a+b.records,0),g=c[0];2*g.records>f?d.push(g.registration):e.push(a)}let f=function(a){let b=new Map(a.map(a=>[a.source,a.target])),c=new Set,d=new Set;for(let[a,e]of[["tasks.json","tasks"],["flows.json","flows"],["pipelines.json","pipelines"],["workflows.json","workflows"]]){let f=new Map;for(let g of function(a,b){let c=(["flows","pipelines","workflows"].includes(b)?(0,k.Vx)((0,j.BQ)("state.sqlite"),b):null)??t(a)?.[b];return Array.isArray(c)?c.filter(a=>!!a&&"object"==typeof a&&!Array.isArray(a)):[]}(a,e)){if("string"!=typeof g.id||!g.id.trim()||"string"!=typeof g.project||!g.project.trim())continue;let a=r(g.project),h=b.get(a)??a,i=`${h}\0${g.id}`,j=f.get(i);j&&j!==a?(c.add(`${e} id collision`),b.has(j)&&d.add(j),b.has(a)&&d.add(a)):f.set(i,a)}}return{labels:[...c],sources:d}}(d);return e.push(...f.labels),{registrations:d.filter(a=>!f.sources.has(a.source)),conflicts:e}}function w(a){let b=p(),c={...b.aliases},d={...b.displayNames};for(let b of a){let a=b.source.trim(),e=q(b.target.trim(),c),f=b.displayName.trim();if(!a||!e||!f)return null;let g=c[a]?q(c[a],c):null;if(g&&g!==e)return null;a!==e&&(c[a]=e),d[e]=f}return{aliases:c,displayNames:d}}function x(a){return null!==w(a)}function y(a){if(0===a.length)return!0;let b=w(a);if(!b)return!1;let c=n(),d=i().join(i().dirname(c),`.${i().basename(c)}.${process.pid}.${e().randomUUID()}.tmp`);try{return g().mkdirSync(i().dirname(c),{recursive:!0,mode:448}),g().writeFileSync(d,JSON.stringify({schemaVersion:1,...b},null,2)+"\n",{encoding:"utf8",mode:384}),g().renameSync(d,c),m=null,p(),!0}catch{try{g().rmSync(d,{force:!0})}catch{}return!1}}},46211:(a,b,c)=>{c.d(b,{MO:()=>m,Mv:()=>l,NP:()=>o,V5:()=>t,im:()=>u,qe:()=>p,rj:()=>q,z:()=>n});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(48161),i=c.n(h),j=c(76760),k=c.n(j);let l="project_unresolved",m="Unresolved project";function n(a){return/^(?:repo|dir)-[0-9a-f]{32}$/.test(a)}function o(a){let b=(()=>{try{return g().realpathSync.native(a)}catch{return k().resolve(a)}})(),c=k().basename(b);if(!c||b===k().sep)return null;let d=b===i().homedir()?`home-${c}`:c;return{project:p(b),displayName:d}}function p(a){return`dir-${e().createHash("sha256").update(`dir:${a}`).digest("hex").slice(0,32)}`}function q(a){return a===l?m:a}function r(a){try{return g().statSync(k().join(a,"HEAD")).isFile()}catch{return!1}}function s(a){let b=k().join(a,".git");try{let c=g().lstatSync(b);if(c.isDirectory())return r(b)?b:null;if(!c.isFile())return null;let d=g().readFileSync(b,"utf8").slice(0,4096),e=/^gitdir:\s*(.+?)\s*$/im.exec(d)?.[1];if(!e)return null;let f=k().resolve(a,e);return r(f)?f:null}catch{return null}}function t(a){let b=k().resolve(a);for(;;){if(s(b))return b;let a=k().dirname(b);if(a===b)return null;b=a}}function u(a){let b,c=s(a);if(!c)return null;try{b=g().readFileSync(k().join(function(a){try{let b=g().readFileSync(k().join(a,"commondir"),"utf8").trim();return b?k().resolve(a,b):a}catch{return a}}(c),"config"),"utf8")}catch{return null}let d=function(a){let b=!1;for(let c of a.split(/\r?\n/)){let a=/^\s*\[\s*remote\s+"([^"]+)"\s*\]\s*$/i.exec(c);if(a){b="origin"===a[1];continue}if(/^\s*\[/.test(c)){b=!1;continue}if(!b)continue;let d=/^\s*url\s*=\s*(.*?)\s*$/i.exec(c)?.[1],e=d?.replace(/\s+[;#].*$/,"").trim();if(e)return e}return null}(b),f=(()=>{try{return g().realpathSync.native(a)}catch{return k().resolve(a)}})(),h=d?function(a,b){let c=/^[a-z][a-z0-9+.-]*:\/\//i.test(a)?null:/^(?:[^@\s]+@)?([^:/\s]+):(.+)$/.exec(a);if(c){let a=c[1].toLowerCase(),b=c[2].replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return b?`${a}/${b}`:null}try{let b=new URL(a);if("file:"===b.protocol){let a=k().resolve(b.pathname).replace(/\.git$/i,"");return`file:${a}`}let c=b.hostname.toLowerCase(),d=b.port?`:${b.port}`:"",e=b.pathname.replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return c&&e?`${c}${d}/${e}`:null}catch{let c=k().resolve(b,a).replace(/\.git$/i,"");return`file:${c}`}}(d,a):`local:${f}`,i=h&&h.replace(/^file:/,"").split("/").filter(Boolean).at(-1)?.trim()||null;if(!h||!i)return null;let j=e().createHash("sha256").update(h).digest("hex").slice(0,32);return{project:`repo-${j}`,displayName:i,canonicalRemote:h}}},51888:(a,b,c)=>{c.d(b,{Gh:()=>l,JL:()=>i,OV:()=>n,RC:()=>k,c7:()=>d,cC:()=>j,fC:()=>f,g9:()=>q,ll:()=>p,wi:()=>r});let d="gpt-6-astra",e="gpt-5.6-sol",f="gpt-5.6-terra",g="gpt-5.6-luna",h=new Set([d,e,f,g,"gpt-5.5","gpt-5.4","gpt-5.4-mini"]);function i(a){return!a?.trim()||h.has(a.trim())}let j={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-6-Astra",shortLabel:"6-Astra",use:"review"},{id:e,label:"GPT-5.6-Sol",shortLabel:"5.6-Sol",use:"review"},{id:f,label:"GPT-5.6-Terra",shortLabel:"5.6-Terra",use:"implement"},{id:g,label:"GPT-5.6-Luna",shortLabel:"5.6-Luna",use:"general"}]};function k(a,b){let c=b.trim(),d=j[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(", ")}`}}function l(a){return"codex"===a?d:"opus"}let m=["fable","opus","sonnet","haiku"];function n(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 m)if(b===a||RegExp(`(?:^|[-_.])${a}(?:[-_.]|$)`).test(b))return a;return null}let o=new Set(["fable","opus"]);function p(a){let b=n(a);return null===b||o.has(b)}function q(a){if("string"!=typeof a)return!1;let b=a.trim();return b.startsWith("gpt-")&&b.length<=128&&!/[\u0000-\u001f\u007f]/.test(b)}function r(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}}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=2190,exports.ids=[2190],exports.modules={13896:(a,b,c)=>{c.d(b,{DH:()=>R,E0:()=>t,EM:()=>N,IR:()=>C,J2:()=>U,Km:()=>O,M7:()=>P,PT:()=>V,Ro:()=>Q,T7:()=>A,mZ:()=>s,qo:()=>S}),c(77598);var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(91724),i=c(89940),j=c(58152),k=c(4837),l=c(89822),m=c(13117),n=c(19849),o=c(41457),p=c(63376);let q=new Set([2,3,4,5]),r=["orchestrator","reviewer","verifier","builder","architect","cleaner","prod-auditor","deployer"];class s extends Error{constructor(a,b){super(a,b),this.name="PipelineStoreError"}}function t(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&!("claude"!==a.engine&&"codex"!==a.engine||null!==a.model&&"string"!=typeof a.model||a.model&&"claude"===a.engine&&!(0,k.OV)(a.model)||a.model&&"codex"===a.engine&&(a.model.length>128||!a.model.startsWith("gpt-")||/[\u0000-\u001f\u007f]/.test(a.model)))&&(null===a.effort||"string"==typeof a.effort&&!!(0,j.ve)(a.engine,a.model).includes(a.effort))&&(null===a.roleId||r.includes(a.roleId))&&("read-only"===a.access||"read-write"===a.access)&&(null===a.promptScaffold||"string"==typeof a.promptScaffold&&a.promptScaffold.length<=l.le)}function u(a){return null===a||"string"==typeof a}function v(a){return null==a||!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Number.isInteger(a.attempt)&&a.attempt>=1&&("pass"===a.edge||"fail"===a.edge)}function w(a,b){var c,d,e;if(!a||"object"!=typeof a||Array.isArray(a))return!1;return a.n===b+1&&(void 0===a.historical||"boolean"==typeof a.historical)&&["pending","spawning","running","reviewing","committing","passed","failed","needs_decision","skipped"].includes(String(a.state))&&t(a.effectiveRole)&&u(a.launchId)&&u(a.conversationId)&&u(a.sessionId)&&u(a.agentPath)&&u(a.paneId)&&(void 0===a.accountId||u(a.accountId))&&(void 0===a.usageLimitedAccounts||Array.isArray(a.usageLimitedAccounts)&&a.usageLimitedAccounts.every(a=>null!==a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.accountId&&a.accountId.length>0&&(null===a.resetsAt||Number.isSafeInteger(a.resetsAt)&&a.resetsAt>=0))&&new Set(a.usageLimitedAccounts.map(a=>a.accountId)).size===a.usageLimitedAccounts.length)&&u(a.flowId)&&(void 0===a.expectedReviewHeadSha||u(a.expectedReviewHeadSha))&&(void 0===a.reviewHeadSha||u(a.reviewHeadSha))&&function(a){if(void 0===a)return!0;if(!a||"object"!=typeof a||Array.isArray(a))return!1;let b=a.hostClaim,c=null==b||"object"==typeof b&&!Array.isArray(b)&&/^(?:claude|codex):[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(String(b.sessionKey))&&/^(?:default|unknown|managed:[0-9a-f]{12})$/.test(String(b.accountRef)),d=["waiting_ready","spawn_pending","spawning","reviewing","relay_pending","relaying","fixing","approved","done_comment","needs_decision","paused","closed"];return"string"==typeof a.generation&&(void 0===a.sourceRevision||Number.isInteger(a.sourceRevision)&&a.sourceRevision>=0)&&Number.isInteger(a.roundCount)&&a.roundCount>=0&&u(a.implementerHeadSha)&&u(a.reviewerHeadSha)&&(null===a.verdict||["APPROVE","REQUEST_CHANGES","COMMENT"].includes(String(a.verdict)))&&d.includes(String(a.relayState))&&(null===a.terminalState||d.includes(String(a.terminalState)))&&c&&"string"==typeof a.synchronizedAt&&u(a.sourceUpdatedAt)&&(null===a.lagMs||"number"==typeof a.lagMs&&Number.isFinite(a.lagMs)&&a.lagMs>=0)}(a.reviewFlowSync)&&u(a.startedAt)&&u(a.completedAt)&&(void 0===a.input||u(a.input))&&v(a.activatedBy)&&u(a.output)&&(null===(c=a.verdict)||null!==(0,p.eh)(c))&&u(a.error)&&(void 0===(d=a.verdictRecovery)||!(!d||"object"!=typeof d||Array.isArray(d))&&["pending","recovered","exhausted"].includes(String(d.state))&&Number.isInteger(d.checks)&&d.checks>=0&&Number.isInteger(d.maxChecks)&&d.maxChecks>=1&&d.checks<=d.maxChecks&&"string"==typeof d.startedAt&&"string"==typeof d.lastCheckedAt&&u(d.nextCheckAt)&&"string"==typeof d.reason&&d.reason.length>0&&d.reason.length<=1e3&&(null===d.messageTs||"number"==typeof d.messageTs&&Number.isFinite(d.messageTs)&&d.messageTs>=0))&&(void 0===(e=a.unresolvedTermination)||!(!e||"object"!=typeof e||Array.isArray(e))&&"string"==typeof e.error&&"string"==typeof e.recordedAt&&Array.isArray(e.survivors)&&e.survivors.every(a=>null!==a&&"object"==typeof a&&Number.isSafeInteger(a.pid)&&u(a.startIdentity)&&(void 0===a.bootEpoch||u(a.bootEpoch))))}function x(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Array.isArray(a.attempts)&&a.attempts.every(w)}function y(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Number.isInteger(a.attempt)&&u(a.conversationId)&&u(a.agentPath)&&(void 0===a.paneId||u(a.paneId))&&u(a.operationId)&&"string"==typeof a.detail&&"string"==typeof a.at}function z(a){var b;if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.role;if(!("string"==typeof a.id&&("run"===a.kind||"review-loop"===a.kind)&&"string"==typeof a.prompt&&(null===a.next||"string"==typeof a.next)&&(null==(b=a.onFail)||!(!b||"object"!=typeof b||Array.isArray(b))&&"string"==typeof b.to&&Number.isInteger(b.maxRounds)&&b.maxRounds>=1&&b.maxRounds<=n.e7)&&(void 0===c||c&&"object"==typeof c&&!Array.isArray(c)&&r.includes(c.roleId))&&(void 0===a.engine||"claude"===a.engine||"codex"===a.engine)&&(void 0===a.model||null===a.model||"string"==typeof a.model)&&(void 0===a.effort||null===a.effort||"string"==typeof a.effort)&&(void 0===a.access||"read-only"===a.access||"read-write"===a.access)&&(void 0===a.sandbox||"full"===a.sandbox||"restricted"===a.sandbox)&&(void 0===a.outputs||"run"===a.kind&&Array.isArray(a.outputs)&&a.outputs.length>0&&a.outputs.length<=n.Ze&&a.outputs.every((b,c)=>(0,o.k)(b)===b&&a.outputs.indexOf(b)===c))&&t(a.effectiveRole)))return!1;let d=a.effectiveRole,e=void 0===c?null:c.roleId;return(void 0===a.outputs||"read-only"===d.access)&&d.roleId===e&&("review-loop"!==a.kind||"read-only"===d.access)&&(void 0===a.engine||a.engine===d.engine)&&(void 0===a.model||a.model===d.model)&&(void 0===a.effort||a.effort===d.effort)&&(void 0===a.access||a.access===d.access)&&(null!==e||null===d.promptScaffold)&&(null===e||!!d.promptScaffold?.trim())&&!0}function A(a){let b=new Set(a.map(a=>a.id)),c=new Map(a.map(a=>[a.id,a.next]));for(let c of a){if(null!==c.next&&!b.has(c.next))return`stage ${c.id} next must reference an existing stage`;if(c.next===c.id)return`stage ${c.id} pass edge may not target itself`;let a=c.onFail??null;if("review-loop"===c.kind&&a)return`review-loop stage ${c.id} does not support onFail`;if(a&&!b.has(a.to))return`stage ${c.id} onFail must reference an existing stage`;if(a&&(!Number.isInteger(a.maxRounds)||a.maxRounds<1||a.maxRounds>n.e7))return`stage ${c.id} onFail maxRounds must be an integer between 1 and ${n.e7}`}for(let b of a){let d=b.next;for(let e=0;null!==d;e+=1){if(d===b.id||e>a.length)return`pipeline pass edges form a cycle through stage ${b.id}`;d=c.get(d)??null}}for(let b of a)if("review-loop"===b.kind&&!a.some(d=>{if("run"!==d.kind)return!1;let e=d.next;for(let d=0;null!==e&&d<=a.length;d+=1){if(e===b.id)return!0;e=c.get(e)??null}return!1})){let c=a.filter(a=>"run"===a.kind);if(0===c.length)return`review-loop stage ${b.id} is unreachable: the pipeline has no run stage, and a review-loop reviews the session of a run stage that reaches it`;let d=c.findLast(a=>null===a.next)??c.at(-1);return`review-loop stage ${b.id} is unreachable: no run stage's next chain reaches it — set next: "${b.id}" on run stage ${d.id}`}return null}function B(a){var b,c;if(!a||"object"!=typeof a||Array.isArray(a)||!("string"==typeof a.id&&"string"==typeof a.task&&Array.isArray(a.taskIds)&&a.taskIds.every(a=>"string"==typeof a)&&new Set(a.taskIds).size===a.taskIds.length&&(void 0===a.creationIntent||!(!(b=a.creationIntent)||"object"!=typeof b||Array.isArray(b))&&"task-spawn"===b.kind&&"string"==typeof b.taskId&&b.taskId.trim()&&"string"==typeof b.launchId&&b.launchId.trim())&&(void 0===a.spec||"string"==typeof a.spec)&&"string"==typeof a.project&&"string"==typeof a.repoDir&&"string"==typeof a.worktreeDir&&"string"==typeof a.branch&&"string"==typeof a.baseBranch&&"string"==typeof a.baseRef&&"string"==typeof a.lastPassedCommit&&(void 0===a.publishedCommit||u(a.publishedCommit))&&Array.isArray(a.stages)&&a.stages.every(z)&&Array.isArray(a.runs)&&a.runs.every(x)&&["draft","provisioning","running","needs_decision","paused","completed","closed"].includes(String(a.state))&&(null===a.pausedState||["provisioning","running","needs_decision","completed","closed"].includes(String(a.pausedState)))&&(void 0===a.pausedAt||u(a.pausedAt))&&(void 0===a.resumedAt||u(a.resumedAt))&&u(a.stateDetail)&&u(a.srcPath)&&u(a.srcConversationId)&&"string"==typeof a.createdAt&&u(a.closedAt)&&(void 0===a.hiddenAt||u(a.hiddenAt))&&(void 0===a.unconfirmedHosts||Array.isArray(a.unconfirmedHosts)&&a.unconfirmedHosts.every(y))&&(void 0===a.terminalReap||!(!(c=a.terminalReap)||"object"!=typeof c||Array.isArray(c))&&Number.isInteger(c.rounds)&&c.rounds>=0&&Number.isInteger(c.stopped)&&c.stopped>=0&&"string"==typeof c.lastAt&&(void 0===c.settledAttempts||Array.isArray(c.settledAttempts)&&c.settledAttempts.every(a=>"string"==typeof a))&&u(c.settledAt))&&(void 0===a.restored||"boolean"==typeof a.restored)&&(void 0===a.pos||"object"==typeof a.pos&&null!==a.pos&&Number.isFinite(a.pos.x)&&Number.isFinite(a.pos.y))))return!1;let d=a.stages,e=a.runs,f=+("draft"!==a.state);if(d.length<f||d.length>n.IO||e.length!==d.length)return!1;let h=d.map(a=>a.id);if(new Set(h).size!==h.length||null!==A(d)||e.some((a,b)=>a.stageId!==d[b].id))return!1;let i=g().join(g().dirname(a.repoDir),`${g().basename(a.repoDir)}-pipeline-${a.id}`);if(a.worktreeDir!==i||a.branch!==`pipeline/${T(a.task)}-${a.id}`)return!1;let j=a.cursor;if(null!==j&&(!j||"object"!=typeof j||!h.includes(j.stageId)||!["pending","spawning","running","reviewing","committing"].includes(j.state)||!(void 0===j.input||u(j.input))||!v(j.activatedBy)||null!=j.activatedBy&&!h.includes(j.activatedBy.stageId))||("completed"===a.state||"closed"===a.state)&&null!==j)return!1;if("draft"===a.state){if(0===d.length){if(null!==j)return!1}else if(j?.stageId!==d[0].id||"pending"!==j.state)return!1;if(e.some(a=>a.attempts.length>0))return!1;let b=!a.baseBranch&&!a.baseRef&&!a.lastPassedCommit,c=!!(a.baseBranch&&/^[0-9a-f]{40}$/i.test(a.baseRef)&&a.lastPassedCommit===a.baseRef);if(!b&&!c||a.closedAt)return!1}return!0}function C(){return K().snapshot()}function D(a,b,c=!1){let d=function(a){try{return JSON.parse(e().readFileSync(a,"utf8"))}catch(b){if("ENOENT"===b.code)return;throw new s(`could not read pipeline registry: ${a}`,{cause:b})}}(a);if(void 0===d||null===d&&!c)return[];if(!d||"object"!=typeof d||Array.isArray(d)){if(b)return[];throw new s("pipeline registry must be an object")}if("number"!=typeof d.schemaVersion||!q.has(d.schemaVersion)){if(b)return[];throw new s(`unsupported pipeline registry schema: ${String(d.schemaVersion)}`)}if(!Array.isArray(d.pipelines)){if(b)return[];throw new s("pipeline registry contains malformed records")}let f=d.pipelines.map(a=>{var b,c,e;let f;return f=2===(b=d.schemaVersion)?function(a){if(!a||"object"!=typeof a||Array.isArray(a))return a;let b=Array.isArray(a.stages)?a.stages.map(a=>a&&"object"==typeof a?{onFail:null,...a}:a):a.stages,c=Array.isArray(a.runs)?a.runs.map(a=>a&&"object"==typeof a&&Array.isArray(a.attempts)?{...a,attempts:a.attempts.map(a=>a&&"object"==typeof a?{input:null,activatedBy:null,...a}:a)}:a):a.runs,d=a.cursor&&"object"==typeof a.cursor?{input:null,activatedBy:null,...a.cursor}:a.cursor,e={...a,stages:b,runs:c,cursor:d};if("draft"===e.state&&Array.isArray(e.stages)&&0===e.stages.length){let a={id:"implement",kind:"run",prompt:"{{task}}",next:null,onFail:null,effectiveRole:{roleId:null,engine:"claude",model:null,effort:null,access:"read-write",promptScaffold:null}};e.stages=[a],e.runs=[{stageId:a.id,attempts:[]}],e.cursor={stageId:a.id,state:"pending",input:null,activatedBy:null}}return e}(a):a,b<4&&(f=!(c=f)||"object"!=typeof c||Array.isArray(c)?c:{taskIds:[],...c}),b<5&&(f=!(e=f)||"object"!=typeof e||Array.isArray(e)?e:Array.isArray(e.stages)?{...e,stages:e.stages.map(a=>!a||"object"!=typeof a||Array.isArray(a)?a:"review-loop"===a.kind?{...a,onFail:null}:a)}:e),f});if(!b&&!f.every(B))throw new s("pipeline registry contains malformed records");let g=b?f.filter(B):f;return b&&g.length!==f.length&&console.error(`[pipelines] skipped ${f.length-g.length} malformed archived pipeline record(s)`),g.map(E)}function E(a){let b=a.terminalReap?.settledAttempts??(a.terminalReap?.settledAt?a.runs.flatMap(a=>a.attempts.filter(a=>!!(a.verdict||a.completedAt)).map(b=>`${a.stageId}:${b.n}`)):[]);return{...a,project:(0,i.G$)(a.project),taskIds:[...a.taskIds],creationIntent:a.creationIntent?{...a.creationIntent}:void 0,spec:"string"==typeof a.spec?a.spec:void 0,baseBranch:a.baseBranch??"",baseRef:a.baseRef??"",lastPassedCommit:a.lastPassedCommit??"",publishedCommit:a.publishedCommit??null,pausedState:a.pausedState??null,stateDetail:a.stateDetail??null,srcPath:a.srcPath??null,srcConversationId:a.srcConversationId??null,closedAt:a.closedAt??null,hiddenAt:a.hiddenAt??null,unconfirmedHosts:a.unconfirmedHosts?.length?a.unconfirmedHosts.map(a=>({...a})):void 0,terminalReap:a.terminalReap?{...a.terminalReap,settledAttempts:[...b]}:void 0,restored:void 0,stages:a.stages.map(a=>({...a,onFail:a.onFail??null})),cursor:a.cursor?{...a.cursor,input:a.cursor.input??null,activatedBy:a.cursor.activatedBy??null}:null,runs:a.runs.map(a=>({...a,attempts:Array.isArray(a.attempts)?a.attempts.map(a=>({...a,launchId:a.launchId??null,conversationId:a.conversationId??null,sessionId:a.sessionId??null,agentPath:a.agentPath??null,paneId:a.paneId??null,...a.usageLimitedAccounts?{usageLimitedAccounts:a.usageLimitedAccounts.map(a=>({...a}))}:{},flowId:a.flowId??null,expectedReviewHeadSha:a.expectedReviewHeadSha??null,reviewHeadSha:a.reviewHeadSha??null,reviewFlowSync:a.reviewFlowSync?{...a.reviewFlowSync}:void 0,startedAt:a.startedAt??null,completedAt:a.completedAt??null,input:a.input??null,activatedBy:a.activatedBy??null,output:a.output??null,verdict:a.verdict??null,error:a.error??null,verdictRecovery:a.verdictRecovery?{...a.verdictRecovery}:void 0,unresolvedTermination:a.unresolvedTermination?{...a.unresolvedTermination,survivors:a.unresolvedTermination.survivors.map(a=>({...a}))}:void 0})):[]}))}}let F=null,G=new Map;function H(a){if(!B(a))throw new s("pipeline registry contains malformed records");return E(a)}function I(a){return"closed"===a.state?!!a.unconfirmedHosts?.length:"completed"!==a.state||!!a.unconfirmedHosts?.length||!a.terminalReap?.settledAt}function J(){let a=(0,h.BQ)("state.sqlite"),b=G.get(a);if(b)return b;(0,m.t0)(a,[{collection:"pipelines",schemaVersion:5,migrationId:"pipelines-json-v1",loadRecords:()=>D((0,h.BQ)("pipelines.json"),!1),key:a=>a.id,controllerActive:I},{collection:"pipelines_archive",schemaVersion:5,migrationId:"pipelines-archive-json-v1",loadRecords:()=>D((0,h.BQ)("pipelines-archive.json"),!0),key:a=>a.id,controllerActive:()=>!1}]);let c={schemaVersion:5,busyMessage:"pipeline state is busy",key:a=>a.id,decode:H,clone:E,decodeError:a=>a instanceof s?a:new s("pipeline registry contains malformed records",{cause:a}),validate:a=>{if(!B(a))throw new s("refusing to persist a malformed pipeline record")}},d={active:new m.UY(a,{...c,collection:"pipelines",controllerActive:I,strictDecode:!0}),archive:new m.UY(a,{...c,collection:"pipelines_archive",onDecodeError:a=>console.error("[pipelines] skipped malformed archived SQLite row",a)})};return G.set(a,d),d}function K(){return J().active}function L(){return J().archive}function M(){return K().signature()}function N(){return(function(){let a=M();if(F?.signature===a)return F.pipelines;let b=[...K().loadReadonly()],c=M();return a===c&&(F={signature:c,pipelines:b}),b})().map(E)}async function O(a){return K().mutate(a)}async function P(a){return K().mutate(a,void 0,!0)}async function Q(a=Date.now(),b={}){return K().moveMatchingTo(L(),b=>(function(a,b){let c=a.closedAt??("draft"===a.state?a.hiddenAt:null);if(!c)return!1;let d=Date.parse(c);return Number.isFinite(d)&&b-d>2592e5})(b,a),b)}function R(a){return C().find(b=>b.id===a)??L().snapshot().find(b=>b.id===a)??null}function S(a,b,c,d={}){let e=new Map(c.map(a=>[a.id,a]));for(let c of b){let b=e.get(c);if(!b){if(d.allowMissing)continue;return`task not found: ${c}`}if(b.project!==a.project)return`task project does not match pipeline project: ${c}`}return null}function T(a){return a.toLowerCase().replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"").slice(0,40).replace(/-+$/,"")||"task"}function U(a,b,c){let d=g().basename(c);return{worktreeDir:g().join(g().dirname(c),`${d}-pipeline-${a}`),branch:`pipeline/${T(b)}-${a}`}}function V(a){let b=U(a.id,a.task,a.repoDir);return{id:a.id,task:a.task,taskIds:[...new Set(a.taskIds??[])],...a.creationIntent?{creationIntent:{...a.creationIntent}}:{},...a.spec?{spec:a.spec}:{},project:a.project,repoDir:a.repoDir,...b,baseBranch:"",baseRef:"",lastPassedCommit:"",publishedCommit:null,stages:JSON.parse(JSON.stringify(a.stages)).map(a=>({...a,onFail:a.onFail??null})),runs:a.stages.map(a=>({stageId:a.id,attempts:[]})),cursor:a.stages.length?{stageId:a.stages[0].id,state:"pending",input:null,activatedBy:null}:null,state:a.state??"provisioning",pausedState:null,stateDetail:null,srcPath:a.srcPath,srcConversationId:a.srcConversationId,createdAt:a.now,closedAt:null,hiddenAt:null}}},19849:(a,b,c)=>{c.d(b,{IO:()=>i,NF:()=>h,Ty:()=>l,WD:()=>j,Y3:()=>f,Ze:()=>g,e7:()=>k,g9:()=>d,qf:()=>e});let d=4e3,e=16e3,f=8e3,g=20,h=240,i=8,j=1,k=9,l=5},34471:(a,b,c)=>{c.d(b,{L1:()=>h,Rz:()=>f,xQ:()=>g});var d=c(60641),e=c(19849);function f(a){return"string"==typeof a.launchId&&"string"==typeof a.conversationId}function g(a,b){return a.map(a=>({...a,pipelineIds:b.filter(b=>b.taskIds.includes(a.id)).map(a=>a.id)}))}function h(a,b,c){return b.some(b=>b.taskIds.includes(a.id)&&"closed"!==b.state&&!b.hiddenAt)?null:{task:(0,d.bO)(a.text).slice(0,e.g9),spec:a.text,taskIds:[a.id],repoDir:c.repoDir,...c.srcPath?{src:c.srcPath}:{},autoStart:!1,stages:[{id:"run",kind:"run",role:{roleId:"builder"},engine:c.engine,model:c.model,effort:c.effort,access:"read-write",prompt:"{{task}}",next:null}]}}},41457:(a,b,c)=>{c.d(b,{k:()=>g,z:()=>h});var d=c(76760),e=c.n(d),f=c(19849);function g(a){if("string"!=typeof a)return null;let b=a.trim().replace(/\/+$/u,"");if(!b||b.length>f.NF||e().posix.isAbsolute(b)||e().win32.isAbsolute(b)||b.startsWith(":")||/[\\*?[\]\u0000-\u001f\u007f]/u.test(b))return null;let c=b.split("/");return c.some(a=>!a||"."===a||".."===a)||".git"===c[0].toLowerCase()?null:b}function h(a,b){return b.some(b=>a===b||a.startsWith(`${b}/`))}},63376:(a,b,c)=>{c.d(b,{DL:()=>i,eh:()=>g,fM:()=>j});let d=new Set(["status","findings","confidence"]),e={APPROVE:"pass",REQUEST_CHANGES:"fail",COMMENT:"needs_decision","NO FINDINGS":"pass"},f=/^\s*(?:VERDICT:\s*(APPROVE|REQUEST_CHANGES|COMMENT)|(NO FINDINGS))\s*$/i;function g(a){if(!a||"object"!=typeof a||Array.isArray(a)||Object.keys(a).some(a=>!d.has(a))||"pass"!==a.status&&"fail"!==a.status&&"needs_decision"!==a.status)return null;let b={status:a.status};if(void 0!==a.findings){if(!Array.isArray(a.findings)||a.findings.length>50)return null;let c=[];for(let b of a.findings){if("string"!=typeof b)return null;let a=b.trim();if(!a||a.length>2e3)return null;c.push(a)}b.findings=c}if(void 0!==a.confidence){if("number"!=typeof a.confidence||!Number.isFinite(a.confidence)||a.confidence<0||a.confidence>1)return null;b.confidence=a.confidence}return b}function h(a){let b=[...a.matchAll(/```(?:json)?\s*([\s\S]*?)```/gi)];if(!b.length)return{failureReason:"canonical completed assistant turn is missing a fenced JSON verdict"};let c=[],d="canonical completed assistant turn is missing a valid status, findings, or confidence field";for(let a of b){var e;let b;try{b=JSON.parse(a[1]??"")}catch{d="canonical completed assistant turn has malformed JSON in the final fenced verdict";continue}let f=!(e=b)||"object"!=typeof e||Array.isArray(e)?null:g({status:e.status,...Object.hasOwn(e,"findings")?{findings:e.findings}:{},...Object.hasOwn(e,"confidence")?{confidence:e.confidence}:{}});if(!f){d="canonical completed assistant turn is missing a valid status, findings, or confidence field";continue}c.push({index:a.index,verdict:f})}return c.length?new Set(c.map(({verdict:a})=>a.status)).size>1?{failureReason:"canonical completed assistant turn has conflicting fenced JSON verdicts"}:c.at(-1):{failureReason:d}}function i(a){let b=h(a);if("failureReason"in b)return b.failureReason;let c=j(a);return c&&"failureReason"in c?c.failureReason:"canonical completed assistant turn did not yield a valid final JSON verdict"}function j(a){let b=h(a);if("failureReason"in b)return null;let c=b.verdict,d=a.slice(0,b.index).trim(),g=d.slice(0,32e3);if("pass"===c.status&&c.findings?.length)return{failureReason:'contradictory stage verdict: status "pass" cannot include findings',output:g};for(let a of function(a){let b=[],c=null;for(let d of a.split(/\r?\n/)){let a=/^\s*(`{3,}|~{3,})(.*)$/.exec(d);if(a){let b=a[1],d=b[0];c?c.marker===d&&b.length>=c.length&&!a[2].trim()&&(c=null):c={marker:d,length:b.length};continue}if(c||/^\s*>/.test(d))continue;let e=f.exec(d);e&&b.push((e[1]??e[2]).toUpperCase())}return b}(d))if(e[a]!==c.status)return{failureReason:`contradictory stage verdict: prose marker "${a}" disagrees with JSON status "${c.status}"`,output:g};return{verdict:c,output:g}}}};
@@ -1,2 +0,0 @@
1
- "use strict";exports.id=2318,exports.ids=[2318],exports.modules={62318:(a,b,c)=>{c.d(b,{d:()=>u});var d=c(77598),e=c.n(d),f=c(12500),g=c(27832),h=c(40713);function i(a=process.env){return"1"===a.LLV_WAKATIME_ENABLED}var j=c(73024),k=c.n(j),l=c(76760),m=c.n(l),n=c(91724);c(24191),c(28478);var o=c(2033);function p(a,b,c="activity"){return function(...a){return e().createHash("sha256").update(a.join("\0")).digest("hex")}("activity"===c?"llv-wakatime-heartbeat-v1":"llv-wakatime-boundary-v1",a,b)}function q(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function r(a){return"number"==typeof a&&Number.isFinite(a)}function s(a){return Number.isSafeInteger(a)&&a>=0}function t(a,b=(0,n.BQ)("wakatime-state.json"),c=i){if(c()){if(!/^[a-f0-9]{64}$/.test(a.key)||"claude"!==a.engine&&"codex"!==a.engine||!a.project.trim()||a.project.trim()===g.Mv||!Number.isSafeInteger(a.atMs)||a.atMs<=0)throw Error("direct operator heartbeat is invalid");(0,o.Ol)(b,"WakaTime state is busy",()=>{let c=function(a){if(!q(a)||1!==a.version||!r(a.enabledAtMs)||!q(a.streams)||!Array.isArray(a.pending)||!q(a.retry)||!q(a.counters))return null;let b=a.credentialGeneration??null;if(!(null===b||"string"==typeof b&&/^[a-f0-9]{64}$/.test(b)))return null;let c={};for(let[b,d]of Object.entries(a.streams)){if(!/^[a-f0-9]{64}$/.test(b)||!q(d)||"string"!=typeof d.entity||"claude"!==d.engine&&"codex"!==d.engine||"string"!=typeof d.project||0===d.project.length||!r(d.startedAtMs)||!(null===d.endedAtMs||r(d.endedAtMs))||!r(d.lastMaterializedAtMs)||!r(d.lastObservedAtMs)||!(void 0===d.boundaryFinalizedAtMs||null===d.boundaryFinalizedAtMs||r(d.boundaryFinalizedAtMs))||null!==d.endedAtMs&&d.endedAtMs<=d.startedAtMs||d.lastMaterializedAtMs<d.startedAtMs-1)return null;c[b]={entity:d.entity,engine:d.engine,project:d.project,startedAtMs:d.startedAtMs,endedAtMs:d.endedAtMs,lastMaterializedAtMs:d.lastMaterializedAtMs,lastObservedAtMs:d.lastObservedAtMs,boundaryFinalizedAtMs:d.boundaryFinalizedAtMs??null}}let d={},e=a.retiredStreams??{};if(!q(e))return null;for(let[a,b]of Object.entries(e)){if(!/^[a-f0-9]{64}$/.test(a)||!q(b)||!r(b.lastMaterializedAtMs)||!r(b.lastObservedAtMs)||!(null===b.boundaryFinalizedAtMs||r(b.boundaryFinalizedAtMs))||!r(b.expiresAtMs))return null;d[a]={lastMaterializedAtMs:b.lastMaterializedAtMs,lastObservedAtMs:b.lastObservedAtMs,boundaryFinalizedAtMs:b.boundaryFinalizedAtMs,expiresAtMs:b.expiresAtMs}}let f=[],g=new Set;for(let b of a.pending){var h;if(!q(b)||"string"!=typeof b.key||!/^[a-f0-9]{64}$/.test(b.key)||"string"!=typeof b.stream||!r(b.createdAtMs))return null;let a=q(h=b.heartbeat)&&"string"==typeof h.entity&&0!==h.entity.length&&"app"===h.type&&"string"==typeof h.project&&0!==h.project.length&&"ai coding"===h.category&&r(h.time)&&"string"==typeof h.ai_session&&64===h.ai_session.length?{entity:h.entity,type:"app",project:h.project,category:"ai coding",time:h.time,ai_session:h.ai_session}:null;if(!a)return null;let d=void 0===b.kind?"activity":b.kind;if("activity"!==d&&"boundary"!==d)return null;let e=c[b.stream],i=1e3*a.time;if(!e||!Number.isSafeInteger(i)||a.ai_session!==b.stream||a.entity!==("boundary"===d?`agent-log-viewer/boundary/${b.stream.slice(0,16)}`:e.entity)||a.project!==("boundary"===d?"agent-log-viewer-boundary":e.project)||b.key!==p(b.stream,i,d))return null;g.has(b.key)||(f.push({key:b.key,stream:b.stream,kind:d,createdAtMs:b.createdAtMs,heartbeat:a}),g.add(b.key))}let i=a.retry,j=i.reason;if(!s(i.failures)||!r(i.retryAtMs)||null!==j&&"network"!==j&&"timeout"!==j&&"rate_limit"!==j&&"server"!==j&&"auth"!==j)return null;let k=a.counters;return s(k.accepted)&&s(k.permanentlyRejected)&&s(k.compacted)&&s(k.dropped)&&s(k.historyGaps)?{version:1,enabledAtMs:a.enabledAtMs,credentialGeneration:b,streams:c,pending:f,retry:{failures:i.failures,retryAtMs:i.retryAtMs,reason:j},counters:{accepted:k.accepted,permanentlyRejected:k.permanentlyRejected,compacted:k.compacted,dropped:k.dropped,historyGaps:k.historyGaps},retiredStreams:d}:null}(function(a=(0,n.BQ)("wakatime-state.json")){try{return JSON.parse(k().readFileSync(a,"utf8"))}catch(a){if("ENOENT"===a.code)return null;throw a}}(b))??{version:1,enabledAtMs:a.atMs,credentialGeneration:null,streams:{},retiredStreams:{},pending:[],retry:{failures:0,retryAtMs:0,reason:null},counters:{accepted:0,permanentlyRejected:0,compacted:0,dropped:0,historyGaps:0}};!function(a,b,c,d){if(a.streams[b.key]||a.retiredStreams?.[b.key])return;let e=`agent-log-viewer/operator/${b.engine}/${b.key.slice(0,16)}`;a.streams[b.key]={entity:e,engine:b.engine,project:b.project,startedAtMs:b.atMs,endedAtMs:b.atMs+1,lastMaterializedAtMs:b.atMs+1,lastObservedAtMs:b.atMs,boundaryFinalizedAtMs:b.atMs+1};let f=p(b.key,b.atMs);d.has(f)||(a.pending.push({key:f,stream:b.key,kind:"activity",createdAtMs:c,heartbeat:{entity:e,type:"app",project:b.project,category:"ai coding",time:b.atMs/1e3,ai_session:b.key}}),d.add(f))}(c,{...a,project:a.project.trim()},a.atMs,new Set(c.pending.map(a=>a.key)));k().mkdirSync(m().dirname(b),{recursive:!0,mode:448});let d=m().join(m().dirname(b),`.${m().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`);try{k().writeFileSync(d,`${JSON.stringify(c,null,2)}
2
- `,{encoding:"utf8",mode:384}),k().renameSync(d,b)}finally{try{k().unlinkSync(d)}catch{}}})}}function u(a,b={}){let c={enabled:b.enabled??i,now:b.now??Date.now,registrySnapshot:b.registrySnapshot??(()=>(0,f.agentRegistry)().readOnlySnapshot()),enqueue:b.enqueue??t};if(!c.enabled())return null;let d=a.idempotencyKey?.trim()??"",j=a.resolvedAttribution;if(j&&("claude"!==j.engine&&"codex"!==j.engine||!j.project.trim()||j.project===g.Mv))throw Error("direct operator activity attribution is invalid");let k=j?null:(0,f.MA)(c.registrySnapshot()),l=a.conversationId?.trim()??"",m=a.path?.trim()??"",n=l.startsWith("conversation_")?k?.conversation(l)??null:null,o=m?k?.conversationForPath(m)??null:null,p=n?new Set([...n.generations.map(a=>a.path),...n.continuityPaths,...n.abandonedContinuityPaths]):null;if(n&&o&&n.id!==o.id||n&&m&&!p?.has(m))throw Error("direct operator activity has conflicting target evidence");let q=n??o,r=a.fallbackEntry,s=j?.engine??q?.engine??(r?.engine==="claude"||r?.engine==="codex"?r.engine:null);if(!s)throw Error("direct operator activity target is unavailable");let v=q?.generations.at(-1),w=j?.project.trim()??(0,h.x)({projectOwnership:q?.projectOwnership,cwd:v?.launchProfile.cwd||r?.cwd,launchProfileProject:v?.launchProfile.project,fallbackProject:r?.project}).project;if(!w||w===g.Mv)throw Error("direct operator activity project is unavailable");let x=c.now();if(!Number.isSafeInteger(x)||x<=0)throw Error("direct operator activity time is invalid");let y={key:d?function(...a){return e().createHash("sha256").update(a.join("\0")).digest("hex")}("llv-wakatime-direct-operator-v1",d):e().randomBytes(32).toString("hex"),engine:s,project:w,atMs:x};return c.enqueue(y),y}c(63657)}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=2371,exports.ids=[2371],exports.modules={22371:(a,b,c)=>{c.d(b,{le:()=>k,pQ:()=>o,e3:()=>p});var d=c(73024),e=c.n(d);c(76760);var f=c(27146),g=c(22619),h=c(51888),i=c(49048);let j=["orchestrator","reviewer","verifier","builder","architect","cleaner","prod-auditor","deployer"],k=12e3;class l extends Error{constructor(a,b){super(a,b),this.name="RoleStoreError"}}let m=()=>(0,f.BQ)("role-presets.json");function n(a){return i.W.map(b=>{let c=a[b.id];return{...b,config:{...b.config,...c?.config},promptScaffold:c?.promptScaffold??b.promptScaffold}})}function o(){return n(function(){let a,b;try{a=e().readFileSync(m(),"utf8")}catch(a){if("ENOENT"===a.code)return{schemaVersion:1,overrides:{}};throw new l(`could not read role override registry: ${m()}`,{cause:a})}try{b=JSON.parse(a)}catch(a){throw new l("role override registry contains malformed JSON",{cause:a})}if(1!==b.schemaVersion)throw new l(`unsupported role override schema: ${String(b.schemaVersion)}`);if(!b.overrides||"object"!=typeof b.overrides||Array.isArray(b.overrides))throw new l("role override registry must contain an overrides object");let c={};for(let[a,d]of Object.entries(b.overrides)){if(!("string"==typeof a&&j.includes(a))||!function(a){if(!a||"object"!=typeof a||Array.isArray(a)||Object.keys(a).some(a=>"config"!==a&&"promptScaffold"!==a)||void 0!==a.promptScaffold&&("string"!=typeof a.promptScaffold||a.promptScaffold.length>k))return!1;if(void 0!==a.config){if(!a.config||"object"!=typeof a.config||Array.isArray(a.config)||Object.keys(a.config).some(a=>"engine"!==a&&"model"!==a&&"effort"!==a))return!1;let{engine:b,model:c,effort:d}=a.config;if(void 0!==b&&"claude"!==b&&"codex"!==b||void 0!==c&&("string"!=typeof c||c.length>128)||void 0!==d&&("string"!=typeof d||d.length>32))return!1}return!0}(d)||!function(a,b){let c={...i.W.find(b=>b.id===a).config,...b.config};if(c.model.length>128||/[\u0000-\u001f\u007f]/.test(c.model)||"claude"===c.engine&&!(0,h.OV)(c.model)||"codex"===c.engine&&!c.model.startsWith("gpt-"))return!1;let d=(0,g.ve)(c.engine,c.model);if(!d.includes(c.effort))throw new l(`invalid role override: ${a}; effort for ${c.engine}/${c.model} must be one of: ${d.join(", ")}`);return!0}(a,d))throw new l(`invalid role override: ${a}`);c[a]=d}return{schemaVersion:1,overrides:c}}().overrides)}function p(){try{return o()}catch(a){return console.warn("[roles] override registry unreadable; falling back to built-in defaults",a),n({})}}},22619:(a,b,c)=>{c.d(b,{BL:()=>k,ck:()=>g,ve:()=>j});let d=["low","medium","high","xhigh","max"],e=["low","medium","high","xhigh"],f=["minimal","low","medium","high","xhigh","max","ultra"];function g(a){return f.includes(a)}let h=[[/^gpt-6-astra\b/,["low","medium","high","xhigh","max","ultra"]],[/^gpt-5\.6-(sol|terra)\b/,["low","medium","high","xhigh","max","ultra"]],[/^gpt-5\.6\b/,["low","medium","high","xhigh","max"]]],i=["off","minimal","low","medium","high","xhigh","max"];function j(a,b){if("claude"===a)return d;if("openclaw"===a)return i;if("codex"!==a)return null;let c=(b??"").trim().toLowerCase();for(let[a,b]of h)if(a.test(c))return b;return e}function k(a,b){let c="string"==typeof b.effort?b.effort.trim():"",d=j(a,"string"==typeof b.model?b.model:null);return c&&!d.includes(c)?{effort:null,fast:null,error:`effort for ${a} must be one of: ${d.join(", ")}`}:{effort:c||null,fast:"codex"===a&&"boolean"==typeof b.fast?b.fast:null}}},49048:(a,b,c)=>{c.d(b,{W:()=>h});var d=c(51888);let e=["Read-only mode: edits, staging, commits, pushes, service restarts, and GitHub comments are prohibited.","Every finding carries file:line evidence. Clean work earns a clear NO FINDINGS verdict."],f="Two standing rules. (1) Anchor the frame: when the assignment carries the requester's originating requirement, validate the work against that verbatim requirement, never against the artifact's previous revision — WRONG-PREMISE (\"this does not serve the original requirement\") is an expected verdict and outranks any finding about internal rigour. (2) Over-engineering pass: on every review, flag machinery heavier than the problem it solves (a library plus wrapper where a native primitive does), name the simpler mechanism, and report what to cut — OVER-BUILT is a first-class verdict, and a round that only removes scope is a successful round.",g="Before deciding, and whenever a problem or unknown appears, ask whether it was solved before: run a few search_transcripts queries in different phrasings (project-scoped, then unscoped), read any hit through conversation_messages at its transcript path, cite what you found or say nothing relevant existed, and check an old answer against current main before building on it.",h=[{id:"orchestrator",name:"Orchestrator",description:"Coordinates fresh agents through the Viewer control plane.",config:{engine:"claude",model:"opus",effort:"high"},parameters:[{key:"mode",label:"Mode",description:"Operating mode for the coordination run.",kind:"select",options:["standard","plan-tickets","wayfind","backlog-campaign"]},{key:"repo",label:"Repository",description:"Repository for backlog-campaign mode.",kind:"text"},{key:"issueQuery",label:"Issue query",description:"GitHub issue query for backlog-campaign mode.",kind:"text"},{key:"urgent",label:"Urgent list",description:"Comma-separated urgent issue ids.",kind:"text"},{key:"maxWorkers",label:"Maximum workers",description:"Worker cap for backlog-campaign mode.",kind:"integer",default:3,min:1,max:20},{key:"mergePolicy",label:"Merge policy",description:"Delivery policy for backlog-campaign mode.",kind:"select",options:["pr","merge"]},{key:"completionPolicy",label:"Completion policy",description:"Terminal policy for backlog-campaign mode.",kind:"select",options:["pr-opened","merged","released"]}],promptScaffold:"You are the Orchestrator. Drive work through the production Viewer MCP tools. Use fresh empty sessions with src lineage; forks are disabled. Keep every worker visible and controllable in the Viewer.\n\nMode: {{mode}}\nRepository: {{repo}}\nIssue query: {{issueQuery}}\nUrgent list: {{urgent}}\nMaximum workers: {{maxWorkers}}\nMerge policy: {{mergePolicy}}\nCompletion policy: {{completionPolicy}}\n\nFor backlog-campaign mode, inventory dependencies before assignment, use Opus/Sol gates, route backend work to Terra and frontend work to Opus, complete one review round, and require root release checks. Before a Viewer replacement, preserve the external-worker deployment barrier.",safetyFences:["Viewer control uses the Viewer MCP tools with src lineage.","Fresh empty sessions only; forks are disabled.","One owner holds a file at a time across active worktrees."],capabilities:["spawn"]},{id:"reviewer",name:"Reviewer",description:"Reviews a code diff and returns severity-ranked evidence-backed findings.",config:{engine:"codex",model:d.c7,effort:"xhigh"},parameters:[{key:"diffSource",label:"Diff source",description:"Diff or pull request reference to inspect.",kind:"text",required:!0},{key:"lens",label:"Lens",description:"Review lens.",kind:"select",options:["correctness","over-engineering","silent-failure","test-coverage","scope","prod-ops","standards+spec","code-smells","all"]},{key:"mode",label:"Mode",description:"Reviewer context mode.",kind:"select",options:["fresh"]},{key:"parallelN",label:"Parallel passes",description:"Independent review passes.",kind:"integer",min:1,max:8}],promptScaffold:`You are a fresh-context Reviewer. Inspect {{diffSource}} with lens {{lens}}. Run {{parallelN}} independent pass(es), preserving their axes. Report the reviewed SHA. State plainly when GitHub or DNS access was unavailable. Classify any gate blocked by sandbox limits as an environmental note and keep it out of code findings. Run TypeScript checks with bunx tsc --noEmit --incremental false so they do not need a tsbuildinfo write in the checkout. Return severity-ranked findings with file:line evidence, or exactly NO FINDINGS when the diff is clean. Every finding is an actionable fix plan: clear problem statement, fix intent, constraints, and acceptance criteria. No copy-paste code unless absolutely necessary. ${g} ${f}`,safetyFences:e,capabilities:["read-only"]},{id:"verifier",name:"Verifier",description:"Tests supplied hypotheses and returns a per-claim evidence verdict.",config:{engine:"codex",model:d.c7,effort:"high"},parameters:[{key:"claims",label:"Claims",description:"Hypotheses to confirm or refute.",kind:"text",required:!0}],promptScaffold:"You are a Verifier. Evaluate these supplied claims: {{claims}}. Rank falsifiable hypotheses before testing. Return CONFIRMED or WRONG for every claim with exact evidence and identify missing evidence.",safetyFences:e,capabilities:["read-only"]},{id:"builder",name:"Builder",description:"Writes product code for a scoped directive.",config:{engine:"codex",model:d.c7,effort:"medium"},parameters:[{key:"mode",label:"Mode",description:"Implementation discipline.",kind:"select",options:["plain","apply-fixes","tdd","diagnose","prototype","merge-resolve"]},{key:"domain",label:"Domain",description:"Product domain for the implementation.",kind:"select",options:["general","frontend"]}],promptScaffold:`You are a Builder in {{mode}} mode. Implement the scoped product directive with focused checks. Keep changes within the assigned file ownership, run a self-review, and report the verification evidence. ${g}`,safetyFences:["Product source changes stay inside the assigned scope.","A deployment requires a Deployer role and explicit operator approval."],capabilities:[]},{id:"architect",name:"Architect",description:"Produces an evidence-grounded design without product edits.",config:{engine:"claude",model:"opus",effort:"high"},parameters:[{key:"mode",label:"Mode",description:"Architecture output mode.",kind:"select",options:["design","spec","architecture-audit"]}],promptScaffold:`You are an Architect in {{mode}} mode. Ground the design in current code, state options and trade-offs, then deliver a design document. Product-source edits are prohibited. Open the document with the requester's originating requirement verbatim (with date and source; redact credentials and personal data). The default answer to "should we build this" is no unless that requirement demands it; validate the final design against the quote, and move cut scope into a "Deferred — not currently justified" section instead of deleting it. ${g} ${f}`,safetyFences:["Product-source edits, staging, commits, pushes, and service restarts are prohibited.","Capture an ADR only for a hard-to-reverse decision with a material trade-off."],capabilities:["read-only"]},{id:"cleaner",name:"Cleaner",description:"Safely recovers a dirty checkout under a backup contract.",config:{engine:"codex",model:d.fC,effort:"low"},parameters:[],promptScaffold:"You are a Cleaner. Classify the dirty checkout, preserve recoverable evidence before each destructive operation, and keep sibling worktrees untouched. Report the exact recovery actions and resulting git status.",safetyFences:["Create a backup before each destructive operation.","Sibling worktrees and user data remain untouched without explicit operator approval."],capabilities:[]},{id:"prod-auditor",name:"Prod-auditor",description:"Performs a read-only evidence-backed production investigation.",config:{engine:"codex",model:d.c7,effort:"xhigh"},parameters:[{key:"questions",label:"Questions",description:"Production questions to investigate.",kind:"text",required:!0}],promptScaffold:"You are a Prod-auditor. Investigate {{questions}} through the production read wrapper only. Cite every finding with the exact command or SQL and UTC time bounds. Return evidence with no runtime mutation.",safetyFences:["Use the production read wrapper only.","Writes, restarts, deploys, and credential disclosure are prohibited."],capabilities:["read-only","production-read"]},{id:"deployer",name:"Deployer",description:"Plans a blue/green production deployment and stops for approval before mutation.",config:{engine:"codex",model:d.fC,effort:"medium"},parameters:[{key:"sha",label:"Merged SHA",description:"Merged commit SHA to deploy.",kind:"text",required:!0},{key:"pr",label:"Pull request",description:"Optional pull request reference.",kind:"text"}],promptScaffold:"You are a Deployer. Plan the blue/green deployment for merged SHA {{sha}} (PR {{pr}}). Validate the inactive color, present each mutating step for explicit operator approval, then stop. Preserve the external-worker deployment barrier.",safetyFences:["Every mutating production step waits for explicit operator approval.","Rebuild or restart only the inactive color after its validation."],capabilities:["production-write"]}]}};