@mndrk/agx 1.4.54 → 1.4.58

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 (211) hide show
  1. package/README.md +3 -1
  2. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/app-build-manifest.json +73 -66
  4. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/app-path-routes-manifest.json +6 -5
  5. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/build-manifest.json +2 -2
  6. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/prerender-manifest.json +15 -15
  7. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/routes-manifest.json +8 -0
  8. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page.js +9 -3
  9. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.html +2 -2
  11. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.rsc +17 -16
  12. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/audit/route_client-reference-manifest.js +1 -1
  13. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/[...nextauth]/route_client-reference-manifest.js +1 -1
  14. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/daemon-secret/route.js +1 -1
  15. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/daemon-secret/route_client-reference-manifest.js +1 -1
  16. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/device/code/route_client-reference-manifest.js +1 -1
  17. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/device/token/route_client-reference-manifest.js +1 -1
  18. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
  19. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  20. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/domains/[id]/route_client-reference-manifest.js +1 -1
  21. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/domains/route_client-reference-manifest.js +1 -1
  22. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  23. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/learnings/route.js +1 -1
  24. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/learnings/route_client-reference-manifest.js +1 -1
  25. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/logs/stream/route_client-reference-manifest.js +1 -1
  26. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  27. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route_client-reference-manifest.js +1 -1
  28. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +1 -1
  29. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/start/route_client-reference-manifest.js +1 -1
  30. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
  31. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/status/route_client-reference-manifest.js +1 -1
  32. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/route.js +1 -1
  33. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/route_client-reference-manifest.js +1 -1
  34. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/route.js +1 -1
  35. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  36. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  37. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/complete/route.js +1 -1
  38. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/complete/route_client-reference-manifest.js +1 -1
  39. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/route.js +1 -1
  40. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/route_client-reference-manifest.js +1 -1
  41. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/stage-prompts/route.js +1 -1
  42. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/stage-prompts/route_client-reference-manifest.js +1 -1
  43. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +1 -1
  44. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/[commentId]/route_client-reference-manifest.js +1 -1
  45. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/route.js +1 -1
  46. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/route_client-reference-manifest.js +1 -1
  47. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/heartbeat/route_client-reference-manifest.js +1 -1
  48. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/history/route.js +1 -1
  49. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/history/route_client-reference-manifest.js +1 -1
  50. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/route.js +1 -1
  51. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/route_client-reference-manifest.js +1 -1
  52. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/restart-stage/route.js +4 -0
  53. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/restart-stage/route.js.nft.json +1 -0
  54. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/restart-stage/route_client-reference-manifest.js +1 -0
  55. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/route.js +2 -2
  56. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
  57. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/route.js +1 -1
  58. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
  59. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/stream/route_client-reference-manifest.js +1 -1
  60. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/user-settings/route.js +1 -1
  61. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/user-settings/route_client-reference-manifest.js +1 -1
  62. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/[id]/nodes/route.js +1 -1
  63. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/[id]/nodes/route_client-reference-manifest.js +1 -1
  64. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/[id]/route.js +1 -1
  65. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/[id]/route_client-reference-manifest.js +1 -1
  66. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/route.js +1 -1
  67. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
  68. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/callback/route_client-reference-manifest.js +1 -1
  69. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device/page.js +12 -6
  70. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device/page_client-reference-manifest.js +1 -1
  71. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device.html +1 -1
  72. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device.rsc +21 -20
  73. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard/page.js +3 -3
  74. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard/page.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard/page_client-reference-manifest.js +1 -1
  76. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard.html +2 -2
  77. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard.rsc +21 -20
  78. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.html +2 -2
  79. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.rsc +25 -24
  80. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login/page.js +9 -3
  81. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login/page_client-reference-manifest.js +1 -1
  82. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login.html +2 -2
  83. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login.rsc +21 -20
  84. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page.js +9 -3
  85. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page_client-reference-manifest.js +1 -1
  86. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page.js +1 -1
  87. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  89. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/tasks/page.js +3 -3
  90. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/tasks/page.js.nft.json +1 -1
  91. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/tasks/page_client-reference-manifest.js +1 -1
  92. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/workflow/page.js +9 -3
  93. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/workflow/page_client-reference-manifest.js +1 -1
  94. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page.js +3 -3
  95. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  97. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.html +2 -2
  98. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.rsc +21 -20
  99. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page.js +9 -3
  100. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  101. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.html +2 -2
  102. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.rsc +21 -20
  103. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app-paths-manifest.json +6 -5
  104. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/3009.js +8 -8
  105. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/6158.js +19 -0
  106. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/6317.js +1 -1
  107. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/7143.js +1 -1
  108. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/instrumentation.js +1 -1
  109. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/middleware-manifest.json +5 -5
  110. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/404.html +1 -1
  111. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/500.html +1 -1
  112. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages-manifest.json +1 -1
  113. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.js +1 -1
  114. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.json +1 -1
  115. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/5608-674cd57e975c9b36.js +1 -0
  116. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/9337-f4cb4820efca03a1.js +1 -0
  117. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/audit/route-13be4cfc17a5f679.js +1 -0
  118. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/[...nextauth]/route-13be4cfc17a5f679.js +1 -0
  119. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/daemon-secret/route-13be4cfc17a5f679.js +1 -0
  120. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/code/route-13be4cfc17a5f679.js +1 -0
  121. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/token/route-13be4cfc17a5f679.js +1 -0
  122. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/refresh/route-13be4cfc17a5f679.js +1 -0
  123. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/status/route-13be4cfc17a5f679.js +1 -0
  124. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/[id]/route-13be4cfc17a5f679.js +1 -0
  125. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/route-13be4cfc17a5f679.js +1 -0
  126. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/health/route-13be4cfc17a5f679.js +1 -0
  127. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/learnings/route-13be4cfc17a5f679.js +1 -0
  128. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/logs/stream/route-13be4cfc17a5f679.js +1 -0
  129. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/cancel/route-13be4cfc17a5f679.js +1 -0
  130. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/signal/route-13be4cfc17a5f679.js +1 -0
  131. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/start/route-13be4cfc17a5f679.js +1 -0
  132. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/status/route-13be4cfc17a5f679.js +1 -0
  133. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/[id]/route-13be4cfc17a5f679.js +1 -0
  134. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/route-13be4cfc17a5f679.js +1 -0
  135. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/providers/route-13be4cfc17a5f679.js +1 -0
  136. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/complete/route-13be4cfc17a5f679.js +1 -0
  137. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/route-13be4cfc17a5f679.js +1 -0
  138. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/stage-prompts/route-13be4cfc17a5f679.js +1 -0
  139. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/[commentId]/route-13be4cfc17a5f679.js +1 -0
  140. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/route-13be4cfc17a5f679.js +1 -0
  141. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/heartbeat/route-13be4cfc17a5f679.js +1 -0
  142. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/history/route-13be4cfc17a5f679.js +1 -0
  143. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/logs/route-13be4cfc17a5f679.js +1 -0
  144. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/restart-stage/route-13be4cfc17a5f679.js +1 -0
  145. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/route-13be4cfc17a5f679.js +1 -0
  146. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/route-13be4cfc17a5f679.js +1 -0
  147. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/stream/route-13be4cfc17a5f679.js +1 -0
  148. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/user-settings/route-13be4cfc17a5f679.js +1 -0
  149. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/nodes/route-13be4cfc17a5f679.js +1 -0
  150. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/route-13be4cfc17a5f679.js +1 -0
  151. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/route-13be4cfc17a5f679.js +1 -0
  152. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/callback/route-13be4cfc17a5f679.js +1 -0
  153. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/device/{page-288ccb59b548ddcc.js → page-eb5b4fc6b9f60343.js} +1 -1
  154. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/dashboard/{page-f12cc2e8800728f7.js → page-ea6ccecbfa743b53.js} +1 -1
  155. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/layout-6b46da9e6091abb3.js +1 -0
  156. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/{page-8465be2213d5814e.js → page-7357b68f3783a0b4.js} +1 -1
  157. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/tasks/page-ec17b64371f48524.js +1 -0
  158. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/page-6c545e9e5f5f66bc.js +1 -0
  159. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/css/ea93fda1b0bdd3b9.css +1 -0
  160. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/worker/index.js +68 -0
  161. package/lib/cli/cloud/prompts.js +6 -2
  162. package/lib/cli/daemon.js +2 -2
  163. package/lib/cli/runCli.js +154 -36
  164. package/lib/cli/skillText.js +1 -1
  165. package/lib/cli/taskStatusService.js +183 -0
  166. package/package.json +1 -1
  167. package/templates/stack/postgres/init/001_agx_board_schema.sql +15 -0
  168. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/5519.js +0 -6
  169. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/9337-1475b21ebc625376.js +0 -1
  170. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/9719-26e3b61c21dd9194.js +0 -1
  171. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/audit/route-99c56d5659a15bdb.js +0 -1
  172. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/[...nextauth]/route-99c56d5659a15bdb.js +0 -1
  173. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/daemon-secret/route-99c56d5659a15bdb.js +0 -1
  174. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/code/route-99c56d5659a15bdb.js +0 -1
  175. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/token/route-99c56d5659a15bdb.js +0 -1
  176. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/refresh/route-99c56d5659a15bdb.js +0 -1
  177. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/status/route-99c56d5659a15bdb.js +0 -1
  178. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/[id]/route-99c56d5659a15bdb.js +0 -1
  179. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/route-99c56d5659a15bdb.js +0 -1
  180. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/health/route-99c56d5659a15bdb.js +0 -1
  181. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/learnings/route-99c56d5659a15bdb.js +0 -1
  182. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/logs/stream/route-99c56d5659a15bdb.js +0 -1
  183. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/cancel/route-99c56d5659a15bdb.js +0 -1
  184. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/signal/route-99c56d5659a15bdb.js +0 -1
  185. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/start/route-99c56d5659a15bdb.js +0 -1
  186. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/status/route-99c56d5659a15bdb.js +0 -1
  187. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/[id]/route-99c56d5659a15bdb.js +0 -1
  188. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/route-99c56d5659a15bdb.js +0 -1
  189. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/providers/route-99c56d5659a15bdb.js +0 -1
  190. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/complete/route-99c56d5659a15bdb.js +0 -1
  191. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/route-99c56d5659a15bdb.js +0 -1
  192. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/stage-prompts/route-99c56d5659a15bdb.js +0 -1
  193. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/[commentId]/route-99c56d5659a15bdb.js +0 -1
  194. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/route-99c56d5659a15bdb.js +0 -1
  195. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/heartbeat/route-99c56d5659a15bdb.js +0 -1
  196. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/history/route-99c56d5659a15bdb.js +0 -1
  197. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/logs/route-99c56d5659a15bdb.js +0 -1
  198. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/route-99c56d5659a15bdb.js +0 -1
  199. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/route-99c56d5659a15bdb.js +0 -1
  200. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/stream/route-99c56d5659a15bdb.js +0 -1
  201. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/user-settings/route-99c56d5659a15bdb.js +0 -1
  202. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/nodes/route-99c56d5659a15bdb.js +0 -1
  203. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/route-99c56d5659a15bdb.js +0 -1
  204. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/route-99c56d5659a15bdb.js +0 -1
  205. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/callback/route-99c56d5659a15bdb.js +0 -1
  206. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/layout-449a81ecf8041b29.js +0 -1
  207. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/tasks/page-5813cf2efcd8d555.js +0 -1
  208. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/page-42969463f06ac3e8.js +0 -1
  209. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/css/6873fedf803c523e.css +0 -1
  210. /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{LM3I1rgG9I2QwtrZCfWRB → 2YqDwh6NlGhbNnhMVpOgd}/_buildManifest.js +0 -0
  211. /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{LM3I1rgG9I2QwtrZCfWRB → 2YqDwh6NlGhbNnhMVpOgd}/_ssgManifest.js +0 -0
