@mndrk/agx 2.0.34 → 2.0.38

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 (600) hide show
  1. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
  3. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  4. package/cloud-runtime/standalone/.next/required-server-files.json +0 -3
  5. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  6. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  7. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  14. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +4 -4
  15. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  16. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  21. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  22. package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  23. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  24. package/cloud-runtime/standalone/.next/server/app/agents.rsc +5 -5
  25. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +5 -5
  26. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  27. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +4 -4
  28. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +1 -1
  29. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  30. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  31. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js +3 -3
  32. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  33. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/messages/route.js +1 -1
  34. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/messages/route.js.nft.json +1 -1
  35. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js +3 -3
  36. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  37. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js +3 -3
  38. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/.next/server/app/api/attachments/[id]/route.js +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/api/attachments/[id]/route.js.nft.json +1 -1
  41. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js +3 -3
  42. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
  45. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +4 -4
  46. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  47. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/api/daemon/route.js +1 -1
  54. package/cloud-runtime/standalone/.next/server/app/api/daemon/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +1 -1
  57. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/.next/server/app/api/health/route.js +3 -3
  59. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/.next/server/app/api/history/route.js +1 -1
  61. package/cloud-runtime/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/.next/server/app/api/history/status/route.js +1 -1
  63. package/cloud-runtime/standalone/.next/server/app/api/history/status/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js +2 -2
  65. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +3 -3
  67. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/.next/server/app/api/logs/route.js +1 -1
  69. package/cloud-runtime/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/.next/server/app/api/logs/stream/route.js +1 -1
  71. package/cloud-runtime/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +2 -2
  73. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js +1 -1
  75. package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js +1 -1
  77. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +2 -2
  81. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +2 -2
  83. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +4 -4
  85. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +3 -3
  87. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js +1 -1
  89. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/api/processes/route.js +1 -1
  91. package/cloud-runtime/standalone/.next/server/app/api/processes/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +4 -4
  93. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js +4 -4
  95. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +2 -2
  97. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +2 -2
  99. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +3 -3
  101. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +4 -4
  103. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +4 -4
  105. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +4 -4
  107. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +3 -3
  109. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js +4 -4
  111. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
  112. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js +4 -4
  113. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js +4 -4
  115. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js +4 -4
  117. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js +4 -4
  119. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  120. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js +4 -4
  121. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
  122. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +3 -3
  123. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +3 -3
  125. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/api/reactions/route.js +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/api/reactions/route.js.nft.json +1 -1
  128. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js +1 -1
  129. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js.nft.json +1 -1
  130. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +2 -2
  131. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +1 -1
  133. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js +2 -2
  135. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/.next/server/app/api/search/route.js +1 -1
  137. package/cloud-runtime/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route.js +1 -1
  139. package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js +2 -2
  141. package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js +2 -2
  143. package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js +2 -2
  145. package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js +2 -2
  147. package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/.next/server/app/api/skills/route.js +2 -2
  149. package/cloud-runtime/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route.js +2 -2
  151. package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +3 -3
  153. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/.next/server/app/api/system/db-status/route.js +1 -1
  155. package/cloud-runtime/standalone/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/.next/server/app/api/task-drafts/route.js +1 -1
  157. package/cloud-runtime/standalone/.next/server/app/api/task-drafts/route.js.nft.json +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +4 -4
  159. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +2 -2
  161. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +3 -3
  163. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +1 -1
  165. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +3 -3
  167. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +2 -2
  169. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  170. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +2 -2
  171. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js +1 -1
  173. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +4 -4
  175. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  176. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +3 -3
  177. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  178. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +3 -3
  179. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  180. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +4 -4
  181. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  182. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +4 -4
  183. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  184. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +4 -4
  185. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  186. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +3 -3
  187. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  188. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +1 -1
  189. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  190. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js +1 -1
  191. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
  192. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +3 -3
  193. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  194. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +4 -4
  195. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  196. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/stream/route.js +1 -1
  197. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/stream/route.js.nft.json +1 -1
  198. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +2 -2
  199. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  200. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +5 -5
  201. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +5 -5
  203. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  204. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +5 -5
  205. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  206. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +5 -5
  207. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  208. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +5 -5
  209. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  210. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +6 -6
  211. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  212. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +4 -4
  213. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  214. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +3 -3
  215. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  216. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +3 -3
  217. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  218. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +4 -4
  219. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  220. package/cloud-runtime/standalone/.next/server/app/api/tasks/stream/route.js +1 -1
  221. package/cloud-runtime/standalone/.next/server/app/api/tasks/stream/route.js.nft.json +1 -1
  222. package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route.js +1 -1
  223. package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route.js.nft.json +1 -1
  224. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +3 -3
  225. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  226. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +3 -3
  227. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  228. package/cloud-runtime/standalone/.next/server/app/api/upload/[id]/route.js +1 -1
  229. package/cloud-runtime/standalone/.next/server/app/api/upload/[id]/route.js.nft.json +1 -1
  230. package/cloud-runtime/standalone/.next/server/app/api/upload/route.js +1 -1
  231. package/cloud-runtime/standalone/.next/server/app/api/upload/route.js.nft.json +1 -1
  232. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +3 -3
  233. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  234. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  235. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  236. package/cloud-runtime/standalone/.next/server/app/automations.rsc +5 -5
  237. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +5 -5
  238. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  239. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +4 -4
  240. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +1 -1
  241. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  242. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  243. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  244. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  245. package/cloud-runtime/standalone/.next/server/app/board.rsc +4 -4
  246. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +4 -4
  247. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  248. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +4 -4
  249. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +1 -1
  250. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  251. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  252. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  253. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  254. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +5 -5
  255. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +5 -5
  256. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  257. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +4 -4
  258. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +1 -1
  259. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  260. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  261. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  262. package/cloud-runtime/standalone/.next/server/app/index.rsc +5 -5
  263. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  264. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +5 -5
  265. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  266. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +4 -4
  267. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  268. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  269. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  270. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  271. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  272. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  273. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  274. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  275. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  276. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +5 -5
  277. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +5 -5
  278. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  279. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +4 -4
  280. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +1 -1
  281. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
  282. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  283. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  284. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  285. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  286. package/cloud-runtime/standalone/.next/server/app/projects.rsc +5 -5
  287. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +5 -5
  288. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  289. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +4 -4
  290. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
  291. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  292. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  293. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  294. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  295. package/cloud-runtime/standalone/.next/server/app/settings.rsc +5 -5
  296. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +5 -5
  297. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  298. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +4 -4
  299. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  300. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  301. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  302. package/cloud-runtime/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  303. package/cloud-runtime/standalone/.next/server/app/skills.html +2 -2
  304. package/cloud-runtime/standalone/.next/server/app/skills.rsc +5 -5
  305. package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +5 -5
  306. package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  307. package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +4 -4
  308. package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +1 -1
  309. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +2 -2
  310. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  311. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  312. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  313. package/cloud-runtime/standalone/.next/server/app/status.rsc +5 -5
  314. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +5 -5
  315. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  316. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +4 -4
  317. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +1 -1
  318. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  319. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  320. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  321. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  322. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  323. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +5 -5
  324. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +5 -5
  325. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  326. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +4 -4
  327. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +1 -1
  328. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
  329. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  330. package/cloud-runtime/standalone/.next/server/chunks/{[externals]__cf9f18a6._.js → [externals]__986fcdb7._.js} +1 -1
  331. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__01cd082e._.js +13 -0
  332. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b500f1bf._.js → [root-of-the-server]__0936925d._.js} +2 -2
  333. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0c3dd73b._.js +13 -0
  334. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0cc3f3b7._.js +18 -0
  335. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d4126e05._.js → [root-of-the-server]__1b0bb735._.js} +3 -3
  336. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4d865017._.js → [root-of-the-server]__1c86bf6e._.js} +6 -6
  337. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1dce6c15._.js +3 -0
  338. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__0bb52353._.js → [root-of-the-server]__20c58b41._.js} +18 -18
  339. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2126c763._.js +42 -0
  340. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__255b11f2._.js +3 -0
  341. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__26817611._.js +3 -0
  342. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__277ed37d._.js +3 -0
  343. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__294fceef._.js +3 -0
  344. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2f06f568._.js +46 -0
  345. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__30bd0c87._.js +13 -0
  346. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__314d5c41._.js +3 -0
  347. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__352dad6d._.js +3 -0
  348. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__374cd94c._.js +42 -0
  349. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3785024c._.js +80 -0
  350. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__379604d4._.js +13 -0
  351. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3c8f1de6._.js +15 -0
  352. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3d0df5a8._.js +8 -0
  353. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__0b3b6a47._.js → [root-of-the-server]__4014ed70._.js} +20 -20
  354. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42fcb81c._.js +52 -0
  355. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4a3cd6ac._.js +13 -0
  356. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4a4265e0._.js +22 -0
  357. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c99509c2._.js → [root-of-the-server]__4bce7db7._.js} +17 -17
  358. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c5c536d._.js +18 -0
  359. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4e522535._.js +6 -0
  360. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__50c24784._.js +3 -0
  361. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__50ddd3ce._.js +1 -1
  362. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__529a6e1c._.js +80 -0
  363. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__59d1cdd8._.js +3 -0
  364. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5a1fd688._.js +3 -0
  365. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5d359afa._.js +18 -18
  366. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__628d686b._.js +3 -0
  367. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__005b3c82._.js → [root-of-the-server]__644e6285._.js} +8 -8
  368. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__65755104._.js +7 -0
  369. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__068b4f08._.js → [root-of-the-server]__73c20995._.js} +3 -3
  370. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__762ab29c._.js +51 -0
  371. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__981d92dd._.js → [root-of-the-server]__8125bbc3._.js} +20 -20
  372. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__85275b88._.js +3 -0
  373. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__89666394._.js +8 -0
  374. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8c0fb154._.js +13 -0
  375. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8f5cac13._.js +46 -0
  376. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__91b22098._.js +8 -0
  377. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__92924218._.js +13 -0
  378. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__94bd7f65._.js +3 -0
  379. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9746d1f5._.js +18 -0
  380. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98ce983b._.js +3 -0
  381. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ee6511a0._.js → [root-of-the-server]__9a9fd39f._.js} +10 -10
  382. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9ad4e385._.js +3 -0
  383. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9b69f93e._.js +18 -0
  384. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a01ddd0b._.js +46 -0
  385. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__8ac0286e._.js → [root-of-the-server]__a099c992._.js} +20 -20
  386. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a9b949c3._.js +7 -0
  387. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ab7343c8._.js +3 -0
  388. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__af7a73fd._.js +3 -0
  389. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bd43017b._.js +3 -0
  390. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bf6fb108._.js +80 -0
  391. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c0a18648._.js +10 -10
  392. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__7ee9b7b6._.js → [root-of-the-server]__c122c54a._.js} +3 -3
  393. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c4ea4921._.js +3 -0
  394. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__8b0ab82f._.js → [root-of-the-server]__c4ed5d83._.js} +7 -7
  395. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c695a5f2._.js +18 -0
  396. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c8b49077._.js +10 -10
  397. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d57e800e._.js +13 -0
  398. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d8b615bf._.js +34 -0
  399. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d9bd6334._.js +3 -0
  400. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__543ba6c4._.js → [root-of-the-server]__da3a1ce7._.js} +2 -2
  401. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__db469f1b._.js +3 -0
  402. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__de2a1e43._.js +3 -0
  403. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5031f8d4._.js → [root-of-the-server]__dec3e1b7._.js} +11 -11
  404. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f1147a4a._.js +15 -0
  405. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f5597fea._.js +13 -0
  406. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f8c94cb3._.js +8 -0
  407. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ceb02db8._.js → [root-of-the-server]__f9cff4b0._.js} +2 -2
  408. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f9f7f2df._.js +4 -0
  409. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fa79d53f._.js +46 -0
  410. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fb14cd4a._.js +3 -0
  411. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a55c16a5._.js → [root-of-the-server]__fc27a898._.js} +31 -31
  412. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcf0b40a._.js +3 -0
  413. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ffb21023._.js +80 -0
  414. package/cloud-runtime/standalone/.next/server/chunks/_05fa3b89._.js +18 -18
  415. package/cloud-runtime/standalone/.next/server/chunks/_17e53c87._.js +3 -0
  416. package/cloud-runtime/standalone/.next/server/chunks/_4190f170._.js +18 -18
  417. package/cloud-runtime/standalone/.next/server/chunks/_42e9c8d5._.js +18 -18
  418. package/cloud-runtime/standalone/.next/server/chunks/_5ca51127._.js +3 -3
  419. package/cloud-runtime/standalone/.next/server/chunks/_5fd6af5d._.js +3 -3
  420. package/cloud-runtime/standalone/.next/server/chunks/_8b9fde82._.js +20 -20
  421. package/cloud-runtime/standalone/.next/server/chunks/_994414cd._.js +3 -3
  422. package/cloud-runtime/standalone/.next/server/chunks/_99b78daf._.js +18 -18
  423. package/cloud-runtime/standalone/.next/server/chunks/_affbdbb0._.js +18 -18
  424. package/cloud-runtime/standalone/.next/server/chunks/_d22934ab._.js +20 -20
  425. package/cloud-runtime/standalone/.next/server/chunks/_efc73784._.js +18 -18
  426. package/cloud-runtime/standalone/.next/server/chunks/lib_a5adca60._.js +15 -15
  427. package/cloud-runtime/standalone/.next/server/chunks/lib_check-node-version_ts_ef89bf83._.js +3 -0
  428. package/cloud-runtime/standalone/.next/server/chunks/lib_ea45fe73._.js +18 -18
  429. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +39 -39
  430. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +39 -39
  431. package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_3ea4d849._.js +18 -18
  432. package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_b0b1a9b2._.js +19 -19
  433. package/cloud-runtime/standalone/.next/server/chunks/src_graph_14067235._.js +18 -18
  434. package/cloud-runtime/standalone/.next/server/chunks/src_graph_b63e2d39._.js +18 -18
  435. package/cloud-runtime/standalone/.next/server/chunks/ssr/_0c5c111f._.js +1 -1
  436. package/cloud-runtime/standalone/.next/server/chunks/ssr/_314f4c49._.js +1 -1
  437. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
  438. package/cloud-runtime/standalone/.next/server/instrumentation.js +1 -1
  439. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  440. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  441. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  442. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  443. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  444. package/cloud-runtime/standalone/.next/static/chunks/{47f22a56011af8d3.js → 5c0819dcc4bfec85.js} +1 -1
  445. package/cloud-runtime/standalone/.next/static/chunks/{25c9ac515cfe5635.js → 9bde80696400d2ff.js} +2 -2
  446. package/cloud-runtime/standalone/.next/static/chunks/ac9a7d8cf17b5d75.js +1 -0
  447. package/cloud-runtime/standalone/app/api/agents/[id]/messages/route.ts +4 -3
  448. package/cloud-runtime/standalone/app/api/agents/[id]/profile/route.ts +1 -1
  449. package/cloud-runtime/standalone/app/api/automations/route.ts +1 -1
  450. package/cloud-runtime/standalone/app/api/chat/route.ts +2 -2
  451. package/cloud-runtime/standalone/app/api/memories/route.ts +2 -2
  452. package/cloud-runtime/standalone/app/api/prompt-jobs/[id]/route.ts +9 -1
  453. package/cloud-runtime/standalone/app/api/system/db-status/route.ts +12 -11
  454. package/cloud-runtime/standalone/components/PromptJobBoard.tsx +12 -1
  455. package/cloud-runtime/standalone/components/errors/StartupGuard.tsx +1 -1
  456. package/cloud-runtime/standalone/components/errors/StartupGuardWrapper.tsx +1 -1
  457. package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +1 -1
  458. package/cloud-runtime/standalone/hooks/usePromptJobs.ts +9 -18
  459. package/cloud-runtime/standalone/instrumentation.ts +1 -0
  460. package/cloud-runtime/standalone/lib/agent-process-registry.ts +10 -9
  461. package/cloud-runtime/standalone/lib/attachment-store.ts +6 -5
  462. package/cloud-runtime/standalone/lib/check-node-version.ts +12 -0
  463. package/cloud-runtime/standalone/lib/db-adapter.interface.ts +1 -1
  464. package/cloud-runtime/standalone/lib/history-store.ts +46 -46
  465. package/cloud-runtime/standalone/lib/knowledge-store.ts +2 -1
  466. package/cloud-runtime/standalone/lib/participants-store.ts +9 -8
  467. package/cloud-runtime/standalone/lib/queue/sqlite-adapter.ts +12 -11
  468. package/cloud-runtime/standalone/lib/repo-knowledge.ts +6 -5
  469. package/cloud-runtime/standalone/lib/sqlite-compat.ts +75 -0
  470. package/cloud-runtime/standalone/lib/sqlite-query-adapter.ts +15 -14
  471. package/cloud-runtime/standalone/lib/sqlite_writer.ts +10 -9
  472. package/cloud-runtime/standalone/lib/startup.ts +18 -19
  473. package/cloud-runtime/standalone/lib/thread-knowledge-runs.ts +2 -1
  474. package/cloud-runtime/standalone/lib/workspaces-to-projects-migration.ts +19 -18
  475. package/cloud-runtime/standalone/mcp/package-lock.json +3 -147
  476. package/cloud-runtime/standalone/mcp/package.json +1 -1
  477. package/cloud-runtime/standalone/mcp/src/check-node-version.ts +8 -0
  478. package/cloud-runtime/standalone/mcp/src/db.ts +4 -5
  479. package/cloud-runtime/standalone/mcp/src/index.ts +1 -0
  480. package/cloud-runtime/standalone/next.config.ts +0 -1
  481. package/cloud-runtime/standalone/package-lock.json +9 -413
  482. package/cloud-runtime/standalone/package.json +3 -2
  483. package/cloud-runtime/standalone/scripts/bench-queue.ts +5 -4
  484. package/cloud-runtime/standalone/server.js +1 -1
  485. package/cloud-runtime/standalone/src/db/backup.ts +12 -11
  486. package/cloud-runtime/standalone/src/db/checks.ts +3 -3
  487. package/cloud-runtime/standalone/src/db/init.ts +13 -12
  488. package/cloud-runtime/standalone/src/graph/schedule-runner.ts +1 -1
  489. package/cloud-runtime/standalone/src/graph/store.ts +14 -13
  490. package/cloud-runtime/standalone/src/prompt-scheduler/get-store.ts +19 -3
  491. package/cloud-runtime/standalone/src/prompt-scheduler/store.ts +9 -9
  492. package/cloud-runtime/standalone/test/adapters/sqlite.ts +7 -6
  493. package/cloud-runtime/standalone/worker/index.js +110 -822
  494. package/cloud-runtime/standalone/worker/index.ts +1 -0
  495. package/lib/cli/onboarding.js +3 -3
  496. package/lib/storage/db.js +12 -8
  497. package/package.json +5 -2
  498. package/scripts/postinstall.js +0 -68
  499. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__017f03c3._.js +0 -13
  500. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__056d94e4._.js +0 -3
  501. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__06634853._.js +0 -80
  502. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0f580808._.js +0 -13
  503. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__164a80ba._.js +0 -18
  504. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__16dd1fd7._.js +0 -13
  505. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1a8e0957._.js +0 -7
  506. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1cc2fe7f._.js +0 -3
  507. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__23ad03bf._.js +0 -3
  508. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__241a8bcf._.js +0 -3
  509. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__29419d66._.js +0 -42
  510. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2948f712._.js +0 -3
  511. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__32ef6623._.js +0 -3
  512. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__34cb1b98._.js +0 -3
  513. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3c1567b6._.js +0 -3
  514. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3c37453e._.js +0 -3
  515. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3faa64cd._.js +0 -4
  516. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4041bb93._.js +0 -18
  517. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42497c7b._.js +0 -80
  518. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__49c03d66._.js +0 -3
  519. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4a8d14c1._.js +0 -3
  520. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c50f159._.js +0 -18
  521. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c861686._.js +0 -46
  522. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__588b6ab0._.js +0 -46
  523. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__596d0e81._.js +0 -42
  524. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__59b5d4e5._.js +0 -3
  525. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__61c99680._.js +0 -52
  526. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__64712846._.js +0 -3
  527. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__707c32af._.js +0 -15
  528. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7370bb86._.js +0 -8
  529. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__749af50f._.js +0 -8
  530. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__74b97f0a._.js +0 -3
  531. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__75cedecf._.js +0 -6
  532. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7e79d86a._.js +0 -3
  533. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8b461158._.js +0 -3
  534. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__918f0106._.js +0 -80
  535. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__922eb7cd._.js +0 -80
  536. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__927cfc20._.js +0 -3
  537. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__952af4b3._.js +0 -22
  538. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98b352f7._.js +0 -13
  539. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a44db634._.js +0 -8
  540. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a67cd108._.js +0 -51
  541. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ab2bf82d._.js +0 -13
  542. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__abb032c1._.js +0 -34
  543. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b4931ee1._.js +0 -3
  544. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b4d05543._.js +0 -3
  545. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b707e701._.js +0 -3
  546. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b9e41767._.js +0 -3
  547. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__be4ad4b5._.js +0 -46
  548. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bf5803eb._.js +0 -13
  549. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ccd4846e._.js +0 -13
  550. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d7e839a8._.js +0 -18
  551. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d908c9ea._.js +0 -8
  552. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__da20a0aa._.js +0 -18
  553. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__dcdeee3d._.js +0 -3
  554. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e069c0a3._.js +0 -3
  555. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e1e51c02._.js +0 -7
  556. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e3a4fd97._.js +0 -13
  557. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e4a87984._.js +0 -15
  558. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ef82dda1._.js +0 -3
  559. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fa0ebee3._.js +0 -13
  560. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fee58db1._.js +0 -46
  561. package/cloud-runtime/standalone/.next/server/chunks/_d225c04f._.js +0 -3
  562. package/cloud-runtime/standalone/.next/static/chunks/d73f1cc3ebc9993b.js +0 -1
  563. package/cloud-runtime/standalone/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  564. package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/database.js +0 -90
  565. package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/index.js +0 -3
  566. package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/aggregate.js +0 -43
  567. package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/backup.js +0 -67
  568. package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/function.js +0 -31
  569. package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/inspect.js +0 -7
  570. package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/pragma.js +0 -12
  571. package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/serialize.js +0 -16
  572. package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/table.js +0 -189
  573. package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/transaction.js +0 -78
  574. package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/methods/wrappers.js +0 -54
  575. package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/sqlite-error.js +0 -20
  576. package/cloud-runtime/standalone/node_modules/better-sqlite3/lib/util.js +0 -12
  577. package/cloud-runtime/standalone/node_modules/better-sqlite3/package.json +0 -59
  578. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/build/Release/better_sqlite3.node +0 -0
  579. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/database.js +0 -90
  580. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/index.js +0 -3
  581. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/aggregate.js +0 -43
  582. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/backup.js +0 -67
  583. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/function.js +0 -31
  584. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/inspect.js +0 -7
  585. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/pragma.js +0 -12
  586. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/serialize.js +0 -16
  587. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/table.js +0 -189
  588. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/transaction.js +0 -78
  589. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/methods/wrappers.js +0 -54
  590. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/sqlite-error.js +0 -20
  591. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/lib/util.js +0 -12
  592. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/package.json +0 -59
  593. package/cloud-runtime/standalone/node_modules/bindings/bindings.js +0 -221
  594. package/cloud-runtime/standalone/node_modules/bindings/package.json +0 -28
  595. package/cloud-runtime/standalone/node_modules/file-uri-to-path/index.js +0 -66
  596. package/cloud-runtime/standalone/node_modules/file-uri-to-path/package.json +0 -32
  597. package/cloud-runtime/standalone/scripts/fix-turbopack-externals.mjs +0 -87
  598. /package/cloud-runtime/standalone/.next/static/{G0Hrt7JKBM1EtMPT0lUIr → V5ruh627UpcC-LTWDgYk8}/_buildManifest.js +0 -0
  599. /package/cloud-runtime/standalone/.next/static/{G0Hrt7JKBM1EtMPT0lUIr → V5ruh627UpcC-LTWDgYk8}/_clientMiddlewareManifest.json +0 -0
  600. /package/cloud-runtime/standalone/.next/static/{G0Hrt7JKBM1EtMPT0lUIr → V5ruh627UpcC-LTWDgYk8}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"zzOXUi3ZXYmLsref/IGOxHU3y7BPwtdJjfSeTFFzuhE=\"\n}"
