@mndrk/agx 1.4.55 → 1.4.59

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 +78 -71
  4. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/app-path-routes-manifest.json +9 -8
  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 +12 -12
  7. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/routes-manifest.json +9 -1
  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 +9 -8
  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/middleware.js +1 -1
  111. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/404.html +1 -1
  112. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/500.html +1 -1
  113. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages-manifest.json +1 -1
  114. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.js +1 -1
  115. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.json +1 -1
  116. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/5608-674cd57e975c9b36.js +1 -0
  117. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/9337-f4cb4820efca03a1.js +1 -0
  118. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/audit/route-13be4cfc17a5f679.js +1 -0
  119. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/[...nextauth]/route-13be4cfc17a5f679.js +1 -0
  120. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/daemon-secret/route-13be4cfc17a5f679.js +1 -0
  121. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/code/route-13be4cfc17a5f679.js +1 -0
  122. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/token/route-13be4cfc17a5f679.js +1 -0
  123. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/refresh/route-13be4cfc17a5f679.js +1 -0
  124. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/status/route-13be4cfc17a5f679.js +1 -0
  125. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/[id]/route-13be4cfc17a5f679.js +1 -0
  126. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/route-13be4cfc17a5f679.js +1 -0
  127. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/health/route-13be4cfc17a5f679.js +1 -0
  128. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/learnings/route-13be4cfc17a5f679.js +1 -0
  129. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/logs/stream/route-13be4cfc17a5f679.js +1 -0
  130. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/cancel/route-13be4cfc17a5f679.js +1 -0
  131. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/signal/route-13be4cfc17a5f679.js +1 -0
  132. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/start/route-13be4cfc17a5f679.js +1 -0
  133. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/status/route-13be4cfc17a5f679.js +1 -0
  134. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/[id]/route-13be4cfc17a5f679.js +1 -0
  135. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/route-13be4cfc17a5f679.js +1 -0
  136. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/providers/route-13be4cfc17a5f679.js +1 -0
  137. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/complete/route-13be4cfc17a5f679.js +1 -0
  138. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/route-13be4cfc17a5f679.js +1 -0
  139. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/stage-prompts/route-13be4cfc17a5f679.js +1 -0
  140. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/[commentId]/route-13be4cfc17a5f679.js +1 -0
  141. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/route-13be4cfc17a5f679.js +1 -0
  142. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/heartbeat/route-13be4cfc17a5f679.js +1 -0
  143. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/history/route-13be4cfc17a5f679.js +1 -0
  144. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/logs/route-13be4cfc17a5f679.js +1 -0
  145. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/restart-stage/route-13be4cfc17a5f679.js +1 -0
  146. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/route-13be4cfc17a5f679.js +1 -0
  147. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/route-13be4cfc17a5f679.js +1 -0
  148. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/stream/route-13be4cfc17a5f679.js +1 -0
  149. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/user-settings/route-13be4cfc17a5f679.js +1 -0
  150. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/nodes/route-13be4cfc17a5f679.js +1 -0
  151. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/route-13be4cfc17a5f679.js +1 -0
  152. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/route-13be4cfc17a5f679.js +1 -0
  153. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/callback/route-13be4cfc17a5f679.js +1 -0
  154. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/device/{page-8d1b32d4a1b98d8f.js → page-903c045ac7fbfd1c.js} +1 -1
  155. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/dashboard/{page-f12cc2e8800728f7.js → page-ea6ccecbfa743b53.js} +1 -1
  156. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/layout-6b46da9e6091abb3.js +1 -0
  157. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/{page-8465be2213d5814e.js → page-7357b68f3783a0b4.js} +1 -1
  158. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/tasks/page-ec17b64371f48524.js +1 -0
  159. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/page-6c545e9e5f5f66bc.js +1 -0
  160. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/css/ea93fda1b0bdd3b9.css +1 -0
  161. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/worker/index.js +93 -1
  162. package/lib/cli/cloud/prompts.js +6 -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/{nwJhRz_Iis8sU5igg53Oe → 24myOUbvbiDvyX6evcbZU}/_buildManifest.js +0 -0
  211. /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{nwJhRz_Iis8sU5igg53Oe → 24myOUbvbiDvyX6evcbZU}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{1290:()=>{},1402:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{default:function(){return y},handleClientScriptLoad:function(){return p},initScriptLoader:function(){return g}});let r=n(8140),a=n(9417),s=n(5155),o=r._(n(7650)),i=a._(n(2115)),l=n(2073),u=n(4681),c=n(4853),d=new Map,_=new Set,f=e=>{let{src:t,id:n,onLoad:r=()=>{},onReady:a=null,dangerouslySetInnerHTML:s,children:i="",strategy:l="afterInteractive",onError:c,stylesheets:f}=e,p=n||t;if(p&&_.has(p))return;if(d.has(t)){_.add(p),d.get(t).then(r,c);return}let g=()=>{a&&a(),_.add(p)},h=document.createElement("script"),y=new Promise((e,t)=>{h.addEventListener("load",function(t){e(),r&&r.call(this,t),g()}),h.addEventListener("error",function(e){t(e)})}).catch(function(e){c&&c(e)});s?(h.innerHTML=s.__html||"",g()):i?(h.textContent="string"==typeof i?i:Array.isArray(i)?i.join(""):"",g()):t&&(h.src=t,d.set(t,y)),(0,u.setAttributesFromProps)(h,e),"worker"===l&&h.setAttribute("type","text/partytown"),h.setAttribute("data-nscript",l),f&&(e=>{if(o.default.preinit)return e.forEach(e=>{o.default.preinit(e,{as:"style"})});{let t=document.head;e.forEach(e=>{let n=document.createElement("link");n.type="text/css",n.rel="stylesheet",n.href=e,t.appendChild(n)})}})(f),document.body.appendChild(h)};function p(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,c.requestIdleCallback)(()=>f(e))}):f(e)}function g(e){e.forEach(p),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");_.add(t)})}function h(e){let{id:t,src:n="",onLoad:r=()=>{},onReady:a=null,strategy:u="afterInteractive",onError:d,stylesheets:p,...g}=e,{updateScripts:h,scripts:y,getIsSsr:v,appDir:m,nonce:A}=(0,i.useContext)(l.HeadManagerContext);A=g.nonce||A;let b=(0,i.useRef)(!1);(0,i.useEffect)(()=>{let e=t||n;b.current||(a&&e&&_.has(e)&&a(),b.current=!0)},[a,t,n]);let E=(0,i.useRef)(!1);if((0,i.useEffect)(()=>{if(!E.current){if("afterInteractive"===u)f(e);else"lazyOnload"===u&&("complete"===document.readyState?(0,c.requestIdleCallback)(()=>f(e)):window.addEventListener("load",()=>{(0,c.requestIdleCallback)(()=>f(e))}));E.current=!0}},[e,u]),("beforeInteractive"===u||"worker"===u)&&(h?(y[u]=(y[u]||[]).concat([{id:t,src:n,onLoad:r,onReady:a,onError:d,...g,nonce:A}]),h(y)):v&&v()?_.add(t||n):v&&!v()&&f({...e,nonce:A})),m){if(p&&p.forEach(e=>{o.default.preinit(e,{as:"style"})}),"beforeInteractive"===u)if(!n)return g.dangerouslySetInnerHTML&&(g.children=g.dangerouslySetInnerHTML.__html,delete g.dangerouslySetInnerHTML),(0,s.jsx)("script",{nonce:A,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+JSON.stringify([0,{...g,id:t}])+")"}});else return o.default.preload(n,g.integrity?{as:"script",integrity:g.integrity,nonce:A,crossOrigin:g.crossOrigin}:{as:"script",nonce:A,crossOrigin:g.crossOrigin}),(0,s.jsx)("script",{nonce:A,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+JSON.stringify([n,{...g,id:t}])+")"}});"afterInteractive"===u&&n&&o.default.preload(n,g.integrity?{as:"script",integrity:g.integrity,nonce:A,crossOrigin:g.crossOrigin}:{as:"script",nonce:A,crossOrigin:g.crossOrigin})}return null}Object.defineProperty(h,"__nextScript",{value:!0});let y=h;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1483:(e,t,n)=>{"use strict";n.d(t,{O:()=>a});var r=n(7559);function a(){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(){}}}},4647:(e,t,n)=>{"use strict";n.d(t,{A:()=>u,AuthProvider:()=>l});var r=n(5155),a=n(2115),s=n(1483),o=n(5704);let i=(0,a.createContext)({user:null,loading:!0,signOut:async()=>{}});function l(e){let{children:t}=e,n="1"===o.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,[l,u]=(0,a.useState)(null),[c,d]=(0,a.useState)(!0);(0,a.useEffect)(()=>{if(n){u({id:o.env.NEXT_PUBLIC_AGX_BOARD_USER_ID||"00000000-0000-0000-0000-000000000001",email:o.env.NEXT_PUBLIC_AGX_BOARD_USER_EMAIL||"local@agx.board",user_metadata:{name:o.env.NEXT_PUBLIC_AGX_BOARD_USER_NAME||"Local Board User",full_name:o.env.NEXT_PUBLIC_AGX_BOARD_USER_NAME||"Local Board User"},app_metadata:{},aud:"authenticated",created_at:new Date().toISOString()}),d(!1);return}let e=(0,s.O)();e.auth.getSession().then(e=>{var t,n;u(null!=(n=null==(t=e.data.session)?void 0:t.user)?n:null),d(!1)});let{data:{subscription:t}}=e.auth.onAuthStateChange((e,t)=>{var n;u(null!=(n=null==t?void 0:t.user)?n:null),d(!1)});return()=>t.unsubscribe()},[n]);let _=async()=>{if(n)return;let e=(0,s.O)();await e.auth.signOut(),u(null)};return(0,r.jsx)(i.Provider,{value:{user:l,loading:c,signOut:_},children:t})}function u(){return(0,a.useContext)(i)}},4853:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{cancelIdleCallback:function(){return r},requestIdleCallback:function(){return n}});let n="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},r="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6285:(e,t,n)=>{"use strict";n.d(t,{GoogleAnalytics:()=>i});var r=n(5155),a=n(8321);let s="G-DVQQG95LNL",o="https://www.googletagmanager.com/gtag/js?id=".concat(s);function i(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.default,{async:!0,src:o,strategy:"afterInteractive"}),(0,r.jsx)(a.default,{id:"google-analytics",strategy:"afterInteractive",dangerouslySetInnerHTML:{__html:"\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '".concat(s,"');\n ")}})]})}},7559:(e,t,n)=>{"use strict";n.d(t,{g:()=>a});var r=n(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 a={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"}},7950:(e,t,n)=>{"use strict";n.d(t,{PostHogAnalytics:()=>s});var r=n(5155),a=n(8321);function s(){return(0,r.jsx)(a.default,{id:"posthog-analytics",strategy:"afterInteractive",dangerouslySetInnerHTML:{__html:'\n !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||[]);\n posthog.init(\''.concat("phc_oBf1haYu4HKjYmUZpthQ4cUf9O3UKkDSOX675M7dRWW","', {\n api_host: '").concat("https://us.i.posthog.com","',\n person_profiles: 'identified_only',\n });\n ")}})}},8321:(e,t,n)=>{"use strict";n.d(t,{default:()=>a.a});var r=n(1402),a=n.n(r)},9582:(e,t,n)=>{Promise.resolve().then(n.t.bind(n,1290,23)),Promise.resolve().then(n.bind(n,4647)),Promise.resolve().then(n.bind(n,6285)),Promise.resolve().then(n.bind(n,7950))}},e=>{e.O(0,[1741,8441,1255,7358],()=>e(e.s=9582)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8419],{6190:(e,t,r)=>{Promise.resolve().then(r.bind(r,8354))},8354:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>g});var l=r(5155),a=r(2115);let n=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim()},o=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var s={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let i=(0,a.forwardRef)((e,t)=>{let{color:r="currentColor",size:l=24,strokeWidth:o=2,absoluteStrokeWidth:i,className:d="",children:c,iconNode:u,...p}=e;return(0,a.createElement)("svg",{ref:t,...s,width:l,height:l,stroke:r,strokeWidth:i?24*Number(o)/Number(l):o,className:n("lucide",d),...!c&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(p)&&{"aria-hidden":"true"},...p},[...u.map(e=>{let[t,r]=e;return(0,a.createElement)(t,r)}),...Array.isArray(c)?c:[c]])}),d=((e,t)=>{let r=(0,a.forwardRef)((r,l)=>{let{className:s,...d}=r;return(0,a.createElement)(i,{ref:l,iconNode:t,className:n("lucide-".concat(o(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),"lucide-".concat(e),s),...d})});return r.displayName=o(e),r})("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);var c=r(577),u=r(91),p=r(2325),m=r(6779),v=r(5826),f=r(2835);function g(e){var t,r;let{params:n}=e,{slug:o}=(0,a.use)(n),{tasks:s,isLoading:i,createTask:g,updateTask:w,deleteTask:h,completeTaskStage:j,cancelWorkflow:k,refetch:x,cancellingTaskId:y,fetchTask:C}=(0,c.si)({realtime:!0,project:o}),{projects:b}=(0,u.Y)(),{workflow:_,stages:N,stageConfig:A,isValidTransition:L,isLoading:S}=(0,p.mP)(),[T,E]=(0,a.useState)(null),[U,q]=(0,a.useState)(""),[D,M]=(0,a.useState)(!1),[O,F]=(0,a.useState)(!1),[R,W]=(0,a.useState)(null),[I,P]=(0,a.useState)(null),{comments:Z,addComment:$,deleteComment:z}=(0,c.LU)((null==T?void 0:T.id)||null),{learnings:B,addLearning:V}=(0,c.dF)((null==T?void 0:T.id)||void 0),Y=(0,a.useMemo)(()=>N.map(e=>{var t;let r=A[e],l=null==_||null==(t=_.nodes)?void 0:t.find(t=>t.name===e);return{id:e,label:(null==r?void 0:r.label)||e,icon:(null==r?void 0:r.icon)||"\uD83D\uDCCC",color:(null==r?void 0:r.color)||"var(--primary)",prompt:(null==l?void 0:l.prompt)||void 0}}),[N,A,_]),G=b.find(e=>e.slug===o),H=(0,a.useMemo)(()=>{if(!U.trim())return s;let e=U.toLowerCase();return s.filter(t=>(t.title||"").toLowerCase().includes(e)||(t.content||"").toLowerCase().includes(e))},[s,U]),J=(0,a.useCallback)(async(e,t)=>{t&&E(t);try{let t=await C(e);return E(t),t}catch(e){return console.error("Failed to load task details:",e),t||E(null),null!=t?t:null}},[C]),K=(0,a.useCallback)(async e=>{await J(e.id,e)},[J]),Q=(0,a.useCallback)(async e=>{var t,r;P({stage:e,project:null!=(t=null==G?void 0:G.slug)?t:null,project_id:null!=(r=null==G?void 0:G.id)?r:null})},[G]),X=(0,a.useCallback)(async e=>{var t,r;let l=(e.description||"").trim();if(!l)return;F(!0);let a=e.stage||(null==I?void 0:I.stage)||"ideation",n=(null==A||null==(t=A[a])?void 0:t.label)||a,o=(e.title||"").trim()||l.split("\n")[0].replace(/^#\s*/,"")||"New Task (".concat(n,")"),s=["status: ".concat("done"===a?"completed":"ideation"===a?"queued":"in_progress"),"stage: ".concat(a)],i=e.project_id&&b.find(t=>t.id===e.project_id)||e.project&&b.find(t=>t.slug===e.project)||G||null;i&&(s.push("project: ".concat(i.slug)),s.push("project_id: ".concat(i.id)),s.push("workflow_id: ".concat(i.workflow_id||p.ou))),e.provider&&s.push("provider: ".concat(e.provider)),e.model&&s.push("model: ".concat(e.model)),void 0!==e.swarm&&s.push("swarm: ".concat(e.swarm?"true":"false"));let d="---\n".concat(s.join("\n"),"\n---\n\n# ").concat(o,"\n\n").concat(l);try{let t=e.swarm?null!=(r=e.swarm_models)?r:[]:null,l=await g(d,t);P(null),await J(l.id,l)}catch(e){console.error("Failed to create task:",e)}finally{F(!1)}},[g,G,I,J,b,A]),ee=(0,a.useCallback)(async(e,t)=>{await w(e,t)},[w]),et=async e=>{T&&await $(e)},er=async(e,t,r)=>{var l,a;let n=(null==T||null==(a=T.project_context)||null==(l=a.project)?void 0:l.id)||(null==T?void 0:T.project_id)||(null==T?void 0:T.project)||void 0,o=null!=r?r:"global"===t?void 0:"task"===t?null==T?void 0:T.id:n;await V(e,t,o)},el=async e=>{T&&(E(t=>t?{...t,...e}:null),await w(T.id,e))};return i||S?(0,l.jsx)("div",{className:"h-full flex items-center justify-center",children:(0,l.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,l.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"}),(0,l.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading board..."})]})}):(0,l.jsxs)("div",{className:"h-full flex flex-col p-4",children:[(0,l.jsxs)("div",{className:"flex-shrink-0 mb-4 space-y-4",children:[(0,l.jsxs)("div",{className:"relative",children:[(0,l.jsx)(d,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--muted-foreground)]"}),(0,l.jsx)("input",{type:"text",placeholder:"Search",value:U,onChange:e=>q(e.target.value),className:"w-full pl-9 pr-4 py-2 bg-[var(--card-bg)] border border-[var(--border)] rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-[var(--primary)] focus:border-transparent transition-all"})]}),(0,l.jsx)(f.A,{tasks:H,onTaskClick:E,onStop:async e=>{await k({taskId:e}),await x()},onRetry:async e=>{await j({taskId:e,decision:"not_done",final_result:"Manual retry requested.",explanation:"Manual retry requested."})},cancellingTaskId:y})]}),(0,l.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:(0,l.jsx)(m.A,{tasks:H,onSelectTask:K,onTasksChange:()=>{},onTaskUpdate:ee,onAddTask:Q,stages:N,stageConfig:A,isValidTransition:L})}),T&&(0,l.jsx)(v.A,{task:T,comments:T?Z:[],learnings:B,projectContext:T.project_context,projects:b,stages:Y,onClose:()=>E(null),onAddComment:et,onDeleteComment:z,onAddLearning:er,onUpdate:el,onDelete:async()=>{await h(T.id),E(null)}}),I&&(0,l.jsx)(v.A,{task:{id:"draft",title:"",description:"",content:"",stage:I.stage,status:"done"===I.stage?"completed":"ideation"===I.stage?"queued":"in_progress",created_at:new Date().toISOString(),project:null!=(t=I.project)?t:null==G?void 0:G.slug,project_id:null!=(r=I.project_id)?r:null==G?void 0:G.id,provider:I.provider,model:I.model,swarm:I.swarm,swarm_models:I.swarm_models},comments:[],learnings:[],projectContext:null,projects:b,stages:Y,isDraft:!0,isCreating:O,onClose:()=>P(null),onAddComment:()=>{},onAddLearning:()=>{},onUpdate:async e=>{if(I){if(e.description||e.title)return void await X({...I,...e});P(t=>t?{...t,...e}:t)}}})]})}}},e=>{e.O(0,[5004,277,2619,650,9027,9719,2456,9337,8441,1255,7358],()=>e(e.s=6190)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8419],{6190:(e,t,r)=>{Promise.resolve().then(r.bind(r,8354))},8354:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>g});var l=r(5155),a=r(2115);let n=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim()},o=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var s={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let i=(0,a.forwardRef)((e,t)=>{let{color:r="currentColor",size:l=24,strokeWidth:o=2,absoluteStrokeWidth:i,className:d="",children:c,iconNode:u,...p}=e;return(0,a.createElement)("svg",{ref:t,...s,width:l,height:l,stroke:r,strokeWidth:i?24*Number(o)/Number(l):o,className:n("lucide",d),...!c&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(p)&&{"aria-hidden":"true"},...p},[...u.map(e=>{let[t,r]=e;return(0,a.createElement)(t,r)}),...Array.isArray(c)?c:[c]])}),d=((e,t)=>{let r=(0,a.forwardRef)((r,l)=>{let{className:s,...d}=r;return(0,a.createElement)(i,{ref:l,iconNode:t,className:n("lucide-".concat(o(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),"lucide-".concat(e),s),...d})});return r.displayName=o(e),r})("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);var c=r(577),u=r(91),p=r(2325),m=r(6779),v=r(5826),f=r(2835);function g(e){var t,r;let{params:n}=e,{slug:o}=(0,a.use)(n),{tasks:s,isLoading:i,createTask:g,updateTask:w,deleteTask:h,completeTaskStage:j,cancelWorkflow:k,refetch:x,cancellingTaskId:y,fetchTask:C}=(0,c.si)({realtime:!0,project:o}),{projects:b}=(0,u.Y)(),{workflow:_,stages:N,stageConfig:A,isValidTransition:L,isLoading:S}=(0,p.mP)(),[T,E]=(0,a.useState)(null),[U,q]=(0,a.useState)(""),[D,M]=(0,a.useState)(!1),[O,F]=(0,a.useState)(!1),[R,W]=(0,a.useState)(null),[I,P]=(0,a.useState)(null),{comments:Z,addComment:$,deleteComment:z}=(0,c.LU)((null==T?void 0:T.id)||null),{learnings:B,addLearning:V}=(0,c.dF)((null==T?void 0:T.id)||void 0),Y=(0,a.useMemo)(()=>N.map(e=>{var t;let r=A[e],l=null==_||null==(t=_.nodes)?void 0:t.find(t=>t.name===e);return{id:e,label:(null==r?void 0:r.label)||e,icon:(null==r?void 0:r.icon)||"\uD83D\uDCCC",color:(null==r?void 0:r.color)||"var(--primary)",prompt:(null==l?void 0:l.prompt)||void 0}}),[N,A,_]),G=b.find(e=>e.slug===o),H=(0,a.useMemo)(()=>{if(!U.trim())return s;let e=U.toLowerCase();return s.filter(t=>(t.title||"").toLowerCase().includes(e)||(t.content||"").toLowerCase().includes(e))},[s,U]),J=(0,a.useCallback)(async(e,t)=>{t&&E(t);try{let t=await C(e);return E(t),t}catch(e){return console.error("Failed to load task details:",e),t||E(null),null!=t?t:null}},[C]),K=(0,a.useCallback)(async e=>{await J(e.id,e)},[J]),Q=(0,a.useCallback)(async e=>{var t,r;P({stage:e,project:null!=(t=null==G?void 0:G.slug)?t:null,project_id:null!=(r=null==G?void 0:G.id)?r:null})},[G]),X=(0,a.useCallback)(async e=>{var t,r;let l=(e.description||"").trim();if(!l)return;F(!0);let a=e.stage||(null==I?void 0:I.stage)||"ideation",n=(null==A||null==(t=A[a])?void 0:t.label)||a,o=(e.title||"").trim()||l.split("\n")[0].replace(/^#\s*/,"")||"New Task (".concat(n,")"),s=["status: ".concat("done"===a?"completed":"ideation"===a?"queued":"in_progress"),"stage: ".concat(a)],i=e.project_id&&b.find(t=>t.id===e.project_id)||e.project&&b.find(t=>t.slug===e.project)||G||null;i&&(s.push("project: ".concat(i.slug)),s.push("project_id: ".concat(i.id)),s.push("workflow_id: ".concat(i.workflow_id||p.ou))),e.provider&&s.push("provider: ".concat(e.provider)),e.model&&s.push("model: ".concat(e.model)),void 0!==e.swarm&&s.push("swarm: ".concat(e.swarm?"true":"false"));let d="---\n".concat(s.join("\n"),"\n---\n\n# ").concat(o,"\n\n").concat(l);try{let t=e.swarm?null!=(r=e.swarm_models)?r:[]:null,l=await g(d,t);P(null),await J(l.id,l)}catch(e){console.error("Failed to create task:",e)}finally{F(!1)}},[g,G,I,J,b,A]),ee=(0,a.useCallback)(async(e,t)=>{await w(e,t)},[w]),et=async e=>{T&&await $(e)},er=async(e,t,r)=>{var l,a;let n=(null==T||null==(a=T.project_context)||null==(l=a.project)?void 0:l.id)||(null==T?void 0:T.project_id)||(null==T?void 0:T.project)||void 0,o=null!=r?r:"global"===t?void 0:"task"===t?null==T?void 0:T.id:n;await V(e,t,o)},el=async e=>{T&&(E(t=>t?{...t,...e}:null),await w(T.id,e))};return i||S?(0,l.jsx)("div",{className:"h-full flex items-center justify-center",children:(0,l.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,l.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"}),(0,l.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading board..."})]})}):(0,l.jsxs)("div",{className:"h-full flex flex-col p-4",children:[(0,l.jsxs)("div",{className:"flex-shrink-0 mb-4 space-y-4",children:[(0,l.jsxs)("div",{className:"relative",children:[(0,l.jsx)(d,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--muted-foreground)]"}),(0,l.jsx)("input",{type:"text",placeholder:"Search",value:U,onChange:e=>q(e.target.value),className:"w-full pl-9 pr-4 py-2 bg-[var(--card-bg)] border border-[var(--border)] rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-[var(--primary)] focus:border-transparent transition-all"})]}),(0,l.jsx)(f.A,{tasks:H,onTaskClick:E,onStop:async e=>{await k({taskId:e}),await x()},onRetry:async e=>{await j({taskId:e,decision:"not_done",final_result:"Manual retry requested.",explanation:"Manual retry requested."})},cancellingTaskId:y})]}),(0,l.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:(0,l.jsx)(m.A,{tasks:H,onSelectTask:K,onTasksChange:()=>{},onTaskUpdate:ee,onAddTask:Q,stages:N,stageConfig:A,isValidTransition:L})}),T&&(0,l.jsx)(v.A,{task:T,comments:T?Z:[],learnings:B,projectContext:T.project_context,projects:b,stages:Y,onClose:()=>E(null),onAddComment:et,onDeleteComment:z,onAddLearning:er,onUpdate:el,onDelete:async()=>{await h(T.id),E(null)}}),I&&(0,l.jsx)(v.A,{task:{id:"draft",title:"",description:"",content:"",stage:I.stage,status:"done"===I.stage?"completed":"ideation"===I.stage?"queued":"in_progress",created_at:new Date().toISOString(),project:null!=(t=I.project)?t:null==G?void 0:G.slug,project_id:null!=(r=I.project_id)?r:null==G?void 0:G.id,provider:I.provider,model:I.model,swarm:I.swarm,swarm_models:I.swarm_models},comments:[],learnings:[],projectContext:null,projects:b,stages:Y,isDraft:!0,isCreating:O,onClose:()=>P(null),onAddComment:()=>{},onAddLearning:()=>{},onUpdate:async e=>{if(I){if(e.description||e.title)return void await X({...I,...e});P(t=>t?{...t,...e}:t)}}})]})}}},e=>{e.O(0,[5004,277,2619,650,9027,5608,2456,9337,8441,1255,7358],()=>e(e.s=6190)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4382],{1986:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>c});var l=s(5155),a=s(2115),o=s(577),r=s(2888),n=s(5826),i=s(91),d=s(2325);function c(e){let{params:t}=e,{slug:s}=(0,a.use)(t),{tasks:c,isLoading:u,fetchTask:p,updateTask:m,deleteTask:x,createTask:g}=(0,o.si)({realtime:!0,project:s}),{projects:v}=(0,i.Y)(),{workflow:f,stages:h,stageConfig:b}=(0,d.mP)(),[j,N]=(0,a.useState)(null),[y,k]=(0,a.useState)(""),{comments:C,addComment:w,deleteComment:D}=(0,o.LU)((null==j?void 0:j.id)||null),{learnings:_,addLearning:q}=(0,o.dF)((null==j?void 0:j.id)||void 0),L=(0,a.useMemo)(()=>h.map(e=>{var t;let s=b[e],l=null==f||null==(t=f.nodes)?void 0:t.find(t=>t.name===e);return{id:e,label:(null==s?void 0:s.label)||e,icon:(null==s?void 0:s.icon)||"\uD83D\uDCCC",color:(null==s?void 0:s.color)||"var(--primary)",prompt:(null==l?void 0:l.prompt)||void 0}}),[h,b,f]),S=(0,a.useMemo)(()=>{if(!y)return c;let e=y.toLowerCase();return c.filter(t=>{var s,l;return(null==(s=t.title)?void 0:s.toLowerCase().includes(e))||(null==(l=t.description)?void 0:l.toLowerCase().includes(e))||t.id.toLowerCase().includes(e)})},[c,y]),A=(0,a.useCallback)(async e=>{try{let t=await p(e.id);N(t)}catch(t){console.error("Failed to load task details:",t),N(e)}},[p]),E=async e=>{j&&(N(t=>t?{...t,...e}:null),await m(j.id,e))},F=async e=>{j&&await w(e)},I=async(e,t,s)=>{var l,a;let o=(null==j||null==(a=j.project_context)||null==(l=a.project)?void 0:l.id)||(null==j?void 0:j.project_id)||(null==j?void 0:j.project)||void 0,r=null!=s?s:"global"===t?void 0:"task"===t?null==j?void 0:j.id:o;await q(e,t,r)};return(0,l.jsxs)("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[(0,l.jsx)("div",{className:"flex items-center gap-4 mb-6",children:(0,l.jsxs)("div",{className:"relative max-w-md w-full",children:[(0,l.jsx)("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none",children:(0,l.jsx)("span",{className:"text-gray-400",children:"\uD83D\uDD0D"})}),(0,l.jsx)("input",{type:"text",placeholder:"Search project tasks...",className:"input pl-10 w-full",value:y,onChange:e=>k(e.target.value)})]})}),(0,l.jsx)("div",{className:"flex-1 overflow-y-auto min-h-0 bg-[var(--card-bg)] rounded-xl border border-[var(--card-border)]",children:u?(0,l.jsx)("div",{className:"p-8 text-center text-[var(--muted-foreground)]",children:"Loading tasks..."}):0===c.length?(0,l.jsx)("div",{className:"p-12 text-center",children:(0,l.jsx)("p",{className:"text-[var(--muted-foreground)] mb-4",children:"No tasks found for this project."})}):(0,l.jsx)(r.A,{tasks:S,onSelectTask:A,onStatusChange:(e,t)=>m(e,{status:t})})}),j&&(0,l.jsx)(n.A,{task:j,comments:j?C:[],learnings:_,projectContext:j.project_context,projects:v,stages:L,onClose:()=>N(null),onAddComment:F,onDeleteComment:D,onAddLearning:I,onUpdate:E,onDelete:async()=>{await x(j.id),N(null)}})]})}},2888:(e,t,s)=>{"use strict";s.d(t,{A:()=>d});var l=s(5155),a=s(80);let o={queued:{className:"badge-status-queued",label:"Queued",dotColor:"bg-[var(--status-queued)]"},in_progress:{className:"badge-status-in_progress",label:"In Progress",dotColor:"bg-[var(--status-in-progress)]"},blocked:{className:"badge-status-blocked",label:"Blocked",dotColor:"bg-[var(--status-blocked)]"},completed:{className:"badge-status-completed",label:"Completed",dotColor:"bg-[var(--status-completed)]"},failed:{className:"badge-status-failed",label:"Failed",dotColor:"bg-[var(--status-failed)]"}},r={ideation:{icon:"\uD83D\uDCA1",label:"Ideation",prompt:"Research and scope. Define approach, estimate effort."},planning:{icon:"\uD83D\uDCCB",label:"Planning",prompt:"Create detailed plan with tasks, milestones, and dependencies."},execution:{icon:"\uD83D\uDCBB",label:"Execution",prompt:"Implement based on all the context/history/research/plan. Write clean, tested code."},verification:{icon:"\uD83E\uDDEA",label:"Verification",prompt:"Test thoroughly. Find edge cases. Fix bugs. Verify requirements are met."},done:{icon:"✅",label:"Done",prompt:"Task finished and shipped."}};function n(e){let{task:t,onClick:s,compact:n=!1,onStatusChange:i}=e;o[t.status||"queued"];let d=t.stage?r[t.stage]:null;return(0,l.jsxs)("div",{onClick:s,role:"button",tabIndex:0,onKeyDown:e=>"Enter"===e.key&&(null==s?void 0:s()),className:"group relative flex items-center gap-2 p-1.5 rounded-md \n hover:bg-[var(--item-hover-bg)] transition-colors cursor-pointer\n focus-visible:outline-2 focus-visible:outline-[var(--ring)] focus-visible:outline-offset-2\n ".concat("failed"===t.status?"bg-[var(--status-failed-bg)]":""),children:[(0,l.jsx)(a.A,{status:t.status||"queued",onStatusChange:i}),(0,l.jsxs)("div",{className:"flex-1 min-w-0 flex items-baseline gap-2",children:[(0,l.jsx)("h3",{className:"text-sm text-[var(--foreground)] truncate leading-tight\n ".concat("completed"===t.status?"text-[var(--muted-foreground)] line-through":"","\n "),children:t.title||"Untitled Task"}),(0,l.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)] opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap",children:[void 0!==t.priority&&(0,l.jsxs)("span",{className:0===t.priority?"text-[var(--primary)] font-bold":"",children:["P",t.priority]}),t.project&&(0,l.jsx)("span",{className:"max-w-[80px] truncate",children:t.project})]})]}),(0,l.jsx)("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:"failed"===t.status?(0,l.jsx)("span",{className:"text-[10px] text-[var(--status-failed)] font-bold",children:"FAILED"}):d&&(0,l.jsx)("span",{className:"text-[10px] opacity-40",children:d.icon})})]})}let i={in_progress:{title:"In Progress",icon:"\uD83D\uDD04",color:"var(--status-in-progress)",description:"Currently being worked on by the daemon"},blocked:{title:"Blocked",icon:"\uD83D\uDEA7",color:"var(--status-blocked)",description:"Waiting for input or resolution"},queued:{title:"Queued",icon:"\uD83D\uDCCB",color:"var(--status-queued)",description:"Ready to be picked up"},completed:{title:"Completed",icon:"✅",color:"var(--status-completed)",description:"Successfully finished"}};function d(e){let{tasks:t,onSelectTask:s,onStatusChange:a}=e;if(0===t.length)return(0,l.jsxs)("div",{className:"text-center py-20 animate-fade-in",children:[(0,l.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-[var(--card-bg)] border border-[var(--card-border)] mb-4",children:(0,l.jsx)("span",{className:"text-3xl",children:"\uD83D\uDCCB"})}),(0,l.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"No tasks yet"}),(0,l.jsx)("p",{className:"text-[var(--muted-foreground)] text-sm max-w-md mx-auto",children:"Create your first task to get started. Tasks will appear here organized by status."})]});let o=t.filter(e=>"in_progress"===e.status),r=t.filter(e=>"queued"===e.status),d=t.filter(e=>"blocked"===e.status),c=t.filter(e=>"completed"===e.status||"failed"===e.status),u=(e,t)=>{if(0===t.length)return null;let o=i[e];return(0,l.jsxs)("section",{className:"mb-8 animate-fade-in-up",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg",style:{backgroundColor:"color-mix(in srgb, ".concat(o.color," 10%, transparent)")},children:[(0,l.jsx)("span",{className:"text-lg",children:o.icon}),(0,l.jsx)("h3",{className:"text-sm font-semibold",style:{color:o.color},children:o.title}),(0,l.jsx)("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium",style:{backgroundColor:"color-mix(in srgb, ".concat(o.color," 15%, transparent)"),color:o.color},children:t.length})]}),(0,l.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] hidden sm:block",children:o.description})]}),(0,l.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:t.map((e,t)=>(0,l.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:"".concat(50*t,"ms")},children:(0,l.jsx)(n,{task:e,onClick:()=>null==s?void 0:s(e),onStatusChange:a?t=>a(e.id,t):void 0})},e.id))})]})};return(0,l.jsxs)("div",{children:[u("in_progress",o),u("blocked",d),u("queued",r),u("completed",c)]})}},9263:(e,t,s)=>{Promise.resolve().then(s.bind(s,1986))}},e=>{e.O(0,[5004,277,2619,650,5608,2456,8441,1255,7358],()=>e(e.s=9263)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[893],{63:(e,r,t)=>{"use strict";var s=t(7260);t.o(s,"usePathname")&&t.d(r,{usePathname:function(){return s.usePathname}}),t.o(s,"useRouter")&&t.d(r,{useRouter:function(){return s.useRouter}}),t.o(s,"useSearchParams")&&t.d(r,{useSearchParams:function(){return s.useSearchParams}})},1460:(e,r,t)=>{"use strict";t.d(r,{A:()=>m});var s=t(5155),a=t(2619),n=t.n(a),l=t(63),o=t(4647),i=t(91),d=t(2115);function c(e){let{children:r,fullWidth:t=!1,noFooter:a=!1}=e;(0,l.usePathname)(),(0,l.useRouter)();let c=(0,l.useSearchParams)(),{user:u,loading:m,signOut:x}=(0,o.A)(),{projects:p,isLoading:h}=(0,i.Y)(),b=null==c?void 0:c.get("project");return(0,d.useMemo)(()=>b?p.find(e=>e.slug===b):null,[p,b]),(0,s.jsxs)("div",{className:"h-screen flex flex-col overflow-hidden",children:[(0,s.jsx)("nav",{className:"flex-shrink-0 border-b border-[var(--card-border)] bg-[var(--card-bg)]/80 backdrop-blur-lg z-30",children:(0,s.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:(0,s.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,s.jsx)("div",{className:"flex items-center gap-8",children:(0,s.jsxs)(n(),{href:"/",className:"flex items-center gap-3 group",children:[(0,s.jsx)("div",{className:"w-8 h-8 rounded-lg bg-gradient-to-br from-[var(--primary)] to-[var(--accent)] flex items-center justify-center text-white font-bold text-sm shadow-lg shadow-[var(--primary)]/20 group-hover:shadow-[var(--primary)]/40 transition-shadow",children:"A"}),(0,s.jsx)("span",{className:"text-lg font-bold tracking-tight gradient-text hidden sm:block",children:"AGX Board"})]})}),(0,s.jsx)("div",{className:"flex items-center gap-3",children:(0,s.jsx)(n(),{href:"/settings",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Settings"})})]})})}),(0,s.jsx)("main",{className:"flex-1 min-h-0 flex flex-col ".concat(t?"p-0":"p-4 sm:p-6 lg:p-8 overflow-y-auto"),children:r}),!a&&(0,s.jsx)("footer",{className:"flex-shrink-0 border-t border-[var(--card-border)] bg-[var(--card-bg)]/50 py-4",children:(0,s.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center justify-between text-xs text-[var(--muted-foreground)]",children:[(0,s.jsx)("span",{children:"AGX Board • Autonomous Agent Orchestration"}),(0,s.jsx)("span",{className:"hidden sm:inline",children:"Built with Next.js + Db"})]})})]})}function u(e){return(0,s.jsx)(d.Suspense,{fallback:(0,s.jsx)("div",{className:"h-screen flex items-center justify-center bg-[var(--background)]",children:(0,s.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}),children:(0,s.jsx)(c,{...e})})}function m(e){let{children:r,fullWidth:t=!1,noFooter:a=!1}=e;return(0,s.jsx)(u,{fullWidth:t,noFooter:a,children:r})}},2888:(e,r,t)=>{"use strict";t.d(r,{A:()=>d});var s=t(5155),a=t(80);let n={queued:{className:"badge-status-queued",label:"Queued",dotColor:"bg-[var(--status-queued)]"},in_progress:{className:"badge-status-in_progress",label:"In Progress",dotColor:"bg-[var(--status-in-progress)]"},blocked:{className:"badge-status-blocked",label:"Blocked",dotColor:"bg-[var(--status-blocked)]"},completed:{className:"badge-status-completed",label:"Completed",dotColor:"bg-[var(--status-completed)]"},failed:{className:"badge-status-failed",label:"Failed",dotColor:"bg-[var(--status-failed)]"}},l={ideation:{icon:"\uD83D\uDCA1",label:"Ideation",prompt:"Research and scope. Define approach, estimate effort."},planning:{icon:"\uD83D\uDCCB",label:"Planning",prompt:"Create detailed plan with tasks, milestones, and dependencies."},execution:{icon:"\uD83D\uDCBB",label:"Execution",prompt:"Implement based on all the context/history/research/plan. Write clean, tested code."},verification:{icon:"\uD83E\uDDEA",label:"Verification",prompt:"Test thoroughly. Find edge cases. Fix bugs. Verify requirements are met."},done:{icon:"✅",label:"Done",prompt:"Task finished and shipped."}};function o(e){let{task:r,onClick:t,compact:o=!1,onStatusChange:i}=e;n[r.status||"queued"];let d=r.stage?l[r.stage]:null;return(0,s.jsxs)("div",{onClick:t,role:"button",tabIndex:0,onKeyDown:e=>"Enter"===e.key&&(null==t?void 0:t()),className:"group relative flex items-center gap-2 p-1.5 rounded-md \n hover:bg-[var(--item-hover-bg)] transition-colors cursor-pointer\n focus-visible:outline-2 focus-visible:outline-[var(--ring)] focus-visible:outline-offset-2\n ".concat("failed"===r.status?"bg-[var(--status-failed-bg)]":""),children:[(0,s.jsx)(a.A,{status:r.status||"queued",onStatusChange:i}),(0,s.jsxs)("div",{className:"flex-1 min-w-0 flex items-baseline gap-2",children:[(0,s.jsx)("h3",{className:"text-sm text-[var(--foreground)] truncate leading-tight\n ".concat("completed"===r.status?"text-[var(--muted-foreground)] line-through":"","\n "),children:r.title||"Untitled Task"}),(0,s.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)] opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap",children:[void 0!==r.priority&&(0,s.jsxs)("span",{className:0===r.priority?"text-[var(--primary)] font-bold":"",children:["P",r.priority]}),r.project&&(0,s.jsx)("span",{className:"max-w-[80px] truncate",children:r.project})]})]}),(0,s.jsx)("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:"failed"===r.status?(0,s.jsx)("span",{className:"text-[10px] text-[var(--status-failed)] font-bold",children:"FAILED"}):d&&(0,s.jsx)("span",{className:"text-[10px] opacity-40",children:d.icon})})]})}let i={in_progress:{title:"In Progress",icon:"\uD83D\uDD04",color:"var(--status-in-progress)",description:"Currently being worked on by the daemon"},blocked:{title:"Blocked",icon:"\uD83D\uDEA7",color:"var(--status-blocked)",description:"Waiting for input or resolution"},queued:{title:"Queued",icon:"\uD83D\uDCCB",color:"var(--status-queued)",description:"Ready to be picked up"},completed:{title:"Completed",icon:"✅",color:"var(--status-completed)",description:"Successfully finished"}};function d(e){let{tasks:r,onSelectTask:t,onStatusChange:a}=e;if(0===r.length)return(0,s.jsxs)("div",{className:"text-center py-20 animate-fade-in",children:[(0,s.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-[var(--card-bg)] border border-[var(--card-border)] mb-4",children:(0,s.jsx)("span",{className:"text-3xl",children:"\uD83D\uDCCB"})}),(0,s.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"No tasks yet"}),(0,s.jsx)("p",{className:"text-[var(--muted-foreground)] text-sm max-w-md mx-auto",children:"Create your first task to get started. Tasks will appear here organized by status."})]});let n=r.filter(e=>"in_progress"===e.status),l=r.filter(e=>"queued"===e.status),d=r.filter(e=>"blocked"===e.status),c=r.filter(e=>"completed"===e.status||"failed"===e.status),u=(e,r)=>{if(0===r.length)return null;let n=i[e];return(0,s.jsxs)("section",{className:"mb-8 animate-fade-in-up",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg",style:{backgroundColor:"color-mix(in srgb, ".concat(n.color," 10%, transparent)")},children:[(0,s.jsx)("span",{className:"text-lg",children:n.icon}),(0,s.jsx)("h3",{className:"text-sm font-semibold",style:{color:n.color},children:n.title}),(0,s.jsx)("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium",style:{backgroundColor:"color-mix(in srgb, ".concat(n.color," 15%, transparent)"),color:n.color},children:r.length})]}),(0,s.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] hidden sm:block",children:n.description})]}),(0,s.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:r.map((e,r)=>(0,s.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:"".concat(50*r,"ms")},children:(0,s.jsx)(o,{task:e,onClick:()=>null==t?void 0:t(e),onStatusChange:a?r=>a(e.id,r):void 0})},e.id))})]})};return(0,s.jsxs)("div",{children:[u("in_progress",n),u("blocked",d),u("queued",l),u("completed",c)]})}},4647:(e,r,t)=>{"use strict";t.d(r,{A:()=>d,AuthProvider:()=>i});var s=t(5155),a=t(2115),n=t(1483),l=t(5704);let o=(0,a.createContext)({user:null,loading:!0,signOut:async()=>{}});function i(e){let{children:r}=e,t="1"===l.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,[i,d]=(0,a.useState)(null),[c,u]=(0,a.useState)(!0);(0,a.useEffect)(()=>{if(t){d({id:l.env.NEXT_PUBLIC_AGX_BOARD_USER_ID||"00000000-0000-0000-0000-000000000001",email:l.env.NEXT_PUBLIC_AGX_BOARD_USER_EMAIL||"local@agx.board",user_metadata:{name:l.env.NEXT_PUBLIC_AGX_BOARD_USER_NAME||"Local Board User",full_name:l.env.NEXT_PUBLIC_AGX_BOARD_USER_NAME||"Local Board User"},app_metadata:{},aud:"authenticated",created_at:new Date().toISOString()}),u(!1);return}let e=(0,n.O)();e.auth.getSession().then(e=>{var r,t;d(null!=(t=null==(r=e.data.session)?void 0:r.user)?t:null),u(!1)});let{data:{subscription:r}}=e.auth.onAuthStateChange((e,r)=>{var t;d(null!=(t=null==r?void 0:r.user)?t:null),u(!1)});return()=>r.unsubscribe()},[t]);let m=async()=>{if(t)return;let e=(0,n.O)();await e.auth.signOut(),d(null)};return(0,s.jsx)(o.Provider,{value:{user:i,loading:c,signOut:m},children:r})}function d(){return(0,a.useContext)(o)}},7966:(e,r,t)=>{Promise.resolve().then(t.bind(t,9842))},9842:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>x});var s=t(5155),a=t(2115),n=t(63),l=t(1460);function o(e){var r;let{project:t,onEdit:a,onDelete:n,onClick:l,onManageTasks:o}=e,i=t.repos&&t.repos.length>0;return(0,s.jsxs)("div",{onClick:()=>null==l?void 0:l(t),className:"p-5 rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] shadow-sm space-y-4 transition-all\n ".concat(l?"cursor-pointer hover:border-[var(--primary)] hover:shadow-md active:scale-[0.99]":""),children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-lg font-semibold",children:t.name}),(0,s.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] tracking-wide uppercase",children:t.slug})]}),(0,s.jsxs)("div",{className:"flex flex-col items-end gap-2",children:[(0,s.jsxs)("span",{className:"text-[11px] font-semibold text-[var(--muted-foreground)]",children:["Updated ",new Date(t.updated_at).toLocaleDateString()]}),(a||n||o)&&(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[o&&(0,s.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),o(t)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] bg-[var(--background)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-all",children:"Tasks"}),a&&(0,s.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),a(t)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-all bg-[var(--background)]",children:"Edit"}),n&&(0,s.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),n(t)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] text-[var(--destructive)] hover:border-[var(--destructive)] transition-all bg-[var(--background)]",children:"Delete"})]})]})]}),t.description&&(0,s.jsx)("p",{className:"text-sm text-[var(--foreground)] line-clamp-2",children:t.description}),t.ci_cd_info&&(0,s.jsxs)("div",{className:"text-sm",children:[(0,s.jsx)("p",{className:"text-[var(--muted-foreground)] text-[12px] uppercase tracking-wide",children:"CI / CD"}),(0,s.jsx)("p",{className:"text-[14px] text-[var(--accent)] font-medium truncate",children:t.ci_cd_info})]}),t.metadata&&Object.keys(t.metadata).length>0&&(0,s.jsxs)("div",{className:"p-3 rounded-lg bg-[var(--muted)]/20 border border-dashed border-[var(--card-border)] space-y-1",children:[(0,s.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Metadata"}),(0,s.jsx)("div",{className:"space-y-1",children:Object.entries(null!=(r=t.metadata)?r:{}).filter(e=>{let[r]=e;return"undefined"!==r&&""!==r}).map(e=>{let[r,t]=e;return(0,s.jsxs)("div",{className:"text-[12px] text-[var(--muted-foreground)] flex justify-between",children:[(0,s.jsx)("span",{className:"font-semibold",children:r}),(0,s.jsx)("span",{className:"truncate text-right",children:"string"==typeof t?t:JSON.stringify(t)})]},r)})})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("span",{className:"text-[12px] uppercase tracking-wider text-[var(--muted-foreground)]",children:"Repositories"}),(0,s.jsx)("span",{className:"text-[12px] text-[var(--muted-foreground)]",children:i?"".concat(t.repos.length," connected"):"Unlinked"})]}),i?(0,s.jsxs)("div",{className:"mt-3 space-y-2",children:[t.repos.slice(0,2).map(e=>(0,s.jsxs)("div",{className:"p-2 rounded-lg border border-[var(--card-border)] bg-[var(--background)] text-[11px]",children:[(0,s.jsx)("div",{className:"font-semibold truncate",children:e.name}),e.path&&(0,s.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] truncate",children:e.path})]},e.id)),t.repos.length>2&&(0,s.jsxs)("p",{className:"text-[10px] text-center text-[var(--muted-foreground)]",children:["+ ",t.repos.length-2," more"]})]}):(0,s.jsx)("p",{className:"mt-3 text-[12px] text-[var(--muted-foreground)]",children:"No repositories added yet."})]})]})}var i=t(2888),d=t(577),c=t(91);let u={name:"",description:""},m={name:"",path:"",notes:""};function x(){let e=(0,n.useRouter)(),{projects:r,isLoading:t,error:i,refetch:d,createProject:x,updateProject:p,deleteProject:v}=(0,c.Y)(),f=function(){let[e,r]=(0,a.useState)(u),[t,s]=(0,a.useState)([m]),[n,l]=(0,a.useState)(!1),[o,i]=(0,a.useState)(null),d=(0,a.useCallback)((e,r,t)=>{s(s=>s.map((s,a)=>a===e?{...s,[r]:t}:s))},[]),c=(0,a.useCallback)(()=>{s(e=>[...e,{...m}])},[]),x=(0,a.useCallback)(e=>{s(r=>r.filter((r,t)=>t!==e))},[]),p=(0,a.useCallback)(()=>{r(u),s([m]),i(null)},[]),h=(0,a.useCallback)(e=>{r({name:e.name||"",description:e.description||""}),e.repos&&e.repos.length>0?s(e.repos.map(e=>({name:e.name||"",path:e.path||"",notes:e.notes||""}))):s([m]),i(null)},[]);return{form:e,setForm:r,repos:t,handleRepoChange:d,addRepo:c,removeRepo:x,resetForm:p,hydrateFromProject:h,isSubmitting:n,setIsSubmitting:l,formError:o,setFormError:i}}(),[g,j]=(0,a.useState)(null),[N,y]=(0,a.useState)(!1),[k,w]=(0,a.useState)(null),{form:C,repos:_,handleRepoChange:S,addRepo:A,removeRepo:P,resetForm:R,hydrateFromProject:D,isSubmitting:E,setIsSubmitting:L,formError:B,setFormError:I,setForm:O}=f,T=()=>{j(null),R(),y(!0)},U=e=>{j(e),D(e),y(!0)},F=(0,a.useCallback)(r=>{r.slug&&e.push("/projects/".concat(r.slug))},[e]),X=(0,a.useCallback)(e=>{w(e)},[]),q=(0,a.useCallback)(()=>{w(null)},[]),M=()=>{R(),y(!1),j(null)},G=async()=>{if(!C.name.trim())return void I("Project name is required");let e=_.find(e=>e.name.trim()&&!e.path.trim());if(e)return void I('Local path is required for repository "'.concat(e.name,'"'));I(null),L(!0);let r=function(e,r){let t=r.filter(e=>e.name.trim()&&e.path.trim()).map(e=>({name:e.name.trim(),path:e.path.trim(),notes:e.notes.trim()||void 0}));return{name:e.name.trim(),description:e.description.trim()||void 0,repos:t.length?t:void 0}}(C,_);try{g?await p(g.id,r):await x(r),M()}catch(e){I(e instanceof Error?e.message:"Failed to save project")}finally{L(!1)}},z=async e=>{if(window.confirm('Delete project "'.concat(e.name,'"? This cannot be undone.')))try{await v(e.id)}catch(e){alert(e instanceof Error?e.message:"Failed to delete project")}};return(0,s.jsx)(l.A,{children:(0,s.jsxs)("div",{className:"max-w-7xl mx-auto w-full flex flex-col min-h-full",children:[(0,s.jsxs)("header",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4 py-8",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:"Projects"}),(0,s.jsx)("p",{className:"text-[var(--muted-foreground)] mt-1",children:"Manage your projects and their repository contexts."})]}),(0,s.jsxs)("div",{className:"flex gap-3",children:[(0,s.jsx)("button",{onClick:d,className:"px-4 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] hover:border-[var(--primary)] transition-all text-sm font-medium",children:"Refresh"}),(0,s.jsx)("button",{onClick:T,className:"btn-primary px-6 py-2 shadow-lg shadow-[var(--primary)]/20",children:"+ New Project"})]})]}),t?(0,s.jsx)("div",{className:"flex-1 flex items-center justify-center py-20",children:(0,s.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,s.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"}),(0,s.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] animate-pulse",children:"Loading projects..."})]})}):0===r.length?(0,s.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center py-20 animate-fade-in",children:[(0,s.jsx)("div",{className:"w-24 h-24 rounded-3xl bg-[var(--card-bg)] border border-[var(--card-border)] flex items-center justify-center text-4xl mb-6 shadow-xl",children:"\uD83D\uDCC2"}),(0,s.jsx)("h2",{className:"text-2xl font-bold mb-2",children:"You have no projects"}),(0,s.jsx)("p",{className:"text-[var(--muted-foreground)] text-center max-w-sm mb-8 leading-relaxed",children:"Create your first project to start organizing your tasks and connecting your repositories."}),(0,s.jsx)("button",{onClick:T,className:"btn-primary px-8 py-3 text-lg shadow-xl shadow-[var(--primary)]/20",children:"Create a Project"})]}):(0,s.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 pb-20",children:r.map(e=>(0,s.jsx)(o,{project:e,onEdit:U,onDelete:z,onManageTasks:X,onClick:F},e.id))}),(0,s.jsx)(h,{isOpen:N,onClose:M,onSubmit:G,editingProject:g,form:C,repos:_,isSubmitting:E,formError:B,onFieldChange:(e,r)=>O(t=>({...t,[e]:r})),onRepoChange:S,onAddRepo:A,onRemoveRepo:P}),k&&(0,s.jsx)(b,{project:k,onClose:q})]})})}function p(e){let{form:r,repos:t,isSubmitting:a,onFieldChange:n,onRepoChange:l,onAddRepo:o,onRemoveRepo:i}=e;return(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsx)("div",{className:"grid gap-4",children:(0,s.jsxs)("label",{className:"space-y-1.5 block",children:[(0,s.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Project Name"}),(0,s.jsx)("input",{value:r.name,onChange:e=>n("name",e.target.value),className:"input w-full",placeholder:"e.g. AGX Cloud",disabled:a})]})}),(0,s.jsxs)("label",{className:"space-y-1.5 block",children:[(0,s.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Description"}),(0,s.jsx)("textarea",{value:r.description,onChange:e=>n("description",e.target.value),className:"input w-full h-24 resize-none",placeholder:"What is this project about?",disabled:a})]}),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] pb-2",children:[(0,s.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Repositories"}),(0,s.jsx)("button",{type:"button",onClick:o,className:"text-xs font-semibold text-[var(--primary)] hover:underline",disabled:a,children:"+ Add Repository"})]}),(0,s.jsx)("div",{className:"space-y-4",children:t.map((e,r)=>(0,s.jsxs)("div",{className:"p-4 rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 space-y-3 relative group",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("span",{className:"text-xs font-bold text-[var(--foreground)] uppercase",children:["Repo #",r+1]}),t.length>1&&(0,s.jsx)("button",{type:"button",onClick:()=>i(r),className:"text-xs font-semibold text-[var(--destructive)] hover:underline",disabled:a,children:"Remove"})]}),(0,s.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,s.jsx)("input",{value:e.name,onChange:e=>l(r,"name",e.target.value),placeholder:"Name (e.g. Frontend)",className:"input text-sm",disabled:a}),(0,s.jsx)("input",{value:e.path,onChange:e=>l(r,"path",e.target.value),placeholder:"Local path (mandatory)",className:"input text-sm",disabled:a}),(0,s.jsx)("div",{className:"md:col-span-2",children:(0,s.jsx)("input",{value:e.notes,onChange:e=>l(r,"notes",e.target.value),placeholder:"Notes/Instructions",className:"input text-sm w-full",disabled:a})})]})]},r))})]})]})}function h(e){let{isOpen:r,onClose:t,onSubmit:a,editingProject:n,form:l,repos:o,isSubmitting:i,formError:d,onFieldChange:c,onRepoChange:u,onAddRepo:m,onRemoveRepo:x}=e;return r?(0,s.jsx)("div",{className:"modal-backdrop p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&t(),children:(0,s.jsxs)("div",{className:"modal-content w-full max-w-4xl bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,s.jsxs)("div",{className:"px-8 py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:"text-xl font-bold",children:n?"Edit Project":"Create New Project"}),(0,s.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:n?"Update your project settings and repositories.":"Define a new project and connect repositories."})]}),(0,s.jsx)("button",{onClick:t,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,s.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,s.jsxs)("div",{className:"flex-1 overflow-y-auto p-8",children:[(0,s.jsx)(p,{form:l,repos:o,isSubmitting:i,onFieldChange:c,onRepoChange:u,onAddRepo:m,onRemoveRepo:x}),d&&(0,s.jsx)("div",{className:"mt-6 p-4 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:d})]}),(0,s.jsxs)("div",{className:"px-8 py-6 border-t border-[var(--card-border)] flex items-center justify-end gap-3 flex-shrink-0",children:[(0,s.jsx)("button",{onClick:t,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Cancel"}),(0,s.jsx)("button",{onClick:a,disabled:i,className:"btn-primary px-8 py-2 shadow-lg shadow-[var(--primary)]/20 min-w-[120px]",children:i?(0,s.jsxs)("span",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"spinner w-3 h-3 border-2 border-white/20 border-t-white"}),"Saving..."]}):n?"Save Changes":"Create Project"})]})]})}):null}function b(e){let{project:r,onClose:t}=e,{tasks:a,isLoading:n}=(0,d.si)({project:r.slug});return(0,s.jsx)("div",{className:"modal-backdrop p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&t(),children:(0,s.jsxs)("div",{className:"modal-content w-full max-w-5xl bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,s.jsxs)("div",{className:"px-8 py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("h2",{className:"text-xl font-bold",children:["Tasks for ",r.name]}),(0,s.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:"Viewing all tasks associated with this project."})]}),(0,s.jsx)("button",{onClick:t,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,s.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,s.jsx)("div",{className:"flex-1 overflow-y-auto p-8",children:n?(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center py-20",children:[(0,s.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full mb-4"}),(0,s.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading project tasks..."})]}):(0,s.jsx)(i.A,{tasks:a})}),(0,s.jsx)("div",{className:"px-8 py-6 border-t border-[var(--card-border)] flex justify-end flex-shrink-0",children:(0,s.jsx)("button",{onClick:t,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Close"})})]})})}}},e=>{e.O(0,[2619,5608,8441,1255,7358],()=>e(e.s=7966)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-200:oklch(88.5% .062 18.334);--color-red-500:oklch(63.7% .237 25.331);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-500:oklch(70.5% .213 47.604);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-blue-500:oklch(62.3% .214 259.815);--color-indigo-600:oklch(51.1% .262 276.966);--color-slate-200:oklch(92.9% .013 255.508);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-0\.5{top:calc(var(--spacing)*.5)}.top-1\/2{top:50%}.-right-1{right:calc(var(--spacing)*-1)}.right-0{right:calc(var(--spacing)*0)}.right-4{right:calc(var(--spacing)*4)}.right-8{right:calc(var(--spacing)*8)}.bottom-6{bottom:calc(var(--spacing)*6)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing)*0)}.left-0\.5{left:calc(var(--spacing)*.5)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing)*3)}.-z-10{z-index:calc(10*-1)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-1{margin:calc(var(--spacing)*1)}.m-4{margin:calc(var(--spacing)*4)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.my-6{margin-block:calc(var(--spacing)*6)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-12{margin-top:calc(var(--spacing)*12)}.mt-24{margin-top:calc(var(--spacing)*24)}.mt-auto{margin-top:auto}.-mr-1\.5{margin-right:calc(var(--spacing)*-1.5)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-7{margin-left:calc(var(--spacing)*7)}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.h-0\.5{height:calc(var(--spacing)*.5)}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-32{height:calc(var(--spacing)*32)}.h-64{height:calc(var(--spacing)*64)}.h-96{height:calc(var(--spacing)*96)}.h-\[85vh\]{height:85vh}.h-\[90vh\]{height:90vh}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-64{max-height:calc(var(--spacing)*64)}.max-h-\[70vh\]{max-height:70vh}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-\[100px\]{min-height:100px}.min-h-\[120px\]{min-height:120px}.min-h-\[150px\]{min-height:150px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-32{width:calc(var(--spacing)*32)}.w-48{width:calc(var(--spacing)*48)}.w-64{width:calc(var(--spacing)*64)}.w-72{width:calc(var(--spacing)*72)}.w-80{width:calc(var(--spacing)*80)}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[80px\]{max-width:80px}.max-w-\[100px\]{max-width:100px}.max-w-\[120px\]{max-width:120px}.max-w-\[140px\]{max-width:140px}.max-w-\[150px\]{max-width:150px}.max-w-\[160px\]{max-width:160px}.max-w-\[1200px\]{max-width:1200px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[120px\]{min-width:120px}.min-w-\[140px\]{min-width:140px}.min-w-\[280px\]{min-width:280px}.min-w-max{min-width:max-content}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1)}.-translate-x-1\/2,.translate-x-0{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0)}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4)}.translate-x-4,.translate-x-5{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-5{--tw-translate-x:calc(var(--spacing)*5)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-2{rotate:2deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.resize-none{resize:none}.resize-y{resize:vertical}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[1fr_1\.2fr_auto\]{grid-template-columns:1fr 1.2fr auto}.grid-cols-\[140px_1fr\]{grid-template-columns:140px 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing)*3)}.gap-y-1\.5{row-gap:calc(var(--spacing)*1.5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-\[var\(--card-border\)\]>:not(:last-child)){border-color:var(--card-border)}.truncate{text-overflow:ellipsis;white-space:nowrap}.overflow-hidden,.truncate{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-3{border-style:var(--tw-border-style);border-width:3px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-\[3px\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-\[color-mix\(in_srgb\,var\(--destructive\)_30\%\,transparent\)\]{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-\[color-mix\(in_srgb\,var\(--destructive\)_30\%\,transparent\)\]{border-color:color-mix(in srgb,var(--destructive)30%,transparent)}}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--card-border\)\]{border-color:var(--card-border)}.border-\[var\(--destructive\)\],.border-\[var\(--destructive\)\]\/20{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--destructive\)\]\/20{border-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.border-\[var\(--muted-foreground\)\]{border-color:var(--muted-foreground)}.border-\[var\(--primary\)\]{border-color:var(--primary)}.border-\[var\(--primary-muted\)\]{border-color:var(--primary-muted)}.border-\[var\(--status-blocked\)\],.border-\[var\(--status-blocked\)\]\/40{border-color:var(--status-blocked)}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--status-blocked\)\]\/40{border-color:color-mix(in oklab,var(--status-blocked)40%,transparent)}}.border-\[var\(--status-completed\)\]\/20{border-color:var(--status-completed)}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--status-completed\)\]\/20{border-color:color-mix(in oklab,var(--status-completed)20%,transparent)}}.border-\[var\(--status-failed\)\],.border-\[var\(--status-failed\)\]\/20{border-color:var(--status-failed)}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--status-failed\)\]\/20{border-color:color-mix(in oklab,var(--status-failed)20%,transparent)}}.border-\[var\(--status-failed\)\]\/40{border-color:var(--status-failed)}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--status-failed\)\]\/40{border-color:color-mix(in oklab,var(--status-failed)40%,transparent)}}.border-current{border-color:currentColor}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500)30%,transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-neutral-700{border-color:var(--color-neutral-700)}.border-red-200{border-color:var(--color-red-200)}.border-red-800{border-color:var(--color-red-800)}.border-transparent{border-color:#0000}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.border-t-\[var\(--primary\)\]{border-top-color:var(--primary)}.border-t-gray-600{border-top-color:var(--color-gray-600)}.border-t-transparent{border-top-color:#0000}.border-t-white{border-top-color:var(--color-white)}.bg-\[\#0b0f14\]{background-color:#0b0f14}.bg-\[\#24292e\]{background-color:#24292e}.bg-\[rgba\(255\,255\,255\,0\.8\)\]{background-color:#fffc}.bg-\[var\(--accent\)\]{background-color:var(--accent)}.bg-\[var\(--accent-muted\)\]{background-color:var(--accent-muted)}.bg-\[var\(--background\)\]{background-color:var(--background)}.bg-\[var\(--border\)\]{background-color:var(--border)}.bg-\[var\(--card-bg\)\],.bg-\[var\(--card-bg\)\]\/50{background-color:var(--card-bg)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--card-bg\)\]\/50{background-color:color-mix(in oklab,var(--card-bg)50%,transparent)}}.bg-\[var\(--card-bg\)\]\/60{background-color:var(--card-bg)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--card-bg\)\]\/60{background-color:color-mix(in oklab,var(--card-bg)60%,transparent)}}.bg-\[var\(--card-bg\)\]\/80{background-color:var(--card-bg)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--card-bg\)\]\/80{background-color:color-mix(in oklab,var(--card-bg)80%,transparent)}}.bg-\[var\(--card-border\)\]{background-color:var(--card-border)}.bg-\[var\(--column-bg\)\]{background-color:var(--column-bg)}.bg-\[var\(--column-header-bg\)\]{background-color:var(--column-header-bg)}.bg-\[var\(--destructive-muted\)\]{background-color:var(--destructive-muted)}.bg-\[var\(--item-hover-bg\)\]{background-color:var(--item-hover-bg)}.bg-\[var\(--muted\)\],.bg-\[var\(--muted\)\]\/10{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--muted\)\]\/10{background-color:color-mix(in oklab,var(--muted)10%,transparent)}}.bg-\[var\(--muted\)\]\/20{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--muted\)\]\/20{background-color:color-mix(in oklab,var(--muted)20%,transparent)}}.bg-\[var\(--muted\)\]\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--muted\)\]\/30{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.bg-\[var\(--muted\)\]\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--muted\)\]\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-\[var\(--muted-foreground\)\]\/30{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--muted-foreground\)\]\/30{background-color:color-mix(in oklab,var(--muted-foreground)30%,transparent)}}.bg-\[var\(--primary\)\],.bg-\[var\(--primary\)\]\/10{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--primary\)\]\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.bg-\[var\(--primary-muted\)\]{background-color:var(--primary-muted)}.bg-\[var\(--status-blocked\)\]{background-color:var(--status-blocked)}.bg-\[var\(--status-blocked-bg\)\]{background-color:var(--status-blocked-bg)}.bg-\[var\(--status-completed\)\]{background-color:var(--status-completed)}.bg-\[var\(--status-completed-bg\)\]{background-color:var(--status-completed-bg)}.bg-\[var\(--status-failed\)\]{background-color:var(--status-failed)}.bg-\[var\(--status-failed-bg\)\]{background-color:var(--status-failed-bg)}.bg-\[var\(--status-in-progress\)\]{background-color:var(--status-in-progress)}.bg-\[var\(--status-queued\)\]{background-color:var(--status-queued)}.bg-\[var\(--success\)\]{background-color:var(--success)}.bg-\[var\(--success-muted\)\]{background-color:var(--success-muted)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500)15%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-neutral-800{background-color:var(--color-neutral-800)}.bg-neutral-900{background-color:var(--color-neutral-900)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-900\/50{background-color:#82181a80}@supports (color:color-mix(in lab,red,red)){.bg-red-900\/50{background-color:color-mix(in oklab,var(--color-red-900)50%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.bg-white\/50{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.bg-white\/50{background-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab}.bg-gradient-to-br,.bg-gradient-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab}.bg-\[radial-gradient\(\#27272a_1px\,transparent_1px\)\]{background-image:radial-gradient(#27272a 1px,#0000 0)}.bg-\[url\(\'data\:image\/svg\+xml\;charset\=utf-8\,\%3Csvg\%20xmlns\%3D\%22http\%3A\%2F\%2Fwww\.w3\.org\%2F2000\%2Fsvg\%22\%20width\%3D\%2212\%22\%20height\%3D\%2212\%22\%20viewBox\%3D\%220\%200\%2024\%2024\%22\%20fill\%3D\%22none\%22\%20stroke\%3D\%22\%23888\%22\%20stroke-width\%3D\%222\%22\%3E\%3Cpath\%20d\%3D\%22M6\%209l6\%206\%206-6\%22\%2F\%3E\%3C\%2Fsvg\%3E\'\)\]{background-image:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23888%22%20stroke-width%3D%222%22%3E%3Cpath%20d%3D%22M6%209l6%206%206-6%22%2F%3E%3C%2Fsvg%3E)}.from-\[var\(--foreground\)\]{--tw-gradient-from:var(--foreground);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-\[var\(--primary\)\]{--tw-gradient-from:var(--primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-\[var\(--accent\)\]{--tw-gradient-to:var(--accent);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-\[var\(--muted-foreground\)\]{--tw-gradient-to:var(--muted-foreground);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.\[background-size\:16px_16px\]{background-size:16px 16px}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-\[right_0px_center\]{background-position:right 0 center}.bg-no-repeat{background-repeat:no-repeat}.p-0{padding:calc(var(--spacing)*0)}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-12{padding:calc(var(--spacing)*12)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-20{padding-block:calc(var(--spacing)*20)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-16{padding-top:calc(var(--spacing)*16)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-4{padding-right:calc(var(--spacing)*4)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pb-20{padding-bottom:calc(var(--spacing)*20)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-7{padding-left:calc(var(--spacing)*7)}.pl-9{padding-left:calc(var(--spacing)*9)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[14px\]{font-size:14px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--accent\)\]{color:var(--accent)}.text-\[var\(--destructive\)\],.text-\[var\(--destructive\)\]\/80{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.text-\[var\(--destructive\)\]\/80{color:color-mix(in oklab,var(--destructive)80%,transparent)}}.text-\[var\(--foreground\)\]{color:var(--foreground)}.text-\[var\(--muted-foreground\)\]{color:var(--muted-foreground)}.text-\[var\(--primary\)\]{color:var(--primary)}.text-\[var\(--status-blocked\)\]{color:var(--status-blocked)}.text-\[var\(--status-completed\)\]{color:var(--status-completed)}.text-\[var\(--status-failed\)\]{color:var(--status-failed)}.text-\[var\(--success\)\]{color:var(--success)}.text-black{color:var(--color-black)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-600{color:var(--color-emerald-600)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-green-400{color:var(--color-green-400)}.text-red-200{color:var(--color-red-200)}.text-red-500{color:var(--color-red-500)}.text-red-800{color:var(--color-red-800)}.text-slate-200{color:var(--color-slate-200)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab,red,red)){.text-white\/60{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-neutral-600::placeholder{color:var(--color-neutral-600)}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow-\[var\(--primary\)\]\/20{--tw-shadow-alpha:20%;--tw-shadow:var(--primary)}.shadow-\[var\(--primary\)\]\/20,.shadow-\[var\(--primary\)\]\/30{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[var\(--primary\)\]\/30{--tw-shadow-alpha:30%;--tw-shadow:var(--primary)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040)}.shadow-2xl,.shadow-inner{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.shadow-lg,.shadow-md{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.ring-1,.ring-2{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.shadow-orange-500\/20{--tw-shadow-color:#fe6e0033}@supports (color:color-mix(in lab,red,red)){.shadow-orange-500\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-orange-500)20%,transparent)var(--tw-shadow-alpha),transparent)}}.ring-\[var\(--primary\)\]{--tw-ring-color:var(--primary)}.ring-gray-300{--tw-ring-color:var(--color-gray-300)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ring-offset-\[var\(--background\)\]{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.grayscale{--tw-grayscale:grayscale(100%)}.filter,.grayscale{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg))}.backdrop-blur-lg,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md))}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:opacity-60:is(:where(.group):hover *){opacity:.6}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:shadow-\[var\(--primary\)\]\/40:is(:where(.group):hover *){--tw-shadow-alpha:40%;--tw-shadow:var(--primary);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.selection\:bg-\[var\(--primary\)\] ::selection{background-color:var(--primary)}.selection\:bg-\[var\(--primary\)\]::selection{background-color:var(--primary)}.selection\:text-\[var\(--primary-foreground\)\] ::selection{color:var(--primary-foreground)}.selection\:text-\[var\(--primary-foreground\)\]::selection{color:var(--primary-foreground)}.placeholder\:text-\[var\(--muted-foreground\)\]\/50::placeholder{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-\[var\(--muted-foreground\)\]\/50::placeholder{color:color-mix(in oklab,var(--muted-foreground)50%,transparent)}}.placeholder\:text-gray-400::placeholder{color:var(--color-gray-400)}.before\:pointer-events-none:before{content:var(--tw-content);pointer-events:none}.before\:float-left:before{content:var(--tw-content);float:left}.before\:h-0:before{content:var(--tw-content);height:calc(var(--spacing)*0)}.before\:text-\[var\(--muted-foreground\)\]:before{content:var(--tw-content);color:var(--muted-foreground)}.before\:content-\[attr\(data-placeholder\)\]:before{--tw-content:attr(data-placeholder);content:var(--tw-content)}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:border-\[color-mix\(in_srgb\,var\(--primary\)_30\%\,var\(--card-border\)\)\]:hover{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-\[color-mix\(in_srgb\,var\(--primary\)_30\%\,var\(--card-border\)\)\]:hover{border-color:color-mix(in srgb,var(--primary)30%,var(--card-border))}}.hover\:border-\[var\(--destructive\)\]:hover{border-color:var(--destructive)}.hover\:border-\[var\(--muted-foreground\)\]:hover{border-color:var(--muted-foreground)}.hover\:border-\[var\(--primary\)\]:hover,.hover\:border-\[var\(--primary\)\]\/30:hover{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-\[var\(--primary\)\]\/30:hover{border-color:color-mix(in oklab,var(--primary)30%,transparent)}}.hover\:border-\[var\(--primary-muted\)\]:hover{border-color:var(--primary-muted)}.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:bg-\[\#2f363d\]:hover{background-color:#2f363d}.hover\:bg-\[var\(--card-bg\)\]\/50:hover{background-color:var(--card-bg)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[var\(--card-bg\)\]\/50:hover{background-color:color-mix(in oklab,var(--card-bg)50%,transparent)}}.hover\:bg-\[var\(--card-border\)\]:hover{background-color:var(--card-border)}.hover\:bg-\[var\(--destructive\)\]\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[var\(--destructive\)\]\/10:hover{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.hover\:bg-\[var\(--destructive-muted\)\]:hover{background-color:var(--destructive-muted)}.hover\:bg-\[var\(--item-hover-bg\)\]:hover{background-color:var(--item-hover-bg)}.hover\:bg-\[var\(--muted\)\]:hover,.hover\:bg-\[var\(--muted\)\]\/20:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[var\(--muted\)\]\/20:hover{background-color:color-mix(in oklab,var(--muted)20%,transparent)}}.hover\:bg-\[var\(--muted\)\]\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[var\(--muted\)\]\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.hover\:bg-\[var\(--primary\)\]:hover,.hover\:bg-\[var\(--primary\)\]\/10:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[var\(--primary\)\]\/10:hover{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.hover\:bg-\[var\(--primary-dark\)\]:hover{background-color:var(--primary-dark)}.hover\:bg-\[var\(--primary-muted\)\]:hover{background-color:var(--primary-muted)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-white\/30:hover{background-color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/30:hover{background-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.hover\:text-\[var\(--destructive\)\]:hover{color:var(--destructive)}.hover\:text-\[var\(--foreground\)\]:hover{color:var(--foreground)}.hover\:text-\[var\(--primary\)\]:hover{color:var(--primary)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.hover\:shadow-lg:hover,.hover\:shadow-md:hover{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.hover\:shadow-black\/20:hover{--tw-shadow-color:#0003}@supports (color:color-mix(in lab,red,red)){.hover\:shadow-black\/20:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black)20%,transparent)var(--tw-shadow-alpha),transparent)}}}.focus\:border-\[var\(--primary\)\]:focus{border-color:var(--primary)}.focus\:border-transparent:focus{border-color:#0000}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-\[var\(--primary\)\]:focus,.focus\:ring-\[var\(--primary\)\]\/20:focus{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.focus\:ring-\[var\(--primary\)\]\/20:focus{--tw-ring-color:color-mix(in oklab,var(--primary)20%,transparent)}}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-indigo-600:focus{--tw-ring-color:var(--color-indigo-600)}.focus\:ring-white:focus{--tw-ring-color:var(--color-white)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus\:ring-inset:focus{--tw-ring-inset:inset}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-\[var\(--ring\)\]:focus-visible{outline-color:var(--ring)}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\:scale-\[0\.99\]:active{scale:.99}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\:block{display:block}.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-end{align-items:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:p-6{padding:calc(var(--spacing)*6)}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.sm\:leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}}@media (min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:flex{display:flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}}@media (min-width:64rem){.lg\:block{display:block}.lg\:hidden{display:none}.lg\:inline{display:inline}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:p-8{padding:calc(var(--spacing)*8)}.lg\:px-8{padding-inline:calc(var(--spacing)*8)}}}:root{--background:#f9fafb;--foreground:#111827;--primary:#f97316;--primary-foreground:#fff;--primary-hover:#ea580c;--primary-muted:#f973161a;--secondary:#fff;--secondary-foreground:#374151;--secondary-hover:#f3f4f6;--accent:#6366f1;--accent-foreground:#fff;--accent-hover:#4f46e5;--accent-muted:#6366f11a;--card-bg:#fff;--card-border:#e5e7eb;--card-hover-border:#d1d5db;--column-bg:#f3f4f6;--column-header-bg:#f3f4f6;--muted:#f3f4f6;--muted-foreground:#6b7280;--status-queued:#6b7280;--status-queued-bg:#f3f4f6;--status-queued-border:#e5e7eb;--status-in-progress:#f97316;--status-in-progress-bg:#fff7ed;--status-in-progress-border:#fed7aa;--status-blocked:#ef4444;--status-blocked-bg:#fef2f2;--status-blocked-border:#fecaca;--status-completed:#10b981;--status-completed-bg:#ecfdf5;--status-completed-border:#a7f3d0;--status-failed:#ef4444;--status-failed-bg:#fef2f2;--status-failed-border:#fecaca;--border:#e5e7eb;--input:#fff;--input-focus:#f97316;--ring:#f9731666;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--transition-fast:.15s cubic-bezier(.4,0,.2,1);--transition-base:.2s cubic-bezier(.4,0,.2,1);--transition-slow:.3s cubic-bezier(.4,0,.2,1);--radius-sm:.375rem;--radius:.5rem;--radius-md:.75rem;--radius-lg:.875rem;--radius-xl:1rem}body{background:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--card-border);transition:background var(--transition-fast);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--muted-foreground)}.scrollbar-thin::-webkit-scrollbar{width:4px}.scrollbar-thin::-webkit-scrollbar-thumb{background:var(--card-border);border-radius:2px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:var(--muted-foreground)}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.glass{-webkit-backdrop-filter:blur(10px);background:#18181bb3}.focus-ring:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ring);outline-offset:2px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.6}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(1turn)}}.animate-fade-in{animation:fade-in var(--transition-base)ease-out}.animate-fade-in-up{animation:fade-in-up var(--transition-slow)ease-out}.animate-slide-in-right{animation:slide-in-right var(--transition-slow)ease-out}.animate-scale-in{animation:scale-in var(--transition-base)ease-out}.animate-pulse-soft{animation:pulse-soft 2s ease-in-out infinite}.animate-shimmer{background:linear-gradient(90deg,var(--card-bg)0,var(--card-border)50%,var(--card-bg)100%);background-size:200% 100%;animation:shimmer 1.5s infinite}.animate-spin{animation:spin 1s linear infinite}.skeleton{background:linear-gradient(90deg,var(--card-bg)0,var(--card-border)50%,var(--card-bg)100%);border-radius:var(--radius);background-size:200% 100%;animation:shimmer 1.5s infinite}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);transition:all var(--transition-base)}.card:hover{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.card:hover{border-color:color-mix(in srgb,var(--primary)30%,var(--card-border))}}.card:hover{box-shadow:var(--shadow-md),0 0 0 1px var(--primary)}@supports (color:color-mix(in lab,red,red)){.card:hover{box-shadow:var(--shadow-md),0 0 0 1px color-mix(in srgb,var(--primary)10%,transparent)}}.card-interactive{cursor:pointer}.card-interactive:hover{box-shadow:var(--shadow-lg),0 0 20px -5px var(--primary);transform:translateY(-1px)}@supports (color:color-mix(in lab,red,red)){.card-interactive:hover{box-shadow:var(--shadow-lg),0 0 20px -5px color-mix(in srgb,var(--primary)20%,transparent)}}.card-interactive:active{transform:translateY(0)}.btn{border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;border:none;outline:none;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-foreground)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 0 20px -5px var(--primary)}.btn-secondary{background:var(--secondary-muted);color:var(--foreground);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--muted);border-color:var(--muted-foreground)}.btn-ghost{color:var(--muted-foreground);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--muted);color:var(--foreground)}.btn-destructive{background:var(--destructive-muted);color:var(--destructive)}.btn-destructive:hover:not(:disabled){background:var(--destructive);color:var(--destructive-foreground)}.badge{transition:all var(--transition-fast);border:1px solid #0000;border-radius:9999px;align-items:center;gap:.25rem;padding:.125rem .5rem;font-size:.625rem;font-weight:500;display:inline-flex}.badge-status-queued{background:var(--status-queued-bg);color:var(--status-queued);border-color:var(--status-queued-border)}.badge-status-in_progress{background:var(--status-in-progress-bg);color:var(--status-in-progress);border-color:var(--status-in-progress-border)}.badge-status-blocked{background:var(--status-blocked-bg);color:var(--status-blocked);border-color:var(--status-blocked-border)}.badge-status-failed{background:var(--status-failed-bg);color:var(--status-failed);border-color:var(--status-failed-border)}.badge-status-completed{background:var(--status-completed-bg);color:var(--status-completed);border-color:var(--status-completed-border)}.input{background:var(--background);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--foreground);transition:all var(--transition-fast);padding:.625rem .875rem;font-size:.875rem}.input:focus{border-color:var(--input-focus);box-shadow:0 0 0 3px var(--primary);outline:none}@supports (color:color-mix(in lab,red,red)){.input:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--primary)20%,transparent)}}.input::placeholder{color:var(--muted-foreground)}.kanban-column{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-xl);transition:all var(--transition-base)}.kanban-column-header{border-bottom:1px solid var(--card-border);background:var(--card-bg);border-radius:var(--radius-xl)var(--radius-xl)0 0;z-index:10;padding:.875rem 1rem;position:sticky;top:0}.kanban-column-content{min-height:200px;max-height:60vh;padding:.5rem;overflow-y:auto}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;animation:fade-in var(--transition-fast)ease-out;background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);animation:scale-in var(--transition-base)ease-out}.timeline-line{background:linear-gradient(to bottom,var(--card-border),transparent);width:2px;position:absolute;top:0;bottom:0;left:.5rem}.timeline-dot{background:var(--card-border);border:2px solid var(--card-bg);width:1rem;height:1rem;transition:all var(--transition-fast);border-radius:9999px;position:absolute;top:.375rem;left:0}.timeline-item:hover .timeline-dot{background:var(--primary);box-shadow:0 0 10px var(--primary)}@media (max-width:768px){.hide-mobile{display:none}.touch-target{min-width:44px;min-height:44px}}@media (min-width:769px){.hide-desktop{display:none}}.truncate-2{-webkit-line-clamp:2}.truncate-2,.truncate-3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.truncate-3{-webkit-line-clamp:3}.gradient-text{background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.spinner{border:2px solid var(--card-border);border-top-color:var(--primary);border-radius:50%;width:1.25rem;height:1.25rem;animation:spin .75s linear infinite}.spinner-lg{border-width:3px;width:2rem;height:2rem}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}