@@ -1,21 +1,22 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[3396,["7177","static/chunks/app/layout-449a81ecf8041b29.js"],"GoogleAnalytics"]
3
- 3:I[4647,["7177","static/chunks/app/layout-449a81ecf8041b29.js"],"AuthProvider"]
4
- 4:I[9766,[],""]
5
- 5:I[8924,[],""]
6
- 6:I[1959,[],"ClientPageRoot"]
7
- 7:I[2802,["2619","static/chunks/2619-3c9e02e22d10480a.js","4662","static/chunks/app/settings/page-749ebaf650848f08.js"],"default"]
8
- a:I[4431,[],"OutletBoundary"]
9
- c:I[5278,[],"AsyncMetadataOutlet"]
10
- e:I[4431,[],"ViewportBoundary"]
11
- 10:I[4431,[],"MetadataBoundary"]
12
- 11:"$Sreact.suspense"
13
- 13:I[7150,[],""]
14
- :HL["/_next/static/css/6873fedf803c523e.css","style"]
15
- 0:{"P":null,"b":"LM3I1rgG9I2QwtrZCfWRB","p":"","c":["","settings"],"i":false,"f":[[["",{"children":["settings",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/6873fedf803c523e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","children":[["$","head",null,{"children":["$","$L2",null,{}]}],["$","body",null,{"className":"antialiased min-h-screen bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]","children":[["$","div",null,{"className":"fixed inset-0 -z-10 h-full w-full bg-[radial-gradient(#27272a_1px,transparent_1px)] [background-size:16px_16px] opacity-20"}],["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","searchParams":{},"params":{},"promises":["$@8","$@9"]}],null,["$","$La",null,{"children":["$Lb",["$","$Lc",null,{"promise":"$@d"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Le",null,{"children":"$Lf"}],null],["$","$L10",null,{"children":["$","div",null,{"hidden":true,"children":["$","$11",null,{"fallback":null,"children":"$L12"}]}]}]]}],false]],"m":"$undefined","G":["$13",[]],"s":false,"S":true}
16
- 8:{}
17
- 9:"$0:f:0:1:2:children:2:children:1:props:children:0:props:params"
18
- f:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
19
- b:null
20
- d:{"metadata":[["$","title","0",{"children":"AGX Board - Agent Task Orchestration"}],["$","meta","1",{"name":"description","content":"Orchestrate and manage AI agent tasks on AGX Board"}]],"error":null,"digest":"$undefined"}
21
- 12:"$d:metadata"
2
+ 2:I[6285,["7177","static/chunks/app/layout-6b46da9e6091abb3.js"],"GoogleAnalytics"]
3
+ 3:I[7950,["7177","static/chunks/app/layout-6b46da9e6091abb3.js"],"PostHogAnalytics"]
4
+ 4:I[4647,["7177","static/chunks/app/layout-6b46da9e6091abb3.js"],"AuthProvider"]
5
+ 5:I[9766,[],""]
6
+ 6:I[8924,[],""]
7
+ 7:I[1959,[],"ClientPageRoot"]
8
+ 8:I[2802,["2619","static/chunks/2619-3c9e02e22d10480a.js","4662","static/chunks/app/settings/page-749ebaf650848f08.js"],"default"]
9
+ b:I[4431,[],"OutletBoundary"]
10
+ d:I[5278,[],"AsyncMetadataOutlet"]
11
+ f:I[4431,[],"ViewportBoundary"]
12
+ 11:I[4431,[],"MetadataBoundary"]
13
+ 12:"$Sreact.suspense"
14
+ 14:I[7150,[],""]
15
+ :HL["/_next/static/css/ea93fda1b0bdd3b9.css","style"]
16
+ 0:{"P":null,"b":"2YqDwh6NlGhbNnhMVpOgd","p":"","c":["","settings"],"i":false,"f":[[["",{"children":["settings",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ea93fda1b0bdd3b9.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","children":[["$","head",null,{"children":[["$","$L2",null,{}],["$","$L3",null,{}]]}],["$","body",null,{"className":"antialiased min-h-screen bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]","children":[["$","div",null,{"className":"fixed inset-0 -z-10 h-full w-full bg-[radial-gradient(#27272a_1px,transparent_1px)] [background-size:16px_16px] opacity-20"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":["$Lc",["$","$Ld",null,{"promise":"$@e"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lf",null,{"children":"$L10"}],null],["$","$L11",null,{"children":["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":"$L13"}]}]}]]}],false]],"m":"$undefined","G":["$14",[]],"s":false,"S":true}
17
+ 9:{}
18
+ a:"$0:f:0:1:2:children:2:children:1:props:children:0:props:params"
19
+ 10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
20
+ c:null
21
+ e:{"metadata":[["$","title","0",{"children":"AGX Board - Agent Task Orchestration"}],["$","meta","1",{"name":"description","content":"Orchestrate and manage AI agent tasks on AGX Board"}]],"error":null,"digest":"$undefined"}
22
+ 13:"$e:metadata"
@@ -1,4 +1,5 @@
1
1
  {
2
+ "/_not-found/page": "app/_not-found/page.js",
2
3
  "/api/audit/route": "app/api/audit/route.js",
3
4
  "/api/auth/[...nextauth]/route": "app/api/auth/[...nextauth]/route.js",
4
5
  "/api/auth/daemon-secret/route": "app/api/auth/daemon-secret/route.js",
@@ -22,26 +23,26 @@
22
23
  "/api/stage-prompts/route": "app/api/stage-prompts/route.js",
23
24
  "/api/tasks/[id]/comments/[commentId]/route": "app/api/tasks/[id]/comments/[commentId]/route.js",
24
25
  "/api/tasks/[id]/comments/route": "app/api/tasks/[id]/comments/route.js",
26
+ "/api/tasks/[id]/logs/route": "app/api/tasks/[id]/logs/route.js",
25
27
  "/api/tasks/[id]/heartbeat/route": "app/api/tasks/[id]/heartbeat/route.js",
26
28
  "/api/tasks/[id]/history/route": "app/api/tasks/[id]/history/route.js",
27
- "/api/tasks/[id]/route": "app/api/tasks/[id]/route.js",
28
- "/api/tasks/[id]/logs/route": "app/api/tasks/[id]/logs/route.js",
29
+ "/api/tasks/[id]/restart-stage/route": "app/api/tasks/[id]/restart-stage/route.js",
29
30
  "/api/tasks/route": "app/api/tasks/route.js",
30
31
  "/api/user-settings/route": "app/api/user-settings/route.js",
31
32
  "/api/workflows/[id]/nodes/route": "app/api/workflows/[id]/nodes/route.js",
32
33
  "/api/workflows/[id]/route": "app/api/workflows/[id]/route.js",
34
+ "/api/tasks/[id]/route": "app/api/tasks/[id]/route.js",
33
35
  "/api/workflows/route": "app/api/workflows/route.js",
34
36
  "/auth/callback/route": "app/auth/callback/route.js",
35
- "/_not-found/page": "app/_not-found/page.js",
36
37
  "/api/logs/stream/route": "app/api/logs/stream/route.js",
37
38
  "/api/tasks/stream/route": "app/api/tasks/stream/route.js",
38
39
  "/auth/device/page": "app/auth/device/page.js",
39
40
  "/login/page": "app/login/page.js",
40
- "/dashboard/page": "app/dashboard/page.js",
41
41
  "/page": "app/page.js",
42
+ "/dashboard/page": "app/dashboard/page.js",
42
43
  "/projects/page": "app/projects/page.js",
43
44
  "/settings/page": "app/settings/page.js",
44
- "/projects/[slug]/tasks/page": "app/projects/[slug]/tasks/page.js",
45
45
  "/projects/[slug]/page": "app/projects/[slug]/page.js",
46
+ "/projects/[slug]/tasks/page": "app/projects/[slug]/tasks/page.js",
46
47
  "/projects/[slug]/workflow/page": "app/projects/[slug]/workflow/page.js"
47
48
  }
@@ -1,17 +1,17 @@
1
- "use strict";exports.id=3009,exports.ids=[3009],exports.modules={19873:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(21124),e=c(38301);function f({tasks:a,onTaskClick:b,onStop:c,onRetry:f,cancellingTaskId:g}){let h=(0,e.useMemo)(()=>a.filter(a=>"in_progress"===a.status),[a]),[i,j]=(0,e.useState)({});return 0===h.length?null:(0,d.jsx)("div",{className:"w-full bg-[var(--card-bg)] border-b border-[var(--border)] mb-6 animate-fade-in-down",children:(0,d.jsx)("div",{className:"max-w-full overflow-x-auto no-scrollbar",children:(0,d.jsxs)("div",{className:"flex items-center gap-4 p-4 min-w-max",children:[(0,d.jsxs)("div",{className:"flex flex-col justify-center pr-4 border-r border-[var(--border)]",children:[(0,d.jsxs)("h3",{className:"text-sm font-bold text-[var(--foreground)] whitespace-nowrap flex items-center gap-2",children:[(0,d.jsxs)("span",{className:"relative flex h-2 w-2",children:[(0,d.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75"}),(0,d.jsx)("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-green-500"})]}),"Now Running"]}),(0,d.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] uppercase tracking-wider font-semibold",children:[h.length," Active"]})]}),(0,d.jsx)("div",{className:"flex items-center gap-3",children:h.map(a=>{let e=a.id===g;return(0,d.jsxs)("div",{onClick:()=>b?.(a),className:"group flex items-center gap-3 pl-3 pr-2 py-2 bg-[var(--background)] border border-[var(--border)] rounded-lg hover:border-[var(--primary)] transition-all cursor-pointer shadow-sm hover:shadow-md min-w-[280px]",children:[(0,d.jsx)("div",{className:"w-8 h-8 rounded-full bg-[var(--muted)] flex items-center justify-center text-xs font-bold border border-[var(--border)] shrink-0",children:a.provider?a.provider.substring(0,2).toUpperCase():"AG"}),(0,d.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between text-xs mb-0.5",children:[(0,d.jsxs)("span",{className:"font-semibold text-[var(--foreground)] truncate max-w-[120px]",children:[a.provider||"Agent"," ",a.model?`• ${a.model}`:""]}),(0,d.jsx)("span",{className:"font-mono text-[var(--muted-foreground)]",children:i[a.id]||"0m"})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] truncate max-w-[140px]",children:a.title||a.content.substring(0,30)}),(0,d.jsx)("div",{className:"w-12 h-1 bg-[var(--muted)] rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-[var(--primary)] animate-pulse rounded-full",style:{width:`${40*Math.random()+30}%`}})})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity pl-2 border-l border-[var(--border)]",children:[(0,d.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),e||c?.(a.id)},disabled:e,className:`p-1 rounded transition-all ${e?"cursor-wait text-[var(--destructive)]/80 opacity-80":"hover:bg-[var(--destructive)]/10 text-[var(--muted-foreground)] hover:text-[var(--destructive)]"}`,title:e?"Stopping...":"Stop Task",children:e?(0,d.jsx)("span",{className:"inline-flex h-3 w-3 rounded-full border border-[var(--destructive)] border-t-transparent animate-spin"}):(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,d.jsx)("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}),(0,d.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),f?.(a.id)},className:"p-1 hover:bg-[var(--primary)]/10 text-[var(--muted-foreground)] hover:text-[var(--primary)] rounded",title:"Retry / Restart",children:(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,d.jsx)("path",{d:"M3 3v5h5"}),(0,d.jsx)("path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16"}),(0,d.jsx)("path",{d:"M16 21h5v-5"})]})})]})]},a.id)})})]})})})}},32273:(a,b,c)=>{c.d(b,{A:()=>n});var d=c(21124),e=c(38301),f=c(10366),g=c(99615),h=c(22023);let i={queued:{borderColor:"var(--status-queued)",bgColor:"var(--status-queued-bg)",textColor:"var(--status-queued)"},in_progress:{borderColor:"var(--status-in-progress)",bgColor:"var(--status-in-progress-bg)",textColor:"var(--status-in-progress)"},blocked:{borderColor:"var(--status-blocked)",bgColor:"var(--status-blocked-bg)",textColor:"var(--status-blocked)"},completed:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"},failed:{borderColor:"var(--status-failed)",bgColor:"var(--status-failed-bg)",textColor:"var(--status-failed)"},done:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"}};function j({task:a,onClick:b}){let{attributes:c,listeners:e,setNodeRef:f,transform:j,transition:k,isDragging:l}=(0,g.gl)({id:a.id}),m={transform:h.Ks.Transform.toString(j),transition:k},n=i[a.status||"queued"];return(0,d.jsxs)("div",{ref:f,...c,...e,onClick:b,className:`
1
+ "use strict";exports.id=3009,exports.ids=[3009],exports.modules={19873:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(21124),e=c(38301);function f({tasks:a,onTaskClick:b,onStop:c,onRetry:f,cancellingTaskId:g}){let h=(0,e.useMemo)(()=>a.filter(a=>"in_progress"===a.status),[a]),[i,j]=(0,e.useState)({});return 0===h.length?null:(0,d.jsx)("div",{className:"w-full bg-[var(--card-bg)] border-b border-[var(--border)] mb-6 animate-fade-in-down",children:(0,d.jsx)("div",{className:"max-w-full overflow-x-auto no-scrollbar",children:(0,d.jsxs)("div",{className:"flex items-center gap-4 p-4 min-w-max",children:[(0,d.jsxs)("div",{className:"flex flex-col justify-center pr-4 border-r border-[var(--border)]",children:[(0,d.jsxs)("h3",{className:"text-sm font-bold text-[var(--foreground)] whitespace-nowrap flex items-center gap-2",children:[(0,d.jsxs)("span",{className:"relative flex h-2 w-2",children:[(0,d.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75"}),(0,d.jsx)("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-green-500"})]}),"Now Running"]}),(0,d.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] uppercase tracking-wider font-semibold",children:[h.length," Active"]})]}),(0,d.jsx)("div",{className:"flex items-center gap-3",children:h.map(a=>{let e=a.id===g;return(0,d.jsxs)("div",{onClick:()=>b?.(a),className:"group flex items-center gap-3 pl-3 pr-2 py-2 bg-[var(--background)] border border-[var(--border)] rounded-lg hover:border-[var(--primary)] transition-all cursor-pointer shadow-sm hover:shadow-md min-w-[280px]",children:[(0,d.jsx)("div",{className:"w-8 h-8 rounded-full bg-[var(--muted)] flex items-center justify-center text-xs font-bold border border-[var(--border)] shrink-0",children:a.provider?a.provider.substring(0,2).toUpperCase():"AG"}),(0,d.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between text-xs mb-0.5",children:[(0,d.jsxs)("span",{className:"font-semibold text-[var(--foreground)] truncate max-w-[120px]",children:[a.provider||"Agent"," ",a.model?`• ${a.model}`:""]}),(0,d.jsx)("span",{className:"font-mono text-[var(--muted-foreground)]",children:i[a.id]||"0m"})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] truncate max-w-[140px]",children:a.title||a.content.substring(0,30)}),(0,d.jsx)("div",{className:"w-12 h-1 bg-[var(--muted)] rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-[var(--primary)] animate-pulse rounded-full",style:{width:`${40*Math.random()+30}%`}})})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity pl-2 border-l border-[var(--border)]",children:[(0,d.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),e||c?.(a.id)},disabled:e,className:`p-1 rounded transition-all ${e?"cursor-wait text-[var(--destructive)]/80 opacity-80":"hover:bg-[var(--destructive)]/10 text-[var(--muted-foreground)] hover:text-[var(--destructive)]"}`,title:e?"Stopping...":"Stop Task",children:e?(0,d.jsx)("span",{className:"inline-flex h-3 w-3 rounded-full border border-[var(--destructive)] border-t-transparent animate-spin"}):(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,d.jsx)("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}),(0,d.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),f?.(a.id)},className:"p-1 hover:bg-[var(--primary)]/10 text-[var(--muted-foreground)] hover:text-[var(--primary)] rounded",title:"Retry / Restart",children:(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,d.jsx)("path",{d:"M3 3v5h5"}),(0,d.jsx)("path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16"}),(0,d.jsx)("path",{d:"M16 21h5v-5"})]})})]})]},a.id)})})]})})})}},32273:(a,b,c)=>{c.d(b,{A:()=>o});var d=c(21124),e=c(38301),f=c(10366),g=c(99615),h=c(22023),i=c(69816);let j={queued:{borderColor:"var(--status-queued)",bgColor:"var(--status-queued-bg)",textColor:"var(--status-queued)"},in_progress:{borderColor:"var(--status-in-progress)",bgColor:"var(--status-in-progress-bg)",textColor:"var(--status-in-progress)"},blocked:{borderColor:"var(--status-blocked)",bgColor:"var(--status-blocked-bg)",textColor:"var(--status-blocked)"},completed:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"},failed:{borderColor:"var(--status-failed)",bgColor:"var(--status-failed-bg)",textColor:"var(--status-failed)"},done:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"}};function k({task:a,onClick:b,onStatusChange:c}){let{attributes:e,listeners:f,setNodeRef:k,transform:l,transition:m,isDragging:n}=(0,g.gl)({id:a.id}),o={transform:h.Ks.Transform.toString(l),transition:m};return j[a.status||"queued"],(0,d.jsxs)("div",{ref:k,...e,...f,onClick:b,className:`
2
2
  group relative flex items-center gap-2 p-1.5 rounded-md
3
3
  hover:bg-[var(--item-hover-bg)] transition-all duration-150 cursor-default
4
4
  focus-visible:outline-2 focus-visible:outline-[var(--ring)] focus-visible:outline-offset-2
5
- ${l?"opacity-50 bg-[var(--item-hover-bg)]":""}
6
- `,style:{transform:m.transform,transition:m.transition,touchAction:"none"},children:[(0,d.jsx)("div",{className:"w-2 h-2 rounded-full flex-shrink-0 cursor-grab active:cursor-grabbing hover:scale-125 transition-transform",style:{backgroundColor:n.textColor}}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 flex items-center justify-between gap-3",children:[(0,d.jsx)("h4",{className:`text-sm text-[var(--foreground)] truncate leading-tight
5
+ ${n?"opacity-50 bg-[var(--item-hover-bg)]":""}
6
+ `,style:{transform:o.transform,transition:o.transition,touchAction:"none"},children:[(0,d.jsx)(i.A,{status:a.status||"queued",onStatusChange:c}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 flex items-center justify-between gap-3",children:[(0,d.jsx)("h4",{className:`text-sm text-[var(--foreground)] truncate leading-tight
7
7
  ${"completed"===a.status?"text-[var(--muted-foreground)] line-through":""}
8
- `,children:a.title||"Untitled Task"}),(0,d.jsxs)("div",{className:"flex items-center gap-2 opacity-0 group-hover:opacity-100 transition-opacity",children:[void 0!==a.priority&&(0,d.jsxs)("span",{className:`text-[10px] font-mono ${0===a.priority?"text-red-500 font-bold":"text-[var(--muted-foreground)]"}`,children:["P",a.priority]}),(0,d.jsx)("button",{className:"p-0.5 text-[var(--muted-foreground)] hover:text-[var(--foreground)] rounded",children:(0,d.jsx)("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,d.jsx)("path",{d:"M8.49999 4.10001V8.49999H12.9V9.49999H8.49999V13.9H7.49999V9.49999H3.1V8.49999H7.49999V4.10001H8.49999Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"})})})]})]})]})}let k={queued:{borderColor:"var(--status-queued)",bgColor:"var(--status-queued-bg)",textColor:"var(--status-queued)"},in_progress:{borderColor:"var(--status-in-progress)",bgColor:"var(--status-in-progress-bg)",textColor:"var(--status-in-progress)"},blocked:{borderColor:"var(--status-blocked)",bgColor:"var(--status-blocked-bg)",textColor:"var(--status-blocked)"},completed:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"},failed:{borderColor:"var(--status-failed)",bgColor:"var(--status-failed-bg)",textColor:"var(--status-failed)"},done:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"}};function l({task:a}){let b=k[a.status||"queued"];return(0,d.jsxs)("div",{className:"w-72 p-3 bg-[var(--background)] rounded-lg border-l-[3px] shadow-2xl cursor-grabbing ring-2 ring-[var(--primary)] ring-offset-2 ring-offset-[var(--background)] rotate-2 scale-105",style:{borderLeftColor:b.borderColor},children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2 mb-1.5",children:[(0,d.jsx)("div",{className:"flex items-center gap-1.5",children:void 0!==a.priority&&(0,d.jsxs)("span",{className:"text-[10px] font-mono font-semibold text-[var(--muted-foreground)] bg-[var(--muted)] px-1.5 py-0.5 rounded",children:["P",a.priority]})}),a.project&&(0,d.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 bg-[var(--accent-muted)] text-[var(--accent)] rounded-full font-medium truncate max-w-[100px]",children:a.project})]}),(0,d.jsx)("h4",{className:"text-sm font-medium line-clamp-2 text-[var(--primary)] leading-snug",children:a.title||"Untitled"}),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-2 text-[10px] text-[var(--muted-foreground)]",children:[a.engine&&(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("span",{children:"\uD83E\uDD16"}),(0,d.jsx)("span",{className:"capitalize",children:a.engine})]}),a.status&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 rounded font-medium",style:{background:b.bgColor,color:b.textColor},children:a.status.replace("_"," ")})]})]})}var m=c(88885);function n({tasks:a,onTasksChange:b,onSelectTask:c,onTaskUpdate:h,onAddTask:i,stages:j,stageConfig:k,isValidTransition:n,isCreatingTask:p,creatingStage:q}){let r=j||m.Tw,s=k||m.ls,t=n||((a,b)=>{if(a===b)return!0;let c=r.indexOf(a),d=r.indexOf(b);return d<c||d===c+1}),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(a),y=(0,e.useMemo)(()=>{let a={};for(let b of r)a[b]=w.filter(a=>a.stage===b).sort((a,b)=>(a.priority||0)-(b.priority||0));return a},[w,r]),z=(0,f.FR)((0,f.MS)(f.AN,{activationConstraint:{distance:8}}));async function A(c){let{active:d,over:e}=c;if(v(null),!e)return void x(a);let f=d.id,i=e.id,j=w.find(a=>a.id===f);if(!j)return;let k=j.stage,l=j.priority||0;if(r.includes(i)){let a=y[k=i];l=a.length>0?Math.max(...a.map(a=>a.priority||0))+1:0}else{let a=w.find(a=>a.id===i);if(a){k=a.stage;let c=w.filter(a=>a.stage===k),d=c.findIndex(a=>a.id===f),e=c.findIndex(a=>a.id===i);if(-1!==d&&-1!==e&&d!==e){let a=(0,g.be)(c,d,e),f=w.map(b=>{let c=a.findIndex(a=>a.id===b.id);return -1!==c?{...b,priority:c}:b});x(f),b?.(f)}l=a.priority||0}}let m=a.find(a=>a.id===f);if(m&&!t(m.stage||"",k))return void x(a);if(h&&(j.stage!==k||j.priority!==l))try{await h(f,{stage:k,priority:l,status:"done"===k?"completed":"ideation"===k?"queued":"in_progress"}),b?.(w)}catch(b){console.error("Failed to update task:",b),x(a)}}return(0,d.jsxs)(f.Mp,{sensors:z,collisionDetection:f.y$,onDragStart:function(a){let b=w.find(b=>b.id===a.active.id);b&&v(b)},onDragOver:function(a){let b,{active:c,over:d}=a;if(!d)return;let e=c.id,f=d.id,g=w.find(a=>a.id===e);if(g){if(r.includes(f))b=f;else{let a=w.find(a=>a.id===f);if(!a)return;b=a.stage}if(g.stage!==b){if(!t(g.stage||"",b))return;x(a=>a.map(a=>a.id===e?{...a,stage:b}:a))}}},onDragEnd:A,children:[(0,d.jsx)("div",{className:"flex gap-4 overflow-x-auto pb-4 px-4 scrollbar-thin h-full items-stretch",children:r.map((a,b)=>(0,d.jsx)(o,{stage:a,tasks:y[a]||[],onSelectTask:c,index:b,onAddTask:i,config:s[a]||{icon:"\uD83D\uDCCC",label:a,color:"var(--primary)"},isCreating:!!(p&&q===a)},a))}),(0,d.jsx)(f.Hd,{dropAnimation:{duration:200,easing:"cubic-bezier(0.18, 0.67, 0.6, 1.22)"},children:u?(0,d.jsx)(l,{task:u}):null})]})}function o({stage:a,tasks:b,onSelectTask:c,index:e,onAddTask:h,config:i,isCreating:k=!1}){let{setNodeRef:l,isOver:m}=(0,f.zM)({id:a}),n=!h||k;return(0,d.jsxs)("div",{ref:l,id:a,className:`
8
+ `,children:a.title||"Untitled Task"}),(0,d.jsxs)("div",{className:"flex items-center gap-2 opacity-0 group-hover:opacity-100 transition-opacity",children:[void 0!==a.priority&&(0,d.jsxs)("span",{className:`text-[10px] font-mono ${0===a.priority?"text-red-500 font-bold":"text-[var(--muted-foreground)]"}`,children:["P",a.priority]}),(0,d.jsx)("button",{className:"p-0.5 text-[var(--muted-foreground)] hover:text-[var(--foreground)] rounded",children:(0,d.jsx)("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,d.jsx)("path",{d:"M8.49999 4.10001V8.49999H12.9V9.49999H8.49999V13.9H7.49999V9.49999H3.1V8.49999H7.49999V4.10001H8.49999Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"})})})]})]})]})}let l={queued:{borderColor:"var(--status-queued)",bgColor:"var(--status-queued-bg)",textColor:"var(--status-queued)"},in_progress:{borderColor:"var(--status-in-progress)",bgColor:"var(--status-in-progress-bg)",textColor:"var(--status-in-progress)"},blocked:{borderColor:"var(--status-blocked)",bgColor:"var(--status-blocked-bg)",textColor:"var(--status-blocked)"},completed:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"},failed:{borderColor:"var(--status-failed)",bgColor:"var(--status-failed-bg)",textColor:"var(--status-failed)"},done:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"}};function m({task:a}){let b=l[a.status||"queued"];return(0,d.jsxs)("div",{className:"w-72 p-3 bg-[var(--background)] rounded-lg border-l-[3px] shadow-2xl cursor-grabbing ring-2 ring-[var(--primary)] ring-offset-2 ring-offset-[var(--background)] rotate-2 scale-105",style:{borderLeftColor:b.borderColor},children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2 mb-1.5",children:[(0,d.jsx)("div",{className:"flex items-center gap-1.5",children:void 0!==a.priority&&(0,d.jsxs)("span",{className:"text-[10px] font-mono font-semibold text-[var(--muted-foreground)] bg-[var(--muted)] px-1.5 py-0.5 rounded",children:["P",a.priority]})}),a.project&&(0,d.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 bg-[var(--accent-muted)] text-[var(--accent)] rounded-full font-medium truncate max-w-[100px]",children:a.project})]}),(0,d.jsx)("h4",{className:"text-sm font-medium line-clamp-2 text-[var(--primary)] leading-snug",children:a.title||"Untitled"}),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-2 text-[10px] text-[var(--muted-foreground)]",children:[a.engine&&(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("span",{children:"\uD83E\uDD16"}),(0,d.jsx)("span",{className:"capitalize",children:a.engine})]}),a.status&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 rounded font-medium",style:{background:b.bgColor,color:b.textColor},children:a.status.replace("_"," ")})]})]})}var n=c(88885);function o({tasks:a,onTasksChange:b,onSelectTask:c,onTaskUpdate:h,onAddTask:i,stages:j,stageConfig:k,isValidTransition:l,isCreatingTask:o,creatingStage:q}){let r=j||n.Tw,s=k||n.ls,t=l||((a,b)=>{if(a===b)return!0;let c=r.indexOf(a),d=r.indexOf(b);return d<c||d===c+1}),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(a),y=(0,e.useMemo)(()=>{let a={};for(let b of r)a[b]=w.filter(a=>a.stage===b).sort((a,b)=>(a.priority||0)-(b.priority||0));return a},[w,r]),z=(0,f.FR)((0,f.MS)(f.AN,{activationConstraint:{distance:8}}));async function A(c){let{active:d,over:e}=c;if(v(null),!e)return void x(a);let f=d.id,i=e.id,j=w.find(a=>a.id===f);if(!j)return;let k=j.stage,l=j.priority||0;if(r.includes(i)){let a=y[k=i];l=a.length>0?Math.max(...a.map(a=>a.priority||0))+1:0}else{let a=w.find(a=>a.id===i);if(a){k=a.stage;let c=w.filter(a=>a.stage===k),d=c.findIndex(a=>a.id===f),e=c.findIndex(a=>a.id===i);if(-1!==d&&-1!==e&&d!==e){let a=(0,g.be)(c,d,e),f=w.map(b=>{let c=a.findIndex(a=>a.id===b.id);return -1!==c?{...b,priority:c}:b});x(f),b?.(f)}l=a.priority||0}}let m=a.find(a=>a.id===f);if(m&&!t(m.stage||"",k))return void x(a);if(h&&(j.stage!==k||j.priority!==l))try{await h(f,{stage:k,priority:l,status:"done"===k?"completed":"ideation"===k?"queued":"in_progress"}),b?.(w)}catch(b){console.error("Failed to update task:",b),x(a)}}return(0,d.jsxs)(f.Mp,{sensors:z,collisionDetection:f.y$,onDragStart:function(a){let b=w.find(b=>b.id===a.active.id);b&&v(b)},onDragOver:function(a){let b,{active:c,over:d}=a;if(!d)return;let e=c.id,f=d.id,g=w.find(a=>a.id===e);if(g){if(r.includes(f))b=f;else{let a=w.find(a=>a.id===f);if(!a)return;b=a.stage}if(g.stage!==b){if(!t(g.stage||"",b))return;x(a=>a.map(a=>a.id===e?{...a,stage:b}:a))}}},onDragEnd:A,children:[(0,d.jsx)("div",{className:"flex gap-4 overflow-x-auto pb-4 px-4 scrollbar-thin h-full items-stretch",children:r.map((a,b)=>(0,d.jsx)(p,{stage:a,tasks:y[a]||[],onSelectTask:c,onTaskUpdate:h,index:b,onAddTask:i,config:s[a]||{icon:"\uD83D\uDCCC",label:a,color:"var(--primary)"},isCreating:!!(o&&q===a)},a))}),(0,d.jsx)(f.Hd,{dropAnimation:{duration:200,easing:"cubic-bezier(0.18, 0.67, 0.6, 1.22)"},children:u?(0,d.jsx)(m,{task:u}):null})]})}function p({stage:a,tasks:b,onSelectTask:c,onTaskUpdate:e,index:h,onAddTask:i,config:j,isCreating:l=!1}){let{setNodeRef:m,isOver:n}=(0,f.zM)({id:a}),o=!i||l;return(0,d.jsxs)("div",{ref:m,id:a,className:`
9
9
  kanban-column flex-shrink-0 w-80
10
10
  flex flex-col h-full max-h-full
11
11
  bg-[var(--column-bg)] rounded-xl border border-[var(--border)]
12
12
  transition-colors duration-200
13
- ${m?"ring-2 ring-[var(--primary)] ring-opacity-50 bg-[var(--primary-muted)]":""}
14
- `,style:{animationDelay:`${50*e}ms`},children:[(0,d.jsxs)("div",{className:"p-3 flex items-center justify-between border-b border-[var(--border)] bg-[var(--column-header-bg)] rounded-t-xl sticky top-0 z-10",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-semibold text-sm text-[var(--foreground)]",children:i.label}),(0,d.jsx)("span",{className:"px-2 py-0.5 rounded-full bg-white border border-[var(--border)] text-xs font-medium text-[var(--muted-foreground)] tabular-nums shadow-sm",children:b.length})]}),(0,d.jsx)("button",{onClick:()=>h?.(a),disabled:n,className:`
13
+ ${n?"ring-2 ring-[var(--primary)] ring-opacity-50 bg-[var(--primary-muted)]":""}
14
+ `,style:{animationDelay:`${50*h}ms`},children:[(0,d.jsxs)("div",{className:"p-3 flex items-center justify-between border-b border-[var(--border)] bg-[var(--column-header-bg)] rounded-t-xl sticky top-0 z-10",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-semibold text-sm text-[var(--foreground)]",children:j.label}),(0,d.jsx)("span",{className:"px-2 py-0.5 rounded-full bg-white border border-[var(--border)] text-xs font-medium text-[var(--muted-foreground)] tabular-nums shadow-sm",children:b.length})]}),(0,d.jsx)("button",{onClick:()=>i?.(a),disabled:o,className:`
15
15
  w-8 h-8 rounded-lg flex items-center justify-center text-lg leading-none transition-all
16
- ${n?"opacity-40 cursor-not-allowed text-[var(--muted-foreground)]":"hover:bg-[var(--primary)] hover:text-white hover:shadow-md text-[var(--muted-foreground)] active:scale-95"}
17
- `,title:`Add task to ${i.label}`,children:k?(0,d.jsx)("span",{className:"spinner w-3 h-3 border-2 border-[var(--muted-foreground)] border-t-[var(--primary)] rounded-full"}):"+"})]}),(0,d.jsx)(g.gB,{items:b.map(a=>a.id),strategy:g._G,children:(0,d.jsx)("div",{className:"flex-1 p-2 overflow-y-auto scrollbar-thin space-y-2.5",children:0===b.length?(0,d.jsxs)("div",{className:"h-full min-h-[120px] flex flex-col items-center justify-center border-2 border-dashed border-[var(--border)] rounded-lg m-1 opacity-60 hover:opacity-100 transition-opacity bg-[var(--background)]",children:[(0,d.jsx)("span",{className:"text-2xl mb-2 opacity-50 grayscale",children:i.icon}),(0,d.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] font-medium",children:"No tasks"})]}):b.map((a,b)=>(0,d.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:`${30*b}ms`},children:(0,d.jsx)(j,{task:a,onClick:()=>c?.(a)})},a.id))})})]})}}};
16
+ ${o?"opacity-40 cursor-not-allowed text-[var(--muted-foreground)]":"hover:bg-[var(--primary)] hover:text-white hover:shadow-md text-[var(--muted-foreground)] active:scale-95"}
17
+ `,title:`Add task to ${j.label}`,children:l?(0,d.jsx)("span",{className:"spinner w-3 h-3 border-2 border-[var(--muted-foreground)] border-t-[var(--primary)] rounded-full"}):"+"})]}),(0,d.jsx)(g.gB,{items:b.map(a=>a.id),strategy:g._G,children:(0,d.jsx)("div",{className:"flex-1 p-2 overflow-y-auto scrollbar-thin space-y-2.5",children:0===b.length?(0,d.jsxs)("div",{className:"h-full min-h-[120px] flex flex-col items-center justify-center border-2 border-dashed border-[var(--border)] rounded-lg m-1 opacity-60 hover:opacity-100 transition-opacity bg-[var(--background)]",children:[(0,d.jsx)("span",{className:"text-2xl mb-2 opacity-50 grayscale",children:j.icon}),(0,d.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] font-medium",children:"No tasks"})]}):b.map((a,b)=>(0,d.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:`${30*b}ms`},children:(0,d.jsx)(k,{task:a,onClick:()=>c?.(a),onStatusChange:e?b=>e(a.id,{status:b}):void 0})},a.id))})})]})}}};
@@ -0,0 +1,19 @@
1
+ exports.id=6158,exports.ids=[6158],exports.modules={988:(a,b,c)=>{"use strict";c.d(b,{PostHogAnalytics:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PostHogAnalytics() from the server but PostHogAnalytics is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/mendrika/Projects/Agents/agx-cloud/components/PostHogAnalytics.tsx","PostHogAnalytics")},12482:(a,b,c)=>{Promise.resolve().then(c.bind(c,75747)),Promise.resolve().then(c.bind(c,64769)),Promise.resolve().then(c.bind(c,30890))},16953:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,metadata:()=>h});var d=c(75338),e=c(43185),f=c(18353),g=c(988);c(82704);let h={title:"AGX Board - Agent Task Orchestration",description:"Orchestrate and manage AI agent tasks on AGX Board"};function i({children:a}){return(0,d.jsxs)("html",{lang:"en",className:"dark",children:[(0,d.jsxs)("head",{children:[(0,d.jsx)(f.GoogleAnalytics,{}),(0,d.jsx)(g.PostHogAnalytics,{})]}),(0,d.jsxs)("body",{className:"antialiased min-h-screen bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]",children:[(0,d.jsx)("div",{className:"fixed inset-0 -z-10 h-full w-full bg-[radial-gradient(#27272a_1px,transparent_1px)] [background-size:16px_16px] opacity-20"}),(0,d.jsx)(e.AuthProvider,{children:a})]})]})}},18353:(a,b,c)=>{"use strict";c.d(b,{GoogleAnalytics:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call GoogleAnalytics() from the server but GoogleAnalytics is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/mendrika/Projects/Agents/agx-cloud/components/GoogleAnalytics.tsx","GoogleAnalytics")},20302:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81170,23)),Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},30890:(a,b,c)=>{"use strict";c.d(b,{PostHogAnalytics:()=>f});var d=c(21124),e=c(19127);function f(){return(0,d.jsx)(e.default,{id:"posthog-analytics",strategy:"afterInteractive",dangerouslySetInnerHTML:{__html:`
2
+ !function(t,e){var o,n,p,r;e.__SV||(window.posthog&&window.posthog.__loaded)||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init rs ls wi ns us ts ss capture calculateEventProperties vs register register_once register_for_session unregister unregister_for_session gs getFeatureFlag getFeatureFlagPayload getFeatureFlagResult isFeatureEnabled reloadFeatureFlags updateFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSurveysLoaded onSessionId getSurveys getActiveMatchingSurveys renderSurvey displaySurvey cancelPendingSurvey canRenderSurvey canRenderSurveyAsync identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException startExceptionAutocapture stopExceptionAutocapture loadToolbar get_property getSessionProperty fs ds createPersonProfile setInternalOrTestUser ps Qr opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing get_explicit_consent_status is_capturing clear_opt_in_out_capturing hs debug M cs getPageViewId captureTraceFeedback captureTraceMetric Kr".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
3
+ posthog.init('phc_oBf1haYu4HKjYmUZpthQ4cUf9O3UKkDSOX675M7dRWW', {
4
+ api_host: 'https://us.i.posthog.com',
5
+ person_profiles: 'identified_only',
6
+ });
7
+ `}})}},33409:(a,b,c)=>{"use strict";c.d(b,{O:()=>e});var d=c(39537);function e(){return{auth:{getSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600,user:{id:d.g.id,email:d.g.email,user_metadata:{name:d.g.name,full_name:d.g.name}}}},error:null}),signInWithOAuth:async()=>({error:Error("Auth disabled in AGX Board local mode")}),signOut:async()=>({error:null}),onAuthStateChange:()=>({data:{subscription:{unsubscribe(){}}}})},channel:()=>({on(){return this},subscribe(){return this}}),removeChannel(){}}}},36937:(a,b,c)=>{"use strict";c.d(b,{LU:()=>f,dF:()=>h,si:()=>e,zH:()=>g});var d=c(38301);function e(a={}){process.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH;let b=a.project,c=a.status;a.realtime;let[f,g]=(0,d.useState)([]),[h,i]=(0,d.useState)(!0),[j,k]=(0,d.useState)(null),[l,m]=(0,d.useState)(null),[n,o]=(0,d.useState)(null),p=(0,d.useCallback)(async()=>{try{let a=new URLSearchParams;b&&a.set("project",b),c&&a.set("status",c);let d=await fetch(`/api/tasks?${a.toString()}`);if(!d.ok)throw Error("Failed to fetch tasks");let e=await d.json();g(e.tasks||[]),k(null)}catch(a){k(a instanceof Error?a:Error("Unknown error"))}finally{i(!1)}},[b,c]),q=(0,d.useCallback)(async(a,b)=>{let c=await fetch("/api/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:a,swarm_models:b})});if(!c.ok)throw Error((await c.json()).error||"Failed to create task");let{task:d}=await c.json();return g(a=>a.some(a=>a.id===d.id)?a:[d,...a]),d},[a.realtime]),r=(0,d.useCallback)(async(a,b)=>{let c=await fetch(`/api/tasks/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!c.ok){let a=null;throw"function"==typeof c.json&&(a=await c.json().catch(()=>null)),Error(a?.error||a?.details||`Failed to update task (${c.status} ${c.statusText||"Error"})`)}let{task:d}=await c.json();return g(b=>b.map(b=>b.id===a?{...b,...d}:b)),d},[a.realtime]),s=(0,d.useCallback)(async a=>{if(!(await fetch(`/api/tasks/${a}`,{method:"DELETE"})).ok)throw Error("Failed to delete task");g(b=>b.filter(b=>b.id!==a))},[a.realtime]),t=(0,d.useCallback)(async a=>{let b=await fetch("/api/queue/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||"Failed to complete task stage");let{task:c}=await b.json();return g(b=>b.map(b=>b.id===a.taskId?{...b,...c}:b)),c},[a.realtime]);return{tasks:f,isLoading:h,error:j,cancellingTaskId:l,isCancelling:!!l,cancelError:n,refetch:p,createTask:q,updateTask:r,deleteTask:s,completeTaskStage:t,cancelWorkflow:(0,d.useCallback)(async a=>{m(a.taskId),o(null);try{let b=await fetch(`/api/orchestrator/tasks/${a.taskId}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a.reason?{reason:a.reason}:{})});if(!b.ok){let a=await b.json().catch(()=>({})),c=a?.error||"Failed to cancel workflow";throw Error(c)}return b.json()}catch(b){let a=b instanceof Error?b:Error("Failed to cancel workflow");throw o(a),a}finally{m(null)}},[]),fetchTask:(0,d.useCallback)(async a=>{let b=await fetch(`/api/tasks/${a}`),c=await b.json().catch(()=>null);if(!b.ok)throw Error(c?.error||"Failed to fetch task details");return c?.task},[])}}function f(a){process.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH;let[b,c]=(0,d.useState)([]),[e,f]=(0,d.useState)(!1),g=(0,d.useCallback)(async()=>{if(a){f(!0);try{let b=await fetch(`/api/tasks/${a}/comments`);if(b.ok){let a=await b.json();c(a.comments||[])}}finally{f(!1)}}},[a]);return{comments:b,isLoading:e,refetch:g,addComment:(0,d.useCallback)(async b=>{if(!a)return;let c=await fetch(`/api/tasks/${a}/comments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:b})});if(c.ok){let{comment:a}=await c.json();return a}},[a]),deleteComment:(0,d.useCallback)(async b=>{a&&(await fetch(`/api/tasks/${a}/comments/${b}`,{method:"DELETE"})).ok&&c(a=>a.filter(a=>a.id!==b))},[a])}}function g(a,b={}){let c=b.enabled??!0,e=Number.isFinite(b.tail)&&b.tail>0?b.tail:500,f=Number.isFinite(b.maxChars)&&b.maxChars>0?b.maxChars:2e5,[h,i]=(0,d.useState)(""),[j,k]=(0,d.useState)(!1),[l,m]=(0,d.useState)(!1),n=(0,d.useRef)(null);(0,d.useRef)(0);let o=(0,d.useRef)(null),p=(0,d.useCallback)(a=>{let b=(a.log_type||"output").toLowerCase();return"output"===b?a.content||"":`[${b}] ${a.content||""}`},[]);return(0,d.useCallback)(async(b=!1)=>{if(a&&c){b||k(!0);try{let c=new URLSearchParams;if(b){let a=o.current;a?.created_at&&c.set("after",a.created_at),c.set("limit","500")}else c.set("tail",String(e));let d=await fetch(`/api/tasks/${a}/logs?${c.toString()}`);if(d.ok){let a=((await d.json()).logs||[]).slice().sort((a,b)=>a.created_at===b.created_at?a.id.localeCompare(b.id):a.created_at.localeCompare(b.created_at));if(b){let b=o.current,c=b?a.filter(a=>a.created_at>b.created_at||!(a.created_at<b.created_at)&&a.id>b.id):a;if(c.length){let a=c.map(a=>p(a)).join("");a&&i(b=>{let c=b+a;return c.length>f?c.slice(-f):c}),m(!0),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{m(!1)},5e3)}}else{let b=a.map(a=>p(a)).join("");i(b.length>f?b.slice(-f):b)}if(a.length){let b=a[a.length-1];o.current={created_at:b.created_at,id:b.id}}}}finally{b||k(!1)}}},[c,p,f,e,a]),{output:h,isLoading:j,isStreaming:l}}function h(a,b){let[c,e]=(0,d.useState)([]),[f,g]=(0,d.useState)(!1),h=(0,d.useCallback)(async()=>{g(!0);try{let c=new URLSearchParams;a&&c.set("scope",a),b&&c.set("scopeId",b);let d=await fetch(`/api/learnings?${c.toString()}`);if(d.ok){let a=await d.json();e(a.learnings||[])}}finally{g(!1)}},[a,b]);return{learnings:c,isLoading:f,refetch:h,addLearning:(0,d.useCallback)(async(a,b,c)=>{let d=await fetch("/api/learnings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:b,scopeId:c,content:a})});if(d.ok){let{learning:a}=await d.json();return e(b=>[a,...b]),a}},[]),deleteLearning:(0,d.useCallback)(async a=>{(await fetch(`/api/learnings?id=${a}`,{method:"DELETE"})).ok&&e(b=>b.filter(b=>b.id!==a))},[])}}c(33409)},39537:(a,b,c)=>{"use strict";c.d(b,{g:()=>d}),"1"===process.env.AGX_BOARD_DISABLE_AUTH||"1"===process.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH||"1"!==process.env.AGX_BOARD_ENABLE_AUTH&&process.env.NEXT_PUBLIC_AGX_BOARD_ENABLE_AUTH;let d={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"}},43185:(a,b,c)=>{"use strict";c.d(b,{AuthProvider:()=>e});var d=c(97954);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call AuthProvider() from the server but AuthProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/mendrika/Projects/Agents/agx-cloud/components/AuthProvider.tsx","AuthProvider");(0,d.registerClientReference)(function(){throw Error("Attempted to call useAuth() from the server but useAuth is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/mendrika/Projects/Agents/agx-cloud/components/AuthProvider.tsx","useAuth")},60054:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54160,23)),Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},64769:(a,b,c)=>{"use strict";c.d(b,{GoogleAnalytics:()=>h});var d=c(21124),e=c(19127);let f="G-DVQQG95LNL",g=`https://www.googletagmanager.com/gtag/js?id=${f}`;function h(){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.default,{async:!0,src:g,strategy:"afterInteractive"}),(0,d.jsx)(e.default,{id:"google-analytics",strategy:"afterInteractive",dangerouslySetInnerHTML:{__html:`
8
+ window.dataLayer = window.dataLayer || [];
9
+ function gtag(){dataLayer.push(arguments);}
10
+ gtag('js', new Date());
11
+ gtag('config', '${f}');
12
+ `}})]})}},69816:(a,b,c)=>{"use strict";c.d(b,{A:()=>h});var d=c(21124),e=c(38301),f=c(23312);let g=[{value:"queued",label:"Queued",color:"var(--status-queued)",icon:"○"},{value:"in_progress",label:"In Progress",color:"var(--status-in-progress)",icon:"◑"},{value:"blocked",label:"Blocked",color:"var(--status-blocked)",icon:"⊘"},{value:"completed",label:"Done",color:"var(--status-completed)",icon:"●"},{value:"failed",label:"Failed",color:"var(--status-failed)",icon:"✕"}];function h({status:a,onStatusChange:b}){let[c,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)(null),k=(0,e.useRef)(null),l=(0,e.useRef)(null);(0,e.useCallback)(()=>{if(!k.current)return;let a=k.current.getBoundingClientRect();j({top:a.bottom+4,left:a.left})},[]);let m=g.find(b=>b.value===a)||g[0],n="completed"===a,o="in_progress"===a;return(0,d.jsxs)("div",{className:"relative flex-shrink-0",ref:k,children:[(0,d.jsxs)("button",{type:"button",onClick:a=>{a.stopPropagation(),b&&h(!c)},className:`w-4 h-4 rounded-full border-[1.5px] flex items-center justify-center transition-all
13
+ hover:scale-110 focus-visible:outline-2 focus-visible:outline-[var(--ring)]
14
+ ${b?"cursor-pointer":"cursor-default"}
15
+ ${o?"animate-pulse":""}
16
+ `,style:{borderColor:m.color,backgroundColor:n?m.color:"transparent"},title:m.label,children:[n&&(0,d.jsx)("svg",{className:"w-2.5 h-2.5 text-white",viewBox:"0 0 12 12",fill:"none",children:(0,d.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"failed"===a&&(0,d.jsx)("svg",{className:"w-2 h-2",viewBox:"0 0 12 12",fill:"none",children:(0,d.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:m.color,strokeWidth:"1.5",strokeLinecap:"round"})}),o&&(0,d.jsx)("div",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:m.color}})]}),c&&i&&(0,f.createPortal)((0,d.jsx)("div",{ref:l,className:"fixed z-[9999] py-1 rounded-lg border shadow-lg min-w-[140px]",style:{top:i.top,left:i.left,backgroundColor:"var(--card-bg)",borderColor:"var(--card-border)"},children:g.map(c=>(0,d.jsxs)("button",{type:"button",className:`w-full flex items-center gap-2 px-3 py-1.5 text-xs text-left transition-colors
17
+ hover:bg-[var(--item-hover-bg)]
18
+ ${c.value===a?"font-semibold":""}
19
+ `,onClick:a=>{a.stopPropagation(),b?.(c.value),h(!1)},children:[(0,d.jsxs)("span",{className:"w-3 h-3 rounded-full border-[1.5px] flex items-center justify-center",style:{borderColor:c.color,backgroundColor:"completed"===c.value?c.color:"transparent"},children:["completed"===c.value&&(0,d.jsx)("svg",{className:"w-2 h-2 text-white",viewBox:"0 0 12 12",fill:"none",children:(0,d.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"failed"===c.value&&(0,d.jsx)("svg",{className:"w-1.5 h-1.5",viewBox:"0 0 12 12",fill:"none",children:(0,d.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:c.color,strokeWidth:"1.5",strokeLinecap:"round"})}),"in_progress"===c.value&&(0,d.jsx)("div",{className:"w-1 h-1 rounded-full",style:{backgroundColor:c.color}})]}),(0,d.jsx)("span",{style:{color:c.value===a?c.color:void 0},children:c.label})]},c.value))}),document.body)]})}},72314:(a,b,c)=>{Promise.resolve().then(c.bind(c,43185)),Promise.resolve().then(c.bind(c,18353)),Promise.resolve().then(c.bind(c,988))},75747:(a,b,c)=>{"use strict";c.d(b,{A:()=>i,AuthProvider:()=>h});var d=c(21124),e=c(38301),f=c(33409);let g=(0,e.createContext)({user:null,loading:!0,signOut:async()=>{}});function h({children:a}){let b="1"===process.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,[c,h]=(0,e.useState)(null),[i,j]=(0,e.useState)(!0),k=async()=>{if(b)return;let a=(0,f.O)();await a.auth.signOut(),h(null)};return(0,d.jsx)(g.Provider,{value:{user:c,loading:i,signOut:k},children:a})}function i(){return(0,e.useContext)(g)}},82704:()=>{},82997:(a,b,c)=>{"use strict";c.d(b,{Y:()=>e});var d=c(38301);function e(){let[a,b]=(0,d.useState)([]),[c,e]=(0,d.useState)(!1),[f,g]=(0,d.useState)(null),h=(0,d.useCallback)(async()=>{e(!0);try{let a=await fetch("/api/projects");if(!a.ok)throw Error("Failed to fetch projects");let c=await a.json();b(c.projects??[]),g(null)}catch(a){g(a instanceof Error?a:Error("Unknown error"))}finally{e(!1)}},[]),i=(0,d.useCallback)(async a=>{let c=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!c.ok)throw Error((await c.json().catch(()=>({}))).error||"Failed to create project");let d=(await c.json()).project;return b(a=>[d,...a]),d},[]);return{projects:a,isLoading:c,error:f,refetch:h,createProject:i,updateProject:(0,d.useCallback)(async(a,c)=>{let d=await fetch(`/api/projects/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)});if(!d.ok)throw Error((await d.json().catch(()=>({}))).error||"Failed to update project");let e=(await d.json()).project;return b(b=>b.map(b=>b.id===a?e:b)),e},[]),deleteProject:(0,d.useCallback)(async a=>{let c=await fetch(`/api/projects/${a}`,{method:"DELETE"});if(!c.ok)throw Error((await c.json().catch(()=>({}))).error||"Failed to delete project");b(b=>b.filter(b=>b.id!==a))},[])}}}};
@@ -13,4 +13,4 @@ args: ${j}`:"")+(b.duration_ms?`
13
13
  duration_ms: ${b.duration_ms}`:"")+k+l;await (0,g.$K)({taskId:a,content:m,logType:"system"})}async function o(a,b,c){console.log(`[processor] Cancelling task ${a}: ${c||"No reason"}`),await (0,g._N)({taskId:a,reason:c,userId:b})}[e,f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},74084:(a,b,c)=>{c.d(b,{e:()=>d});function d(a,b){return`---
14
14
  ${Object.entries(a).map(([a,b])=>`${a}: ${null==b?"":String(b)}`).join("\n")}
15
15
  ---
16
- ${b}`}},96340:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$K:()=>l,RM:()=>k,Sz:()=>i,_N:()=>n,kN:()=>m,rX:()=>j});var e=c(99146),f=c(16824),g=c(74084),h=a([e,f]);async function i(a){let b=(0,f.x)();await b.from("tasks").update({stage:a.stage,status:"queued",updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId)}async function j(a){let b=(0,f.x)(),{data:c}=await b.from("tasks").select("stage_decisions").eq("id",a.taskId).eq("user_id",a.userId).single(),d={...c?.stage_decisions&&"object"==typeof c.stage_decisions?c.stage_decisions:{},[a.stage]:{decision:a.decision.decision,rationale:a.decision.explanation,final_result:a.decision.final_result,decided_at:new Date().toISOString()}},{error:e}=await b.from("tasks").update({stage_decisions:d,updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId);if(e&&!function(a){if(!a||"object"!=typeof a)return!1;let b="code"in a?String(a.code):"",c="message"in a?String(a.message).toLowerCase():"";return("PGRST204"===b||"42703"===b)&&c.includes("stage_decisions")}(e))throw e}async function k(a){let b=await (0,e.gg)(a.taskId,a.userId);if(!b)throw Error(`Task ${a.taskId} not found`);let{frontmatter:c,body:d}=(0,e.yv)(b.content);c.stage=a.nextStage,c.status=a.nextStatus,a.error?c.error=a.error:"error"in c&&delete c.error;let h=(0,g.e)(c,d);await (0,e.lC)(a.taskId,h,a.userId);let i=(0,f.x)();await i.from("tasks").update({stage:a.nextStage,status:a.nextStatus,retry_count:a.retryCount,error:a.error,updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId),"completed"===a.nextStatus&&await i.from("tasks").update({completed_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId)}async function l(a){await (0,e.Jg)(a.taskId,a.content,a.logType)}async function m(a){await (0,e.WH)(a.taskId,a.content,a.authorType||"agent")}async function n(a){let b=await (0,e.gg)(a.taskId,a.userId);if(!b)return;let{frontmatter:c,body:d}=(0,e.yv)(b.content);c.status="failed",c.error=a.reason||"Cancelled";let h=(0,g.e)(c,d);await (0,e.lC)(a.taskId,h,a.userId),await (0,e.Jg)(a.taskId,a.reason||"Task cancelled","error");let i=(0,f.x)();await i.from("tasks").update({status:"failed",error:a.reason||"Cancelled",updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId)}[e,f]=h.then?(await h)():h,d()}catch(a){d(a)}})},99146:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Jg:()=>n,QA:()=>m,WH:()=>o,fs:()=>k,gg:()=>i,lC:()=>j,op:()=>l,yv:()=>h});var e=c(16824),f=a([e]);function g(a,b){if(!a)return!1;let c="string"==typeof a.message?a.message:"";return"42P01"===a.code||"PGRST205"===a.code||c.includes(`relation "${b}" does not exist`)||c.includes(`Could not find the table 'agx.${b}'`)||c.includes(`Could not find the table 'public.${b}'`)}function h(a){let b=a.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!b)return{frontmatter:{},body:a};let c={};for(let a of b[1].split("\n")){let b=a.indexOf(":");if(b>0){let d=a.slice(0,b).trim(),e=a.slice(b+1).trim();"true"===e?c[d]=!0:"false"===e?c[d]=!1:/^\d+$/.test(e)?c[d]=parseInt(e):c[d]=e}}return{frontmatter:c,body:b[2]}}async function i(a,b){let c=(0,e.x)().from("tasks").select("*").eq("id",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.single();if(f){if("PGRST116"===f.code)return null;throw f}return d}async function j(a,b,c,d){let f=(0,e.x)(),{frontmatter:g,body:i}=h(b),j="boolean"==typeof g.swarm?g.swarm:void 0,k=function(a){let{body:b}=h(a),c=b.match(/^#\s+(.+)$/m);return c?c[1]:void 0}(b),l="string"==typeof g.project_id?g.project_id:void 0,m=Object.prototype.hasOwnProperty.call(g,"provider"),n=Object.prototype.hasOwnProperty.call(g,"model"),o=Object.prototype.hasOwnProperty.call(g,"workflow_id"),p={content:b,description:i,title:k,status:g.status,stage:g.stage,project:g.project,...void 0!==l?{project_id:l}:{},workflow_id:o?g.workflow_id:void 0,priority:g.priority,engine:g.engine,provider:m?g.provider:null,model:n?g.model:null,swarm:j,swarm_models:d?.swarmModels??void 0,updated_at:new Date().toISOString(),current_plan:d?.currentPlan??void 0,open_blockers:d?.openBlockers??void 0,next_action:d?.nextAction??void 0};Object.keys(p).forEach(a=>{void 0===p[a]&&delete p[a]});let q=f.from("tasks").update({...p,version:f.rpc("increment_version")}).eq("id",a);c&&(q=q.eq("user_id",c)),d?.expectedVersion!==void 0&&(q=q.eq("version",d.expectedVersion));let{data:r,error:s}=await f.from("tasks").update({...p}).eq("id",a).select().single();if(s&&"42703"===s.code){let{description:b,swarm_models:d,swarm:e,workflow_id:g,current_plan:h,open_blockers:i,next_action:j,version:k,...l}=p,m=f.from("tasks").update(l).eq("id",a);c&&(m=m.eq("user_id",c)),{data:r,error:s}=await m.select().single()}if(s)throw s;return r}async function k(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflow_nodes").select("*").eq("workflow_id",a).order("position",{ascending:!0});if(d){if(g(d,"workflow_nodes"))return[];throw d}return c||[]}async function l(a,b){let c=(0,e.x)(),{data:d,error:f}=await c.from("workflow_nodes").select("*").eq("workflow_id",a).eq("name",b).maybeSingle();if(f){if(g(f,"workflow_nodes"))return null;throw f}return d}async function m(a,b){let c=(0,e.x)(),{data:d,error:f}=await c.from("workflow_transitions").select("*").eq("workflow_id",a).eq("from_node_id",b).order("priority",{ascending:!0});if(f){if(g(f,"workflow_transitions"))return[];throw f}return d||[]}async function n(a,b,c){let d=(0,e.x)(),{data:f,error:g}=await d.from("task_logs").insert({task_id:a,content:b,log_type:c}).select().single();if(g)throw g;return f}async function o(a,b,c,d){let f=(0,e.x)(),{data:g,error:h}=await f.from("task_comments").insert({task_id:a,content:b,author_type:c,author_id:d??null}).select().single();if(h)throw h;return g}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})}};
16
+ ${b}`}},96340:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$K:()=>l,RM:()=>k,Sz:()=>i,_N:()=>n,kN:()=>m,rX:()=>j});var e=c(99146),f=c(16824),g=c(74084),h=a([e,f]);async function i(a){let b=(0,f.x)();await b.from("tasks").update({stage:a.stage,status:"queued",updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId)}async function j(a){let b=(0,f.x)(),{data:c}=await b.from("tasks").select("stage_decisions").eq("id",a.taskId).eq("user_id",a.userId).single(),d={...c?.stage_decisions&&"object"==typeof c.stage_decisions?c.stage_decisions:{},[a.stage]:{decision:a.decision.decision,rationale:a.decision.explanation,final_result:a.decision.final_result,decided_at:new Date().toISOString()}},{error:e}=await b.from("tasks").update({stage_decisions:d,updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId);if(e&&!function(a){if(!a||"object"!=typeof a)return!1;let b="code"in a?String(a.code):"",c="message"in a?String(a.message).toLowerCase():"";return("PGRST204"===b||"42703"===b)&&c.includes("stage_decisions")}(e))throw e}async function k(a){let b=await (0,e.gg)(a.taskId,a.userId);if(!b)throw Error(`Task ${a.taskId} not found`);let{frontmatter:c,body:d}=(0,e.yv)(b.content);c.stage=a.nextStage,c.status=a.nextStatus,a.error?c.error=a.error:"error"in c&&delete c.error;let h=(0,g.e)(c,d);await (0,e.lC)(a.taskId,h,a.userId);let i=(0,f.x)();await i.from("tasks").update({stage:a.nextStage,status:a.nextStatus,retry_count:a.retryCount,error:a.error,updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId),"completed"===a.nextStatus&&await i.from("tasks").update({completed_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId)}async function l(a){await (0,e.Jg)(a.taskId,a.content,a.logType)}async function m(a){await (0,e.WH)(a.taskId,a.content,a.authorType||"agent")}async function n(a){let b=await (0,e.gg)(a.taskId,a.userId);if(!b)return;let{frontmatter:c,body:d}=(0,e.yv)(b.content);c.status="failed",c.error=a.reason||"Cancelled";let h=(0,g.e)(c,d);await (0,e.lC)(a.taskId,h,a.userId),await (0,e.Jg)(a.taskId,a.reason||"Task cancelled","error");let i=(0,f.x)();await i.from("tasks").update({status:"failed",error:a.reason||"Cancelled",updated_at:new Date().toISOString()}).eq("id",a.taskId).eq("user_id",a.userId)}[e,f]=h.then?(await h)():h,d()}catch(a){d(a)}})},99146:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Jg:()=>q,QA:()=>p,WH:()=>r,fs:()=>n,gg:()=>l,lC:()=>m,op:()=>o,yv:()=>j});var e=c(16824);c(55511);var f=a([e]);function g(a,b){if(!a)return!1;let c="string"==typeof a.message?a.message:"";return"42P01"===a.code||"PGRST205"===a.code||c.includes(`relation "${b}" does not exist`)||c.includes(`Could not find the table 'agx.${b}'`)||c.includes(`Could not find the table 'public.${b}'`)}function h(a){let b=a.trim();if(!b)return[];try{let a=JSON.parse(b);if(Array.isArray(a))return a.map(a=>String(a||"").trim()).filter(Boolean)}catch{}return b.split(",").map(a=>a.trim()).filter(Boolean)}function i(a){let b;if(!a)return[];if(Array.isArray(a))b=a.map(a=>"string"==typeof a?a:null==a?"":String(a)).filter(Boolean);else{if("string"!=typeof a)return[];b=h(a)}return Array.from(new Set(b.map(a=>a.trim()).filter(Boolean)))}function j(a){let b=a.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!b)return{frontmatter:{},body:a};let c={};for(let a of b[1].split("\n")){let b=a.indexOf(":");if(b>0){let d=a.slice(0,b).trim(),e=a.slice(b+1).trim();if("depends_on"===d){c[d]=h(e);continue}"true"===e?c[d]=!0:"false"===e?c[d]=!1:/^\d+$/.test(e)?c[d]=parseInt(e):c[d]=e}}return{frontmatter:c,body:b[2]}}async function k(a,b,c){if(!a||!b?.length)return;let d=c??(0,e.x)(),f=new Set,g=[...b];for(;g.length;){let b=g.pop();if(!b)continue;if(b===a)throw Error("Circular dependency detected");if(f.has(b))continue;f.add(b);let{data:c,error:e}=await d.from("tasks").select("depends_on").eq("id",b).maybeSingle();if(e){if("PGRST116"===e.code||"42703"===e.code)continue;throw e}if(c)for(let a of Array.isArray(c.depends_on)?c.depends_on:[])a&&!f.has(a)&&g.push(a)}}async function l(a,b){let c=(0,e.x)().from("tasks").select("*").eq("id",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.single();if(f){if("PGRST116"===f.code)return null;throw f}return d}async function m(a,b,c,d){let f=(0,e.x)(),{frontmatter:g,body:h}=j(b),l="boolean"==typeof g.swarm?g.swarm:void 0,m=function(a){let{body:b}=j(a),c=b.match(/^#\s+(.+)$/m);return c?c[1]:void 0}(b),n="string"==typeof g.project_id?g.project_id:void 0,o=Object.prototype.hasOwnProperty.call(g,"provider"),p=Object.prototype.hasOwnProperty.call(g,"model"),q=Object.prototype.hasOwnProperty.call(g,"workflow_id"),r=Object.prototype.hasOwnProperty.call(g,"depends_on"),s=i(g.depends_on),t=i(d?.dependsOn),u=d?.dependsOn!==void 0||r,v=d?.dependsOn!==void 0?t:s,w={content:b,description:h,title:m,status:g.status,stage:g.stage,project:g.project,...void 0!==n?{project_id:n}:{},workflow_id:q?g.workflow_id:void 0,priority:g.priority,engine:g.engine,provider:o?g.provider:null,model:p?g.model:null,swarm:l,swarm_models:d?.swarmModels??void 0,...u?{depends_on:v.length?v:null}:{},updated_at:new Date().toISOString(),current_plan:d?.currentPlan??void 0,open_blockers:d?.openBlockers??void 0,next_action:d?.nextAction??void 0};Object.keys(w).forEach(a=>{void 0===w[a]&&delete w[a]}),u&&await k(a,v,f);let x=f.from("tasks").update({...w,version:f.rpc("increment_version")}).eq("id",a);c&&(x=x.eq("user_id",c)),d?.expectedVersion!==void 0&&(x=x.eq("version",d.expectedVersion));let{data:y,error:z}=await f.from("tasks").update({...w}).eq("id",a).select().single();if(z&&"42703"===z.code){let{description:b,swarm_models:d,swarm:e,workflow_id:g,current_plan:h,open_blockers:i,next_action:j,version:k,depends_on:l,...m}=w,n=f.from("tasks").update(m).eq("id",a);c&&(n=n.eq("user_id",c)),{data:y,error:z}=await n.select().single()}if(z)throw z;return y}async function n(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflow_nodes").select("*").eq("workflow_id",a).order("position",{ascending:!0});if(d){if(g(d,"workflow_nodes"))return[];throw d}return c||[]}async function o(a,b){let c=(0,e.x)(),{data:d,error:f}=await c.from("workflow_nodes").select("*").eq("workflow_id",a).eq("name",b).maybeSingle();if(f){if(g(f,"workflow_nodes"))return null;throw f}return d}async function p(a,b){let c=(0,e.x)(),{data:d,error:f}=await c.from("workflow_transitions").select("*").eq("workflow_id",a).eq("from_node_id",b).order("priority",{ascending:!0});if(f){if(g(f,"workflow_transitions"))return[];throw f}return d||[]}async function q(a,b,c){let d=(0,e.x)(),{data:f,error:g}=await d.from("task_logs").insert({task_id:a,content:b,log_type:c}).select().single();if(g)throw g;return f}async function r(a,b,c,d){let f=(0,e.x)(),{data:g,error:h}=await f.from("task_comments").insert({task_id:a,content:b,author_type:c,author_id:d??null}).select().single();if(h)throw h;return g}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})}};
@@ -1 +1 @@
1
- "use strict";exports.id=7143,exports.ids=[7143],exports.modules={27143:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Co:()=>R,Cp:()=>L,Fw:()=>A,IB:()=>j,JQ:()=>x,Jg:()=>O,OH:()=>X,UT:()=>t,WH:()=>Q,ZG:()=>W,_f:()=>V,a4:()=>P,bg:()=>F,co:()=>y,et:()=>Y,g1:()=>U,gA:()=>C,gg:()=>r,h_:()=>h,iN:()=>T,k9:()=>i,lC:()=>u,mc:()=>s,mk:()=>M,oe:()=>S,ou:()=>_,pW:()=>N,rV:()=>z,tB:()=>$,updateWorkflow:()=>H,updateWorkflowNodes:()=>J,vq:()=>w,vr:()=>D,x1:()=>q,xw:()=>v,xx:()=>E,yv:()=>o});var e=c(79965),f=a([e]);function g(a,b){if(!a)return!1;let c="string"==typeof a.message?a.message:"";return"42P01"===a.code||"PGRST205"===a.code||c.includes(`relation "${b}" does not exist`)||c.includes(`Could not find the table 'agx.${b}'`)||c.includes(`Could not find the table 'public.${b}'`)}async function h(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("user_settings").select("*").eq("user_id",a).maybeSingle();if(d){if(g(d,"user_settings"))return null;throw d}return c||null}async function i(a,b,c){let d=c?.onlyIfNewer!==!1,f=function(a){if("string"==typeof a){let b=Date.parse(a);if(Number.isFinite(b))return new Date(b).toISOString()}return new Date().toISOString()}(b.changed_at),g=await h(a);if(d&&g?.changed_at){let a=Date.parse(g.changed_at),b=Date.parse(f);if(Number.isFinite(a)&&Number.isFinite(b)&&b<=a)return{settings:g,updated:!1}}let i={user_id:a,default_provider:b.default_provider??g?.default_provider??null,models:b.models??g?.models??{},provenance:b.provenance,changed_at:f},j=(0,e.x)(),{error:k}=await j.from("user_settings").upsert(i,{onConflict:"user_id"});if(k)throw k;let l=await h(a);if(!l)throw Error("Failed to load user_settings after upsert");return{settings:l,updated:!0}}function j(a,b,c){let d=a=>"string"!=typeof a?null:a.trim()||null,e=d(c?.default_provider)||"gemini",f=d(a.provider)||d(b?.provider)||e,g=d(c?.models?.[f])||null,h=d(a.model)||d(b?.model)||g||"unspecified",i=a.swarm??b?.swarm??!1,j=a.swarm_models?.length?a.swarm_models:b?.swarm_models||[];return{provider:f,model:h,swarm:i,swarm_models:j}}function k(a){return a.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function l(a,b){let c=k(a);for(let d=0;d<5;d++){let{data:d,error:e}=await b.from("tasks").select("id").eq("slug",c).limit(1);if(e)throw e;if(!d||0===d.length)return c;let f=Math.random().toString(36).slice(2,6);c=`${k(a)}-${f}`.slice(0,48)}return`${k(a)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function m(a,b,c,d){let e=k(a);for(let f=0;f<5;f++){let f=c.from("projects").select("id").eq("slug",e).eq("user_id",b);d&&(f=f.neq("id",d));let{data:g,error:h}=await f.limit(1);if(h)throw h;if(!g||0===g.length)return e;let i=Math.random().toString(36).slice(2,6);e=`${k(a)}-${i}`.slice(0,48)}return`${k(a)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function n(a){return a??(0,e.x)()}function o(a){let b=a.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!b)return{frontmatter:{},body:a};let c={};for(let a of b[1].split("\n")){let b=a.indexOf(":");if(b>0){let d=a.slice(0,b).trim(),e=a.slice(b+1).trim();"true"===e?c[d]=!0:"false"===e?c[d]=!1:/^\d+$/.test(e)?c[d]=parseInt(e):c[d]=e}}return{frontmatter:c,body:b[2]}}function p(a){let{body:b}=o(a),c=b.match(/^#\s+(.+)$/m);return c?c[1]:void 0}async function q(a,b){console.log("getTasks called with userId:",a);let c=(0,e.x)().from("tasks").select("*").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!1});a&&(c=c.eq("user_id",a)),b?.project&&(c=c.eq("project",b.project)),b?.status&&(c=c.eq("status",b.status));let{data:d,error:f}=await c;if(f)throw f;return d||[]}async function r(a,b){let c=(0,e.x)().from("tasks").select("*").eq("id",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.single();if(f){if("PGRST116"===f.code)return null;throw f}return d}async function s(a,b){let c=(0,e.x)().from("tasks").select("*").eq("slug",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.single();if(f){if("PGRST116"===f.code)return null;throw f}return d}async function t(a,b,c){let d=(0,e.x)(),{frontmatter:f,body:g}=o(a),h="boolean"==typeof f.swarm?f.swarm:void 0,i=p(a),j=String(f.slug||i||"task"),k=await l(j,d),m="string"==typeof f.project_id?f.project_id:void 0,n="string"==typeof f.workflow_id?f.workflow_id:void 0;/^---\n/.test(a);let q="string"==typeof f.provider?f.provider:null,r="string"==typeof f.model?f.model:null,s="string"==typeof f.engine?f.engine:null,t="ai"===f.created_by?"ai":"user",u={content:a,description:g,title:i,slug:k,status:f.status||"queued",stage:f.stage,project:f.project,...void 0!==m?{project_id:m}:{},...void 0!==n?{workflow_id:n}:{},priority:f.priority,engine:s,provider:q,model:r,swarm:h,swarm_models:c?.swarmModels??null,created_by:t,user_id:b,current_plan:c?.currentPlan||null,open_blockers:c?.openBlockers||[],next_action:c?.nextAction||null,version:1},{data:v,error:w}=await d.from("tasks").insert(u).select().single();if(w&&"42703"===w.code){let{description:a,swarm_models:b,swarm:c,workflow_id:e,current_plan:f,open_blockers:g,next_action:h,version:i,...j}=u;({data:v,error:w}=await d.from("tasks").insert(j).select().single())}if(w)throw w;return v}async function u(a,b,c,d){let f=(0,e.x)(),{frontmatter:g,body:h}=o(b),i="boolean"==typeof g.swarm?g.swarm:void 0,j=p(b),k="string"==typeof g.project_id?g.project_id:void 0,l=Object.prototype.hasOwnProperty.call(g,"provider"),m=Object.prototype.hasOwnProperty.call(g,"model"),n=Object.prototype.hasOwnProperty.call(g,"workflow_id"),q={content:b,description:h,title:j,status:g.status,stage:g.stage,project:g.project,...void 0!==k?{project_id:k}:{},workflow_id:n?g.workflow_id:void 0,priority:g.priority,engine:g.engine,provider:l?g.provider:null,model:m?g.model:null,swarm:i,swarm_models:d?.swarmModels??void 0,updated_at:new Date().toISOString(),current_plan:d?.currentPlan??void 0,open_blockers:d?.openBlockers??void 0,next_action:d?.nextAction??void 0};Object.keys(q).forEach(a=>{void 0===q[a]&&delete q[a]});let r=f.from("tasks").update({...q,version:f.rpc("increment_version")}).eq("id",a);c&&(r=r.eq("user_id",c)),d?.expectedVersion!==void 0&&(r=r.eq("version",d.expectedVersion));let{data:s,error:t}=await f.from("tasks").update({...q}).eq("id",a).select().single();if(t&&"42703"===t.code){let{description:b,swarm_models:d,swarm:e,workflow_id:g,current_plan:h,open_blockers:i,next_action:j,version:k,...l}=q,m=f.from("tasks").update(l).eq("id",a);c&&(m=m.eq("user_id",c)),{data:s,error:t}=await m.select().single()}if(t)throw t;return s}async function v(a,b,c=25){let d=(0,e.x)(),{data:f,error:g}=await d.from("tasks").select("run_index").eq("id",a).single();if(g){if(g?.code==="42703")return;throw g}let h=Array.isArray(f.run_index)?f.run_index:[],i=[b,...h].slice(0,c),{error:j}=await d.from("tasks").update({run_index:i}).eq("id",a);if(j){if(j?.code==="42703")return;throw j}}async function w(a,b){let c=(0,e.x)().from("tasks").delete().eq("id",a);b&&(c=c.eq("user_id",b));let{error:d}=await c;if(d)throw d}async function x(a){let b=(0,e.x)().from("projects").select("*, project_repos(*)");a&&(b=b.eq("user_id",a));let{data:c,error:d}=await b;if(d){if(g(d,"projects"))return[];throw d}return(c||[]).map(a=>({...a,repos:a.project_repos??[]}))}async function y(a,b){let c=(0,e.x)().from("projects").select("*").eq("slug",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.maybeSingle();if(f){if(g(f,"projects"))return null;throw f}return d||null}async function z(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("project_repos").select("*").eq("project_id",a);if(d){if(g(d,"project_repos"))return[];throw d}return c||[]}e=(f.then?(await f)():f)[0];let Z=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function A(a,b){let c=(0,e.x)(),d=Z.test(a),f=c.from("projects").select("*");f=d?f.eq("id",a):f.eq("slug",a),b&&(f=f.eq("user_id",b));let h=await f.maybeSingle();if(h.error){if(g(h.error,"projects"))return null;throw h.error}let i=h.data;if(!i)return null;let j=await z(i.id);return{...i,repos:j}}async function B(a,b,c){if(!b.length)return[];let d=b.map(b=>({project_id:a,name:b.name,path:b.path??null,notes:b.notes??null})),{data:e,error:f}=await c.from("project_repos").insert(d).select("*");if(f){if(g(f,"project_repos"))return[];throw f}return e||[]}async function C(a,b,c){if(!b.name?.trim())throw Error("Project name is required");let d=n(c),e=b.name.trim()||"project",f=await m(e,a,d),g={user_id:a,name:b.name.trim(),slug:f,description:b.description??null,workflow_id:b.workflow_id??null},{data:h,error:i}=await d.from("projects").insert(g).select("*").single();if(i)throw i;let j=await B(h.id,b.repos??[],d);return{...h,repos:j}}async function D(a,b,c,d){let e=n(d),f=Z.test(a),h=a;if(!f){let c=await y(a,b);if(!c)return null;h=c.id}let i={};if(void 0!==c.name){let a=c.name?.trim();if(!a)throw Error("Project name cannot be empty");i.name=a}if(void 0!==c.slug){let a=c.slug?.trim();a&&(i.slug=a)}if(void 0!==c.description&&(i.description=c.description),void 0!==c.metadata&&(i.metadata=c.metadata),void 0!==c.ci_cd_info&&(i.ci_cd_info=c.ci_cd_info),void 0!==c.workflow_id&&(i.workflow_id=c.workflow_id),Object.keys(i).length){let{error:a}=await e.from("projects").update(i).eq("id",h).eq("user_id",b);if(a)throw a}if(c.repos){let{error:a}=await e.from("project_repos").delete().eq("project_id",h);if(a&&!g(a,"project_repos"))throw a;await B(h,c.repos,e)}return A(h,b)}async function E(a,b,c){let d=n(c),{error:e}=await d.from("projects").delete().eq("id",a).eq("user_id",b);if(e)throw e}async function F(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflows").select("*").or(`user_id.eq.${a},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(d){if(g(d,"workflows"))return[];throw d}return c||[]}async function G(a,b){let c=(0,e.x)().from("workflows").select("*").eq("id",a),{data:d,error:f}=await c.maybeSingle();if(f){if(g(f,"workflows"))return null;throw f}return d}async function H(a,b,c){let d=(0,e.x)(),f={updated_at:new Date().toISOString()};void 0!==c.definition&&(f.definition=c.definition),void 0!==c.name&&(f.name=c.name),void 0!==c.description&&(f.description=c.description);let{data:g,error:h}=await d.from("workflows").update(f).eq("id",a).select().single();if(h)throw h;return g}async function I(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflow_nodes").select("*").eq("workflow_id",a).order("position",{ascending:!0});if(d){if(g(d,"workflow_nodes"))return[];throw d}return c||[]}async function J(a,b,c){let d=(0,e.x)();if(!await G(a,b))throw Error("Workflow not found");return await Promise.all(c.map(async b=>{let c={updated_at:new Date().toISOString()};if(void 0!==b.prompt&&(c.prompt=b.prompt),void 0!==b.provider&&(c.provider=b.provider),void 0!==b.model&&(c.model=b.model),void 0!==b.metadata&&(c.metadata=b.metadata),Object.keys(c).length<=1)return;let{error:e}=await d.from("workflow_nodes").update(c).eq("workflow_id",a).eq("id",b.id);if(e)throw e})),I(a)}async function K(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflow_transitions").select("*").eq("workflow_id",a).order("priority",{ascending:!0});if(d){if(g(d,"workflow_transitions"))return[];throw d}return c||[]}async function L(a,b){let c=await G(a,b);if(!c)return null;let[d,e]=await Promise.all([I(a),K(a)]);return{...c,nodes:d,transitions:e}}function M(){return"00000000-0000-0000-0000-000000000001"}async function N(a,b={}){let c=(0,e.x)(),d=Math.max(1,Math.min(2e3,Number(b.limit??b.tail??500))),f="string"==typeof b.after&&b.after.trim()?b.after.trim():null,g=f?null:void 0===b.tail?d:Number(b.tail),h=null!==g&&Number.isFinite(g)&&g>0,i=c.from("task_logs").select("*").eq("task_id",a);i=f?i.gt("created_at",f).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(d):h?i.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(d):i.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(d);let{data:j,error:k}=await i;if(k)throw k;let l=j||[];return f?l:h?l.slice().reverse():l}async function O(a,b,c){let d=(0,e.x)(),{data:f,error:g}=await d.from("task_logs").insert({task_id:a,content:b,log_type:c}).select().single();if(g)throw g;return f}async function P(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("task_comments").select("*").eq("task_id",a).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(d)throw d;return c||[]}async function Q(a,b,c,d){let f=(0,e.x)(),{data:g,error:h}=await f.from("task_comments").insert({task_id:a,content:b,author_type:c,author_id:d??null}).select().single();if(h)throw h;return g}async function R(a,b){let c=(0,e.x)(),{data:d,error:f}=await c.from("task_comments").select("author_id, author_type").eq("id",a).single();if(f)throw f;if(!d)throw Error("Comment not found");if("user"!==d.author_type||d.author_id!==b)throw Error("Unauthorized");let{error:g}=await c.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",a).is("deleted_at",null);if(g)throw g}async function S(a,b,c){let d=(0,e.x)().from("learnings").select("*").eq("scope",a).order("created_at",{ascending:!1});b&&(d=d.eq("scope_id",b)),c&&(d=d.eq("user_id",c));let{data:f,error:g}=await d;if(g)throw g;return f||[]}async function T(a,b,c,d){let f=(0,e.x)(),{data:g,error:h}=await f.from("learnings").insert({scope:a,scope_id:c,content:b,user_id:d}).select().single();if(h)throw h;return g}async function U(a,b){let c=(0,e.x)().from("learnings").delete().eq("id",a);b&&(c=c.eq("user_id",b));let{error:d}=await c;if(d)throw d}let $={ideation:{prompt:"Do the hard work to understand the user's true intent, as they may not know it themselves. Interpret their request and present concrete scenarios to help them visualize options. Iterate until something 'clicks'. It is okay if only 1 out of 10 proposals resonates; the goal is finding that alignment.",outputs:["research.md"],swarm:!1},planning:{prompt:"Translate the aligned intent into an implementation plan.",outputs:["plan.md","tasks.md"],swarm:!1},execution:{prompt:"Implement based on all the context/history/research/plan. Write clean, tested code. Follow the plan and execute on the tasks.",outputs:["code","tests","PR"],swarm:!1},verification:{prompt:"Test thoroughly. Find edge cases. Fix bugs. Verify the implementation works as expected against the requirements. Return PASS/FAIL/BLOCKED with exact rationale.",outputs:["test results","bug fixes"],swarm:!1},done:{prompt:"Task finished and shipped.",outputs:[],swarm:!1}},_="00000000-0000-0000-0000-000000000001";async function V(a,b){let c=(0,e.x)().from("stage_prompts").select("*").eq("workflow_id",b).order("stage",{ascending:!0});c=a?c.or(`user_id.eq.${a},is_default.eq.true`):c.eq("is_default",!0);let{data:d,error:f}=await c;if(f)throw f;return d||[]}async function W(a,b,c){let d=(0,e.x)();if(b){let{data:e}=await d.from("stage_prompts").select("*").eq("workflow_id",c).eq("stage",a).eq("user_id",b).single();if(e)return e}let{data:f}=await d.from("stage_prompts").select("*").eq("workflow_id",c).eq("stage",a).eq("is_default",!0).single();return f||null}async function X(a,b,c=[],d,f,g){let h=(0,e.x)(),i={stage:a,prompt:b,outputs:c,user_id:d,is_default:!d,workflow_id:g};f&&(void 0!==f.swarm&&(i.swarm=f.swarm),void 0!==f.provider&&(i.provider=f.provider),void 0!==f.model&&(i.model=f.model),void 0!==f.swarm_models&&(i.swarm_models=f.swarm_models));let{data:j,error:k}=await h.from("stage_prompts").upsert(i,{onConflict:d?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(k)throw k;return j}async function Y(a,b){let c=(0,e.x)().from("stage_prompts").delete().eq("id",a);b&&(c=c.eq("user_id",b));let{error:d}=await c;if(d)throw d}d()}catch(a){d(a)}})}};
1
+ "use strict";exports.id=7143,exports.ids=[7143],exports.modules={27143:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Co:()=>V,Cp:()=>P,Fw:()=>E,IB:()=>k,JQ:()=>B,Jg:()=>S,OH:()=>_,UT:()=>x,WH:()=>U,ZG:()=>$,_f:()=>Z,a4:()=>T,bg:()=>J,co:()=>C,et:()=>aa,g1:()=>Y,gA:()=>G,gg:()=>v,h_:()=>i,iN:()=>X,k9:()=>j,lC:()=>y,mc:()=>w,mk:()=>Q,oe:()=>W,ou:()=>ad,pW:()=>R,rV:()=>D,tB:()=>ac,updateWorkflow:()=>L,updateWorkflowNodes:()=>N,vq:()=>A,vr:()=>H,x1:()=>u,xw:()=>z,xx:()=>I,yv:()=>r});var e=c(79965),f=c(55511),g=a([e]);function h(a,b){if(!a)return!1;let c="string"==typeof a.message?a.message:"";return"42P01"===a.code||"PGRST205"===a.code||c.includes(`relation "${b}" does not exist`)||c.includes(`Could not find the table 'agx.${b}'`)||c.includes(`Could not find the table 'public.${b}'`)}async function i(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("user_settings").select("*").eq("user_id",a).maybeSingle();if(d){if(h(d,"user_settings"))return null;throw d}return c||null}async function j(a,b,c){let d=c?.onlyIfNewer!==!1,f=function(a){if("string"==typeof a){let b=Date.parse(a);if(Number.isFinite(b))return new Date(b).toISOString()}return new Date().toISOString()}(b.changed_at),g=await i(a);if(d&&g?.changed_at){let a=Date.parse(g.changed_at),b=Date.parse(f);if(Number.isFinite(a)&&Number.isFinite(b)&&b<=a)return{settings:g,updated:!1}}let h={user_id:a,default_provider:b.default_provider??g?.default_provider??null,models:b.models??g?.models??{},provenance:b.provenance,changed_at:f},j=(0,e.x)(),{error:k}=await j.from("user_settings").upsert(h,{onConflict:"user_id"});if(k)throw k;let l=await i(a);if(!l)throw Error("Failed to load user_settings after upsert");return{settings:l,updated:!0}}function k(a,b,c){let d=a=>"string"!=typeof a?null:a.trim()||null,e=d(c?.default_provider)||"gemini",f=d(a.provider)||d(b?.provider)||e,g=d(c?.models?.[f])||null,h=d(a.model)||d(b?.model)||g||null,i=a.swarm??b?.swarm??!1,j=a.swarm_models?.length?a.swarm_models:b?.swarm_models||[];return{provider:f,model:h,swarm:i,swarm_models:j}}function l(a){return a.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function m(a,b){let c=l(a);for(let d=0;d<5;d++){let{data:d,error:e}=await b.from("tasks").select("id").eq("slug",c).limit(1);if(e)throw e;if(!d||0===d.length)return c;let f=Math.random().toString(36).slice(2,6);c=`${l(a)}-${f}`.slice(0,48)}return`${l(a)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function n(a,b,c,d){let e=l(a);for(let f=0;f<5;f++){let f=c.from("projects").select("id").eq("slug",e).eq("user_id",b);d&&(f=f.neq("id",d));let{data:g,error:h}=await f.limit(1);if(h)throw h;if(!g||0===g.length)return e;let i=Math.random().toString(36).slice(2,6);e=`${l(a)}-${i}`.slice(0,48)}return`${l(a)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function o(a){return a??(0,e.x)()}function p(a){let b=a.trim();if(!b)return[];try{let a=JSON.parse(b);if(Array.isArray(a))return a.map(a=>String(a||"").trim()).filter(Boolean)}catch{}return b.split(",").map(a=>a.trim()).filter(Boolean)}function q(a){let b;if(!a)return[];if(Array.isArray(a))b=a.map(a=>"string"==typeof a?a:null==a?"":String(a)).filter(Boolean);else{if("string"!=typeof a)return[];b=p(a)}return Array.from(new Set(b.map(a=>a.trim()).filter(Boolean)))}function r(a){let b=a.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!b)return{frontmatter:{},body:a};let c={};for(let a of b[1].split("\n")){let b=a.indexOf(":");if(b>0){let d=a.slice(0,b).trim(),e=a.slice(b+1).trim();if("depends_on"===d){c[d]=p(e);continue}"true"===e?c[d]=!0:"false"===e?c[d]=!1:/^\d+$/.test(e)?c[d]=parseInt(e):c[d]=e}}return{frontmatter:c,body:b[2]}}async function s(a,b,c){if(!a||!b?.length)return;let d=o(c),e=new Set,f=[...b];for(;f.length;){let b=f.pop();if(!b)continue;if(b===a)throw Error("Circular dependency detected");if(e.has(b))continue;e.add(b);let{data:c,error:g}=await d.from("tasks").select("depends_on").eq("id",b).maybeSingle();if(g){if("PGRST116"===g.code||"42703"===g.code)continue;throw g}if(c)for(let a of Array.isArray(c.depends_on)?c.depends_on:[])a&&!e.has(a)&&f.push(a)}}function t(a){let{body:b}=r(a),c=b.match(/^#\s+(.+)$/m);return c?c[1]:void 0}async function u(a,b){console.log("getTasks called with userId:",a);let c=(0,e.x)().from("tasks").select("*").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!1});a&&(c=c.eq("user_id",a)),b?.project&&(c=c.eq("project",b.project)),b?.status&&(c=c.eq("status",b.status));let{data:d,error:f}=await c;if(f)throw f;return d||[]}async function v(a,b){let c=(0,e.x)().from("tasks").select("*").eq("id",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.single();if(f){if("PGRST116"===f.code)return null;throw f}return d}async function w(a,b){let c=(0,e.x)().from("tasks").select("*").eq("slug",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.single();if(f){if("PGRST116"===f.code)return null;throw f}return d}async function x(a,b,c){let d=(0,e.x)(),{frontmatter:g,body:h}=r(a),i="boolean"==typeof g.swarm?g.swarm:void 0,j=t(a),k=String(g.slug||j||"task"),l=await m(k,d),n="string"==typeof g.project_id?g.project_id:void 0,o="string"==typeof g.workflow_id?g.workflow_id:void 0;/^---\n/.test(a);let p="string"==typeof g.provider?g.provider:null,u="string"==typeof g.model?g.model:null,v="string"==typeof g.engine?g.engine:null,w="ai"===g.created_by?"ai":"user",x=q(g.depends_on),y=q(c?.dependsOn),z=y.length>0?y:x,A={id:(0,f.randomUUID)(),content:a,description:h,title:j,slug:l,status:g.status||"queued",stage:g.stage,project:g.project,...void 0!==n?{project_id:n}:{},...void 0!==o?{workflow_id:o}:{},priority:g.priority,engine:v,provider:p,model:u,swarm:i,swarm_models:c?.swarmModels??null,depends_on:z.length?z:null,created_by:w,user_id:b,current_plan:c?.currentPlan||null,open_blockers:c?.openBlockers||[],next_action:c?.nextAction||null,version:1};await s(A.id,z,d);let{data:B,error:C}=await d.from("tasks").insert(A).select().single();if(C&&"42703"===C.code){let{description:a,swarm_models:b,swarm:c,workflow_id:e,current_plan:f,open_blockers:g,next_action:h,version:i,depends_on:j,...k}=A;({data:B,error:C}=await d.from("tasks").insert(k).select().single())}if(C)throw C;return B}async function y(a,b,c,d){let f=(0,e.x)(),{frontmatter:g,body:h}=r(b),i="boolean"==typeof g.swarm?g.swarm:void 0,j=t(b),k="string"==typeof g.project_id?g.project_id:void 0,l=Object.prototype.hasOwnProperty.call(g,"provider"),m=Object.prototype.hasOwnProperty.call(g,"model"),n=Object.prototype.hasOwnProperty.call(g,"workflow_id"),o=Object.prototype.hasOwnProperty.call(g,"depends_on"),p=q(g.depends_on),u=q(d?.dependsOn),v=d?.dependsOn!==void 0||o,w=d?.dependsOn!==void 0?u:p,x={content:b,description:h,title:j,status:g.status,stage:g.stage,project:g.project,...void 0!==k?{project_id:k}:{},workflow_id:n?g.workflow_id:void 0,priority:g.priority,engine:g.engine,provider:l?g.provider:null,model:m?g.model:null,swarm:i,swarm_models:d?.swarmModels??void 0,...v?{depends_on:w.length?w:null}:{},updated_at:new Date().toISOString(),current_plan:d?.currentPlan??void 0,open_blockers:d?.openBlockers??void 0,next_action:d?.nextAction??void 0};Object.keys(x).forEach(a=>{void 0===x[a]&&delete x[a]}),v&&await s(a,w,f);let y=f.from("tasks").update({...x,version:f.rpc("increment_version")}).eq("id",a);c&&(y=y.eq("user_id",c)),d?.expectedVersion!==void 0&&(y=y.eq("version",d.expectedVersion));let{data:z,error:A}=await f.from("tasks").update({...x}).eq("id",a).select().single();if(A&&"42703"===A.code){let{description:b,swarm_models:d,swarm:e,workflow_id:g,current_plan:h,open_blockers:i,next_action:j,version:k,depends_on:l,...m}=x,n=f.from("tasks").update(m).eq("id",a);c&&(n=n.eq("user_id",c)),{data:z,error:A}=await n.select().single()}if(A)throw A;return z}async function z(a,b,c=25){let d=(0,e.x)(),{data:f,error:g}=await d.from("tasks").select("run_index").eq("id",a).single();if(g){if(g?.code==="42703")return;throw g}let h=Array.isArray(f.run_index)?f.run_index:[],i=[b,...h].slice(0,c),{error:j}=await d.from("tasks").update({run_index:i}).eq("id",a);if(j){if(j?.code==="42703")return;throw j}}async function A(a,b){let c=(0,e.x)().from("tasks").delete().eq("id",a);b&&(c=c.eq("user_id",b));let{error:d}=await c;if(d)throw d}async function B(a){let b=(0,e.x)().from("projects").select("*, project_repos(*)");a&&(b=b.eq("user_id",a));let{data:c,error:d}=await b;if(d){if(h(d,"projects"))return[];throw d}return(c||[]).map(a=>({...a,repos:a.project_repos??[]}))}async function C(a,b){let c=(0,e.x)().from("projects").select("*").eq("slug",a);b&&(c=c.eq("user_id",b));let{data:d,error:f}=await c.maybeSingle();if(f){if(h(f,"projects"))return null;throw f}return d||null}async function D(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("project_repos").select("*").eq("project_id",a);if(d){if(h(d,"project_repos"))return[];throw d}return c||[]}e=(g.then?(await g)():g)[0];let ab=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function E(a,b){let c=(0,e.x)(),d=ab.test(a),f=c.from("projects").select("*");f=d?f.eq("id",a):f.eq("slug",a),b&&(f=f.eq("user_id",b));let g=await f.maybeSingle();if(g.error){if(h(g.error,"projects"))return null;throw g.error}let i=g.data;if(!i)return null;let j=await D(i.id);return{...i,repos:j}}async function F(a,b,c){if(!b.length)return[];let d=b.map(b=>({project_id:a,name:b.name,path:b.path??null,notes:b.notes??null})),{data:e,error:f}=await c.from("project_repos").insert(d).select("*");if(f){if(h(f,"project_repos"))return[];throw f}return e||[]}async function G(a,b,c){if(!b.name?.trim())throw Error("Project name is required");let d=o(c),e=b.name.trim()||"project",f=await n(e,a,d),g={user_id:a,name:b.name.trim(),slug:f,description:b.description??null,workflow_id:b.workflow_id??null},{data:h,error:i}=await d.from("projects").insert(g).select("*").single();if(i)throw i;let j=await F(h.id,b.repos??[],d);return{...h,repos:j}}async function H(a,b,c,d){let e=o(d),f=ab.test(a),g=a;if(!f){let c=await C(a,b);if(!c)return null;g=c.id}let i={};if(void 0!==c.name){let a=c.name?.trim();if(!a)throw Error("Project name cannot be empty");i.name=a}if(void 0!==c.slug){let a=c.slug?.trim();a&&(i.slug=a)}if(void 0!==c.description&&(i.description=c.description),void 0!==c.metadata&&(i.metadata=c.metadata),void 0!==c.ci_cd_info&&(i.ci_cd_info=c.ci_cd_info),void 0!==c.workflow_id&&(i.workflow_id=c.workflow_id),Object.keys(i).length){let{error:a}=await e.from("projects").update(i).eq("id",g).eq("user_id",b);if(a)throw a}if(c.repos){let{error:a}=await e.from("project_repos").delete().eq("project_id",g);if(a&&!h(a,"project_repos"))throw a;await F(g,c.repos,e)}return E(g,b)}async function I(a,b,c){let d=o(c),{error:e}=await d.from("projects").delete().eq("id",a).eq("user_id",b);if(e)throw e}async function J(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflows").select("*").or(`user_id.eq.${a},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(d){if(h(d,"workflows"))return[];throw d}return c||[]}async function K(a,b){let c=(0,e.x)().from("workflows").select("*").eq("id",a),{data:d,error:f}=await c.maybeSingle();if(f){if(h(f,"workflows"))return null;throw f}return d}async function L(a,b,c){let d=(0,e.x)(),f={updated_at:new Date().toISOString()};void 0!==c.definition&&(f.definition=c.definition),void 0!==c.name&&(f.name=c.name),void 0!==c.description&&(f.description=c.description);let{data:g,error:h}=await d.from("workflows").update(f).eq("id",a).select().single();if(h)throw h;return g}async function M(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflow_nodes").select("*").eq("workflow_id",a).order("position",{ascending:!0});if(d){if(h(d,"workflow_nodes"))return[];throw d}return c||[]}async function N(a,b,c){let d=(0,e.x)();if(!await K(a,b))throw Error("Workflow not found");return await Promise.all(c.map(async b=>{let c={updated_at:new Date().toISOString()};if(void 0!==b.prompt&&(c.prompt=b.prompt),void 0!==b.provider&&(c.provider=b.provider),void 0!==b.model&&(c.model=b.model),void 0!==b.metadata&&(c.metadata=b.metadata),Object.keys(c).length<=1)return;let{error:e}=await d.from("workflow_nodes").update(c).eq("workflow_id",a).eq("id",b.id);if(e)throw e})),M(a)}async function O(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("workflow_transitions").select("*").eq("workflow_id",a).order("priority",{ascending:!0});if(d){if(h(d,"workflow_transitions"))return[];throw d}return c||[]}async function P(a,b){let c=await K(a,b);if(!c)return null;let[d,e]=await Promise.all([M(a),O(a)]);return{...c,nodes:d,transitions:e}}function Q(){return"00000000-0000-0000-0000-000000000001"}async function R(a,b={}){let c=(0,e.x)(),d=Math.max(1,Math.min(2e3,Number(b.limit??b.tail??500))),f="string"==typeof b.after&&b.after.trim()?b.after.trim():null,g=f?null:void 0===b.tail?d:Number(b.tail),h=null!==g&&Number.isFinite(g)&&g>0,i=c.from("task_logs").select("*").eq("task_id",a);i=f?i.gt("created_at",f).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(d):h?i.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(d):i.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(d);let{data:j,error:k}=await i;if(k)throw k;let l=j||[];return f?l:h?l.slice().reverse():l}async function S(a,b,c){let d=(0,e.x)(),{data:f,error:g}=await d.from("task_logs").insert({task_id:a,content:b,log_type:c}).select().single();if(g)throw g;return f}async function T(a){let b=(0,e.x)(),{data:c,error:d}=await b.from("task_comments").select("*").eq("task_id",a).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(d)throw d;return c||[]}async function U(a,b,c,d){let f=(0,e.x)(),{data:g,error:h}=await f.from("task_comments").insert({task_id:a,content:b,author_type:c,author_id:d??null}).select().single();if(h)throw h;return g}async function V(a,b){let c=(0,e.x)(),{data:d,error:f}=await c.from("task_comments").select("author_id, author_type").eq("id",a).single();if(f)throw f;if(!d)throw Error("Comment not found");if("user"!==d.author_type||d.author_id!==b)throw Error("Unauthorized");let{error:g}=await c.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",a).is("deleted_at",null);if(g)throw g}async function W(a,b,c){let d=(0,e.x)().from("learnings").select("*").eq("scope",a).order("created_at",{ascending:!1});b&&(d=d.eq("scope_id",b)),c&&(d=d.eq("user_id",c));let{data:f,error:g}=await d;if(g)throw g;return f||[]}async function X(a,b,c,d){let f=(0,e.x)(),{data:g,error:h}=await f.from("learnings").insert({scope:a,scope_id:c,content:b,user_id:d}).select().single();if(h)throw h;return g}async function Y(a,b){let c=(0,e.x)().from("learnings").delete().eq("id",a);b&&(c=c.eq("user_id",b));let{error:d}=await c;if(d)throw d}let ac={ideation:{prompt:"Do the hard work to understand the user's true intent, as they may not know it themselves. Interpret their request and present concrete scenarios to help them visualize options. Iterate until something 'clicks'. It is okay if only 1 out of 10 proposals resonates; the goal is finding that alignment.",outputs:["research.md"],swarm:!1},planning:{prompt:"Translate the aligned intent into an implementation plan.",outputs:["plan.md","tasks.md"],swarm:!1},execution:{prompt:"Implement based on all the context/history/research/plan. Write clean, tested code. Follow the plan and execute on the tasks.",outputs:["code","tests","PR"],swarm:!1},verification:{prompt:"Test thoroughly. Find edge cases. Fix bugs. Verify the implementation works as expected against the requirements. Return PASS/FAIL/BLOCKED with exact rationale.",outputs:["test results","bug fixes"],swarm:!1},done:{prompt:"Task finished and shipped.",outputs:[],swarm:!1}},ad="00000000-0000-0000-0000-000000000001";async function Z(a,b){let c=(0,e.x)().from("stage_prompts").select("*").eq("workflow_id",b).order("stage",{ascending:!0});c=a?c.or(`user_id.eq.${a},is_default.eq.true`):c.eq("is_default",!0);let{data:d,error:f}=await c;if(f)throw f;return d||[]}async function $(a,b,c){let d=(0,e.x)();if(b){let{data:e}=await d.from("stage_prompts").select("*").eq("workflow_id",c).eq("stage",a).eq("user_id",b).single();if(e)return e}let{data:f}=await d.from("stage_prompts").select("*").eq("workflow_id",c).eq("stage",a).eq("is_default",!0).single();return f||null}async function _(a,b,c=[],d,f,g){let h=(0,e.x)(),i={stage:a,prompt:b,outputs:c,user_id:d,is_default:!d,workflow_id:g};f&&(void 0!==f.swarm&&(i.swarm=f.swarm),void 0!==f.provider&&(i.provider=f.provider),void 0!==f.model&&(i.model=f.model),void 0!==f.swarm_models&&(i.swarm_models=f.swarm_models));let{data:j,error:k}=await h.from("stage_prompts").upsert(i,{onConflict:d?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(k)throw k;return j}async function aa(a,b){let c=(0,e.x)().from("stage_prompts").delete().eq("id",a);b&&(c=c.eq("user_id",b));let{error:d}=await c;if(d)throw d}d()}catch(a){d(a)}})}};
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=6183,a.ids=[6183],a.modules={29021:a=>{a.exports=require("fs")},34589:a=>{a.exports=require("node:assert")},52586:(a,b,c)=>{async function d(){{let{getBoss:a,QUEUE_NAMES:b}=await c.e(7699).then(c.bind(c,17699)),{taskProcessor:d}=await c.e(6317).then(c.bind(c,46317)),e=await a();await e.work(b.TASK_PROCESS,{batchSize:5},d),console.log("[worker] pg-boss worker started (embedded)")}}c.r(b),c.d(b,{register:()=>d})},58500:a=>{a.exports=require("node:timers/promises")},64939:a=>{a.exports=import("pg")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79748:a=>{a.exports=require("fs/promises")}};var b=require("./webpack-runtime.js");b.C(a);var c=b(b.s=52586);module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=6183,a.ids=[6183],a.modules={29021:a=>{a.exports=require("fs")},34589:a=>{a.exports=require("node:assert")},52586:(a,b,c)=>{async function d(){{let{getBoss:a,QUEUE_NAMES:b}=await c.e(7699).then(c.bind(c,17699)),{taskProcessor:d}=await c.e(6317).then(c.bind(c,46317)),e=await a();await e.work(b.TASK_PROCESS,{batchSize:5},d),console.log("[worker] pg-boss worker started (embedded)")}}c.r(b),c.d(b,{register:()=>d})},55511:a=>{a.exports=require("crypto")},58500:a=>{a.exports=require("node:timers/promises")},64939:a=>{a.exports=import("pg")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79748:a=>{a.exports=require("fs/promises")}};var b=require("./webpack-runtime.js");b.C(a);var c=b(b.s=52586);module.exports=c})();
@@ -18,11 +18,11 @@
18
18
  "wasm": [],
19
19
  "assets": [],
20
20
  "env": {
21
- "__NEXT_BUILD_ID": "LM3I1rgG9I2QwtrZCfWRB",
22
- "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "l54qDaLHEf9jb+OFQoKFePSTxwDztikORY/f3sEhyGw=",
23
- "__NEXT_PREVIEW_MODE_ID": "11882831df7d75132b86ff62379dc1cc",
24
- "__NEXT_PREVIEW_MODE_SIGNING_KEY": "286973713d43d4368791e326a37f6f6e769891808c791eab68fcb12e4d53495c",
25
- "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "c7e8faa54a3ca8bae04159e6d3649c3256cac58e3aecc615511e28d875f14fd1"
21
+ "__NEXT_BUILD_ID": "2YqDwh6NlGhbNnhMVpOgd",
22
+ "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "Lr8u2rBZnsAn6QE2tlF7mnWMGkih9rjctsej16wa524=",
23
+ "__NEXT_PREVIEW_MODE_ID": "008678ff7c4c2b6c6664fd2548e6567b",
24
+ "__NEXT_PREVIEW_MODE_SIGNING_KEY": "efb52361875ef75e3869d447a55f294849fe0e11893f8a1e62c79f807be780bb",
25
+ "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "ae95da8a245e295f0d732872edffd137f1bcc5f273d0db455cd42ac11e3b28f3"
26
26
  }
27
27
  }
28
28
  },
@@ -1 +1 @@
1
- <!DOCTYPE html><!--LM3I1rgG9I2QwtrZCfWRB--><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/6873fedf803c523e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-d282787ed3063711.js"/><script src="/_next/static/chunks/4bd1b696-f785427dddbba9fb.js" async=""></script><script src="/_next/static/chunks/1255-a390e12b70b4a9fb.js" async=""></script><script src="/_next/static/chunks/main-app-c3d1ac80a13099fb.js" async=""></script><script src="/_next/static/chunks/app/layout-449a81ecf8041b29.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-DVQQG95LNL" as="script"/><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>AGX Board - Agent Task Orchestration</title><meta name="description" content="Orchestrate and manage AI agent tasks on AGX Board"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]"><div hidden=""><!--$--><!--/$--></div><div class="fixed inset-0 -z-10 h-full w-full bg-[radial-gradient(#27272a_1px,transparent_1px)] [background-size:16px_16px] opacity-20"></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-d282787ed3063711.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3396,[\"7177\",\"static/chunks/app/layout-449a81ecf8041b29.js\"],\"GoogleAnalytics\"]\n3:I[4647,[\"7177\",\"static/chunks/app/layout-449a81ecf8041b29.js\"],\"AuthProvider\"]\n4:I[9766,[],\"\"]\n5:I[8924,[],\"\"]\n6:I[4431,[],\"OutletBoundary\"]\n8:I[5278,[],\"AsyncMetadataOutlet\"]\na:I[4431,[],\"ViewportBoundary\"]\nc:I[4431,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[7150,[],\"\"]\n:HL[\"/_next/static/css/6873fedf803c523e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"LM3I1rgG9I2QwtrZCfWRB\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/6873fedf803c523e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"$L2\",null,{}]}],[\"$\",\"body\",null,{\"className\":\"antialiased min-h-screen bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"fixed inset-0 -z-10 h-full w-full bg-[radial-gradient(#27272a_1px,transparent_1px)] [background-size:16px_16px] opacity-20\"}],[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"AGX Board - Agent Task Orchestration\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Orchestrate and manage AI agent tasks on AGX Board\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--2YqDwh6NlGhbNnhMVpOgd--><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/ea93fda1b0bdd3b9.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-d282787ed3063711.js"/><script src="/_next/static/chunks/4bd1b696-f785427dddbba9fb.js" async=""></script><script src="/_next/static/chunks/1255-a390e12b70b4a9fb.js" async=""></script><script src="/_next/static/chunks/main-app-c3d1ac80a13099fb.js" async=""></script><script src="/_next/static/chunks/app/layout-6b46da9e6091abb3.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-DVQQG95LNL" as="script"/><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>AGX Board - Agent Task Orchestration</title><meta name="description" content="Orchestrate and manage AI agent tasks on AGX Board"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]"><div hidden=""><!--$--><!--/$--></div><div class="fixed inset-0 -z-10 h-full w-full bg-[radial-gradient(#27272a_1px,transparent_1px)] [background-size:16px_16px] opacity-20"></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-d282787ed3063711.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[6285,[\"7177\",\"static/chunks/app/layout-6b46da9e6091abb3.js\"],\"GoogleAnalytics\"]\n3:I[7950,[\"7177\",\"static/chunks/app/layout-6b46da9e6091abb3.js\"],\"PostHogAnalytics\"]\n4:I[4647,[\"7177\",\"static/chunks/app/layout-6b46da9e6091abb3.js\"],\"AuthProvider\"]\n5:I[9766,[],\"\"]\n6:I[8924,[],\"\"]\n7:I[4431,[],\"OutletBoundary\"]\n9:I[5278,[],\"AsyncMetadataOutlet\"]\nb:I[4431,[],\"ViewportBoundary\"]\nd:I[4431,[],\"MetadataBoundary\"]\ne:\"$Sreact.suspense\"\n10:I[7150,[],\"\"]\n:HL[\"/_next/static/css/ea93fda1b0bdd3b9.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"2YqDwh6NlGhbNnhMVpOgd\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ea93fda1b0bdd3b9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"$L3\",null,{}]]}],[\"$\",\"body\",null,{\"className\":\"antialiased min-h-screen bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"fixed inset-0 -z-10 h-full w-full bg-[radial-gradient(#27272a_1px,transparent_1px)] [background-size:16px_16px] opacity-20\"}],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":[\"$L8\",[\"$\",\"$L9\",null,{\"promise\":\"$@a\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],null],[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$e\",null,{\"fallback\":null,\"children\":\"$Lf\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n8:null\n"])</script><script>self.__next_f.push([1,"a:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"AGX Board - Agent Task Orchestration\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Orchestrate and manage AI agent tasks on AGX Board\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"f:\"$a:metadata\"\n"])</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-d282787ed3063711.js" defer=""></script><script src="/_next/static/chunks/framework-e60c938074ff7136.js" defer=""></script><script src="/_next/static/chunks/main-8c662602f1324852.js" defer=""></script><script src="/_next/static/chunks/pages/_app-6c8c2371b16a04b8.js" defer=""></script><script src="/_next/static/chunks/pages/_error-94812ad32cad7365.js" defer=""></script><script src="/_next/static/LM3I1rgG9I2QwtrZCfWRB/_buildManifest.js" defer=""></script><script src="/_next/static/LM3I1rgG9I2QwtrZCfWRB/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"LM3I1rgG9I2QwtrZCfWRB","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-d282787ed3063711.js" defer=""></script><script src="/_next/static/chunks/framework-e60c938074ff7136.js" defer=""></script><script src="/_next/static/chunks/main-8c662602f1324852.js" defer=""></script><script src="/_next/static/chunks/pages/_app-6c8c2371b16a04b8.js" defer=""></script><script src="/_next/static/chunks/pages/_error-94812ad32cad7365.js" defer=""></script><script src="/_next/static/2YqDwh6NlGhbNnhMVpOgd/_buildManifest.js" defer=""></script><script src="/_next/static/2YqDwh6NlGhbNnhMVpOgd/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"2YqDwh6NlGhbNnhMVpOgd","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1,6 +1,6 @@
1
1
  {
2
- "/_error": "pages/_error.js",
3
2
  "/_app": "pages/_app.js",
3
+ "/_error": "pages/_error.js",
4
4
  "/_document": "pages/_document.js",
5
5
  "/404": "pages/404.html"
6
6
  }
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\"node\":{\"40a9a7d47980ede8a4fc784394e4d5d6802dce1b85\":{\"workers\":{\"app/auth/device/page\":{\"moduleId\":\"60669\",\"async\":true}},\"layer\":{\"app/auth/device/page\":\"action-browser\"},\"filename\":\"lib/device-actions.ts\",\"exportedName\":\"approveDeviceCode\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
1
+ self.__RSC_SERVER_MANIFEST="{\"node\":{\"4066e41348e04568d8dfbe55397b36bee799629fd3\":{\"workers\":{\"app/auth/device/page\":{\"moduleId\":\"6709\",\"async\":true}},\"layer\":{\"app/auth/device/page\":\"action-browser\"},\"filename\":\"lib/device-actions.ts\",\"exportedName\":\"approveDeviceCode\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
@@ -1 +1 @@
1
- {"node":{"40a9a7d47980ede8a4fc784394e4d5d6802dce1b85":{"workers":{"app/auth/device/page":{"moduleId":"60669","async":true}},"layer":{"app/auth/device/page":"action-browser"},"filename":"lib/device-actions.ts","exportedName":"approveDeviceCode"}},"edge":{},"encryptionKey":"l54qDaLHEf9jb+OFQoKFePSTxwDztikORY/f3sEhyGw="}
1
+ {"node":{"4066e41348e04568d8dfbe55397b36bee799629fd3":{"workers":{"app/auth/device/page":{"moduleId":"6709","async":true}},"layer":{"app/auth/device/page":"action-browser"},"filename":"lib/device-actions.ts","exportedName":"approveDeviceCode"}},"edge":{},"encryptionKey":"Lr8u2rBZnsAn6QE2tlF7mnWMGkih9rjctsej16wa524="}
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5608],{80:(e,t,a)=>{a.d(t,{A:()=>s});var r=a(5155),n=a(2115),o=a(7650);let l=[{value:"queued",label:"Queued",color:"var(--status-queued)",icon:"○"},{value:"in_progress",label:"In Progress",color:"var(--status-in-progress)",icon:"◑"},{value:"blocked",label:"Blocked",color:"var(--status-blocked)",icon:"⊘"},{value:"completed",label:"Done",color:"var(--status-completed)",icon:"●"},{value:"failed",label:"Failed",color:"var(--status-failed)",icon:"✕"}];function s(e){let{status:t,onStatusChange:a}=e,[s,c]=(0,n.useState)(!1),[i,u]=(0,n.useState)(null),d=(0,n.useRef)(null),f=(0,n.useRef)(null),h=(0,n.useCallback)(()=>{if(!d.current)return;let e=d.current.getBoundingClientRect();u({top:e.bottom+4,left:e.left})},[]);(0,n.useEffect)(()=>{if(!s)return;h();let e=e=>{d.current&&!d.current.contains(e.target)&&f.current&&!f.current.contains(e.target)&&c(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[s,h]);let p=l.find(e=>e.value===t)||l[0],m="completed"===t,k="in_progress"===t;return(0,r.jsxs)("div",{className:"relative flex-shrink-0",ref:d,children:[(0,r.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),a&&c(!s)},className:"w-4 h-4 rounded-full border-[1.5px] flex items-center justify-center transition-all\n hover:scale-110 focus-visible:outline-2 focus-visible:outline-[var(--ring)]\n ".concat(a?"cursor-pointer":"cursor-default","\n ").concat(k?"animate-pulse":"","\n "),style:{borderColor:p.color,backgroundColor:m?p.color:"transparent"},title:p.label,children:[m&&(0,r.jsx)("svg",{className:"w-2.5 h-2.5 text-white",viewBox:"0 0 12 12",fill:"none",children:(0,r.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"failed"===t&&(0,r.jsx)("svg",{className:"w-2 h-2",viewBox:"0 0 12 12",fill:"none",children:(0,r.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:p.color,strokeWidth:"1.5",strokeLinecap:"round"})}),k&&(0,r.jsx)("div",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:p.color}})]}),s&&i&&(0,o.createPortal)((0,r.jsx)("div",{ref:f,className:"fixed z-[9999] py-1 rounded-lg border shadow-lg min-w-[140px]",style:{top:i.top,left:i.left,backgroundColor:"var(--card-bg)",borderColor:"var(--card-border)"},children:l.map(e=>(0,r.jsxs)("button",{type:"button",className:"w-full flex items-center gap-2 px-3 py-1.5 text-xs text-left transition-colors\n hover:bg-[var(--item-hover-bg)]\n ".concat(e.value===t?"font-semibold":"","\n "),onClick:t=>{t.stopPropagation(),null==a||a(e.value),c(!1)},children:[(0,r.jsxs)("span",{className:"w-3 h-3 rounded-full border-[1.5px] flex items-center justify-center",style:{borderColor:e.color,backgroundColor:"completed"===e.value?e.color:"transparent"},children:["completed"===e.value&&(0,r.jsx)("svg",{className:"w-2 h-2 text-white",viewBox:"0 0 12 12",fill:"none",children:(0,r.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"failed"===e.value&&(0,r.jsx)("svg",{className:"w-1.5 h-1.5",viewBox:"0 0 12 12",fill:"none",children:(0,r.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:e.color,strokeWidth:"1.5",strokeLinecap:"round"})}),"in_progress"===e.value&&(0,r.jsx)("div",{className:"w-1 h-1 rounded-full",style:{backgroundColor:e.color}})]}),(0,r.jsx)("span",{style:{color:e.value===t?e.color:void 0},children:e.label})]},e.value))}),document.body)]})}},91:(e,t,a)=>{a.d(t,{Y:()=>n});var r=a(2115);function n(){let[e,t]=(0,r.useState)([]),[a,n]=(0,r.useState)(!1),[o,l]=(0,r.useState)(null),s=(0,r.useCallback)(async()=>{n(!0);try{var e;let a=await fetch("/api/projects");if(!a.ok)throw Error("Failed to fetch projects");let r=await a.json();t(null!=(e=r.projects)?e:[]),l(null)}catch(e){l(e instanceof Error?e:Error("Unknown error"))}finally{n(!1)}},[]);(0,r.useEffect)(()=>{s()},[s]);let c=(0,r.useCallback)(async e=>{let a=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to create project");let r=(await a.json()).project;return t(e=>[r,...e]),r},[]);return{projects:e,isLoading:a,error:o,refetch:s,createProject:c,updateProject:(0,r.useCallback)(async(e,a)=>{let r=await fetch("/api/projects/".concat(e),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error||"Failed to update project");let n=(await r.json()).project;return t(t=>t.map(t=>t.id===e?n:t)),n},[]),deleteProject:(0,r.useCallback)(async e=>{let a=await fetch("/api/projects/".concat(e),{method:"DELETE"});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to delete project");t(t=>t.filter(t=>t.id!==e))},[])}}},577:(e,t,a)=>{a.d(t,{LU:()=>s,dF:()=>i,si:()=>l,zH:()=>c});var r=a(2115),n=a(1483),o=a(5704);function l(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t="1"===o.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,a=e.project,l=e.status,s=e.realtime,[c,i]=(0,r.useState)([]),[u,d]=(0,r.useState)(!0),[f,h]=(0,r.useState)(null),[p,m]=(0,r.useState)(null),[k,v]=(0,r.useState)(null),w=(0,r.useCallback)(async()=>{try{let e=new URLSearchParams;a&&e.set("project",a),l&&e.set("status",l);let t=await fetch("/api/tasks?".concat(e.toString()));if(!t.ok)throw Error("Failed to fetch tasks");let r=await t.json();i(r.tasks||[]),h(null)}catch(e){h(e instanceof Error?e:Error("Unknown error"))}finally{d(!1)}},[a,l]);(0,r.useEffect)(()=>{w()},[w]),(0,r.useEffect)(()=>{if(t||!s)return;let e=(0,n.O)(),a=e.channel("tasks-changes").on("postgres_changes",{event:"*",schema:"public",table:"tasks"},e=>{"INSERT"===e.eventType?i(t=>{let a=e.new;return t.some(e=>e.id===a.id)?t:[a,...t]}):"UPDATE"===e.eventType?i(t=>t.map(t=>t.id===e.new.id?e.new:t)):"DELETE"===e.eventType&&i(t=>t.filter(t=>t.id!==e.old.id))}).subscribe();return()=>{e.removeChannel(a)}},[s,t]),(0,r.useEffect)(()=>{if(t||!s||"undefined"==typeof EventSource)return;let e=null;try{e=new EventSource("/api/tasks/stream")}catch(e){console.error("Failed to open tasks stream:",e);return}let a=e=>{try{let t=JSON.parse(e.data);if(!(null==t?void 0:t.type)||"UPDATE"!==t.type||!t.task)return;let a=t.task;i(e=>e.some(e=>e.id===a.id)?e.map(e=>e.id===a.id?a:e):[a,...e])}catch(e){}},r=()=>{w()};return e.addEventListener("message",a),e.addEventListener("error",r),()=>{null==e||e.removeEventListener("message",a),null==e||e.removeEventListener("error",r),null==e||e.close()}},[s,t,w]);let y=(0,r.useCallback)(async(e,t)=>{let a=await fetch("/api/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:e,swarm_models:t})});if(!a.ok)throw Error((await a.json()).error||"Failed to create task");let{task:r}=await a.json();return i(e=>e.some(e=>e.id===r.id)?e:[r,...e]),r},[e.realtime]),b=(0,r.useCallback)(async(e,t)=>{let a=await fetch("/api/tasks/".concat(e),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){let e=null;throw"function"==typeof a.json&&(e=await a.json().catch(()=>null)),Error((null==e?void 0:e.error)||(null==e?void 0:e.details)||"Failed to update task (".concat(a.status," ").concat(a.statusText||"Error",")"))}let{task:r}=await a.json();return i(t=>t.map(t=>t.id===e?{...t,...r}:t)),r},[e.realtime]),g=(0,r.useCallback)(async e=>{if(!(await fetch("/api/tasks/".concat(e),{method:"DELETE"})).ok)throw Error("Failed to delete task");i(t=>t.filter(t=>t.id!==e))},[e.realtime]),E=(0,r.useCallback)(async e=>{let t=await fetch("/api/queue/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to complete task stage");let{task:a}=await t.json();return i(t=>t.map(t=>t.id===e.taskId?{...t,...a}:t)),a},[e.realtime]);return{tasks:c,isLoading:u,error:f,cancellingTaskId:p,isCancelling:!!p,cancelError:k,refetch:w,createTask:y,updateTask:b,deleteTask:g,completeTaskStage:E,cancelWorkflow:(0,r.useCallback)(async e=>{m(e.taskId),v(null);try{let t=await fetch("/api/orchestrator/tasks/".concat(e.taskId,"/cancel"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e.reason?{reason:e.reason}:{})});if(!t.ok){let e=await t.json().catch(()=>({})),a=(null==e?void 0:e.error)||"Failed to cancel workflow";throw Error(a)}return t.json()}catch(t){let e=t instanceof Error?t:Error("Failed to cancel workflow");throw v(e),e}finally{m(null)}},[]),fetchTask:(0,r.useCallback)(async e=>{let t=await fetch("/api/tasks/".concat(e)),a=await t.json().catch(()=>null);if(!t.ok)throw Error((null==a?void 0:a.error)||"Failed to fetch task details");return null==a?void 0:a.task},[])}}function s(e){let t="1"===o.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,[a,l]=(0,r.useState)([]),[s,c]=(0,r.useState)(!1),i=(0,r.useCallback)(async()=>{if(e){c(!0);try{let t=await fetch("/api/tasks/".concat(e,"/comments"));if(t.ok){let e=await t.json();l(e.comments||[])}}finally{c(!1)}}},[e]);return(0,r.useEffect)(()=>{i()},[i]),(0,r.useEffect)(()=>{if(t||!e)return;let a=(0,n.O)(),r=a.channel("task-comments-".concat(e)).on("postgres_changes",{event:"*",schema:"public",table:"task_comments",filter:"task_id=eq.".concat(e)},e=>{if("INSERT"===e.eventType){let t=e.new;(null==t?void 0:t.deleted_at)||l(e=>[...e,t])}else if("UPDATE"===e.eventType){let t=e.new;(null==t?void 0:t.deleted_at)?l(e=>e.filter(e=>e.id!==t.id)):l(e=>e.map(e=>e.id===t.id?t:e))}else"DELETE"===e.eventType&&l(t=>t.filter(t=>t.id!==e.old.id))}).subscribe();return()=>{a.removeChannel(r)}},[e,t]),{comments:a,isLoading:s,refetch:i,addComment:(0,r.useCallback)(async t=>{if(!e)return;let a=await fetch("/api/tasks/".concat(e,"/comments"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t})});if(a.ok){let{comment:e}=await a.json();return e}},[e]),deleteComment:(0,r.useCallback)(async t=>{e&&(await fetch("/api/tasks/".concat(e,"/comments/").concat(t),{method:"DELETE"})).ok&&l(e=>e.filter(e=>e.id!==t))},[e])}}function c(e){var t;let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null==(t=a.enabled)||t,o=Number.isFinite(a.tail)&&a.tail>0?a.tail:500,l=Number.isFinite(a.maxChars)&&a.maxChars>0?a.maxChars:2e5,[s,c]=(0,r.useState)(""),[i,u]=(0,r.useState)(!1),[d,f]=(0,r.useState)(!1),h=(0,r.useRef)(null),p=(0,r.useRef)(0),m=(0,r.useRef)(null),k=(0,r.useCallback)(e=>{let t=(e.log_type||"output").toLowerCase();return"output"===t?e.content||"":"[".concat(t,"] ").concat(e.content||"")},[]),v=(0,r.useCallback)(async function(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(e&&n){t||u(!0);try{let a=new URLSearchParams;if(t){let e=m.current;(null==e?void 0:e.created_at)&&a.set("after",e.created_at),a.set("limit","500")}else a.set("tail",String(o));let r=await fetch("/api/tasks/".concat(e,"/logs?").concat(a.toString()));if(r.ok){let e=((await r.json()).logs||[]).slice().sort((e,t)=>e.created_at===t.created_at?e.id.localeCompare(t.id):e.created_at.localeCompare(t.created_at));if(t){let t=m.current,a=t?e.filter(e=>e.created_at>t.created_at||!(e.created_at<t.created_at)&&e.id>t.id):e;if(a.length){let e=a.map(e=>k(e)).join("");e&&c(t=>{let a=t+e;return a.length>l?a.slice(-l):a}),f(!0),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{f(!1)},5e3)}}else{let t=e.map(e=>k(e)).join("");c(t.length>l?t.slice(-l):t)}if(e.length){let t=e[e.length-1];m.current={created_at:t.created_at,id:t.id}}}}finally{t||u(!1)}}},[n,k,l,o,e]);return(0,r.useEffect)(()=>{c(""),f(!1),u(!1),m.current=null,h.current&&(clearTimeout(h.current),h.current=null),n&&v()},[n,v,e]),(0,r.useEffect)(()=>{if(!e||!n)return;let t=new EventSource("/api/logs/stream?taskId=".concat(e)),a=()=>{let e=Date.now();e-p.current<5e3||(p.current=e,v(!0))};return t.onopen=()=>{a()},t.onmessage=e=>{try{let t=JSON.parse(e.data);if((null==t?void 0:t.type)!=="log"||!t.log)return;let a=t.log,r=k(a);if(!r)return;c(e=>e+r),f(!0),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{f(!1)},5e3)}catch(e){}},t.onerror=()=>{a()},()=>{t.close(),h.current&&(clearTimeout(h.current),h.current=null)}},[n,v,k,e]),{output:s,isLoading:i,isStreaming:d}}function i(e,t){let[a,n]=(0,r.useState)([]),[o,l]=(0,r.useState)(!1),s=(0,r.useCallback)(async()=>{l(!0);try{let a=new URLSearchParams;e&&a.set("scope",e),t&&a.set("scopeId",t);let r=await fetch("/api/learnings?".concat(a.toString()));if(r.ok){let e=await r.json();n(e.learnings||[])}}finally{l(!1)}},[e,t]);return(0,r.useEffect)(()=>{s()},[s]),{learnings:a,isLoading:o,refetch:s,addLearning:(0,r.useCallback)(async(e,t,a)=>{let r=await fetch("/api/learnings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:t,scopeId:a,content:e})});if(r.ok){let{learning:e}=await r.json();return n(t=>[e,...t]),e}},[]),deleteLearning:(0,r.useCallback)(async e=>{(await fetch("/api/learnings?id=".concat(e),{method:"DELETE"})).ok&&n(t=>t.filter(t=>t.id!==e))},[])}}},1483:(e,t,a)=>{a.d(t,{O:()=>n});var r=a(7559);function n(){return{auth:{getSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600,user:{id:r.g.id,email:r.g.email,user_metadata:{name:r.g.name,full_name:r.g.name}}}},error:null}),signInWithOAuth:async()=>({error:Error("Auth disabled in AGX Board local mode")}),signOut:async()=>({error:null}),onAuthStateChange:()=>({data:{subscription:{unsubscribe(){}}}})},channel:()=>({on(){return this},subscribe(){return this}}),removeChannel(){}}}},7559:(e,t,a)=>{a.d(t,{g:()=>n});var r=a(5704);"1"===r.env.AGX_BOARD_DISABLE_AUTH||"1"===r.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH||"1"!==r.env.AGX_BOARD_ENABLE_AUTH&&r.env.NEXT_PUBLIC_AGX_BOARD_ENABLE_AUTH;let n={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:r.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:r.env.AGX_BOARD_USER_NAME||"Local Board User"}}}]);