1
+ self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"dLGXVi0yhellSmHVlsMT4W8wEoaFoeo6nz3hlTSnbYg=\"\n}"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "node": {},
3
3
  "edge": {},
4
- "encryptionKey": "zzOXUi3ZXYmLsref/IGOxHU3y7BPwtdJjfSeTFFzuhE="
4
+ "encryptionKey": "dLGXVi0yhellSmHVlsMT4W8wEoaFoeo6nz3hlTSnbYg="
5
5
  }
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,67585,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return s}});let a=e.r(32061);function s({reason:e,children:r}){if("u"<typeof window)throw Object.defineProperty(new a.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return r}},9885,(e,r,t)=>{"use strict";function a(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"encodeURIPath",{enumerable:!0,get:function(){return a}})},74916,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return l}});let a=e.r(18050),s=e.r(74080),n=e.r(63599),o=e.r(9885),d=e.r(43369);function l({moduleIds:e}){if("u">typeof window)return null;let r=n.workAsyncStorage.getStore();if(void 0===r)return null;let t=[];if(r.reactLoadableManifest&&e){let a=r.reactLoadableManifest;for(let r of e){if(!a[r])continue;let e=a[r].files;t.push(...e)}}if(0===t.length)return null;let l=(0,d.getDeploymentIdQueryOrEmptyString)();return(0,a.jsx)(a.Fragment,{children:t.map(e=>{let t=`${r.assetPrefix}/_next/${(0,o.encodeURIPath)(e)}${l}`;return e.endsWith(".css")?(0,a.jsx)("link",{precedence:"dynamic",href:t,rel:"stylesheet",as:"style",nonce:r.nonce},e):((0,s.preload)(t,{as:"script",fetchPriority:"low",nonce:r.nonce}),null)})})}},69093,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let a=e.r(18050),s=e.r(71645),n=e.r(67585),o=e.r(74916);function d(e){return{default:e&&"default"in e?e.default:e}}let l={loader:()=>Promise.resolve(d(()=>null)),loading:null,ssr:!0},i=function(e){let r={...l,...e},t=(0,s.lazy)(()=>r.loader().then(d)),i=r.loading;function c(e){let d=i?(0,a.jsx)(i,{isLoading:!0,pastDelay:!0,error:null}):null,l=!r.ssr||!!r.loading,c=l?s.Suspense:s.Fragment,u=r.ssr?(0,a.jsxs)(a.Fragment,{children:["u"<typeof window?(0,a.jsx)(o.PreloadChunks,{moduleIds:r.modules}):null,(0,a.jsx)(t,{...e})]}):(0,a.jsx)(n.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(t,{...e})});return(0,a.jsx)(c,{...l?{fallback:d}:{},children:u})}return c.displayName="LoadableComponent",c}},70703,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}});let a=e.r(55682)._(e.r(69093));function s(e,r){let t={};"function"==typeof e&&(t.loader=e);let s={...t,...r};return(0,a.default)({...s,modules:s.loadableGenerated?.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},40212,e=>{"use strict";var r=e.i(18050),t=e.i(71645),a=e.i(70703),s=e.i(31343),n=e.i(27612),o=e.i(7233),d=e.i(37727),l=e.i(3116),i=e.i(68054),c=e.i(16715),u=e.i(64659),x=e.i(84765),m=e.i(39312),p=e.i(75254);let v=(0,p.default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]),h=(0,p.default)("calendar-days",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]]),f=(0,p.default)("repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);var b=e.i(88699),g=e.i(71689);let j=(0,a.default)(()=>e.A(76473),{loadableGenerated:{modules:[32077]},ssr:!1});function y(e,r){if("paused"===r)return"Paused";if("stopped"===r)return"Stopped";if(null===e)return"Pending...";let t=e-Date.now();return t<0?"overdue":t<6e4?`in ${Math.round(t/1e3)}s`:t<36e5?`in ${Math.round(t/6e4)}m`:t<864e5?`in ${Math.round(t/36e5)}h`:`in ${Math.round(t/864e5)}d`}function N(e){if(!e)return"—";let r=new Date(e);return r.toLocaleDateString("en-US",{month:"short",day:"numeric"})+", "+r.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit"})}function k({state:e}){let t={active:"text-green-400 bg-green-400/10 border-green-400/20",paused:"text-amber-400 bg-amber-400/10 border-amber-400/20",stopped:"text-[var(--muted-foreground)] bg-[var(--muted)] border-[var(--card-border)]"};return(0,r.jsx)("span",{className:`text-[10px] font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md border ${t[e]??t.stopped}`,children:e})}let w={active:"bg-emerald-400",paused:"bg-amber-400",stopped:"bg-zinc-500"},C={success:"bg-emerald-400",failed:"bg-red-400",cancelled:"bg-zinc-500",running:"bg-sky-400",queued:"bg-amber-400"},S=[{label:"Sun",short:"S",value:0},{label:"Mon",short:"M",value:1},{label:"Tue",short:"T",value:2},{label:"Wed",short:"W",value:3},{label:"Thu",short:"T",value:4},{label:"Fri",short:"F",value:5},{label:"Sat",short:"S",value:6}];function $(e,r,t,a,s){switch(e){case"hourly":return`${t} * * * *`;case"daily":default:return`${t} ${r} * * *`;case"weekly":return`${t} ${r} * * ${a.sort().join(",")}`;case"monthly":return`${t} ${r} ${s} * *`}}function P(e,r,t,a,s){let n=parseInt(r),o=`${n%12||12}:${t} ${n>=12?"PM":"AM"}`;switch(e){case"hourly":return`Every hour at :${t}`;case"daily":default:return`Every day at ${o}`;case"weekly":{let e=a.sort().map(e=>S.find(r=>r.value===e).label);return`${o} on ${e.join(", ")}`}case"monthly":let d,l;return`${s}${(d=["th","st","nd","rd"])[((l=s%100)-20)%10]||d[l]||d[0]} of every month at ${o}`}}function M({value:e,onChange:a}){let[s,n]=(0,t.useState)("daily"),[o,d]=(0,t.useState)("09"),[i,c]=(0,t.useState)("00"),[u,x]=(0,t.useState)([1,2,3,4,5]),[m,p]=(0,t.useState)(1);(0,t.useEffect)(()=>{a($(s,o,i,u,m),P(s,o,i,u,m))},[s,o,i,u,m]);let b=(e,t,a)=>(0,r.jsxs)("button",{type:"button",onClick:()=>n(e),className:`flex flex-col items-center justify-center p-2.5 rounded-xl border transition-all text-[11px] font-medium ${s===e?"border-[var(--foreground)] bg-[var(--foreground)]/5 text-[var(--foreground)]":"border-[var(--card-border)] bg-[var(--muted)] text-[var(--muted-foreground)] hover:border-[var(--muted-foreground)]"}`,children:[(0,r.jsx)(a,{size:16}),(0,r.jsx)("span",{className:"mt-1",children:t})]},e),g="bg-[var(--muted)] border border-[var(--card-border)] rounded-lg px-2 py-1.5 text-sm font-medium text-[var(--foreground)] focus:outline-none focus:border-[var(--foreground)] transition-colors";return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"grid grid-cols-4 gap-2",children:[b("hourly","Hourly",f),b("daily","Daily",l.Clock),b("weekly","Weekly",h),b("monthly","Monthly",v)]}),"hourly"!==s?(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-1.5",children:"Time"}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("select",{value:o,onChange:e=>d(e.target.value),className:g,children:Array.from({length:24}).map((e,t)=>{let a=t.toString().padStart(2,"0");return(0,r.jsx)("option",{value:a,children:a},a)})}),(0,r.jsx)("span",{className:"text-sm font-bold text-[var(--muted-foreground)]",children:":"}),(0,r.jsx)("select",{value:i,onChange:e=>c(e.target.value),className:g,children:["00","05","10","15","20","25","30","35","40","45","50","55"].map(e=>(0,r.jsx)("option",{value:e,children:e},e))}),(0,r.jsx)("span",{className:"ml-1.5 text-[10px] text-[var(--muted-foreground)]",children:parseInt(o)>=12?"PM":"AM"})]})]}):(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-1.5",children:"At minute"}),(0,r.jsx)("select",{value:i,onChange:e=>c(e.target.value),className:g,children:["00","05","10","15","20","25","30","35","40","45","50","55"].map(e=>(0,r.jsxs)("option",{value:e,children:[":",e]},e))})]}),"weekly"===s&&(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-1.5",children:"Repeat on"}),(0,r.jsx)("div",{className:"flex gap-1.5",children:S.map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>{let r;return r=e.value,x(e=>e.includes(r)?e.filter(e=>e!==r):[...e,r])},className:`size-8 rounded-full flex items-center justify-center text-[10px] font-bold transition-all ${u.includes(e.value)?"bg-[var(--foreground)] text-[var(--background)]":"bg-[var(--muted)] text-[var(--muted-foreground)] hover:bg-[var(--card-border)]"}`,children:e.label[0]},e.value))})]}),"monthly"===s&&(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-1.5",children:"On day"}),(0,r.jsx)("div",{className:"grid grid-cols-7 gap-1",children:Array.from({length:31}).map((e,t)=>{let a=t+1;return(0,r.jsx)("button",{type:"button",onClick:()=>p(a),className:`size-7 rounded-lg flex items-center justify-center text-[10px] font-medium transition-all ${m===a?"bg-[var(--foreground)] text-[var(--background)]":"bg-[var(--muted)] text-[var(--muted-foreground)] hover:bg-[var(--card-border)]"}`,children:a},a)})})]}),(0,r.jsxs)("div",{className:"px-3 py-2 rounded-lg bg-[var(--muted)] border border-[var(--card-border)]",children:[(0,r.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)] mb-0.5",children:"Schedule"}),(0,r.jsx)("div",{className:"text-xs font-medium text-[var(--foreground)]",children:P(s,o,i,u,m)}),(0,r.jsx)("div",{className:"text-[10px] font-mono text-[var(--muted-foreground)] mt-0.5",children:$(s,o,i,u,m)})]})]})}let z=[{label:"1 min",ms:6e4},{label:"5 min",ms:3e5},{label:"15 min",ms:9e5},{label:"30 min",ms:18e5},{label:"1 hour",ms:36e5}];function I({children:e}){return(0,r.jsx)("label",{className:"block text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-2",children:e})}function T(e,r,t=24){let a=r?r.replace("#",""):"e2e8f0";return`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${encodeURIComponent(e)}&size=${t}&backgroundColor=${a}`}function R({agents:e,value:a,onChange:s}){let[n,o]=(0,t.useState)(!1),d=e.find(e=>e.id===a);return(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(I,{children:"Agent"}),(0,r.jsxs)("button",{type:"button",onClick:()=>o(!n),className:"w-full flex items-center gap-2.5 px-3 py-2.5 rounded-lg border border-[var(--card-border)] bg-[var(--muted)] text-left transition-colors hover:border-[var(--muted-foreground)]",children:[d?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("img",{src:T(d.id,d.color),alt:"",className:"size-6 rounded-full shrink-0"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-xs font-medium text-[var(--foreground)] truncate",children:d.name}),(0,r.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[d.provider,d.model?` / ${d.model}`:""]})]})]}):(0,r.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"Select an agent..."}),(0,r.jsx)(u.ChevronDown,{size:14,className:`ml-auto text-[var(--muted-foreground)] transition-transform ${n?"rotate-180":""}`})]}),n&&(0,r.jsx)("div",{className:"absolute z-20 mt-1 w-full rounded-lg border border-[var(--card-border)] bg-[var(--card-bg)] shadow-lg max-h-[280px] overflow-y-auto",children:e.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>{s(e.id),o(!1)},className:`w-full flex items-center gap-2.5 px-3 py-2.5 text-left transition-colors hover:bg-[var(--muted)] ${a===e.id?"bg-[var(--muted)]":""}`,children:[(0,r.jsx)("img",{src:T(e.id,e.color),alt:"",className:"size-6 rounded-full shrink-0"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-xs font-medium text-[var(--foreground)] truncate",children:e.name}),(0,r.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[e.provider,e.model?` / ${e.model}`:""]})]}),a===e.id&&(0,r.jsx)("span",{className:"text-xs text-[var(--foreground)]",children:"✓"})]},e.id))})]})}function O({onClose:e,onSubmit:a,editingJob:s}){let[n,o]=(0,t.useState)([]),[l,i]=(0,t.useState)(s?.name??""),[c,p]=(0,t.useState)(s?.prompt??""),[h,f]=(0,t.useState)(s?.agentId??""),[b,g]=(0,t.useState)(s?.provider??"claude"),[y,N]=(0,t.useState)(s?.model??"");(0,t.useEffect)(()=>{fetch("/api/prompt-jobs/agents").then(e=>e.json()).then(e=>o(e.agents??[])).catch(()=>{})},[]);let[k,w]=(0,t.useState)(s?.cliArgs??""),[C,S]=(0,t.useState)(s?.cadence??""),[$,P]=(0,t.useState)(s?.cadence??""),[T,O]=(0,t.useState)(s?.triggerType??"scheduled"),[E,A]=(0,t.useState)(s?.condition??""),[_,D]=(0,t.useState)(s?.checkEveryMs??3e5),[F,U]=(0,t.useState)(s?.catchUpPolicy??"fire_once"),[L,J]=(0,t.useState)(!!s?.cliArgs||s?.catchUpPolicy!=null&&"fire_once"!==s.catchUpPolicy),[B,H]=(0,t.useState)(!1),W=async r=>{r.preventDefault(),!l.trim()||!c.trim()||"scheduled"===T&&!C.trim()||("condition"!==T||E.trim())&&(H(!0),await a({name:l.trim(),prompt:c.trim(),agentId:h,provider:b,model:y.trim(),cliArgs:k.trim(),catchUpPolicy:F,cadence:"scheduled"===T?C.trim():"",triggerType:T,condition:E.trim(),checkEveryMs:_}),H(!1),e())},q="w-full bg-[var(--muted)] border border-[var(--card-border)] rounded-lg px-3 py-2 text-sm text-[var(--foreground)] placeholder:text-[var(--muted-foreground)] focus:outline-none focus:border-[var(--foreground)] transition-colors";return(0,r.jsxs)("div",{className:"h-full flex flex-col text-[var(--foreground)]",children:[(0,r.jsxs)("div",{className:"h-14 shrink-0 border-b border-[var(--card-border)] flex items-center justify-between px-6",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("button",{onClick:e,className:"p-1.5 rounded-md text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)] transition-colors",children:(0,r.jsx)(d.X,{size:18})}),(0,r.jsx)("h2",{className:"text-sm font-semibold",children:s?"Edit Prompt Job":"New Prompt Job"})]}),(0,r.jsx)("button",{onClick:W,disabled:B||!l.trim()||!c.trim(),className:"px-5 py-2 rounded-lg text-sm font-medium bg-[var(--foreground)] text-[var(--background)] hover:opacity-90 disabled:opacity-40 transition-opacity",children:B?"Saving...":s?"Save Changes":"Create Job"})]}),(0,r.jsxs)("div",{className:"flex flex-1 min-h-0 overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex-1 border-r border-[var(--card-border)] flex flex-col min-w-0",children:[(0,r.jsx)("div",{className:"px-8 pt-8 pb-4",children:(0,r.jsx)("input",{type:"text",value:l,onChange:e=>i(e.target.value),placeholder:"Untitled job",className:"w-full text-2xl font-bold bg-transparent border-none outline-none placeholder:text-[var(--muted-foreground)]/40 text-[var(--foreground)]",autoFocus:!0})}),(0,r.jsxs)("div",{className:"flex-1 px-8 pb-8 overflow-y-auto",children:[(0,r.jsx)(I,{children:"Instructions"}),(0,r.jsx)("div",{className:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-xl overflow-hidden min-h-[300px]",children:(0,r.jsx)(j,{content:c,onChange:e=>p(e),placeholder:"Describe what this prompt should do..."})})]})]}),(0,r.jsxs)("div",{className:"w-[380px] shrink-0 overflow-y-auto p-6 space-y-6",children:[(0,r.jsx)(R,{agents:n,value:h,onChange:e=>{f(e);let r=n.find(r=>r.id===e);r?(g(r.provider),N(r.model??"")):(g("claude"),N(""))}}),(0,r.jsxs)("div",{children:[(0,r.jsx)(I,{children:"Trigger"}),(0,r.jsxs)("div",{className:"flex rounded-lg border border-[var(--card-border)] overflow-hidden",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>O("scheduled"),className:`flex-1 py-2.5 text-xs font-medium flex items-center justify-center gap-1.5 transition-colors ${"scheduled"===T?"bg-[var(--foreground)] text-[var(--background)]":"bg-[var(--muted)] text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:[(0,r.jsx)(v,{size:13})," Schedule"]}),(0,r.jsxs)("button",{type:"button",onClick:()=>O("condition"),className:`flex-1 py-2.5 text-xs font-medium flex items-center justify-center gap-1.5 transition-colors ${"condition"===T?"bg-[var(--foreground)] text-[var(--background)]":"bg-[var(--muted)] text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:[(0,r.jsx)(m.Zap,{size:13})," Condition"]})]})]}),"scheduled"===T?(0,r.jsx)(M,{value:C,onChange:(e,r)=>{S(e),P(r)}}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{children:[(0,r.jsx)(I,{children:"Condition"}),(0,r.jsx)("textarea",{value:E,onChange:e=>A(e.target.value),placeholder:"there are unread emails in my inbox",rows:3,className:`${q} resize-none`}),(0,r.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] mt-1.5",children:"The LLM evaluates this as a gate. If true, the prompt runs."})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(I,{children:"Check frequency"}),(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:z.map(e=>{let t;return(0,r.jsx)("button",{type:"button",onClick:()=>D(e.ms),className:(t=_===e.ms,`px-3 py-1.5 rounded-lg text-xs font-medium border transition-all cursor-pointer ${t?"bg-[var(--foreground)] text-[var(--background)] border-[var(--foreground)]":"bg-[var(--muted)] text-[var(--muted-foreground)] border-[var(--card-border)] hover:border-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`),children:e.label},e.ms)})})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("button",{type:"button",onClick:()=>J(!L),className:"flex items-center gap-1.5 text-[11px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:[(0,r.jsx)(x.Settings2,{size:12})," ",L?"Hide":"Show"," advanced",(0,r.jsx)(u.ChevronDown,{size:12,className:`transition-transform ${L?"rotate-180":""}`})]}),L&&(0,r.jsxs)("div",{className:"mt-3 space-y-3 pt-3 border-t border-[var(--card-border)]",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)(I,{children:"CLI Arguments"}),(0,r.jsx)("input",{type:"text",value:k,onChange:e=>w(e.target.value),placeholder:"--dangerously-skip-permissions",className:q}),(0,r.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] mt-1",children:"Extra flags passed to the CLI command."})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(I,{children:"When missed"}),(0,r.jsx)("div",{className:"space-y-1.5",children:[{id:"fire_once",label:"Run once on recovery",desc:"Execute a single run regardless of how many were missed"},{id:"replay_all",label:"Run all missed",desc:"Queue one run per missed occurrence (use with caution)"},{id:"skip",label:"Skip and wait for next",desc:"Discard missed runs, wait for the next scheduled time"}].map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>U(e.id),className:`w-full text-left px-3 py-2 rounded-lg border transition-all ${F===e.id?"border-[var(--foreground)] bg-[var(--foreground)]/5":"border-[var(--card-border)] bg-[var(--muted)] hover:border-[var(--muted-foreground)]"}`,children:[(0,r.jsx)("div",{className:"text-xs font-medium text-[var(--foreground)]",children:e.label}),(0,r.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:e.desc})]},e.id))})]})]})]})]})]})]})}function E({job:e,agentMap:a,onBack:o,onEdit:d,onToggle:l,onDelete:c,onRunNow:u,onCancelRun:x,onUpdateAgent:m,fetchRuns:p}){let[v,h]=(0,t.useState)([]),[f,j]=(0,t.useState)(null),k=Object.values(a),S=e.agentId&&a[e.agentId]?a[e.agentId].name:null,$=(0,t.useCallback)(async()=>{let r=await p(e.id);h(r),r.length>0&&!f&&j(r[0].id)},[e.id,p,f]);(0,t.useEffect)(()=>{$()},[$]),(0,t.useEffect)(()=>{let e=setInterval($,5e3);return()=>clearInterval(e)},[$]);let P=v.find(e=>e.id===f)??null,M="running"===e.lastOutcome;return(0,r.jsxs)("div",{className:"h-full flex flex-col text-[var(--foreground)]",children:[(0,r.jsxs)("div",{className:"shrink-0 flex items-center gap-3 border-b border-[var(--card-border)] px-4 py-3.5 pt-4",children:[(0,r.jsxs)("button",{onClick:o,className:"inline-flex items-center gap-1.5 rounded-md border border-[var(--card-border)] px-2.5 py-1 text-[11px] text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)] hover:text-[var(--foreground)]",children:[(0,r.jsx)(g.ArrowLeft,{size:12})," Back"]}),(0,r.jsx)("h2",{className:"text-[13px] font-semibold truncate",children:e.name}),(0,r.jsx)("span",{className:`inline-block size-2 shrink-0 rounded-full ${w[e.state]??"bg-zinc-500"}`})]}),(0,r.jsxs)("div",{className:"flex min-h-0 flex-1",children:[(0,r.jsx)("div",{className:"flex w-[260px] shrink-0 flex-col border-r border-[var(--card-border)] overflow-y-auto",children:(0,r.jsxs)("div",{className:"p-4 space-y-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("button",{onClick:u,disabled:M,className:"inline-flex items-center gap-1.5 rounded-md border border-[var(--card-border)] px-2.5 py-1 text-[10px] font-bold uppercase tracking-[0.05em] text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)] hover:border-[var(--foreground)] disabled:opacity-50",children:[(0,r.jsx)(s.Play,{size:11})," Run now"]}),(0,r.jsx)("button",{onClick:l,type:"button",role:"switch","aria-checked":"active"===e.state,title:"active"===e.state?"Pause":"Resume",className:`relative inline-flex h-[16px] w-[28px] shrink-0 cursor-pointer rounded-full border transition-colors ${"active"===e.state?"border-emerald-400/30 bg-emerald-500/40":"border-[var(--card-border)] bg-[var(--muted)]"}`,children:(0,r.jsx)("span",{className:`pointer-events-none absolute top-[2px] size-[10px] rounded-full bg-white/90 shadow-sm transition-transform ${"active"===e.state?"translate-x-[14px]":"translate-x-[2px]"}`})}),M&&(0,r.jsx)("button",{onClick:x,className:"inline-flex items-center gap-1.5 rounded-md border border-[var(--card-border)] px-2.5 py-1 text-[10px] font-bold uppercase tracking-[0.05em] text-[var(--muted-foreground)] hover:text-red-400 hover:border-red-400/30 transition-colors",children:"Cancel"}),(0,r.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[(0,r.jsx)("button",{onClick:d,title:"Edit",className:"p-1.5 rounded-md border border-[var(--card-border)] text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:border-[var(--foreground)] transition-colors",children:(0,r.jsx)(b.Pencil,{size:12})}),(0,r.jsx)("button",{onClick:c,title:"Delete",className:"p-1.5 rounded-md border border-[var(--card-border)] text-[var(--muted-foreground)] hover:text-red-400 hover:border-red-400/30 transition-colors",children:(0,r.jsx)(n.Trash2,{size:12})})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-bold uppercase tracking-[0.12em] text-[var(--muted-foreground)] mb-1.5",children:"Status"}),(0,r.jsx)("div",{className:`text-[12px] font-semibold ${"active"===e.state?"text-emerald-400":"paused"===e.state?"text-amber-400":"text-[var(--muted-foreground)]"}`,children:e.state.charAt(0).toUpperCase()+e.state.slice(1)})]}),(0,r.jsx)(R,{agents:k,value:e.agentId,onChange:m}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-bold uppercase tracking-[0.12em] text-[var(--muted-foreground)] mb-1.5",children:"Trigger"}),(0,r.jsx)("div",{className:"text-[12px] text-[var(--foreground)]",children:"condition"===e.triggerType?`Condition (every ${Math.round(e.checkEveryMs/6e4)}m)`:e.cadence||e.cronExpr})]}),e.condition&&(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-bold uppercase tracking-[0.12em] text-[var(--muted-foreground)] mb-1.5",children:"Condition"}),(0,r.jsx)("div",{className:"text-[12px] text-[var(--foreground)]",children:e.condition})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-bold uppercase tracking-[0.12em] text-[var(--muted-foreground)] mb-1.5",children:"Instructions"}),(0,r.jsx)("div",{className:"text-[11px] leading-[1.5] text-[var(--muted-foreground)] whitespace-pre-wrap break-words",children:e.prompt.length>200?e.prompt.slice(0,200)+"...":e.prompt})]}),(0,r.jsx)("div",{className:"space-y-1.5",children:[..."skip"!==e.overlapPolicy?[{l:"Overlap",v:e.overlapPolicy}]:[],...e.cliArgs?[{l:"CLI args",v:e.cliArgs}]:[],{l:"Next run",v:y(e.nextRunAt,e.state)},{l:"Last run",v:e.lastRunAt?N(new Date(e.lastRunAt).toISOString())+` (${e.lastOutcome??"—"})`:"Never"}].map(e=>(0,r.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-[var(--card-border)] bg-[var(--muted)]/50 px-2.5 py-1.5 text-[11px]",children:[(0,r.jsx)("span",{className:"text-[var(--muted-foreground)]",children:e.l}),(0,r.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:e.v})]},e.l))})]})}),(0,r.jsxs)("div",{className:"flex w-[240px] shrink-0 flex-col border-r border-[var(--card-border)] overflow-hidden",children:[(0,r.jsx)("div",{className:"border-b border-[var(--card-border)] px-3 py-2",children:(0,r.jsxs)("div",{className:"text-[10px] font-bold uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:["Run History"," ",(0,r.jsx)("span",{className:"text-[var(--muted-foreground)]/50",children:v.length})]})}),(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:0===v.length?(0,r.jsx)("div",{className:"p-4 text-center text-[11px] text-[var(--muted-foreground)]",children:"No runs yet"}):(0,r.jsx)("div",{className:"flex flex-col",children:v.map(e=>{let t=f===e.id;return(0,r.jsxs)("button",{type:"button",onClick:()=>j(e.id),className:`flex items-start gap-2.5 px-3 py-2.5 text-left transition-colors border-l-2 ${t?"bg-[var(--foreground)]/5 border-l-[var(--foreground)]":"border-l-transparent hover:bg-[var(--muted)]/30"}`,children:[(0,r.jsx)("span",{className:`mt-1 inline-block size-2 shrink-0 rounded-full ${C[e.status]??"bg-zinc-500"}`}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("div",{className:"text-[11px] font-medium text-[var(--foreground)] truncate",children:["running"===e.status?"Running...":e.status.charAt(0).toUpperCase()+e.status.slice(1),null!=e.durationMs&&` \xb7 ${(e.durationMs/1e3).toFixed(1)}s`]}),(0,r.jsx)("div",{className:"mt-0.5 flex items-center gap-2 text-[10px] text-[var(--muted-foreground)]",children:(0,r.jsx)("span",{children:N(e.startedAt??e.createdAt)})})]})]},e.id)})})})]}),(0,r.jsx)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:P?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] px-4 py-2",children:(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsxs)("div",{className:"text-[12px] font-semibold text-[var(--foreground)] truncate",children:["Run ",P.id.slice(0,8)]}),(0,r.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[P.status," ",null!=P.durationMs&&`\xb7 ${(P.durationMs/1e3).toFixed(1)}s`]})]})}),(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-3",children:P.output?(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{className:"flex gap-2.5",children:[(0,r.jsx)("div",{className:"shrink-0 mt-0.5",children:e.agentId&&a[e.agentId]?(0,r.jsx)("img",{src:T(e.agentId,a[e.agentId].color,28),alt:"",className:"size-7 rounded-full"}):(0,r.jsx)("div",{className:"flex size-7 items-center justify-center rounded-full bg-[var(--muted)] text-[10px] text-[var(--muted-foreground)]",children:(0,r.jsx)(i.Terminal,{size:12})})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"mb-1",children:(0,r.jsx)("span",{className:"text-[11px] font-semibold text-[var(--foreground)]",children:S??e.provider})}),(0,r.jsx)("div",{className:"rounded-lg px-3 py-2 text-[12px] leading-[1.55] bg-[var(--muted)] text-[var(--foreground)]",children:(0,r.jsx)("div",{className:"whitespace-pre-wrap break-words",children:P.output})})]})]}),P.error&&(0,r.jsxs)("div",{className:"flex gap-2.5",children:[(0,r.jsx)("div",{className:"shrink-0 mt-0.5",children:(0,r.jsx)("div",{className:"flex size-7 items-center justify-center rounded-full bg-red-500/10 text-[10px] text-red-400",children:"!"})}),(0,r.jsx)("div",{className:"min-w-0 flex-1",children:(0,r.jsx)("div",{className:"rounded-lg px-3 py-2 text-[12px] leading-[1.55] bg-red-500/10 text-red-400",children:(0,r.jsx)("div",{className:"whitespace-pre-wrap break-words",children:P.error})})})]})]}):(0,r.jsx)("div",{className:"text-center py-12 text-[var(--muted-foreground)] text-sm",children:"queued"===P.status?"Waiting to start...":"running"===P.status?"Running...":"No output captured"})})]}):(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center text-[var(--muted-foreground)] text-sm",children:0===v.length?'No runs yet. Click "Run now" to trigger one.':"Select a run to view its output"})})]})]})}function A({projectId:e}={}){let{jobs:a,loading:d,refresh:u,createJob:x,updateJob:m,deleteJob:p,toggleJob:v,runNow:h,cancelRun:f,fetchRuns:b}=function(e){let[r,a]=(0,t.useState)([]),[s,n]=(0,t.useState)(!0),[o,d]=(0,t.useState)(null),l=(0,t.useCallback)(async()=>{try{n(!0);let r=e?`?projectId=${encodeURIComponent(e)}`:"",t=await fetch(`/api/prompt-jobs${r}`);if(!t.ok)throw Error(`Failed to fetch: ${t.status}`);let s=await t.json();a(s.jobs??[]),d(null)}catch(e){d(e instanceof Error?e.message:String(e))}finally{n(!1)}},[e]);(0,t.useEffect)(()=>{l();let e=setInterval(l,1e4);return()=>clearInterval(e)},[l]);let i=(0,t.useCallback)(async e=>{let r=await fetch("/api/prompt-jobs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return r.ok&&await l(),r.ok},[l]),c=(0,t.useCallback)(async(e,r)=>{let t=await fetch(`/api/prompt-jobs/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});return t.ok&&await l(),t.ok},[l]),u=(0,t.useCallback)(async e=>{let r=await fetch(`/api/prompt-jobs/${e}`,{method:"DELETE"});return r.ok&&await l(),r.ok},[l]),x=(0,t.useCallback)(async e=>{let r="active"===e.state?"paused":"active",t=await fetch(`/api/prompt-jobs/${e.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({state:r})});return t.ok&&await l(),t.ok},[l]),m=(0,t.useCallback)(async e=>{let r=await fetch("/api/prompt-jobs/poll",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jobId:e})});return r.ok&&await l(),r.ok},[l]),p=(0,t.useCallback)(async e=>{let r=await fetch(`/api/prompt-jobs/${e}/cancel`,{method:"POST"});return r.ok&&await l(),r.ok},[l]);return{jobs:r,loading:s,error:o,refresh:l,createJob:i,updateJob:c,deleteJob:u,toggleJob:x,runNow:m,cancelRun:p,fetchRuns:(0,t.useCallback)(async e=>{let r=await fetch(`/api/prompt-jobs/${e}/runs`);return r.ok?(await r.json()).runs??[]:[]},[])}}(e),[g,j]=(0,t.useState)("all"),[N,w]=(0,t.useState)(null),[C,S]=(0,t.useState)(!1),[$,P]=(0,t.useState)(null),[M,z]=(0,t.useState)({}),[I,R]=(0,t.useState)(null),[_,D]=(0,t.useState)({});(0,t.useEffect)(()=>{fetch("/api/prompt-jobs/agents").then(e=>e.json()).then(e=>{let r={};for(let t of e.agents??[])r[t.id]=t;D(r)}).catch(()=>{})},[]);let F=e=>{R(e),setTimeout(()=>R(null),2500)},U=a.filter(e=>"all"===g||e.state===g),L=a.find(e=>e.id===N)??null,J={all:a.length,active:a.filter(e=>"active"===e.state).length,paused:a.filter(e=>"paused"===e.state).length,stopped:a.filter(e=>"stopped"===e.state).length},B=async e=>{await v(e)&&F(`${e.name} ${"active"===e.state?"paused":"resumed"}`)},H=async(e,r)=>{if(r?.stopPropagation(),M[e])return;z(r=>({...r,[e]:!0}));let t=await h(e);z(r=>{let t={...r};return delete t[e],t}),t&&F("Run triggered")},W=async e=>{await p(e)&&(N===e&&w(null),F("Job deleted"))},q=async e=>{await f(e)&&F("Run cancelled")},G=async r=>{$?await m($.id,r)&&F(`Job "${r.name}" updated`):await x({...r,projectId:e??""})&&F(`Job "${r.name}" created`)},K=I&&(0,r.jsx)("div",{className:"fixed bottom-8 left-1/2 -translate-x-1/2 z-50 animate-in fade-in slide-in-from-bottom-2 duration-200",children:(0,r.jsx)("div",{className:"bg-[var(--card-bg)] border border-[var(--card-border)] px-4 py-2.5 rounded-xl shadow-lg flex items-center gap-2.5 text-sm font-medium",children:I})});return C?(0,r.jsxs)(r.Fragment,{children:[K,(0,r.jsx)(O,{onClose:()=>{S(!1),P(null)},onSubmit:G,editingJob:$})]}):L?(0,r.jsxs)(r.Fragment,{children:[K,(0,r.jsx)(E,{job:L,agentMap:_,onBack:()=>w(null),onEdit:()=>{P(L),S(!0)},onToggle:()=>B(L),onDelete:()=>W(L.id),onRunNow:()=>H(L.id),onCancelRun:()=>q(L.id),onUpdateAgent:async e=>{let r=_[e];await m(L.id,{agentId:e,provider:r?.provider??"claude",model:r?.model??""})},fetchRuns:b})]}):(0,r.jsxs)("div",{className:"h-full flex flex-col text-[var(--foreground)]",children:[K,(0,r.jsxs)("div",{className:"px-6 md:px-10 pt-6 pb-0",children:[(0,r.jsxs)("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-end gap-4 mb-6",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-2xl font-bold tracking-tight mb-1",children:"Prompt Scheduler"}),(0,r.jsxs)("p",{className:"text-sm text-[var(--muted-foreground)]",children:[J.active," active job",1!==J.active?"s":""," ","· ",a.length," total"]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("button",{onClick:()=>u(),className:"p-2 rounded-lg border border-[var(--card-border)] text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:border-[var(--foreground)] transition-colors",children:(0,r.jsx)(c.RefreshCw,{size:16})}),(0,r.jsxs)("button",{onClick:()=>{P(null),S(!0)},className:"bg-[var(--foreground)] text-[var(--background)] px-4 py-2 rounded-lg text-sm font-medium flex items-center gap-2 hover:opacity-90 transition-opacity",children:[(0,r.jsx)(o.Plus,{size:16})," New Job"]})]})]}),(0,r.jsx)("div",{className:"flex gap-4 border-b border-[var(--card-border)] pb-3",children:["all","active","paused","stopped"].map(e=>(0,r.jsxs)("button",{onClick:()=>j(e),className:`text-xs font-medium pb-1 transition-colors border-b-2 capitalize ${g===e?"border-[var(--foreground)] text-[var(--foreground)]":"border-transparent text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:[e,(0,r.jsx)("span",{className:"ml-1.5 text-[10px] text-[var(--muted-foreground)] font-mono",children:J[e]})]},e))})]}),(0,r.jsx)("div",{className:"flex-1 min-h-0 px-6 md:px-10 py-6 overflow-y-auto",children:d&&0===a.length?(0,r.jsx)("div",{className:"text-center py-12 text-[var(--muted-foreground)] text-sm",children:"Loading jobs..."}):(0,r.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3",children:[U.map(e=>{let t=M[e.id];return(0,r.jsxs)("div",{onClick:()=>w(e.id),className:"p-5 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] hover:border-[var(--muted-foreground)] transition-all cursor-pointer",children:[(0,r.jsxs)("div",{className:"flex justify-between items-start gap-3 mb-3",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold truncate mb-1",children:e.name}),(0,r.jsx)(k,{state:e.state})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("button",{onClick:r=>{r.stopPropagation(),B(e)},type:"button",role:"switch","aria-checked":"active"===e.state,title:"active"===e.state?"Pause":"Resume",className:`relative inline-flex h-[14px] w-[24px] shrink-0 cursor-pointer rounded-full border transition-colors ${"active"===e.state?"border-emerald-400/30 bg-emerald-500/40":"border-[var(--card-border)] bg-[var(--muted)]"}`,children:(0,r.jsx)("span",{className:`pointer-events-none absolute top-[1.5px] size-[9px] rounded-full bg-white/90 shadow-sm transition-transform ${"active"===e.state?"translate-x-[11px]":"translate-x-[1.5px]"}`})}),(0,r.jsx)("button",{onClick:r=>H(e.id,r),disabled:t,title:"Run now",className:`p-1.5 rounded-md border text-[var(--muted-foreground)] transition-colors ${t?"border-[var(--card-border)] opacity-50 cursor-wait":"border-[var(--card-border)] hover:text-[var(--foreground)] hover:border-[var(--muted-foreground)]"}`,children:(0,r.jsx)(s.Play,{size:12,className:t?"animate-pulse":"fill-current"})}),(0,r.jsx)("button",{onClick:r=>{r.stopPropagation(),W(e.id)},title:"Delete",className:"p-1.5 rounded-md border border-[var(--card-border)] text-[var(--muted-foreground)] hover:text-red-500 hover:border-red-500/30 transition-colors",children:(0,r.jsx)(n.Trash2,{size:12})})]})]}),(0,r.jsx)("p",{className:"text-[12px] text-[var(--muted-foreground)] leading-relaxed line-clamp-2 mb-3",children:e.prompt}),(0,r.jsxs)("div",{className:"pt-3 border-t border-[var(--card-border)]/50 flex items-center gap-4 text-[11px] text-[var(--muted-foreground)]",children:[(0,r.jsx)("span",{className:"flex items-center gap-1",children:e.agentId&&_[e.agentId]?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("img",{src:T(e.agentId,_[e.agentId].color,16),alt:"",className:"size-4 rounded-full"}),_[e.agentId].name]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Terminal,{size:11}),e.provider]})}),"condition"===e.triggerType&&(0,r.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-purple-500/10 text-purple-400 border border-purple-400/20",children:"condition"}),(0,r.jsxs)("span",{className:"flex items-center gap-1",children:[(0,r.jsx)(l.Clock,{size:11}),y(e.nextRunAt,e.state)]}),(0,r.jsx)("span",{className:"ml-auto font-mono truncate max-w-[120px]",title:e.cadence||e.cronExpr,children:"condition"===e.triggerType?`every ${Math.round(e.checkEveryMs/6e4)}m`:e.cadence||e.cronExpr})]})]},e.id)}),0===U.length&&(0,r.jsx)("div",{className:"md:col-span-2 xl:col-span-3 text-center py-12 text-[var(--muted-foreground)] text-sm border border-dashed border-[var(--card-border)] rounded-xl",children:0===a.length?"No prompt jobs yet. Create one to get started.":"No jobs match the selected filter."})]})})]})}e.s(["default",()=>A],40212)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,67585,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return s}});let a=e.r(32061);function s({reason:e,children:r}){if("u"<typeof window)throw Object.defineProperty(new a.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return r}},9885,(e,r,t)=>{"use strict";function a(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"encodeURIPath",{enumerable:!0,get:function(){return a}})},74916,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return l}});let a=e.r(18050),s=e.r(74080),n=e.r(63599),o=e.r(9885),d=e.r(43369);function l({moduleIds:e}){if("u">typeof window)return null;let r=n.workAsyncStorage.getStore();if(void 0===r)return null;let t=[];if(r.reactLoadableManifest&&e){let a=r.reactLoadableManifest;for(let r of e){if(!a[r])continue;let e=a[r].files;t.push(...e)}}if(0===t.length)return null;let l=(0,d.getDeploymentIdQueryOrEmptyString)();return(0,a.jsx)(a.Fragment,{children:t.map(e=>{let t=`${r.assetPrefix}/_next/${(0,o.encodeURIPath)(e)}${l}`;return e.endsWith(".css")?(0,a.jsx)("link",{precedence:"dynamic",href:t,rel:"stylesheet",as:"style",nonce:r.nonce},e):((0,s.preload)(t,{as:"script",fetchPriority:"low",nonce:r.nonce}),null)})})}},69093,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let a=e.r(18050),s=e.r(71645),n=e.r(67585),o=e.r(74916);function d(e){return{default:e&&"default"in e?e.default:e}}let l={loader:()=>Promise.resolve(d(()=>null)),loading:null,ssr:!0},i=function(e){let r={...l,...e},t=(0,s.lazy)(()=>r.loader().then(d)),i=r.loading;function c(e){let d=i?(0,a.jsx)(i,{isLoading:!0,pastDelay:!0,error:null}):null,l=!r.ssr||!!r.loading,c=l?s.Suspense:s.Fragment,u=r.ssr?(0,a.jsxs)(a.Fragment,{children:["u"<typeof window?(0,a.jsx)(o.PreloadChunks,{moduleIds:r.modules}):null,(0,a.jsx)(t,{...e})]}):(0,a.jsx)(n.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(t,{...e})});return(0,a.jsx)(c,{...l?{fallback:d}:{},children:u})}return c.displayName="LoadableComponent",c}},70703,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}});let a=e.r(55682)._(e.r(69093));function s(e,r){let t={};"function"==typeof e&&(t.loader=e);let s={...t,...r};return(0,a.default)({...s,modules:s.loadableGenerated?.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},40212,e=>{"use strict";var r=e.i(18050),t=e.i(71645),a=e.i(70703),s=e.i(31343),n=e.i(27612),o=e.i(7233),d=e.i(37727),l=e.i(3116),i=e.i(68054),c=e.i(16715),u=e.i(64659),x=e.i(84765),m=e.i(39312),p=e.i(75254);let v=(0,p.default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]),h=(0,p.default)("calendar-days",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]]),f=(0,p.default)("repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);var b=e.i(88699),g=e.i(71689);let j=(0,a.default)(()=>e.A(76473),{loadableGenerated:{modules:[32077]},ssr:!1});function y(e,r){if("paused"===r)return"Paused";if("stopped"===r)return"Stopped";if(null===e)return"Pending...";let t=e-Date.now();return t<0?"overdue":t<6e4?`in ${Math.round(t/1e3)}s`:t<36e5?`in ${Math.round(t/6e4)}m`:t<864e5?`in ${Math.round(t/36e5)}h`:`in ${Math.round(t/864e5)}d`}function N(e){if(!e)return"—";let r=new Date(e);return r.toLocaleDateString("en-US",{month:"short",day:"numeric"})+", "+r.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit"})}function k({state:e}){let t={active:"text-green-400 bg-green-400/10 border-green-400/20",paused:"text-amber-400 bg-amber-400/10 border-amber-400/20",stopped:"text-[var(--muted-foreground)] bg-[var(--muted)] border-[var(--card-border)]"};return(0,r.jsx)("span",{className:`text-[10px] font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md border ${t[e]??t.stopped}`,children:e})}let w={active:"bg-emerald-400",paused:"bg-amber-400",stopped:"bg-zinc-500"},C={success:"bg-emerald-400",failed:"bg-red-400",cancelled:"bg-zinc-500",running:"bg-sky-400",queued:"bg-amber-400"},S=[{label:"Sun",short:"S",value:0},{label:"Mon",short:"M",value:1},{label:"Tue",short:"T",value:2},{label:"Wed",short:"W",value:3},{label:"Thu",short:"T",value:4},{label:"Fri",short:"F",value:5},{label:"Sat",short:"S",value:6}];function $(e,r,t,a,s){switch(e){case"hourly":return`${t} * * * *`;case"daily":default:return`${t} ${r} * * *`;case"weekly":return`${t} ${r} * * ${a.sort().join(",")}`;case"monthly":return`${t} ${r} ${s} * *`}}function P(e,r,t,a,s){let n=parseInt(r),o=`${n%12||12}:${t} ${n>=12?"PM":"AM"}`;switch(e){case"hourly":return`Every hour at :${t}`;case"daily":default:return`Every day at ${o}`;case"weekly":{let e=a.sort().map(e=>S.find(r=>r.value===e).label);return`${o} on ${e.join(", ")}`}case"monthly":let d,l;return`${s}${(d=["th","st","nd","rd"])[((l=s%100)-20)%10]||d[l]||d[0]} of every month at ${o}`}}function M({value:e,onChange:a}){let[s,n]=(0,t.useState)("daily"),[o,d]=(0,t.useState)("09"),[i,c]=(0,t.useState)("00"),[u,x]=(0,t.useState)([1,2,3,4,5]),[m,p]=(0,t.useState)(1);(0,t.useEffect)(()=>{a($(s,o,i,u,m),P(s,o,i,u,m))},[s,o,i,u,m]);let b=(e,t,a)=>(0,r.jsxs)("button",{type:"button",onClick:()=>n(e),className:`flex flex-col items-center justify-center p-2.5 rounded-xl border transition-all text-[11px] font-medium ${s===e?"border-[var(--foreground)] bg-[var(--foreground)]/5 text-[var(--foreground)]":"border-[var(--card-border)] bg-[var(--muted)] text-[var(--muted-foreground)] hover:border-[var(--muted-foreground)]"}`,children:[(0,r.jsx)(a,{size:16}),(0,r.jsx)("span",{className:"mt-1",children:t})]},e),g="bg-[var(--muted)] border border-[var(--card-border)] rounded-lg px-2 py-1.5 text-sm font-medium text-[var(--foreground)] focus:outline-none focus:border-[var(--foreground)] transition-colors";return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"grid grid-cols-4 gap-2",children:[b("hourly","Hourly",f),b("daily","Daily",l.Clock),b("weekly","Weekly",h),b("monthly","Monthly",v)]}),"hourly"!==s?(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-1.5",children:"Time"}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("select",{value:o,onChange:e=>d(e.target.value),className:g,children:Array.from({length:24}).map((e,t)=>{let a=t.toString().padStart(2,"0");return(0,r.jsx)("option",{value:a,children:a},a)})}),(0,r.jsx)("span",{className:"text-sm font-bold text-[var(--muted-foreground)]",children:":"}),(0,r.jsx)("select",{value:i,onChange:e=>c(e.target.value),className:g,children:["00","05","10","15","20","25","30","35","40","45","50","55"].map(e=>(0,r.jsx)("option",{value:e,children:e},e))}),(0,r.jsx)("span",{className:"ml-1.5 text-[10px] text-[var(--muted-foreground)]",children:parseInt(o)>=12?"PM":"AM"})]})]}):(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-1.5",children:"At minute"}),(0,r.jsx)("select",{value:i,onChange:e=>c(e.target.value),className:g,children:["00","05","10","15","20","25","30","35","40","45","50","55"].map(e=>(0,r.jsxs)("option",{value:e,children:[":",e]},e))})]}),"weekly"===s&&(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-1.5",children:"Repeat on"}),(0,r.jsx)("div",{className:"flex gap-1.5",children:S.map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>{let r;return r=e.value,x(e=>e.includes(r)?e.filter(e=>e!==r):[...e,r])},className:`size-8 rounded-full flex items-center justify-center text-[10px] font-bold transition-all ${u.includes(e.value)?"bg-[var(--foreground)] text-[var(--background)]":"bg-[var(--muted)] text-[var(--muted-foreground)] hover:bg-[var(--card-border)]"}`,children:e.label[0]},e.value))})]}),"monthly"===s&&(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-1.5",children:"On day"}),(0,r.jsx)("div",{className:"grid grid-cols-7 gap-1",children:Array.from({length:31}).map((e,t)=>{let a=t+1;return(0,r.jsx)("button",{type:"button",onClick:()=>p(a),className:`size-7 rounded-lg flex items-center justify-center text-[10px] font-medium transition-all ${m===a?"bg-[var(--foreground)] text-[var(--background)]":"bg-[var(--muted)] text-[var(--muted-foreground)] hover:bg-[var(--card-border)]"}`,children:a},a)})})]}),(0,r.jsxs)("div",{className:"px-3 py-2 rounded-lg bg-[var(--muted)] border border-[var(--card-border)]",children:[(0,r.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)] mb-0.5",children:"Schedule"}),(0,r.jsx)("div",{className:"text-xs font-medium text-[var(--foreground)]",children:P(s,o,i,u,m)}),(0,r.jsx)("div",{className:"text-[10px] font-mono text-[var(--muted-foreground)] mt-0.5",children:$(s,o,i,u,m)})]})]})}let z=[{label:"1 min",ms:6e4},{label:"5 min",ms:3e5},{label:"15 min",ms:9e5},{label:"30 min",ms:18e5},{label:"1 hour",ms:36e5}];function T({children:e}){return(0,r.jsx)("label",{className:"block text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-2",children:e})}function I(e,r,t=24){let a=r?r.replace("#",""):"e2e8f0";return`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${encodeURIComponent(e)}&size=${t}&backgroundColor=${a}`}function R({agents:e,value:a,onChange:s}){let[n,o]=(0,t.useState)(!1),d=e.find(e=>e.id===a);return(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(T,{children:"Agent"}),(0,r.jsxs)("button",{type:"button",onClick:()=>o(!n),className:"w-full flex items-center gap-2.5 px-3 py-2.5 rounded-lg border border-[var(--card-border)] bg-[var(--muted)] text-left transition-colors hover:border-[var(--muted-foreground)]",children:[d?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("img",{src:I(d.id,d.color),alt:"",className:"size-6 rounded-full shrink-0"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-xs font-medium text-[var(--foreground)] truncate",children:d.name}),(0,r.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[d.provider,d.model?` / ${d.model}`:""]})]})]}):(0,r.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"Select an agent..."}),(0,r.jsx)(u.ChevronDown,{size:14,className:`ml-auto text-[var(--muted-foreground)] transition-transform ${n?"rotate-180":""}`})]}),n&&(0,r.jsx)("div",{className:"absolute z-20 mt-1 w-full rounded-lg border border-[var(--card-border)] bg-[var(--card-bg)] shadow-lg max-h-[280px] overflow-y-auto",children:e.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>{s(e.id),o(!1)},className:`w-full flex items-center gap-2.5 px-3 py-2.5 text-left transition-colors hover:bg-[var(--muted)] ${a===e.id?"bg-[var(--muted)]":""}`,children:[(0,r.jsx)("img",{src:I(e.id,e.color),alt:"",className:"size-6 rounded-full shrink-0"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-xs font-medium text-[var(--foreground)] truncate",children:e.name}),(0,r.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[e.provider,e.model?` / ${e.model}`:""]})]}),a===e.id&&(0,r.jsx)("span",{className:"text-xs text-[var(--foreground)]",children:"✓"})]},e.id))})]})}function E({onClose:e,onSubmit:a,editingJob:s}){let[n,o]=(0,t.useState)([]),[l,i]=(0,t.useState)(s?.name??""),[c,p]=(0,t.useState)(s?.prompt??""),[h,f]=(0,t.useState)(s?.agentId??""),[b,g]=(0,t.useState)(s?.provider??"claude"),[y,N]=(0,t.useState)(s?.model??"");(0,t.useEffect)(()=>{fetch("/api/prompt-jobs/agents").then(e=>e.json()).then(e=>o(e.agents??[])).catch(()=>{})},[]);let[k,w]=(0,t.useState)(s?.cliArgs??""),[C,S]=(0,t.useState)(s?.cadence??""),[$,P]=(0,t.useState)(s?.cadence??""),[I,E]=(0,t.useState)(s?.triggerType??"scheduled"),[O,A]=(0,t.useState)(s?.condition??""),[_,D]=(0,t.useState)(s?.checkEveryMs??3e5),[F,U]=(0,t.useState)(s?.catchUpPolicy??"fire_once"),[L,J]=(0,t.useState)(!!s?.cliArgs||s?.catchUpPolicy!=null&&"fire_once"!==s.catchUpPolicy),[B,H]=(0,t.useState)(!1),W=async r=>{r.preventDefault(),!l.trim()||!c.trim()||"scheduled"===I&&!C.trim()||("condition"!==I||O.trim())&&(H(!0),await a({name:l.trim(),prompt:c.trim(),agentId:h,provider:b,model:y.trim(),cliArgs:k.trim(),catchUpPolicy:F,cadence:"scheduled"===I?C.trim():"",triggerType:I,condition:O.trim(),checkEveryMs:_}),H(!1),e())},q="w-full bg-[var(--muted)] border border-[var(--card-border)] rounded-lg px-3 py-2 text-sm text-[var(--foreground)] placeholder:text-[var(--muted-foreground)] focus:outline-none focus:border-[var(--foreground)] transition-colors";return(0,r.jsxs)("div",{className:"h-full flex flex-col text-[var(--foreground)]",children:[(0,r.jsxs)("div",{className:"h-14 shrink-0 border-b border-[var(--card-border)] flex items-center justify-between px-6",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("button",{onClick:e,className:"p-1.5 rounded-md text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)] transition-colors",children:(0,r.jsx)(d.X,{size:18})}),(0,r.jsx)("h2",{className:"text-sm font-semibold",children:s?"Edit Prompt Job":"New Prompt Job"})]}),(0,r.jsx)("button",{onClick:W,disabled:B||!l.trim()||!c.trim(),className:"px-5 py-2 rounded-lg text-sm font-medium bg-[var(--foreground)] text-[var(--background)] hover:opacity-90 disabled:opacity-40 transition-opacity",children:B?"Saving...":s?"Save Changes":"Create Job"})]}),(0,r.jsxs)("div",{className:"flex flex-1 min-h-0 overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex-1 border-r border-[var(--card-border)] flex flex-col min-w-0",children:[(0,r.jsx)("div",{className:"px-8 pt-8 pb-4",children:(0,r.jsx)("input",{type:"text",value:l,onChange:e=>i(e.target.value),placeholder:"Untitled job",className:"w-full text-2xl font-bold bg-transparent border-none outline-none placeholder:text-[var(--muted-foreground)]/40 text-[var(--foreground)]",autoFocus:!0})}),(0,r.jsxs)("div",{className:"flex-1 px-8 pb-8 overflow-y-auto",children:[(0,r.jsx)(T,{children:"Instructions"}),(0,r.jsx)("div",{className:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-xl overflow-hidden min-h-[300px]",children:(0,r.jsx)(j,{content:c,onChange:e=>p(e),placeholder:"Describe what this prompt should do..."})})]})]}),(0,r.jsxs)("div",{className:"w-[380px] shrink-0 overflow-y-auto p-6 space-y-6",children:[(0,r.jsx)(R,{agents:n,value:h,onChange:e=>{f(e);let r=n.find(r=>r.id===e);r?(g(r.provider),N(r.model??"")):(g("claude"),N(""))}}),(0,r.jsxs)("div",{children:[(0,r.jsx)(T,{children:"Trigger"}),(0,r.jsxs)("div",{className:"flex rounded-lg border border-[var(--card-border)] overflow-hidden",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>E("scheduled"),className:`flex-1 py-2.5 text-xs font-medium flex items-center justify-center gap-1.5 transition-colors ${"scheduled"===I?"bg-[var(--foreground)] text-[var(--background)]":"bg-[var(--muted)] text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:[(0,r.jsx)(v,{size:13})," Schedule"]}),(0,r.jsxs)("button",{type:"button",onClick:()=>E("condition"),className:`flex-1 py-2.5 text-xs font-medium flex items-center justify-center gap-1.5 transition-colors ${"condition"===I?"bg-[var(--foreground)] text-[var(--background)]":"bg-[var(--muted)] text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:[(0,r.jsx)(m.Zap,{size:13})," Condition"]})]})]}),"scheduled"===I?(0,r.jsx)(M,{value:C,onChange:(e,r)=>{S(e),P(r)}}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{children:[(0,r.jsx)(T,{children:"Condition"}),(0,r.jsx)("textarea",{value:O,onChange:e=>A(e.target.value),placeholder:"there are unread emails in my inbox",rows:3,className:`${q} resize-none`}),(0,r.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] mt-1.5",children:"The LLM evaluates this as a gate. If true, the prompt runs."})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(T,{children:"Check frequency"}),(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:z.map(e=>{let t;return(0,r.jsx)("button",{type:"button",onClick:()=>D(e.ms),className:(t=_===e.ms,`px-3 py-1.5 rounded-lg text-xs font-medium border transition-all cursor-pointer ${t?"bg-[var(--foreground)] text-[var(--background)] border-[var(--foreground)]":"bg-[var(--muted)] text-[var(--muted-foreground)] border-[var(--card-border)] hover:border-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`),children:e.label},e.ms)})})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("button",{type:"button",onClick:()=>J(!L),className:"flex items-center gap-1.5 text-[11px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:[(0,r.jsx)(x.Settings2,{size:12})," ",L?"Hide":"Show"," advanced",(0,r.jsx)(u.ChevronDown,{size:12,className:`transition-transform ${L?"rotate-180":""}`})]}),L&&(0,r.jsxs)("div",{className:"mt-3 space-y-3 pt-3 border-t border-[var(--card-border)]",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)(T,{children:"CLI Arguments"}),(0,r.jsx)("input",{type:"text",value:k,onChange:e=>w(e.target.value),placeholder:"--dangerously-skip-permissions",className:q}),(0,r.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] mt-1",children:"Extra flags passed to the CLI command."})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(T,{children:"When missed"}),(0,r.jsx)("div",{className:"space-y-1.5",children:[{id:"fire_once",label:"Run once on recovery",desc:"Execute a single run regardless of how many were missed"},{id:"replay_all",label:"Run all missed",desc:"Queue one run per missed occurrence (use with caution)"},{id:"skip",label:"Skip and wait for next",desc:"Discard missed runs, wait for the next scheduled time"}].map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>U(e.id),className:`w-full text-left px-3 py-2 rounded-lg border transition-all ${F===e.id?"border-[var(--foreground)] bg-[var(--foreground)]/5":"border-[var(--card-border)] bg-[var(--muted)] hover:border-[var(--muted-foreground)]"}`,children:[(0,r.jsx)("div",{className:"text-xs font-medium text-[var(--foreground)]",children:e.label}),(0,r.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:e.desc})]},e.id))})]})]})]})]})]})]})}function O({job:e,agentMap:a,onBack:o,onEdit:d,onToggle:l,onDelete:c,onRunNow:u,onCancelRun:x,onUpdateAgent:m,fetchRuns:p}){let[v,h]=(0,t.useState)([]),[f,j]=(0,t.useState)(null),k=Object.values(a),S=e.agentId&&a[e.agentId]?a[e.agentId].name:null,$=(0,t.useCallback)(async()=>{let r=await p(e.id);h(r),r.length>0&&!f&&j(r[0].id)},[e.id,p,f]);(0,t.useEffect)(()=>{$()},[$]),(0,t.useEffect)(()=>{let e=setInterval($,5e3);return()=>clearInterval(e)},[$]);let P=v.find(e=>e.id===f)??null,M="running"===e.lastOutcome;return(0,r.jsxs)("div",{className:"h-full flex flex-col text-[var(--foreground)]",children:[(0,r.jsxs)("div",{className:"shrink-0 flex items-center gap-3 border-b border-[var(--card-border)] px-4 py-3.5 pt-4",children:[(0,r.jsxs)("button",{onClick:o,className:"inline-flex items-center gap-1.5 rounded-md border border-[var(--card-border)] px-2.5 py-1 text-[11px] text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)] hover:text-[var(--foreground)]",children:[(0,r.jsx)(g.ArrowLeft,{size:12})," Back"]}),(0,r.jsx)("h2",{className:"text-[13px] font-semibold truncate",children:e.name}),(0,r.jsx)("span",{className:`inline-block size-2 shrink-0 rounded-full ${w[e.state]??"bg-zinc-500"}`})]}),(0,r.jsxs)("div",{className:"flex min-h-0 flex-1",children:[(0,r.jsx)("div",{className:"flex w-[260px] shrink-0 flex-col border-r border-[var(--card-border)] overflow-y-auto",children:(0,r.jsxs)("div",{className:"p-4 space-y-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("button",{onClick:u,disabled:M,className:"inline-flex items-center gap-1.5 rounded-md border border-[var(--card-border)] px-2.5 py-1 text-[10px] font-bold uppercase tracking-[0.05em] text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)] hover:border-[var(--foreground)] disabled:opacity-50",children:[(0,r.jsx)(s.Play,{size:11})," Run now"]}),(0,r.jsx)("button",{onClick:l,type:"button",role:"switch","aria-checked":"active"===e.state,title:"active"===e.state?"Pause":"Resume",className:`relative inline-flex h-[16px] w-[28px] shrink-0 cursor-pointer rounded-full border transition-colors ${"active"===e.state?"border-emerald-400/30 bg-emerald-500/40":"border-[var(--card-border)] bg-[var(--muted)]"}`,children:(0,r.jsx)("span",{className:`pointer-events-none absolute top-[2px] size-[10px] rounded-full bg-white/90 shadow-sm transition-transform ${"active"===e.state?"translate-x-[14px]":"translate-x-[2px]"}`})}),M&&(0,r.jsx)("button",{onClick:x,className:"inline-flex items-center gap-1.5 rounded-md border border-[var(--card-border)] px-2.5 py-1 text-[10px] font-bold uppercase tracking-[0.05em] text-[var(--muted-foreground)] hover:text-red-400 hover:border-red-400/30 transition-colors",children:"Cancel"}),(0,r.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[(0,r.jsx)("button",{onClick:d,title:"Edit",className:"p-1.5 rounded-md border border-[var(--card-border)] text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:border-[var(--foreground)] transition-colors",children:(0,r.jsx)(b.Pencil,{size:12})}),(0,r.jsx)("button",{onClick:c,title:"Delete",className:"p-1.5 rounded-md border border-[var(--card-border)] text-[var(--muted-foreground)] hover:text-red-400 hover:border-red-400/30 transition-colors",children:(0,r.jsx)(n.Trash2,{size:12})})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-bold uppercase tracking-[0.12em] text-[var(--muted-foreground)] mb-1.5",children:"Status"}),(0,r.jsx)("div",{className:`text-[12px] font-semibold ${"active"===e.state?"text-emerald-400":"paused"===e.state?"text-amber-400":"text-[var(--muted-foreground)]"}`,children:e.state.charAt(0).toUpperCase()+e.state.slice(1)})]}),(0,r.jsx)(R,{agents:k,value:e.agentId,onChange:m}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-bold uppercase tracking-[0.12em] text-[var(--muted-foreground)] mb-1.5",children:"Trigger"}),(0,r.jsx)("div",{className:"text-[12px] text-[var(--foreground)]",children:"condition"===e.triggerType?`Condition (every ${Math.round(e.checkEveryMs/6e4)}m)`:e.cadence||e.cronExpr})]}),e.condition&&(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-bold uppercase tracking-[0.12em] text-[var(--muted-foreground)] mb-1.5",children:"Condition"}),(0,r.jsx)("div",{className:"text-[12px] text-[var(--foreground)]",children:e.condition})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10px] font-bold uppercase tracking-[0.12em] text-[var(--muted-foreground)] mb-1.5",children:"Instructions"}),(0,r.jsx)("div",{className:"text-[11px] leading-[1.5] text-[var(--muted-foreground)] whitespace-pre-wrap break-words",children:e.prompt.length>200?e.prompt.slice(0,200)+"...":e.prompt})]}),(0,r.jsx)("div",{className:"space-y-1.5",children:[..."skip"!==e.overlapPolicy?[{l:"Overlap",v:e.overlapPolicy}]:[],...e.cliArgs?[{l:"CLI args",v:e.cliArgs}]:[],{l:"Next run",v:y(e.nextRunAt,e.state)},{l:"Last run",v:e.lastRunAt?N(new Date(e.lastRunAt).toISOString())+` (${e.lastOutcome??"—"})`:"Never"}].map(e=>(0,r.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-[var(--card-border)] bg-[var(--muted)]/50 px-2.5 py-1.5 text-[11px]",children:[(0,r.jsx)("span",{className:"text-[var(--muted-foreground)]",children:e.l}),(0,r.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:e.v})]},e.l))})]})}),(0,r.jsxs)("div",{className:"flex w-[240px] shrink-0 flex-col border-r border-[var(--card-border)] overflow-hidden",children:[(0,r.jsx)("div",{className:"border-b border-[var(--card-border)] px-3 py-2",children:(0,r.jsxs)("div",{className:"text-[10px] font-bold uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:["Run History"," ",(0,r.jsx)("span",{className:"text-[var(--muted-foreground)]/50",children:v.length})]})}),(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:0===v.length?(0,r.jsx)("div",{className:"p-4 text-center text-[11px] text-[var(--muted-foreground)]",children:"No runs yet"}):(0,r.jsx)("div",{className:"flex flex-col",children:v.map(e=>{let t=f===e.id;return(0,r.jsxs)("button",{type:"button",onClick:()=>j(e.id),className:`flex items-start gap-2.5 px-3 py-2.5 text-left transition-colors border-l-2 ${t?"bg-[var(--foreground)]/5 border-l-[var(--foreground)]":"border-l-transparent hover:bg-[var(--muted)]/30"}`,children:[(0,r.jsx)("span",{className:`mt-1 inline-block size-2 shrink-0 rounded-full ${C[e.status]??"bg-zinc-500"}`}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("div",{className:"text-[11px] font-medium text-[var(--foreground)] truncate",children:["running"===e.status?"Running...":e.status.charAt(0).toUpperCase()+e.status.slice(1),null!=e.durationMs&&` \xb7 ${(e.durationMs/1e3).toFixed(1)}s`]}),(0,r.jsx)("div",{className:"mt-0.5 flex items-center gap-2 text-[10px] text-[var(--muted-foreground)]",children:(0,r.jsx)("span",{children:N(e.startedAt??e.createdAt)})})]})]},e.id)})})})]}),(0,r.jsx)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:P?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] px-4 py-2",children:(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsxs)("div",{className:"text-[12px] font-semibold text-[var(--foreground)] truncate",children:["Run ",P.id.slice(0,8)]}),(0,r.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[P.status," ",null!=P.durationMs&&`\xb7 ${(P.durationMs/1e3).toFixed(1)}s`]})]})}),(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 py-3",children:P.output?(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{className:"flex gap-2.5",children:[(0,r.jsx)("div",{className:"shrink-0 mt-0.5",children:e.agentId&&a[e.agentId]?(0,r.jsx)("img",{src:I(e.agentId,a[e.agentId].color,28),alt:"",className:"size-7 rounded-full"}):(0,r.jsx)("div",{className:"flex size-7 items-center justify-center rounded-full bg-[var(--muted)] text-[10px] text-[var(--muted-foreground)]",children:(0,r.jsx)(i.Terminal,{size:12})})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"mb-1",children:(0,r.jsx)("span",{className:"text-[11px] font-semibold text-[var(--foreground)]",children:S??e.provider})}),(0,r.jsx)("div",{className:"rounded-lg px-3 py-2 text-[12px] leading-[1.55] bg-[var(--muted)] text-[var(--foreground)]",children:(0,r.jsx)("div",{className:"whitespace-pre-wrap break-words",children:P.output})})]})]}),P.error&&(0,r.jsxs)("div",{className:"flex gap-2.5",children:[(0,r.jsx)("div",{className:"shrink-0 mt-0.5",children:(0,r.jsx)("div",{className:"flex size-7 items-center justify-center rounded-full bg-red-500/10 text-[10px] text-red-400",children:"!"})}),(0,r.jsx)("div",{className:"min-w-0 flex-1",children:(0,r.jsx)("div",{className:"rounded-lg px-3 py-2 text-[12px] leading-[1.55] bg-red-500/10 text-red-400",children:(0,r.jsx)("div",{className:"whitespace-pre-wrap break-words",children:P.error})})})]})]}):(0,r.jsx)("div",{className:"text-center py-12 text-[var(--muted-foreground)] text-sm",children:"queued"===P.status?"Waiting to start...":"running"===P.status?"Running...":"No output captured"})})]}):(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center text-[var(--muted-foreground)] text-sm",children:0===v.length?'No runs yet. Click "Run now" to trigger one.':"Select a run to view its output"})})]})]})}function A({projectId:e}={}){let{jobs:a,loading:d,refresh:u,createJob:x,updateJob:m,deleteJob:p,toggleJob:v,runNow:h,cancelRun:f,fetchRuns:g}=function(e){let[r,a]=(0,t.useState)([]),[s,n]=(0,t.useState)(!0),[o,d]=(0,t.useState)(null),l=(0,t.useRef)(!1),i=(0,t.useCallback)(async()=>{try{l.current||n(!0);let r=e?`?projectId=${encodeURIComponent(e)}`:"",t=await fetch(`/api/prompt-jobs${r}`);if(!t.ok)throw Error(`Failed to fetch: ${t.status}`);let s=await t.json();a(s.jobs??[]),d(null)}catch(e){d(e instanceof Error?e.message:String(e))}finally{n(!1),l.current=!0}},[e]);(0,t.useEffect)(()=>{l.current=!1,i();let e=setInterval(i,1e4);return()=>clearInterval(e)},[i]);let c=(0,t.useCallback)(async e=>{let r=await fetch("/api/prompt-jobs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return r.ok&&await i(),r.ok},[i]),u=(0,t.useCallback)(async(e,r)=>{let t=await fetch(`/api/prompt-jobs/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});return t.ok&&await i(),t.ok},[i]),x=(0,t.useCallback)(async e=>{let r=await fetch(`/api/prompt-jobs/${e}`,{method:"DELETE"});return r.ok&&await i(),r.ok},[i]),m=(0,t.useCallback)(async e=>{let r="active"===e.state?"paused":"active",t=await fetch(`/api/prompt-jobs/${e.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({state:r})});return t.ok&&await i(),t.ok},[i]),p=(0,t.useCallback)(async e=>{let r=await fetch("/api/prompt-jobs/poll",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jobId:e})});return r.ok&&await i(),r.ok},[i]),v=(0,t.useCallback)(async e=>{let r=await fetch(`/api/prompt-jobs/${e}/cancel`,{method:"POST"});return r.ok&&await i(),r.ok},[i]);return{jobs:r,loading:s,error:o,refresh:i,createJob:c,updateJob:u,deleteJob:x,toggleJob:m,runNow:p,cancelRun:v,fetchRuns:(0,t.useCallback)(async e=>{let r=await fetch(`/api/prompt-jobs/${e}/runs`);return r.ok?(await r.json()).runs??[]:[]},[])}}(e),[j,N]=(0,t.useState)("all"),[w,C]=(0,t.useState)(null),[S,$]=(0,t.useState)(!1),[P,M]=(0,t.useState)(null),[z,T]=(0,t.useState)({}),[R,_]=(0,t.useState)(null),[D,F]=(0,t.useState)({});(0,t.useEffect)(()=>{fetch("/api/prompt-jobs/agents").then(e=>e.json()).then(e=>{let r={};for(let t of e.agents??[])r[t.id]=t;F(r)}).catch(()=>{})},[]);let U=e=>{_(e),setTimeout(()=>_(null),2500)},L=a.filter(e=>"all"===j||e.state===j),J=a.find(e=>e.id===w)??null,B={all:a.length,active:a.filter(e=>"active"===e.state).length,paused:a.filter(e=>"paused"===e.state).length,stopped:a.filter(e=>"stopped"===e.state).length},H=async e=>{await v(e)&&U(`${e.name} ${"active"===e.state?"paused":"resumed"}`)},W=async(e,r)=>{if(r?.stopPropagation(),z[e])return;T(r=>({...r,[e]:!0}));let t=await h(e);T(r=>{let t={...r};return delete t[e],t}),t&&U("Run triggered")},q=async e=>{await p(e)&&(w===e&&C(null),U("Job deleted"))},G=async e=>{await f(e)&&U("Run cancelled")},K=async r=>{P?await m(P.id,r)&&U(`Job "${r.name}" updated`):await x({...r,projectId:e??""})&&U(`Job "${r.name}" created`)},Q=R&&(0,r.jsx)("div",{className:"fixed bottom-8 left-1/2 -translate-x-1/2 z-50 animate-in fade-in slide-in-from-bottom-2 duration-200",children:(0,r.jsx)("div",{className:"bg-[var(--card-bg)] border border-[var(--card-border)] px-4 py-2.5 rounded-xl shadow-lg flex items-center gap-2.5 text-sm font-medium",children:R})});return S?(0,r.jsxs)(r.Fragment,{children:[Q,(0,r.jsx)(E,{onClose:()=>{$(!1),M(null)},onSubmit:K,editingJob:P})]}):J?(0,r.jsxs)(r.Fragment,{children:[Q,(0,r.jsx)(O,{job:J,agentMap:D,onBack:()=>C(null),onEdit:()=>{M(J),$(!0)},onToggle:()=>H(J),onDelete:()=>q(J.id),onRunNow:()=>W(J.id),onCancelRun:()=>G(J.id),onUpdateAgent:async e=>{let r=D[e];await m(J.id,{agentId:e,provider:r?.provider??"claude",model:r?.model??""})},fetchRuns:g})]}):(0,r.jsxs)("div",{className:"h-full flex flex-col text-[var(--foreground)]",children:[Q,(0,r.jsxs)("div",{className:"px-6 md:px-10 pt-6 pb-0",children:[(0,r.jsxs)("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-end gap-4 mb-6",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-2xl font-bold tracking-tight mb-1",children:"Scheduled Tasks"}),(0,r.jsxs)("p",{className:"text-sm text-[var(--muted-foreground)]",children:[B.active," active job",1!==B.active?"s":""," ","· ",a.length," total"]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("button",{onClick:()=>u(),className:"p-2 rounded-lg border border-[var(--card-border)] text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:border-[var(--foreground)] transition-colors",children:(0,r.jsx)(c.RefreshCw,{size:16})}),(0,r.jsxs)("button",{onClick:()=>{M(null),$(!0)},className:"bg-[var(--foreground)] text-[var(--background)] px-4 py-2 rounded-lg text-sm font-medium flex items-center gap-2 hover:opacity-90 transition-opacity",children:[(0,r.jsx)(o.Plus,{size:16})," New Job"]})]})]}),(0,r.jsx)("div",{className:"flex gap-4 border-b border-[var(--card-border)] pb-3",children:["all","active","paused","stopped"].map(e=>(0,r.jsxs)("button",{onClick:()=>N(e),className:`text-xs font-medium pb-1 transition-colors border-b-2 capitalize ${j===e?"border-[var(--foreground)] text-[var(--foreground)]":"border-transparent text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:[e,(0,r.jsx)("span",{className:"ml-1.5 text-[10px] text-[var(--muted-foreground)] font-mono",children:B[e]})]},e))})]}),(0,r.jsx)("div",{className:"flex-1 min-h-0 px-6 md:px-10 py-6 overflow-y-auto",children:d&&0===a.length?(0,r.jsx)("div",{className:"text-center py-12 text-[var(--muted-foreground)] text-sm",children:"Loading jobs..."}):(0,r.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3",children:[L.map(e=>{let t=z[e.id];return(0,r.jsxs)("div",{onClick:()=>C(e.id),className:"p-5 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] hover:border-[var(--muted-foreground)] transition-all cursor-pointer",children:[(0,r.jsxs)("div",{className:"flex justify-between items-start gap-3 mb-3",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold truncate mb-1",children:e.name}),(0,r.jsx)(k,{state:e.state})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("button",{onClick:r=>{r.stopPropagation(),H(e)},type:"button",role:"switch","aria-checked":"active"===e.state,title:"active"===e.state?"Pause":"Resume",className:`relative inline-flex h-[14px] w-[24px] shrink-0 cursor-pointer rounded-full border transition-colors ${"active"===e.state?"border-emerald-400/30 bg-emerald-500/40":"border-[var(--card-border)] bg-[var(--muted)]"}`,children:(0,r.jsx)("span",{className:`pointer-events-none absolute top-[1.5px] size-[9px] rounded-full bg-white/90 shadow-sm transition-transform ${"active"===e.state?"translate-x-[11px]":"translate-x-[1.5px]"}`})}),(0,r.jsx)("button",{onClick:r=>{r.stopPropagation(),M(e),$(!0)},title:"Edit",className:"p-1.5 rounded-md border border-[var(--card-border)] text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:border-[var(--muted-foreground)] transition-colors",children:(0,r.jsx)(b.Pencil,{size:12})}),(0,r.jsx)("button",{onClick:r=>W(e.id,r),disabled:t,title:"Run now",className:`p-1.5 rounded-md border text-[var(--muted-foreground)] transition-colors ${t?"border-[var(--card-border)] opacity-50 cursor-wait":"border-[var(--card-border)] hover:text-[var(--foreground)] hover:border-[var(--muted-foreground)]"}`,children:(0,r.jsx)(s.Play,{size:12,className:t?"animate-pulse":"fill-current"})}),(0,r.jsx)("button",{onClick:r=>{r.stopPropagation(),q(e.id)},title:"Delete",className:"p-1.5 rounded-md border border-[var(--card-border)] text-[var(--muted-foreground)] hover:text-red-500 hover:border-red-500/30 transition-colors",children:(0,r.jsx)(n.Trash2,{size:12})})]})]}),(0,r.jsx)("p",{className:"text-[12px] text-[var(--muted-foreground)] leading-relaxed line-clamp-2 mb-3",children:e.prompt}),(0,r.jsxs)("div",{className:"pt-3 border-t border-[var(--card-border)]/50 flex items-center gap-4 text-[11px] text-[var(--muted-foreground)]",children:[(0,r.jsx)("span",{className:"flex items-center gap-1",children:e.agentId&&D[e.agentId]?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("img",{src:I(e.agentId,D[e.agentId].color,16),alt:"",className:"size-4 rounded-full"}),D[e.agentId].name]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Terminal,{size:11}),e.provider]})}),"condition"===e.triggerType&&(0,r.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-purple-500/10 text-purple-400 border border-purple-400/20",children:"condition"}),(0,r.jsxs)("span",{className:"flex items-center gap-1",children:[(0,r.jsx)(l.Clock,{size:11}),y(e.nextRunAt,e.state)]}),(0,r.jsx)("span",{className:"ml-auto font-mono truncate max-w-[120px]",title:e.cadence||e.cronExpr,children:"condition"===e.triggerType?`every ${Math.round(e.checkEveryMs/6e4)}m`:e.cadence||e.cronExpr})]})]},e.id)}),0===L.length&&(0,r.jsx)("div",{className:"md:col-span-2 xl:col-span-3 text-center py-12 text-[var(--muted-foreground)] text-sm border border-dashed border-[var(--card-border)] rounded-xl",children:0===a.length?"No prompt jobs yet. Create one to get started.":"No jobs match the selected filter."})]})})]})}e.s(["default",()=>A],40212)}]);
@@ -1,4 +1,4 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24903,e=>{e.v({measurementId:"G-DVQQG95LNL"})},8341,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={cancelIdleCallback:function(){return i},requestIdleCallback:function(){return a}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let a="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},i="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},79520,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={default:function(){return x},handleClientScriptLoad:function(){return h},initScriptLoader:function(){return _}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let a=e.r(55682),i=e.r(90809),o=e.r(18050),l=a._(e.r(74080)),c=i._(e.r(71645)),u=e.r(26027),d=e.r(22737),p=e.r(8341),g=new Map,f=new Set,m=e=>{let{src:t,id:r,onLoad:s=()=>{},onReady:n=null,dangerouslySetInnerHTML:a,children:i="",strategy:o="afterInteractive",onError:c,stylesheets:u}=e,p=r||t;if(p&&f.has(p))return;if(g.has(t)){f.add(p),g.get(t).then(s,c);return}let m=()=>{n&&n(),f.add(p)},h=document.createElement("script"),_=new Promise((e,t)=>{h.addEventListener("load",function(t){e(),s&&s.call(this,t),m()}),h.addEventListener("error",function(e){t(e)})}).catch(function(e){c&&c(e)});a?(h.innerHTML=a.__html||"",m()):i?(h.textContent="string"==typeof i?i:Array.isArray(i)?i.join(""):"",m()):t&&(h.src=t,g.set(t,_)),(0,d.setAttributesFromProps)(h,e),"worker"===o&&h.setAttribute("type","text/partytown"),h.setAttribute("data-nscript",o),u&&(e=>{if(l.default.preinit)return e.forEach(e=>{l.default.preinit(e,{as:"style"})});if("u">typeof window){let t=document.head;e.forEach(e=>{let r=document.createElement("link");r.type="text/css",r.rel="stylesheet",r.href=e,t.appendChild(r)})}})(u),document.body.appendChild(h)};function h(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,p.requestIdleCallback)(()=>m(e))}):m(e)}function _(e){e.forEach(h),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");f.add(t)})}function y(e){let{id:t,src:r="",onLoad:s=()=>{},onReady:n=null,strategy:a="afterInteractive",onError:i,stylesheets:d,...g}=e,{updateScripts:h,scripts:_,getIsSsr:y,appDir:x,nonce:b}=(0,c.useContext)(u.HeadManagerContext);b=g.nonce||b;let v=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let e=t||r;v.current||(n&&e&&f.has(e)&&n(),v.current=!0)},[n,t,r]);let j=(0,c.useRef)(!1);if((0,c.useEffect)(()=>{if(!j.current){if("afterInteractive"===a)m(e);else"lazyOnload"===a&&("complete"===document.readyState?(0,p.requestIdleCallback)(()=>m(e)):window.addEventListener("load",()=>{(0,p.requestIdleCallback)(()=>m(e))}));j.current=!0}},[e,a]),("beforeInteractive"===a||"worker"===a)&&(h?(_[a]=(_[a]||[]).concat([{id:t,src:r,onLoad:s,onReady:n,onError:i,...g,nonce:b}]),h(_)):y&&y()?f.add(t||r):y&&!y()&&m({...e,nonce:b})),x){if(d&&d.forEach(e=>{l.default.preinit(e,{as:"style"})}),"beforeInteractive"===a)if(!r)return g.dangerouslySetInnerHTML&&(g.children=g.dangerouslySetInnerHTML.__html,delete g.dangerouslySetInnerHTML),(0,o.jsx)("script",{nonce:b,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([0,{...g,id:t}])})`}});else return l.default.preload(r,g.integrity?{as:"script",integrity:g.integrity,nonce:b,crossOrigin:g.crossOrigin}:{as:"script",nonce:b,crossOrigin:g.crossOrigin}),(0,o.jsx)("script",{nonce:b,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([r,{...g,id:t}])})`}});"afterInteractive"===a&&r&&l.default.preload(r,g.integrity?{as:"script",integrity:g.integrity,nonce:b,crossOrigin:g.crossOrigin}:{as:"script",nonce:b,crossOrigin:g.crossOrigin})}return null}Object.defineProperty(y,"__nextScript",{value:!0});let x=y;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},3303,(e,t,r)=>{t.exports=e.r(79520)},34377,e=>{"use strict";var t=e.i(18050),r=e.i(3303);let s=e.i(24903).default.measurementId,n=`https://www.googletagmanager.com/gtag/js?id=${s}`;function a(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.default,{async:!0,src:n,strategy:"afterInteractive"}),(0,t.jsx)(r.default,{id:"google-analytics",strategy:"afterInteractive",dangerouslySetInnerHTML:{__html:`
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24903,e=>{e.v({measurementId:"G-DVQQG95LNL"})},8341,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={cancelIdleCallback:function(){return i},requestIdleCallback:function(){return a}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let a="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},i="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},79520,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={default:function(){return x},handleClientScriptLoad:function(){return h},initScriptLoader:function(){return _}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let a=e.r(55682),i=e.r(90809),o=e.r(18050),l=a._(e.r(74080)),c=i._(e.r(71645)),d=e.r(26027),u=e.r(22737),p=e.r(8341),g=new Map,f=new Set,m=e=>{let{src:t,id:r,onLoad:s=()=>{},onReady:n=null,dangerouslySetInnerHTML:a,children:i="",strategy:o="afterInteractive",onError:c,stylesheets:d}=e,p=r||t;if(p&&f.has(p))return;if(g.has(t)){f.add(p),g.get(t).then(s,c);return}let m=()=>{n&&n(),f.add(p)},h=document.createElement("script"),_=new Promise((e,t)=>{h.addEventListener("load",function(t){e(),s&&s.call(this,t),m()}),h.addEventListener("error",function(e){t(e)})}).catch(function(e){c&&c(e)});a?(h.innerHTML=a.__html||"",m()):i?(h.textContent="string"==typeof i?i:Array.isArray(i)?i.join(""):"",m()):t&&(h.src=t,g.set(t,_)),(0,u.setAttributesFromProps)(h,e),"worker"===o&&h.setAttribute("type","text/partytown"),h.setAttribute("data-nscript",o),d&&(e=>{if(l.default.preinit)return e.forEach(e=>{l.default.preinit(e,{as:"style"})});if("u">typeof window){let t=document.head;e.forEach(e=>{let r=document.createElement("link");r.type="text/css",r.rel="stylesheet",r.href=e,t.appendChild(r)})}})(d),document.body.appendChild(h)};function h(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,p.requestIdleCallback)(()=>m(e))}):m(e)}function _(e){e.forEach(h),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");f.add(t)})}function y(e){let{id:t,src:r="",onLoad:s=()=>{},onReady:n=null,strategy:a="afterInteractive",onError:i,stylesheets:u,...g}=e,{updateScripts:h,scripts:_,getIsSsr:y,appDir:x,nonce:v}=(0,c.useContext)(d.HeadManagerContext);v=g.nonce||v;let b=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let e=t||r;b.current||(n&&e&&f.has(e)&&n(),b.current=!0)},[n,t,r]);let j=(0,c.useRef)(!1);if((0,c.useEffect)(()=>{if(!j.current){if("afterInteractive"===a)m(e);else"lazyOnload"===a&&("complete"===document.readyState?(0,p.requestIdleCallback)(()=>m(e)):window.addEventListener("load",()=>{(0,p.requestIdleCallback)(()=>m(e))}));j.current=!0}},[e,a]),("beforeInteractive"===a||"worker"===a)&&(h?(_[a]=(_[a]||[]).concat([{id:t,src:r,onLoad:s,onReady:n,onError:i,...g,nonce:v}]),h(_)):y&&y()?f.add(t||r):y&&!y()&&m({...e,nonce:v})),x){if(u&&u.forEach(e=>{l.default.preinit(e,{as:"style"})}),"beforeInteractive"===a)if(!r)return g.dangerouslySetInnerHTML&&(g.children=g.dangerouslySetInnerHTML.__html,delete g.dangerouslySetInnerHTML),(0,o.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([0,{...g,id:t}])})`}});else return l.default.preload(r,g.integrity?{as:"script",integrity:g.integrity,nonce:v,crossOrigin:g.crossOrigin}:{as:"script",nonce:v,crossOrigin:g.crossOrigin}),(0,o.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([r,{...g,id:t}])})`}});"afterInteractive"===a&&r&&l.default.preload(r,g.integrity?{as:"script",integrity:g.integrity,nonce:v,crossOrigin:g.crossOrigin}:{as:"script",nonce:v,crossOrigin:g.crossOrigin})}return null}Object.defineProperty(y,"__nextScript",{value:!0});let x=y;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},3303,(e,t,r)=>{t.exports=e.r(79520)},34377,e=>{"use strict";var t=e.i(18050),r=e.i(3303);let s=e.i(24903).default.measurementId,n=`https://www.googletagmanager.com/gtag/js?id=${s}`;function a(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.default,{async:!0,src:n,strategy:"afterInteractive"}),(0,t.jsx)(r.default,{id:"google-analytics",strategy:"afterInteractive",dangerouslySetInnerHTML:{__html:`
2
2
  window.dataLayer = window.dataLayer || [];
3
3
  function gtag(){dataLayer.push(arguments);}
4
4
  gtag('js', new Date());
@@ -9,4 +9,4 @@
9
9
  api_host: 'https://us.i.posthog.com',
10
10
  person_profiles: 'identified_only',
11
11
  });