@@ -18851,6 +18851,33 @@ function isMissingRelationError(error, relation) {
18851
18851
  const message = typeof error.message === "string" ? error.message : "";
18852
18852
  return error.code === "42P01" || error.code === "PGRST205" || message.includes(`relation "${relation}" does not exist`) || message.includes(`Could not find the table 'agx.${relation}'`) || message.includes(`Could not find the table 'public.${relation}'`);
18853
18853
  }
18854
+ function getDbClient(client) {
18855
+ return client ?? createAdminDbClient();
18856
+ }
18857
+ function parseDependsOnValue(value) {
18858
+ const trimmed = value.trim();
18859
+ if (!trimmed) return [];
18860
+ try {
18861
+ const parsed = JSON.parse(trimmed);
18862
+ if (Array.isArray(parsed)) {
18863
+ return parsed.map((item) => String(item || "").trim()).filter(Boolean);
18864
+ }
18865
+ } catch {
18866
+ }
18867
+ return trimmed.split(",").map((item) => item.trim()).filter(Boolean);
18868
+ }
18869
+ function normalizeDependsOnInput(input) {
18870
+ if (!input) return [];
18871
+ let candidates;
18872
+ if (Array.isArray(input)) {
18873
+ candidates = input.map((item) => typeof item === "string" ? item : item === null || item === void 0 ? "" : String(item)).filter(Boolean);
18874
+ } else if (typeof input === "string") {
18875
+ candidates = parseDependsOnValue(input);
18876
+ } else {
18877
+ return [];
18878
+ }
18879
+ return Array.from(new Set(candidates.map((id) => id.trim()).filter(Boolean)));
18880
+ }
18854
18881
  function parseFrontmatter(markdown) {
18855
18882
  const match = markdown.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
18856
18883
  if (!match) {
@@ -18863,6 +18890,10 @@ function parseFrontmatter(markdown) {
18863
18890
  if (colonIndex > 0) {
18864
18891
  const key = line.slice(0, colonIndex).trim();
18865
18892
  const value = line.slice(colonIndex + 1).trim();
18893
+ if (key === "depends_on") {
18894
+ frontmatter[key] = parseDependsOnValue(value);
18895
+ continue;
18896
+ }
18866
18897
  if (value === "true") frontmatter[key] = true;
18867
18898
  else if (value === "false") frontmatter[key] = false;
18868
18899
  else if (/^\d+$/.test(value)) frontmatter[key] = parseInt(value);
@@ -18871,11 +18902,57 @@ function parseFrontmatter(markdown) {
18871
18902
  }
18872
18903
  return { frontmatter, body: match[2] };
18873
18904
  }
18905
+ async function ensureNoCircularDependency(taskId, dependsOn, client) {
18906
+ if (!taskId || !dependsOn?.length) return;
18907
+ const db = getDbClient(client);
18908
+ const visited = /* @__PURE__ */ new Set();
18909
+ const stack = [...dependsOn];
18910
+ while (stack.length) {
18911
+ const candidate = stack.pop();
18912
+ if (!candidate) continue;
18913
+ if (candidate === taskId) {
18914
+ throw new Error("Circular dependency detected");
18915
+ }
18916
+ if (visited.has(candidate)) continue;
18917
+ visited.add(candidate);
18918
+ const { data, error } = await db.from("tasks").select("depends_on").eq("id", candidate).maybeSingle();
18919
+ if (error) {
18920
+ if (error.code === "PGRST116" || error.code === "42703") continue;
18921
+ throw error;
18922
+ }
18923
+ if (!data) continue;
18924
+ const childDeps = Array.isArray(data.depends_on) ? data.depends_on : [];
18925
+ for (const next2 of childDeps) {
18926
+ if (next2 && !visited.has(next2)) {
18927
+ stack.push(next2);
18928
+ }
18929
+ }
18930
+ }
18931
+ }
18874
18932
  function extractTitle(markdown) {
18875
18933
  const { body } = parseFrontmatter(markdown);
18876
18934
  const match = body.match(/^#\s+(.+)$/m);
18877
18935
  return match ? match[1] : void 0;
18878
18936
  }
18937
+ async function ensureTaskDependencyState(task, userId) {
18938
+ const deps = task.depends_on;
18939
+ if (!deps || deps.length === 0) return;
18940
+ const db = createAdminDbClient();
18941
+ const { data: depTasks, error } = await db.from("tasks").select("id, status").in("id", deps);
18942
+ if (error) return;
18943
+ const allCompleted = depTasks?.every(
18944
+ (t) => t.status === "completed"
18945
+ ) ?? false;
18946
+ if (!allCompleted && task.status !== "blocked") {
18947
+ let q = db.from("tasks").update({ status: "blocked" }).eq("id", task.id);
18948
+ if (userId) q = q.eq("user_id", userId);
18949
+ await q;
18950
+ } else if (allCompleted && task.status === "blocked") {
18951
+ let q = db.from("tasks").update({ status: "queued" }).eq("id", task.id);
18952
+ if (userId) q = q.eq("user_id", userId);
18953
+ await q;
18954
+ }
18955
+ }
18879
18956
  async function getTask(id, userId) {
18880
18957
  const db = createAdminDbClient();
18881
18958
  let query = db.from("tasks").select("*").eq("id", id);
@@ -18896,6 +18973,11 @@ async function updateTask(id, content, userId, options) {
18896
18973
  const hasProvider = Object.prototype.hasOwnProperty.call(frontmatter, "provider");
18897
18974
  const hasModel = Object.prototype.hasOwnProperty.call(frontmatter, "model");
18898
18975
  const hasWorkflowId = Object.prototype.hasOwnProperty.call(frontmatter, "workflow_id");
18976
+ const hasDependsOnInFrontmatter = Object.prototype.hasOwnProperty.call(frontmatter, "depends_on");
18977
+ const dependsFromFrontmatter = normalizeDependsOnInput(frontmatter.depends_on);
18978
+ const dependsFromOptions = normalizeDependsOnInput(options?.dependsOn);
18979
+ const shouldUpdateDepends = options?.dependsOn !== void 0 || hasDependsOnInFrontmatter;
18980
+ const dependsOnForUpdate = options?.dependsOn !== void 0 ? dependsFromOptions : dependsFromFrontmatter;
18899
18981
  const updatePayload = {
18900
18982
  content,
18901
18983
  description: body,
@@ -18911,6 +18993,7 @@ async function updateTask(id, content, userId, options) {
18911
18993
  model: hasModel ? frontmatter.model : null,
18912
18994
  swarm,
18913
18995
  swarm_models: options?.swarmModels ?? void 0,
18996
+ ...shouldUpdateDepends ? { depends_on: dependsOnForUpdate.length ? dependsOnForUpdate : null } : {},
18914
18997
  updated_at: (/* @__PURE__ */ new Date()).toISOString(),
18915
18998
  // Working set fields
18916
18999
  current_plan: options?.currentPlan ?? void 0,
@@ -18922,6 +19005,9 @@ async function updateTask(id, content, userId, options) {
18922
19005
  delete updatePayload[key];
18923
19006
  }
18924
19007
  });
19008
+ if (shouldUpdateDepends) {
19009
+ await ensureNoCircularDependency(id, dependsOnForUpdate, db);
19010
+ }
18925
19011
  let query = db.from("tasks").update({
18926
19012
  ...updatePayload,
18927
19013
  version: db.rpc("increment_version")
@@ -18949,6 +19035,7 @@ async function updateTask(id, content, userId, options) {
18949
19035
  open_blockers,
18950
19036
  next_action,
18951
19037
  version,
19038
+ depends_on,
18952
19039
  ...fallbackPayload
18953
19040
  } = updatePayload;
18954
19041
  let fallbackQuery = db.from("tasks").update(fallbackPayload).eq("id", id);
@@ -18956,7 +19043,12 @@ async function updateTask(id, content, userId, options) {
18956
19043
  ({ data, error } = await fallbackQuery.select().single());
18957
19044
  }
18958
19045
  if (error) throw error;
18959
- return data;
19046
+ if (!data) {
19047
+ throw new Error("Failed to create task");
19048
+ }
19049
+ await ensureTaskDependencyState(data, userId);
19050
+ const refreshed = await getTask(data.id, userId);
19051
+ return refreshed || data;
18960
19052
  }
18961
19053
  async function getWorkflowNodes(workflowId) {
18962
19054
  const db = createAdminDbClient();
@@ -179,6 +179,11 @@ ${title}
179
179
  ${content}
180
180
  """
181
181
 
182
+ Target state evidence:
183
+ - Before reviewing git status or diff, first ask whether the target state already exists and fully satisfies the user request.
184
+ - Check the agent output and verification command logs for evidence (files, folders, config values, summaries) that the desired outcome is already in place, even if the diff is empty.
185
+ - If those signals show the target is already achieved and verification commands pass, treat the work as done without requiring new diffs; only rely on git status/diff when the target state is missing or unclear.
186
+
182
187
  Repo summary (git):
183
188
  Status (porcelain):
184
189
  ${statusShort || '(none)'}
@@ -197,7 +202,7 @@ Ignore unrelated working tree changes; focus on whether the user request is sati
197
202
  If not complete, provide the next smallest instruction for another iteration.
198
203
  Set "done": true when the user request is satisfied and the evidence supports it. Treat the stage objective/requirement as guidance, not a keyword checklist.
199
204
 
200
- IMPORTANT: Empty git status/diff does NOT mean work was not done. The target state may already exist from a previous run (files already created, code already written). Judge completion by whether the desired outcome exists, not by whether new changes were made in this iteration. If the agent output indicates the work is already complete and verification commands pass, mark as done.
205
+ IMPORTANT: Before you look at the git status/diff, first ask whether the target state already exists and the user request is satisfied. Check the agent output and verification command logs for evidence (files, folders, config values, summaries) that the outcome is already in place, even if the diff is empty. Treat that as "target achieved" and you may mark the stage done without requiring new diffs. Use git status/diff only when the target state is missing or unclear and you need to verify what changed to reach it. If verification commands pass and the evidence shows the desired result already exists, mark the work done.
201
206
 
202
207
  Output contract (strict): your response MUST be exactly one raw JSON object with this shape:
203
208
  {
@@ -234,4 +239,3 @@ Rules:
234
239
  }
235
240
 
236
241
  module.exports = { createCloudPromptHelpers };
237
-