12
- `}})}e.s(["PostHogAnalytics",()=>s])},34088,e=>{"use strict";var t=e.i(18050),r=e.i(71645);let s={version_mismatch:"⚠",missing_extension:"🧩",filesystem_error:"💾",pragma_error:"⚙"},n={version_mismatch:"SQLite Version Mismatch",missing_extension:"Missing SQLite Extension",filesystem_error:"Unsupported Filesystem",pragma_error:"Configuration Error"};function a({errors:e}){return 0===e.length?null:(0,t.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-[var(--background)] p-4",role:"alert","aria-live":"assertive",children:(0,t.jsxs)("div",{className:"max-w-xl w-full space-y-4",children:[(0,t.jsxs)("div",{className:"text-center mb-6",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold text-[var(--foreground)]",children:"Database Configuration Error"}),(0,t.jsxs)("p",{className:"text-sm text-[var(--muted-foreground)] mt-1",children:["AGX cannot start because ",1===e.length?"a required check":`${e.length} required checks`," failed. Fix the ",1===e.length?"issue":"issues"," below and restart."]})]}),e.map((e,r)=>(0,t.jsx)("div",{className:"border border-red-200 bg-red-50 rounded-lg p-4 space-y-2",children:(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)("span",{className:"text-lg","aria-hidden":"true",children:s[e.kind]}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h2",{className:"font-semibold text-red-900 text-sm",children:n[e.kind]}),(0,t.jsx)("p",{className:"text-red-800 text-sm mt-0.5",children:e.message}),e.found&&e.required&&(0,t.jsxs)("div",{className:"mt-2 text-xs text-red-700 font-mono flex gap-4",children:[(0,t.jsxs)("span",{children:["Found: ",(0,t.jsx)("strong",{children:e.found})]}),(0,t.jsxs)("span",{children:["Required: ",(0,t.jsx)("strong",{children:e.required})]})]}),e.path&&(0,t.jsxs)("p",{className:"mt-1 text-xs text-red-700 font-mono truncate",children:["Path: ",e.path]}),e.fix&&(0,t.jsxs)("div",{className:"mt-2 bg-red-100 rounded p-2",children:[(0,t.jsx)("p",{className:"text-xs text-red-800 font-medium mb-1",children:"How to fix:"}),(0,t.jsx)("pre",{className:"text-xs text-red-900 font-mono whitespace-pre-wrap select-all",children:e.fix})]})]})]})},r)),(0,t.jsx)("div",{className:"text-center pt-2",children:(0,t.jsx)("button",{onClick:()=>window.location.reload(),className:"px-4 py-2 bg-[var(--primary)] text-white rounded-lg hover:bg-[var(--primary-dark)] transition-colors text-sm",children:"Retry"})})]})})}function i(e){return{kind:({"SQLite Version":"version_mismatch",journal_mode:"pragma_error",foreign_keys:"pragma_error",busy_timeout:"pragma_error",synchronous:"pragma_error",cache_size:"pragma_error","JSON1 Extension":"missing_extension","FTS5 Extension":"missing_extension",Filesystem:"filesystem_error"})[e.label]||"pragma_error",message:`${e.label}: expected to pass, got '${e.value}'`,found:e.value,fix:({"SQLite Version":"brew install sqlite3 && npm rebuild better-sqlite3",journal_mode:"Ensure the database is on a local filesystem with no exclusive locks",foreign_keys:"PRAGMA foreign_keys = ON","JSON1 Extension":"Rebuild SQLite with JSON1 enabled, or use a system SQLite that includes it",Filesystem:"Move the database file to a local SSD. WAL mode requires reliable fsync."})[e.label]}}function o({children:e}){let[s,n]=(0,r.useState)("loading"),[o,l]=(0,r.useState)([]);return((0,r.useEffect)(()=>{fetch("/api/system/db-status").then(e=>e.json()).then(e=>{let t=(e.checks||[]).filter(e=>"fail"===e.status).map(i);t.length>0?(l(t),n("error")):e.error&&!e.checks?.length?(l([{kind:"pragma_error",message:e.error}]),n("error")):n("ok")}).catch(()=>{n("ok")})},[]),"loading"===s)?(0,t.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-[var(--background)]",children:(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}):"error"===s?(0,t.jsx)(a,{errors:o}):(0,t.jsx)(t.Fragment,{children:e})}e.s(["default",()=>o],34088)}]);
12
+ `}})}e.s(["PostHogAnalytics",()=>s])},34088,e=>{"use strict";var t=e.i(18050),r=e.i(71645);let s={version_mismatch:"⚠",missing_extension:"🧩",filesystem_error:"💾",pragma_error:"⚙"},n={version_mismatch:"SQLite Version Mismatch",missing_extension:"Missing SQLite Extension",filesystem_error:"Unsupported Filesystem",pragma_error:"Configuration Error"};function a({errors:e}){return 0===e.length?null:(0,t.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-[var(--background)] p-4",role:"alert","aria-live":"assertive",children:(0,t.jsxs)("div",{className:"max-w-xl w-full space-y-4",children:[(0,t.jsxs)("div",{className:"text-center mb-6",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold text-[var(--foreground)]",children:"Database Configuration Error"}),(0,t.jsxs)("p",{className:"text-sm text-[var(--muted-foreground)] mt-1",children:["AGX cannot start because ",1===e.length?"a required check":`${e.length} required checks`," failed. Fix the ",1===e.length?"issue":"issues"," below and restart."]})]}),e.map((e,r)=>(0,t.jsx)("div",{className:"border border-red-200 bg-red-50 rounded-lg p-4 space-y-2",children:(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)("span",{className:"text-lg","aria-hidden":"true",children:s[e.kind]}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h2",{className:"font-semibold text-red-900 text-sm",children:n[e.kind]}),(0,t.jsx)("p",{className:"text-red-800 text-sm mt-0.5",children:e.message}),e.found&&e.required&&(0,t.jsxs)("div",{className:"mt-2 text-xs text-red-700 font-mono flex gap-4",children:[(0,t.jsxs)("span",{children:["Found: ",(0,t.jsx)("strong",{children:e.found})]}),(0,t.jsxs)("span",{children:["Required: ",(0,t.jsx)("strong",{children:e.required})]})]}),e.path&&(0,t.jsxs)("p",{className:"mt-1 text-xs text-red-700 font-mono truncate",children:["Path: ",e.path]}),e.fix&&(0,t.jsxs)("div",{className:"mt-2 bg-red-100 rounded p-2",children:[(0,t.jsx)("p",{className:"text-xs text-red-800 font-medium mb-1",children:"How to fix:"}),(0,t.jsx)("pre",{className:"text-xs text-red-900 font-mono whitespace-pre-wrap select-all",children:e.fix})]})]})]})},r)),(0,t.jsx)("div",{className:"text-center pt-2",children:(0,t.jsx)("button",{onClick:()=>window.location.reload(),className:"px-4 py-2 bg-[var(--primary)] text-white rounded-lg hover:bg-[var(--primary-dark)] transition-colors text-sm",children:"Retry"})})]})})}function i(e){return{kind:({"SQLite Version":"version_mismatch",journal_mode:"pragma_error",foreign_keys:"pragma_error",busy_timeout:"pragma_error",synchronous:"pragma_error",cache_size:"pragma_error","JSON1 Extension":"missing_extension","FTS5 Extension":"missing_extension",Filesystem:"filesystem_error"})[e.label]||"pragma_error",message:`${e.label}: expected to pass, got '${e.value}'`,found:e.value,fix:({"SQLite Version":"Ensure Node.js >= 22.16 is installed (node:sqlite requires it)",journal_mode:"Ensure the database is on a local filesystem with no exclusive locks",foreign_keys:"PRAGMA foreign_keys = ON","JSON1 Extension":"Rebuild SQLite with JSON1 enabled, or use a system SQLite that includes it",Filesystem:"Move the database file to a local SSD. WAL mode requires reliable fsync."})[e.label]}}function o({children:e}){let[s,n]=(0,r.useState)("loading"),[o,l]=(0,r.useState)([]);return((0,r.useEffect)(()=>{fetch("/api/system/db-status").then(e=>e.json()).then(e=>{let t=(e.checks||[]).filter(e=>"fail"===e.status).map(i);t.length>0?(l(t),n("error")):e.error&&!e.checks?.length?(l([{kind:"pragma_error",message:e.error}]),n("error")):n("ok")}).catch(()=>{n("ok")})},[]),"loading"===s)?(0,t.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-[var(--background)]",children:(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}):"error"===s?(0,t.jsx)(a,{errors:o}):(0,t.jsx)(t.Fragment,{children:e})}e.s(["default",()=>o],34088)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,55436,e=>{"use strict";let t=(0,e.i(75254).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",()=>t],55436)},90272,e=>{"use strict";let t=(0,e.i(75254).default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);e.s(["FolderGit2",()=>t],90272)},27612,e=>{"use strict";let t=(0,e.i(75254).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],27612)},23385,e=>{"use strict";let t=(0,e.i(75254).default)("brain-circuit",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M9 13a4.5 4.5 0 0 0 3-4",key:"10igwf"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M12 13h4",key:"1ku699"}],["path",{d:"M12 18h6a2 2 0 0 1 2 2v1",key:"105ag5"}],["path",{d:"M12 8h8",key:"1lhi5i"}],["path",{d:"M16 8V5a2 2 0 0 1 2-2",key:"u6izg6"}],["circle",{cx:"16",cy:"13",r:".5",key:"ry7gng"}],["circle",{cx:"18",cy:"3",r:".5",key:"1aiba7"}],["circle",{cx:"20",cy:"21",r:".5",key:"yhc1fs"}],["circle",{cx:"20",cy:"8",r:".5",key:"1e43v0"}]]);e.s(["BrainCircuit",()=>t],23385)},11132,e=>{"use strict";var t=e.i(18050),r=e.i(71645);function a({initialPath:e,onSelect:a,onCancel:s}){let[i,o]=(0,r.useState)(e||""),[n,l]=(0,r.useState)(null),[d,c]=(0,r.useState)(!1),[u,p]=(0,r.useState)(null),m=(0,r.useRef)(null),x=(0,r.useCallback)(async e=>{c(!0),p(null);try{let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/filesystem/browse${t}`),a=await r.json();if(!r.ok)return void p(a.error||"Failed to browse");l(a),o(a.current),m.current?.scrollTo(0,0)}catch{p("Failed to connect")}finally{c(!1)}},[]);return(0,r.useEffect)(()=>{x(e||"")},[]),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] overflow-hidden shadow-lg",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("input",{value:i,onChange:e=>o(e.target.value),onKeyDown:e=>{"Enter"===e.key&&x(i)},className:"input text-xs flex-1 py-1",placeholder:"Enter path..."}),(0,t.jsx)("button",{type:"button",onClick:()=>x(i),className:"text-[10px] font-bold uppercase tracking-wider text-[var(--primary)] hover:underline px-2 py-1 shrink-0",children:"Go"})]}),(0,t.jsxs)("div",{ref:m,className:"max-h-48 overflow-y-auto",children:[d&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)] text-center",children:"Loading..."}),u&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--destructive)] text-center",children:u}),!d&&n&&(0,t.jsxs)("div",{className:"py-1",children:[n.parent&&(0,t.jsxs)("button",{type:"button",onClick:()=>x(n.parent),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"↑"}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:".."})]}),0===n.dirs.length&&!n.parent&&(0,t.jsx)("div",{className:"px-3 py-3 text-xs text-[var(--muted-foreground)] text-center",children:"No subdirectories"}),n.dirs.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>x(e.path),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"📁"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]},e.path))]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] truncate max-w-[60%]",children:n?.current||i}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:s,className:"text-xs font-medium text-[var(--muted-foreground)] hover:underline px-2 py-1",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:()=>a(n?.current||i),className:"text-xs font-bold text-[var(--primary)] hover:underline px-2 py-1",children:"Select"})]})]})]})}let s={name:"",description:""},i={name:"",path:"",notes:""};function o(){let[e,t]=(0,r.useState)(s),[a,o]=(0,r.useState)([i]),[n,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(null),u=(0,r.useCallback)((e,t,r)=>{o(a=>a.map((a,s)=>s===e?{...a,[t]:r}:a))},[]),p=(0,r.useCallback)(()=>{o(e=>[...e,{...i}])},[]),m=(0,r.useCallback)(e=>{o(t=>t.filter((t,r)=>r!==e))},[]),x=(0,r.useCallback)(()=>{t(s),o([i]),c(null)},[]),h=(0,r.useCallback)(e=>{t({name:e.name||"",description:e.description||""}),e.repos&&e.repos.length>0?o(e.repos.map(e=>({id:e.id,name:e.name||"",path:e.path||"",git_url:e.git_url||"",notes:e.notes||""}))):o([i]),c(null)},[]);return{form:e,setForm:t,repos:a,handleRepoChange:u,addRepo:p,removeRepo:m,resetForm:x,hydrateFromProject:h,isSubmitting:n,setIsSubmitting:l,formError:d,setFormError:c}}function n(e,t){let r=t.filter(e=>e.name.trim()&&e.path.trim()).map(e=>({...e.id?{id:e.id}:{},name:e.name.trim(),path:e.path.trim(),...e.git_url?.trim()?{git_url:e.git_url.trim()}:{},notes:e.notes.trim()||void 0}));return{name:e.name.trim(),description:e.description.trim()||void 0,repos:r.length?r:void 0}}function l({form:e,repos:s,isEditingProject:i,isSubmitting:o,onFieldChange:n,onRepoChange:l,onAddRepo:d,onRemoveRepo:c}){let[u,p]=(0,r.useState)([]),[m,x]=(0,r.useState)(null),h=(0,r.useRef)(0);(0,r.useEffect)(()=>{i?p([]):p(s.map((e,t)=>t)),h.current=s.length},[i,s.length]),(0,r.useEffect)(()=>{if(!i){h.current=s.length;return}let e=h.current;p(t=>{let r=t.filter(e=>e<s.length);return s.length>e&&r.push(...Array.from({length:s.length-e},(t,r)=>e+r)),r}),h.current=s.length},[i,s.length]);let b=(0,r.useCallback)(e=>{p(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),v=(0,r.useCallback)(e=>!i||u.includes(e),[u,i]);return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("div",{className:"grid gap-4",children:(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Project Name"}),(0,t.jsx)("input",{value:e.name,onChange:e=>n("name",e.target.value),className:"input w-full",placeholder:"e.g. AGX Cloud",disabled:o})]})}),(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Description"}),(0,t.jsx)("textarea",{value:e.description,onChange:e=>n("description",e.target.value),className:"input w-full h-24 resize-none",placeholder:"What is this project about?",disabled:o})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] pb-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Folders"}),(0,t.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)] mt-0.5",children:"Code repos, doc folders, design assets, config directories — any path your team needs access to."})]}),(0,t.jsx)("button",{type:"button",onClick:d,className:"text-xs font-semibold text-[var(--primary)] hover:underline flex-shrink-0",disabled:o,children:"+ Add Folder"})]}),(0,t.jsx)("div",{className:"space-y-4",children:s.map((e,r)=>(0,t.jsxs)("div",{className:"p-4 rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 space-y-3 relative group",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"text-xs font-bold text-[var(--foreground)] uppercase",children:["Folder #",r+1]}),i&&!v(r)?(0,t.jsxs)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)("div",{children:e.name||"Unnamed folder"}),(0,t.jsx)("div",{className:"truncate",children:e.path||"No local path set"})]}):null]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[i&&(0,t.jsx)("button",{type:"button",onClick:()=>b(r),className:"text-xs font-semibold text-[var(--primary)] hover:underline",disabled:o,children:v(r)?"Done":"Edit"}),s.length>1&&(0,t.jsx)("button",{type:"button",onClick:()=>c(r),className:"text-xs font-semibold text-[var(--destructive)] hover:underline",disabled:o,children:"Remove"})]})]}),v(r)?(0,t.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,t.jsx)("input",{value:e.name,onChange:e=>l(r,"name",e.target.value),placeholder:"Name (e.g. Frontend, API Docs, Design System)",className:"input text-sm",disabled:o}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{value:e.path,onChange:e=>l(r,"path",e.target.value),placeholder:"Local path to folder",className:"input text-sm flex-1",disabled:o}),(0,t.jsx)("button",{type:"button",onClick:async()=>{try{let e=await fetch("/api/filesystem/pick-folder",{method:"POST"}),t=await e.json();t.path&&l(r,"path",t.path)}catch{x(m===r?null:r)}},className:"px-3 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--muted)]/30 hover:bg-[var(--muted)]/60 transition-colors text-xs font-semibold text-[var(--muted-foreground)] whitespace-nowrap",disabled:o,children:"Browse"})]}),m===r&&(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)(a,{initialPath:e.path||"",onSelect:e=>{l(r,"path",e),x(null)},onCancel:()=>x(null)})}),(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)("textarea",{value:e.notes,onChange:e=>l(r,"notes",e.target.value),placeholder:"Notes for this folder — e.g. coding conventions, deploy steps, ownership, doc standards...",className:"input text-sm w-full min-h-24 resize-y",disabled:o})})]}):null]},r))})]})]})}function d({isOpen:e,onClose:a,onSubmit:s,editingProject:i,form:o,repos:n,isSubmitting:d,formError:c,onFieldChange:u,onRepoChange:p,onAddRepo:m,onRemoveRepo:x}){let[h,b]=(0,r.useState)([]);return((0,r.useEffect)(()=>{let e=!1;return async function(){if(!i)return b([]);try{let t=await fetch(`/api/projects/${i.id}/memory?producer=system`),r=t.ok?await t.json():{memory:[]};e||b(r.memory??[])}catch{e||b([])}}(),()=>{e=!0}},[i]),e)?(0,t.jsx)("div",{className:"modal-backdrop p-2 sm:p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&a(),children:(0,t.jsxs)("div",{className:"modal-content w-full max-w-4xl mx-2 sm:mx-auto bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-xl font-bold",children:i?"Edit Project":"Create New Project"}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:i?"Update your project settings and folders.":"Define a new project and connect folders."})]}),(0,t.jsx)("button",{onClick:a,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 sm:p-8",children:[i&&(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 p-4",children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Living Project Note"}),h.length>0?(0,t.jsx)("div",{className:"mt-3 space-y-2",children:h.slice(0,5).map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,t.jsx)("div",{children:e.content}),e.created_at?(0,t.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(e.created_at).toLocaleString()}):null]},e.id))}):(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)]",children:"No project note yet."})]})}),(0,t.jsx)(l,{form:o,repos:n,isEditingProject:!!i,isSubmitting:d,onFieldChange:u,onRepoChange:p,onAddRepo:m,onRemoveRepo:x}),c&&(0,t.jsx)("div",{className:"mt-6 p-4 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:c})]}),(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-t border-[var(--card-border)] flex items-center justify-end gap-3 flex-shrink-0",children:[(0,t.jsx)("button",{onClick:a,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Cancel"}),(0,t.jsx)("button",{onClick:s,disabled:d,className:"btn-primary px-8 py-2 shadow-lg shadow-[var(--primary)]/20 min-w-[120px]",children:d?(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"spinner w-3 h-3 border-2 border-white/20 border-t-white"}),"Saving..."]}):i?"Save Changes":"Create Project"})]})]})}):null}e.s(["createProjectPayload",()=>n,"default",()=>d,"useProjectFormState",()=>o],11132)},68542,31245,27025,54238,e=>{"use strict";var t=e.i(18050),r=e.i(71645),a=e.i(74080),s=e.i(64659),i=e.i(63059),o=e.i(88081),n=e.i(75254);let l=(0,n.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["Bot",()=>l],31245);var d=e.i(39312);let c=(0,n.default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);e.s(["Folder",()=>c],27025);var u=e.i(90272);let p=(0,n.default)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);var m=e.i(88699),x=e.i(23385);let h=(0,n.default)("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);var b=e.i(7233),v=e.i(55436),g=e.i(27612),f=e.i(37727),j=e.i(22016),y=e.i(25459),k=e.i(11132);function w({threads:e,participants:n=[],activeThreadId:w,isLoading:N,isCreating:_,onSelectThread:C,onCreateThread:S,onRenameThread:P,onDeleteThread:z,deletingThreadId:I=null,renamingThreadId:F=null,activeParticipantIds:A=[],onToggleParticipantActive:M,visible:D=!1,isRestoringActiveThread:$=!1,onToggle:E,onSearch:L,projects:T=[],onCreateProject:B,onUpdateProject:K,onDeleteProject:R,onAddAgentToProject:V,onRemoveAgentFromProject:U,onAddAgentViaForm:O,onReorderProjectAgents:H,onUpdateParticipant:W,onSelectProject:q,getProjectBoardHref:G,activeProjectId:X=null,activeProjectView:J=null}){let Y,Z,Q=(0,r.useRef)(null),[ee,et]=(0,r.useState)(!1),[er,ea]=(0,r.useState)(new Set);(0,r.useEffect)(()=>{if(er.size>0||!T?.length)return;let e=T.find(e=>window.location.pathname.includes(`/projects/${e.slug}`));ea(new Set([e?.id??T[0].id]))},[T]);let[es,ei]=(0,r.useState)(null),[eo,en]=(0,r.useState)(new Set),[el,ed]=(0,r.useState)(!1),[ec,eu]=(0,r.useState)(null),[ep,em]=(0,r.useState)(null),ex=(0,k.useProjectFormState)(),[eh,eb]=(0,r.useState)(null),ev=(0,r.useCallback)(e=>{e&&(e.focus(),e.select())},[]),[eg,ef]=(0,r.useState)(null),[ej,ey]=(0,r.useState)(null),ek=ej?n.find(e=>e.id===ej)??null:null,[ew,eN]=(0,r.useState)(null),[e_,eC]=(0,r.useState)(null),eS=async()=>{if(!ec&&!ep)return;if(!ex.form.name.trim())return void ex.setFormError("Project name is required");let e=ex.repos.find(e=>e.name.trim()&&!e.path.trim());if(e)return void ex.setFormError(`Local path is required for folder "${e.name}"`);ex.setFormError(null),ex.setIsSubmitting(!0);let t=(0,k.createProjectPayload)(ex.form,ex.repos);ep?await K?.(ep.id,t):await B?.(t,ec?.threadId),ex.setIsSubmitting(!1),eu(null),em(null)},eP=async e=>{ex.resetForm();try{let t=await fetch(`/api/projects/${e}`);if(!t.ok)throw Error("Failed to load project");let r=(await t.json()).project;em(r),ex.hydrateFromProject(r)}catch(e){console.error("Failed to load project settings",e)}};(0,r.useEffect)(()=>{et(!0)},[]),(0,r.useEffect)(()=>{let e=!1;async function t(){if(ew?.repoId)try{let t=await fetch(`/api/repos/${ew.repoId}/knowledge?producer=system`),r=t.ok?await t.json():{knowledge:[]};e||eN(e=>e&&e.repoId===ew.repoId?{...e,generatedKnowledge:r.knowledge??[],isLoadingKnowledge:!1}:e)}catch{e||eN(e=>e&&e.repoId===ew.repoId?{...e,generatedKnowledge:[],isLoadingKnowledge:!1}:e)}}return ew?.repoId&&t(),()=>{e=!0}},[ew?.repoId]);let ez=e=>{O?O(e):(en(new Set),ei({projectId:e}))},eI=es?T.find(e=>e.id===es.projectId):null,eF=new Set(eI?.agents.map(e=>e.agent_id)??[]),eA=es?n.filter(e=>!eF.has(e.id)):[],eM=e.length>0,eD=!!D,e$=[...e].sort((e,t)=>(e.title??"").localeCompare(t.title??"")),eE=new Map(e.map(e=>[e.id,e])),eL=T.filter(e=>!e.is_default),eT=e$.filter(e=>!eL.some(t=>t.thread_ids?.includes(e.id))),eB=(0,r.useCallback)(e=>G?.(e)??`/projects/${e.slug}`,[G]);!function({focusTarget:e,shouldFocus:t}){(0,r.useEffect)(()=>{if(!t||"u"<typeof document)return;let r=e.current;if(!r||r instanceof HTMLButtonElement&&r.disabled)return;let a=document.activeElement;if(!(a&&(r===a||r.contains(a))))try{r.focus({preventScroll:!0})}catch{r.focus()}},[e,t])}({focusTarget:Q,shouldFocus:eD&&!(N&&!eM||$&&eM)&&!eM&&!_});let eK=()=>{eb({title:"Create discussion",placeholder:"Discussion title",defaultValue:"",onSubmit:e=>void S({title:e})})};return eD?(0,t.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar","aria-label":"Workspace sidebar","aria-busy":N?"true":void 0,children:[(0,t.jsxs)("div",{className:"workspace-sidebar__brand",children:[(0,t.jsxs)("div",{className:"workspace-sidebar__brand-content flex items-center gap-2 px-1",children:[(0,t.jsx)("div",{className:"workspace-sidebar__brand-icon","aria-hidden":"true",children:(0,t.jsx)("span",{className:"text-[10px]",children:"AGX"})}),(0,t.jsx)("span",{className:"workspace-sidebar__brand-title",children:"Workspace"})]}),E&&(0,t.jsx)("button",{type:"button",onClick:E,"aria-label":"Hide discussions",title:"Hide discussions",className:"workspace-sidebar__brand-toggle ml-auto inline-flex h-7 w-7 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-all hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:(0,t.jsx)(p,{className:"h-4 w-4",strokeWidth:1.75})})]}),(0,t.jsxs)("div",{className:"workspace-sidebar__content",children:[L&&(0,t.jsx)("div",{className:"px-3 pt-2 pb-1",children:(0,t.jsxs)("button",{type:"button",onClick:L,className:"flex h-8 w-full items-center gap-2 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] px-2.5 text-xs text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] hover:text-[var(--app-shell-muted)]",children:[(0,t.jsx)(v.Search,{className:"h-3.5 w-3.5 shrink-0",strokeWidth:1.75}),(0,t.jsx)("span",{children:"Search..."}),(0,t.jsx)("kbd",{className:"ml-auto rounded border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1 py-0.5 font-sans text-[10px] font-medium text-[var(--app-shell-soft-text)]",children:"⌘K"})]})}),(0,t.jsx)("nav",{className:"workspace-sidebar__section",style:{gap:0},children:(0,t.jsxs)(j.default,{href:"/agents",className:"workspace-sidebar__nav-item",children:[(0,t.jsx)(l,{size:14,className:"flex-shrink-0"}),"Manage Agents"]})}),(0,t.jsxs)("nav",{className:"workspace-sidebar__section",children:[(0,t.jsxs)("div",{className:"workspace-sidebar__section-header group/projects-header",children:[(0,t.jsx)("p",{className:"workspace-sidebar__section-label",children:"Projects"}),(0,t.jsx)("div",{className:"workspace-sidebar__header-actions",children:(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/projects-header:opacity-100",onClick:()=>{ex.resetForm(),em(null),eu({})},"aria-label":"Create project",title:"Create project",children:(0,t.jsx)(b.Plus,{size:14})})})]}),eL.map(e=>{let r=er.has(e.id),a=e$.filter(t=>e.thread_ids?.includes(t.id)),l=e.id===X,p=e.thread_ids?.find(e=>eE.has(e))??e.thread_ids?.[0]??a[0]?.id??null,v=l&&"thread"===J&&p===w,f=l&&"board"===J,k=l&&"knowledge"===J,N=l&&"automations"===J;return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"workspace-sidebar__workspace-item group",children:[(0,t.jsxs)("div",{className:"workspace-sidebar__nav-item workspace-sidebar__workspace-nav-item",children:[(0,t.jsx)("button",{type:"button",className:"inline-flex items-center justify-center rounded-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:()=>{var t;return t=e.id,void ea(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})},"aria-label":r?`Collapse ${e.name}`:`Expand ${e.name}`,title:r?"Collapse project":"Expand project",children:r?(0,t.jsx)(s.ChevronDown,{size:14,className:"flex-shrink-0"}):(0,t.jsx)(i.ChevronRight,{size:14,className:"flex-shrink-0"})}),(0,t.jsx)(c,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title",children:e.name})]}),(0,t.jsxs)("div",{className:"workspace-sidebar__workspace-actions",children:[(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__workspace-action",onClick:()=>void eP(e.id),"aria-label":`Open project settings for ${e.name}`,title:"Project settings",children:(0,t.jsx)(m.Pencil,{size:12})}),(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__workspace-action workspace-sidebar__workspace-action--delete",onClick:()=>{var t;let r;return t=e.id,r=T.find(e=>e.id===t),void ef({title:"Delete project",message:`Delete "${r?.name??"project"}"? Its agents will move to the Default project.`,onConfirm:()=>void R?.(t)})},"aria-label":`Delete project ${e.name}`,title:`Delete project ${e.name}`,children:(0,t.jsx)(g.Trash2,{size:12})})]})]}),r&&(0,t.jsxs)("div",{className:"ml-4 my-1 flex flex-col gap-0.5 border-l border-[var(--app-shell-border)] pl-3",children:[(0,t.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,t.jsxs)(j.default,{href:`/projects/${e.slug}/automations`,className:`workspace-sidebar__nav-item ${N?"workspace-sidebar__nav-item--active":""}`,"aria-current":N?"page":void 0,children:[(0,t.jsx)(d.Zap,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Scheduled Tasks"})]})}),(0,t.jsx)("div",{className:"workspace-sidebar__workspace-item",children:p?(0,t.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item ${v?"workspace-sidebar__nav-item--active":""}`,onClick:()=>C(p),"aria-current":v?"page":void 0,children:[(0,t.jsx)(o.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Discussion"})]}):(0,t.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item",onClick:eK,children:[(0,t.jsx)(o.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Discussion"})]})}),(0,t.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,t.jsxs)(j.default,{href:eB(e),className:`workspace-sidebar__nav-item ${f?"workspace-sidebar__nav-item--active":""}`,"aria-current":f?"page":void 0,children:[(0,t.jsx)(h,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Board"})]})}),(0,t.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,t.jsxs)(j.default,{href:`/projects/${e.slug}/knowledge`,className:`workspace-sidebar__nav-item ${k?"workspace-sidebar__nav-item--active":""}`,"aria-current":k?"page":void 0,children:[(0,t.jsx)(x.BrainCircuit,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Knowledge"})]})}),(0,t.jsxs)("div",{className:"pt-1",children:[(0,t.jsxs)("div",{className:"group/repos-header flex items-center justify-between px-3 py-1",children:[(0,t.jsx)("p",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Folders"}),(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/repos-header:opacity-100 text-[var(--muted-foreground)] hover:text-white",onClick:()=>eN({projectId:e.id,projectName:e.name,repoId:null,name:"",path:"",gitUrl:"",notes:"",generatedKnowledge:[],isLoadingKnowledge:!1,isSaving:!1,error:null}),"aria-label":"Add folder",title:"Add folder",children:(0,t.jsx)(b.Plus,{size:12})})]}),e.repos.length>0?e.repos.map(r=>(0,t.jsxs)("div",{className:"workspace-sidebar__workspace-item group/repo flex items-center",children:[(0,t.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item min-w-0 flex-1 text-left",onClick:()=>eN({projectId:e.id,projectName:e.name,repoId:r.id,name:r.name,path:r.path||"",gitUrl:r.git_url||"",notes:r.notes||"",generatedKnowledge:[],isLoadingKnowledge:!0,isSaving:!1,error:null}),children:[(0,t.jsx)(u.FolderGit2,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)] ml-2"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs truncate",children:r.name})]}),(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 group-hover/repo:opacity-100 transition-opacity flex-shrink-0 text-[var(--muted-foreground)] hover:text-red-400",onClick:async t=>{t.stopPropagation();let a=e.repos.filter(e=>e.id!==r.id).map(e=>({id:e.id,name:e.name,path:e.path,git_url:e.git_url,notes:e.notes}));await K?.(e.id,{repos:a})},"aria-label":"Delete folder",title:"Delete folder",children:(0,t.jsx)(g.Trash2,{size:12})})]},`${e.id}:${r.name}:${r.path??""}`)):(0,t.jsx)("p",{className:"px-3 py-1 text-[11px] text-[var(--muted-foreground)]",children:"No folders"})]}),(0,t.jsxs)("div",{className:"pt-1",children:[(0,t.jsxs)("div",{className:"group/agents-header flex items-center justify-between px-3 py-1",children:[(0,t.jsx)("p",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Agents"}),e.agents.length>0&&(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/agents-header:opacity-100 text-[var(--muted-foreground)] hover:text-white",onClick:()=>ez(e.id),"aria-label":"Add agents",title:"Add agents",children:(0,t.jsx)(b.Plus,{size:12})})]}),e.agents.length>0?(0,t.jsx)(t.Fragment,{children:e.agents.map((r,a)=>{let s=n.find(e=>e.id===r.agent_id),i=e_?.projectId===e.id&&e_?.agentId===r.agent_id,o=e_?.projectId===e.id&&e_?.overIndex===a&&!i;return(0,t.jsx)("div",{draggable:!0,onDragStart:t=>{t.dataTransfer.effectAllowed="move",eC({projectId:e.id,agentId:r.agent_id,overIndex:a})},onDragOver:t=>{t.preventDefault(),e_&&e_.projectId===e.id&&eC(e=>e?{...e,overIndex:a}:null)},onDragEnd:()=>{if(e_&&e_.projectId===e.id&&H){let t=e.agents.map(e=>e.agent_id),r=t.indexOf(e_.agentId),a=e_.overIndex;if(-1!==r&&r!==a){let s=[...t],[i]=s.splice(r,1);s.splice(a,0,i),H(e.id,s)}}eC(null)},className:`group/agent flex items-center ${o?"border-t-2 border-[var(--border)]":"border-t-2 border-transparent"} ${i?"opacity-40":""}`,children:(0,t.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item flex-1 min-w-0 !py-1",onClick:()=>ey(r.agent_id),children:[(0,t.jsx)("span",{className:`cursor-grab text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] flex-shrink-0 mr-0.5 transition-opacity ${0===a?"opacity-100":"opacity-0 group-hover/agent:opacity-100"}`,title:"Drag to reorder",children:"⠿"}),(0,t.jsx)("img",{src:(0,y.agentAvatarUrl)(r.agent_id,16,s?.color),alt:"",className:"w-4 h-4 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs truncate",children:s?.name??r.agent_id}),0===a&&(0,t.jsx)("span",{className:"ml-auto text-[9px] text-[var(--muted-foreground)] font-medium flex-shrink-0",title:"Default responder (top agent responds first)",children:"DEFAULT"})]})},r.agent_id)})}):(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 px-3 py-1 text-[11px] font-medium text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:()=>ez(e.id),children:[(0,t.jsx)(b.Plus,{size:10}),(0,t.jsx)("span",{children:"Add agents"})]})]})]})]},e.id)}),eT.length>0&&(0,t.jsxs)("div",{className:"pt-3",children:[(0,t.jsx)("p",{className:"px-1 py-1 text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Unassigned Threads"}),eT.map(e=>{let r=e.id===w,a=e.title?.trim()||"Untitled thread";return(0,t.jsx)("div",{className:"workspace-sidebar__workspace-item group",children:(0,t.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item workspace-sidebar__workspace-nav-item ${r?"workspace-sidebar__nav-item--active workspace-sidebar__workspace-nav-item--active":""}`,onClick:()=>C(e.id),"aria-current":r?"page":void 0,children:[(0,t.jsx)(o.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title",children:a})]})},e.id)})]})]})]}),(0,t.jsx)("div",{className:"mt-auto px-3 pb-3",children:(0,t.jsxs)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center gap-2 w-full py-2 rounded-lg text-white text-sm font-medium transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:e=>e.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:e=>e.currentTarget.style.backgroundColor="#5865F2",children:[(0,t.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})}),"Join Discord"]})}),ee&&ew&&(0,a.createPortal)((0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4",onClick:()=>{ew.isSaving||eN(null)},children:(0,t.jsxs)("div",{className:"w-full max-w-lg rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] shadow-2xl",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--border)] px-5 py-4",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:ew.projectName}),(0,t.jsx)("h3",{className:"truncate text-base font-semibold text-[var(--foreground)]",children:ew.repoId?ew.name||"Folder":"Add Folder"})]}),(0,t.jsx)("button",{type:"button",className:"rounded-md p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)] hover:text-[var(--muted-foreground)]",onClick:()=>{ew.isSaving||eN(null)},"aria-label":"Close folder details",disabled:ew.isSaving,children:(0,t.jsx)(f.X,{size:16})})]}),(0,t.jsxs)("div",{className:"space-y-4 px-5 py-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Name"}),(0,t.jsx)("input",{value:ew.name,onChange:e=>eN(t=>t?{...t,name:e.target.value,error:null}:t),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",disabled:ew.isSaving,placeholder:"e.g. Frontend, API Docs, Design System"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Path"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{value:ew.path,onChange:e=>eN(t=>t?{...t,path:e.target.value,error:null}:t),className:"flex-1 rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 font-mono text-xs text-[var(--foreground)]",disabled:ew.isSaving,placeholder:"Local path to folder"}),(0,t.jsx)("button",{type:"button",className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",disabled:ew.isSaving,onClick:async()=>{try{let e=await fetch("/api/filesystem/pick-folder",{method:"POST"}),t=await e.json();t.path&&eN(e=>e?{...e,path:t.path,error:null}:e)}catch{}},children:"Browse"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Notes"}),(0,t.jsx)("textarea",{value:ew.notes,onChange:e=>eN(t=>t?{...t,notes:e.target.value,error:null}:t),className:"min-h-28 w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-3 text-sm text-[var(--foreground)] whitespace-pre-wrap",disabled:ew.isSaving,placeholder:"Coding conventions, deploy steps, doc standards, ownership rules..."})]}),ew.repoId?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Living Note"}),ew.isLoadingKnowledge?(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading note…"}):ew.generatedKnowledge.length>0?(0,t.jsx)("div",{className:"space-y-2",children:ew.generatedKnowledge.slice(0,5).map(e=>(0,t.jsxs)("div",{className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,t.jsx)("div",{children:e.content}),e.created_at?(0,t.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(e.created_at).toLocaleString()}):null]},e.id))}):(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No note yet."})]}):null,ew.error?(0,t.jsx)("p",{className:"text-xs text-red-600",children:ew.error}):null,(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t border-[var(--border)] pt-4",children:[(0,t.jsx)("button",{type:"button",className:"rounded-lg px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",onClick:()=>eN(null),disabled:ew.isSaving,children:"Cancel"}),(0,t.jsx)("button",{type:"button",className:"rounded-lg bg-[var(--foreground)] px-3 py-2 text-sm font-medium text-[var(--card-bg)] transition-colors hover:bg-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-60",disabled:ew.isSaving||!K,onClick:async()=>{let e=T.find(e=>e.id===ew.projectId);if(!e)return void eN(e=>e?{...e,error:"Project not found."}:e);let t=ew.name.trim(),r=ew.path.trim();if(!t)return void eN(e=>e?{...e,error:"Folder name is required."}:e);if(!r)return void eN(e=>e?{...e,error:"Folder path is required."}:e);eN(e=>e?{...e,isSaving:!0,error:null}:e);try{let a=ew.repoId?e.repos.map(e=>e.id===ew.repoId?{id:e.id,name:t,path:r,git_url:ew.gitUrl.trim()||void 0,notes:ew.notes.trim()||void 0}:{id:e.id,name:e.name,path:e.path,git_url:e.git_url,notes:e.notes}):[...e.repos.map(e=>({id:e.id,name:e.name,path:e.path,git_url:e.git_url,notes:e.notes})),{name:t,path:r,git_url:ew.gitUrl.trim()||void 0,notes:ew.notes.trim()||void 0}];await K?.(e.id,{repos:a}),eN(null)}catch(e){eN(t=>t?{...t,isSaving:!1,error:e instanceof Error?e.message:"Failed to save folder details."}:t)}},children:ew.isSaving?"Saving...":ew.repoId?"Save":"Add Folder"})]})]})]})}),document.body),ee&&es&&!el&&(0,a.createPortal)((0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ei(null),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 max-h-[70vh] flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,t.jsxs)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",eI?.name??"project"]}),(0,t.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>ei(null),children:(0,t.jsx)(f.X,{size:16})})]}),(0,t.jsxs)("div",{className:"overflow-y-auto py-1 flex-1",children:[(0,t.jsxs)("button",{type:"button",className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors border-b border-[var(--border)]",onClick:()=>ed(!0),children:[(0,t.jsx)(b.Plus,{size:14,className:"text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===eA.length?(0,t.jsx)("p",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"All agents are already in this project"}):eA.map(e=>{let r=eo.has(e.id);return(0,t.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${r?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:()=>{en(t=>{let r=new Set(t);return r.has(e.id)?r.delete(e.id):r.add(e.id),r})},children:[(0,t.jsx)("div",{className:`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${r?"bg-[var(--foreground)] border-[var(--foreground)]":"border-[var(--border)]"}`,children:r&&(0,t.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,t.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,t.jsx)("img",{src:(0,y.agentAvatarUrl)(e.id,24,e.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 text-left",children:[(0,t.jsx)("div",{className:"truncate font-medium text-xs",children:e.name}),(0,t.jsx)("div",{className:"truncate text-[11px] text-[var(--muted-foreground)]",children:e.model})]})]},e.id)})]}),eA.length>0&&(0,t.jsxs)("div",{className:"px-4 py-3 border-t border-[var(--border)] flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>ei(null),children:"Cancel"}),(0,t.jsxs)("button",{type:"button",disabled:0===eo.size,className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>{for(let e of eo)V?.(es.projectId,e);ei(null)},children:["Add ",eo.size>0?`(${eo.size})`:""]})]})]})}),document.body),ee&&el&&(0,a.createPortal)((0,t.jsx)(y.AgentForm,{title:"Create new agent",initial:{name:"",provider:"claude",model:"",identity:"",skills:[],skillBindings:[]},submitLabel:"Create & Add",projects:T?.filter(e=>!e.is_default).map(t=>{let r=(t.thread_ids??[]).map(t=>e.find(e=>e.id===t)?.title?.trim()).filter(Boolean).join(", ")||"No discussion";return{id:t.id,name:t.name,label:`${r} › ${t.name}`}}),initialProjectIds:es?[es.projectId]:[],onSubmit:async(e,t)=>{let r=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],a=r[n.length%r.length],s=e.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),i=t?.[0],o=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:s,name:e.name,provider:e.provider,model:e.model,color:e.color??a,...e.title?{title:e.title}:{},...e.identity?{identity:e.identity}:{},skills:e.skills??[],skillBindings:e.skillBindings??[],...i?{projectId:i}:{}})});if(o.ok){let e=await o.json().catch(()=>({})),r="string"==typeof e?.id&&e.id.trim()?e.id.trim():s;for(let e of(t??[]).slice(1))V?.(e,r);ed(!1),ei(null)}},onCancel:()=>{ed(!1)}}),document.body),ee&&eh&&(0,a.createPortal)((0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>eb(null),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:eh.title}),(0,t.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>eb(null),children:(0,t.jsx)(f.X,{size:16})})]}),(0,t.jsxs)("form",{className:"px-4 py-4 flex flex-col gap-3",onSubmit:e=>{e.preventDefault();let t=new FormData(e.currentTarget),r=t.get("value")?.trim();r&&(eh.onSubmit(r),eb(null))},children:[(0,t.jsx)("input",{ref:ev,name:"value",type:"text",defaultValue:eh.defaultValue,placeholder:eh.placeholder,className:"w-full px-3 py-2 text-sm border border-[var(--border)] rounded-lg outline-none focus:border-[var(--border)] focus:ring-1 focus:ring-[var(--border)] transition-all"}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>eb(null),children:"Cancel"}),(0,t.jsx)("button",{type:"submit",className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] transition-colors",children:eh.defaultValue?"Save":"Create"})]})]})]})}),document.body),ee&&eg&&(0,a.createPortal)((0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ef(null),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:eg.title}),(0,t.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>ef(null),children:(0,t.jsx)(f.X,{size:16})})]}),(0,t.jsxs)("div",{className:"px-4 py-4 flex flex-col gap-4",children:[(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:eg.message}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>ef(null),children:"Cancel"}),(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs font-medium text-white bg-red-600 rounded-lg hover:bg-red-700 transition-colors",onClick:()=>{eg.onConfirm(),ef(null)},children:"Delete"})]})]})]})}),document.body),ee&&(ec||ep)&&(0,a.createPortal)((0,t.jsx)(k.default,{isOpen:!0,onClose:()=>{ex.resetForm(),eu(null),em(null)},onSubmit:()=>void eS(),editingProject:ep,form:ex.form,repos:ex.repos,isSubmitting:ex.isSubmitting,formError:ex.formError,onFieldChange:(e,t)=>ex.setForm(r=>({...r,[e]:t})),onRepoChange:ex.handleRepoChange,onAddRepo:ex.addRepo,onRemoveRepo:ex.removeRepo}),document.body),ee&&ek&&(0,a.createPortal)((Y=T.filter(e=>e.agents.some(e=>e.agent_id===ek.id)),Z=T.filter(e=>!e.agents.some(e=>e.agent_id===ek.id)),(0,t.jsx)(y.AgentForm,{title:"Edit agent",initial:{name:ek.name,title:ek.title||"",provider:ek.provider,model:ek.model||"",identity:ek.identity||"",color:ek.color,skills:ek.skills||[],skillBindings:ek.skillBindings||[]},agentId:ek.id,submitLabel:"Save",projectMemberships:{current:Y.map(e=>({id:e.id,name:e.name,is_default:!!e.is_default})),available:Z.map(e=>({id:e.id,name:e.name}))},onAddToProject:V?e=>V(e,ek.id):void 0,onRemoveFromProject:U?e=>U(e,ek.id):void 0,onSubmit:async e=>{W&&await W({...ek,name:e.name,title:e.title||void 0,provider:e.provider,model:e.model,color:e.color??ek.color,...e.identity?{identity:e.identity}:{},skills:e.skills??[],skillBindings:e.skillBindings??[]}),ey(null)},onCancel:()=>ey(null)})),document.body)]}):(0,t.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar workspace-sidebar--collapsed","aria-label":"Workspace sidebar",children:[(0,t.jsx)("div",{className:"workspace-sidebar__brand",children:(0,t.jsx)("button",{type:"button",onClick:E,className:"workspace-sidebar__brand-icon border-none outline-none cursor-pointer","aria-label":"Show discussions",title:"Show discussions",children:(0,t.jsx)("span",{className:"text-[10px]",children:"AGX"})})}),(0,t.jsx)("div",{className:"mt-auto p-2",children:(0,t.jsx)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center w-8 h-8 rounded-lg text-white transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:e=>e.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:e=>e.currentTarget.style.backgroundColor="#5865F2",title:"Join Discord",children:(0,t.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})})})})]})}e.s(["WorkspaceSidebar",()=>w],68542);let N="agx-chat:uiSettings",_={threadSidebarVisible:!1};function C(){return void 0!==window.localStorage}function S(){if(!C())return{..._};let e=window.localStorage.getItem(N);if(!e)return{..._};try{let t=JSON.parse(e);return{..._,threadSidebarVisible:"boolean"==typeof t.threadSidebarVisible&&t.threadSidebarVisible}}catch{return{..._}}}function P(){return S().threadSidebarVisible}function z(e){var t={...S(),threadSidebarVisible:e};if(C())try{window.localStorage.setItem(N,JSON.stringify(t))}catch{}}e.s(["loadWorkspaceSidebarVisible",()=>P,"persistWorkspaceSidebarVisible",()=>z],54238)}]);
@@ -1,5 +1,6 @@
1
1
  import { NextRequest } from "next/server";
2
- import Database from "better-sqlite3";
2
+ import { DatabaseSync } from "node:sqlite";
3
+ import { pragmaSet } from "@/lib/sqlite-compat";
3
4
  import path from "path";
4
5
  import os from "os";
5
6
  import { existsSync } from "fs";
@@ -23,8 +24,8 @@ export async function GET(
23
24
  }
24
25
 
25
26
  try {
26
- const db = new Database(DB_PATH, { readonly: true });
27
- db.pragma("journal_mode = WAL");
27
+ const db = new DatabaseSync(DB_PATH, { readOnly: true });
28
+ pragmaSet(db, "journal_mode = WAL");
28
29
 
29
30
  // Get agent's messages with root content (thread title) and the preceding message in the thread
30
31
  const messages = db
@@ -88,7 +88,7 @@ export async function GET(
88
88
  ORDER BY created_at DESC
89
89
  LIMIT 25`
90
90
  )
91
- .all(dbAgent.id) as AgentMemoryRow[])
91
+ .all(dbAgent.id) as unknown as AgentMemoryRow[])
92
92
  : [];
93
93
 
94
94
  // Parse self.md frontmatter for version info
@@ -46,7 +46,7 @@ export async function GET(request: NextRequest) {
46
46
 
47
47
  query += ` ORDER BY updated_at DESC`;
48
48
 
49
- const rows = db.prepare(query).all(...params) as ScheduleRow[];
49
+ const rows = db.prepare(query).all(...params) as unknown as ScheduleRow[];
50
50
 
51
51
  const automations: AutomationItem[] = rows.map((row) => ({
52
52
  taskId: row.task_id,
@@ -118,8 +118,8 @@ interface ProjectAgentRow {
118
118
  function loadProjectsWithAgents(): { projects: ProjectRow[]; agentsByProject: Record<string, ProjectAgentRow[]> } {
119
119
  try {
120
120
  const db = getSQLiteDb();
121
- const projects = db.prepare("SELECT id, name, slug FROM projects").all() as ProjectRow[];
122
- const agents = db.prepare("SELECT * FROM project_agents ORDER BY routing_order ASC").all() as ProjectAgentRow[];
121
+ const projects = db.prepare("SELECT id, name, slug FROM projects").all() as unknown as ProjectRow[];
122
+ const agents = db.prepare("SELECT * FROM project_agents ORDER BY routing_order ASC").all() as unknown as ProjectAgentRow[];
123
123
  const agentsByProject: Record<string, ProjectAgentRow[]> = {};
124
124
  for (const a of agents) {
125
125
  (agentsByProject[a.project_id] ??= []).push(a);
@@ -85,11 +85,11 @@ export async function GET(request: NextRequest): Promise<NextResponse> {
85
85
  if (task_id) {
86
86
  rows = db
87
87
  .prepare("SELECT * FROM agent_memory WHERE task_id = ? ORDER BY created_at ASC")
88
- .all(task_id) as MemoryRow[];
88
+ .all(task_id) as unknown as MemoryRow[];
89
89
  } else {
90
90
  rows = db
91
91
  .prepare("SELECT * FROM agent_memory WHERE agent_id = ? ORDER BY created_at ASC")
92
- .all(agent_id!) as MemoryRow[];
92
+ .all(agent_id!) as unknown as MemoryRow[];
93
93
  }
94
94
 
95
95
  return NextResponse.json({ memories: rows });
@@ -46,7 +46,7 @@ export async function PATCH(req: NextRequest, { params }: { params: Promise<{ id
46
46
 
47
47
  const updates: Record<string, unknown> = { ...rest };
48
48
 
49
- if (cadence !== undefined) {
49
+ if (cadence !== undefined && cadence !== '') {
50
50
  const parsed = parseCadence(cadence);
51
51
  if (!parsed) {
52
52
  return NextResponse.json(
@@ -55,6 +55,14 @@ export async function PATCH(req: NextRequest, { params }: { params: Promise<{ id
55
55
  );
56
56
  }
57
57
  updates.cadence = parsed.cadence;
58
+ updates.cronExpr = parsed.cronExpr;
59
+ } else if (cadence === '') {
60
+ updates.cadence = '';
61
+ }
62
+
63
+ // Recompute nextRunAt when trigger type changes
64
+ if (updates.triggerType === 'condition' && updates.checkEveryMs) {
65
+ updates.nextRunAt = Date.now() + (updates.checkEveryMs as number);
58
66
  }
59
67
 
60
68
  const job = store.updateJob(id, updates);
@@ -1,5 +1,6 @@
1
1
  import { NextResponse } from "next/server";
2
- import Database from "better-sqlite3";
2
+ import { DatabaseSync } from "node:sqlite";
3
+ import { pragmaSet, pragmaGet } from "@/lib/sqlite-compat";
3
4
  import fs from "fs";
4
5
  import os from "os";
5
6
 
@@ -88,19 +89,19 @@ export async function GET() {
88
89
  let version = "unknown";
89
90
  let backupInfo = { lastBackup: null as string | null, walSizeBytes: null as number | null };
90
91
 
91
- let db: Database.Database | null = null;
92
+ let db: DatabaseSync | null = null;
92
93
  try {
93
94
  // Open the queue DB — create if missing (in-memory can't use WAL/DELETE)
94
95
  const dbDir = SQLITE_QUEUE_PATH.replace(/\/[^/]+$/, "");
95
96
  if (!fs.existsSync(dbDir)) fs.mkdirSync(dbDir, { recursive: true });
96
- db = new Database(SQLITE_QUEUE_PATH);
97
+ db = new DatabaseSync(SQLITE_QUEUE_PATH);
97
98
 
98
99
  // Apply journal_mode: try WAL first, fall back to DELETE
99
- db.pragma("journal_mode = WAL");
100
- let journalMode = String(db.pragma("journal_mode", { simple: true })).toLowerCase();
100
+ pragmaSet(db, "journal_mode = WAL");
101
+ let journalMode = String(pragmaGet(db, "journal_mode")).toLowerCase();
101
102
  if (journalMode !== "wal") {
102
- db.pragma("journal_mode = DELETE");
103
- journalMode = String(db.pragma("journal_mode", { simple: true })).toLowerCase();
103
+ pragmaSet(db, "journal_mode = DELETE");
104
+ journalMode = String(pragmaGet(db, "journal_mode")).toLowerCase();
104
105
  }
105
106
 
106
107
  // Version
@@ -121,28 +122,28 @@ export async function GET() {
121
122
  status: journalMode === "wal" || journalMode === "delete" ? "pass" : "fail",
122
123
  });
123
124
 
124
- const fk = Number(db.pragma("foreign_keys", { simple: true }));
125
+ const fk = Number(pragmaGet(db, "foreign_keys"));
125
126
  checks.push({
126
127
  label: "foreign_keys",
127
128
  value: fk ? "ON" : "OFF",
128
129
  status: fk ? "pass" : "fail",
129
130
  });
130
131
 
131
- const busyTimeout = Number(db.pragma("busy_timeout", { simple: true }));
132
+ const busyTimeout = Number(pragmaGet(db, "busy_timeout"));
132
133
  checks.push({
133
134
  label: "busy_timeout",
134
135
  value: `${busyTimeout} ms`,
135
136
  status: busyTimeout > 0 ? "pass" : "warn",
136
137
  });
137
138
 
138
- const syncLevel = Number(db.pragma("synchronous", { simple: true }));
139
+ const syncLevel = Number(pragmaGet(db, "synchronous"));
139
140
  checks.push({
140
141
  label: "synchronous",
141
142
  value: SYNC_MAP[syncLevel] ?? String(syncLevel),
142
143
  status: syncLevel >= 1 ? "pass" : "warn",
143
144
  });
144
145
 
145
- const cacheSize = Number(db.pragma("cache_size", { simple: true }));
146
+ const cacheSize = Number(pragmaGet(db, "cache_size"));
146
147
  checks.push({
147
148
  label: "cache_size",
148
149
  value: cacheSize < 0 ? `${Math.abs(cacheSize)} KiB` : `${cacheSize} pages`,