@mndrk/agx 1.4.54 → 1.4.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/README.md +3 -1
  2. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/app-build-manifest.json +73 -66
  4. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/app-path-routes-manifest.json +6 -5
  5. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/build-manifest.json +2 -2
  6. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/prerender-manifest.json +15 -15
  7. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/routes-manifest.json +8 -0
  8. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page.js +9 -3
  9. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.html +2 -2
  11. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.rsc +17 -16
  12. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/audit/route_client-reference-manifest.js +1 -1
  13. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/[...nextauth]/route_client-reference-manifest.js +1 -1
  14. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/daemon-secret/route.js +1 -1
  15. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/daemon-secret/route_client-reference-manifest.js +1 -1
  16. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/device/code/route_client-reference-manifest.js +1 -1
  17. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/device/token/route_client-reference-manifest.js +1 -1
  18. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
  19. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  20. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/domains/[id]/route_client-reference-manifest.js +1 -1
  21. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/domains/route_client-reference-manifest.js +1 -1
  22. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  23. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/learnings/route.js +1 -1
  24. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/learnings/route_client-reference-manifest.js +1 -1
  25. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/logs/stream/route_client-reference-manifest.js +1 -1
  26. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  27. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route_client-reference-manifest.js +1 -1
  28. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +1 -1
  29. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/start/route_client-reference-manifest.js +1 -1
  30. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
  31. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/status/route_client-reference-manifest.js +1 -1
  32. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/route.js +1 -1
  33. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/route_client-reference-manifest.js +1 -1
  34. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/route.js +1 -1
  35. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  36. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  37. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/complete/route.js +1 -1
  38. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/complete/route_client-reference-manifest.js +1 -1
  39. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/route.js +1 -1
  40. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/route_client-reference-manifest.js +1 -1
  41. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/stage-prompts/route.js +1 -1
  42. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/stage-prompts/route_client-reference-manifest.js +1 -1
  43. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +1 -1
  44. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/[commentId]/route_client-reference-manifest.js +1 -1
  45. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/route.js +1 -1
  46. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/route_client-reference-manifest.js +1 -1
  47. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/heartbeat/route_client-reference-manifest.js +1 -1
  48. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/history/route.js +1 -1
  49. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/history/route_client-reference-manifest.js +1 -1
  50. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/route.js +1 -1
  51. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/route_client-reference-manifest.js +1 -1
  52. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/restart-stage/route.js +4 -0
  53. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/restart-stage/route.js.nft.json +1 -0
  54. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/restart-stage/route_client-reference-manifest.js +1 -0
  55. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/route.js +2 -2
  56. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
  57. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/route.js +1 -1
  58. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
  59. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/stream/route_client-reference-manifest.js +1 -1
  60. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/user-settings/route.js +1 -1
  61. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/user-settings/route_client-reference-manifest.js +1 -1
  62. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/[id]/nodes/route.js +1 -1
  63. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/[id]/nodes/route_client-reference-manifest.js +1 -1
  64. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/[id]/route.js +1 -1
  65. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/[id]/route_client-reference-manifest.js +1 -1
  66. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/route.js +1 -1
  67. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
  68. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/callback/route_client-reference-manifest.js +1 -1
  69. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device/page.js +12 -6
  70. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device/page_client-reference-manifest.js +1 -1
  71. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device.html +1 -1
  72. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device.rsc +21 -20
  73. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard/page.js +3 -3
  74. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard/page.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard/page_client-reference-manifest.js +1 -1
  76. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard.html +2 -2
  77. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard.rsc +21 -20
  78. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.html +2 -2
  79. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.rsc +25 -24
  80. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login/page.js +9 -3
  81. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login/page_client-reference-manifest.js +1 -1
  82. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login.html +2 -2
  83. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login.rsc +21 -20
  84. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page.js +9 -3
  85. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page_client-reference-manifest.js +1 -1
  86. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page.js +1 -1
  87. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  89. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/tasks/page.js +3 -3
  90. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/tasks/page.js.nft.json +1 -1
  91. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/tasks/page_client-reference-manifest.js +1 -1
  92. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/workflow/page.js +9 -3
  93. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/workflow/page_client-reference-manifest.js +1 -1
  94. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page.js +3 -3
  95. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  97. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.html +2 -2
  98. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.rsc +21 -20
  99. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page.js +9 -3
  100. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  101. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.html +2 -2
  102. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.rsc +21 -20
  103. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app-paths-manifest.json +6 -5
  104. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/3009.js +8 -8
  105. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/6158.js +19 -0
  106. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/6317.js +1 -1
  107. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/7143.js +1 -1
  108. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/instrumentation.js +1 -1
  109. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/middleware-manifest.json +5 -5
  110. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/404.html +1 -1
  111. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/500.html +1 -1
  112. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages-manifest.json +1 -1
  113. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.js +1 -1
  114. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.json +1 -1
  115. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/5608-674cd57e975c9b36.js +1 -0
  116. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/9337-f4cb4820efca03a1.js +1 -0
  117. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/audit/route-13be4cfc17a5f679.js +1 -0
  118. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/[...nextauth]/route-13be4cfc17a5f679.js +1 -0
  119. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/daemon-secret/route-13be4cfc17a5f679.js +1 -0
  120. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/code/route-13be4cfc17a5f679.js +1 -0
  121. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/token/route-13be4cfc17a5f679.js +1 -0
  122. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/refresh/route-13be4cfc17a5f679.js +1 -0
  123. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/status/route-13be4cfc17a5f679.js +1 -0
  124. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/[id]/route-13be4cfc17a5f679.js +1 -0
  125. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/route-13be4cfc17a5f679.js +1 -0
  126. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/health/route-13be4cfc17a5f679.js +1 -0
  127. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/learnings/route-13be4cfc17a5f679.js +1 -0
  128. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/logs/stream/route-13be4cfc17a5f679.js +1 -0
  129. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/cancel/route-13be4cfc17a5f679.js +1 -0
  130. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/signal/route-13be4cfc17a5f679.js +1 -0
  131. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/start/route-13be4cfc17a5f679.js +1 -0
  132. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/status/route-13be4cfc17a5f679.js +1 -0
  133. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/[id]/route-13be4cfc17a5f679.js +1 -0
  134. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/route-13be4cfc17a5f679.js +1 -0
  135. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/providers/route-13be4cfc17a5f679.js +1 -0
  136. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/complete/route-13be4cfc17a5f679.js +1 -0
  137. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/route-13be4cfc17a5f679.js +1 -0
  138. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/stage-prompts/route-13be4cfc17a5f679.js +1 -0
  139. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/[commentId]/route-13be4cfc17a5f679.js +1 -0
  140. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/route-13be4cfc17a5f679.js +1 -0
  141. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/heartbeat/route-13be4cfc17a5f679.js +1 -0
  142. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/history/route-13be4cfc17a5f679.js +1 -0
  143. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/logs/route-13be4cfc17a5f679.js +1 -0
  144. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/restart-stage/route-13be4cfc17a5f679.js +1 -0
  145. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/route-13be4cfc17a5f679.js +1 -0
  146. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/route-13be4cfc17a5f679.js +1 -0
  147. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/stream/route-13be4cfc17a5f679.js +1 -0
  148. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/user-settings/route-13be4cfc17a5f679.js +1 -0
  149. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/nodes/route-13be4cfc17a5f679.js +1 -0
  150. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/route-13be4cfc17a5f679.js +1 -0
  151. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/route-13be4cfc17a5f679.js +1 -0
  152. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/callback/route-13be4cfc17a5f679.js +1 -0
  153. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/device/{page-288ccb59b548ddcc.js → page-eb5b4fc6b9f60343.js} +1 -1
  154. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/dashboard/{page-f12cc2e8800728f7.js → page-ea6ccecbfa743b53.js} +1 -1
  155. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/layout-6b46da9e6091abb3.js +1 -0
  156. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/{page-8465be2213d5814e.js → page-7357b68f3783a0b4.js} +1 -1
  157. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/tasks/page-ec17b64371f48524.js +1 -0
  158. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/page-6c545e9e5f5f66bc.js +1 -0
  159. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/css/ea93fda1b0bdd3b9.css +1 -0
  160. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/worker/index.js +68 -0
  161. package/lib/cli/cloud/prompts.js +6 -2
  162. package/lib/cli/daemon.js +2 -2
  163. package/lib/cli/runCli.js +154 -36
  164. package/lib/cli/skillText.js +1 -1
  165. package/lib/cli/taskStatusService.js +183 -0
  166. package/package.json +1 -1
  167. package/templates/stack/postgres/init/001_agx_board_schema.sql +15 -0
  168. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/5519.js +0 -6
  169. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/9337-1475b21ebc625376.js +0 -1
  170. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/9719-26e3b61c21dd9194.js +0 -1
  171. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/audit/route-99c56d5659a15bdb.js +0 -1
  172. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/[...nextauth]/route-99c56d5659a15bdb.js +0 -1
  173. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/daemon-secret/route-99c56d5659a15bdb.js +0 -1
  174. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/code/route-99c56d5659a15bdb.js +0 -1
  175. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/device/token/route-99c56d5659a15bdb.js +0 -1
  176. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/refresh/route-99c56d5659a15bdb.js +0 -1
  177. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/auth/status/route-99c56d5659a15bdb.js +0 -1
  178. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/[id]/route-99c56d5659a15bdb.js +0 -1
  179. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/domains/route-99c56d5659a15bdb.js +0 -1
  180. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/health/route-99c56d5659a15bdb.js +0 -1
  181. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/learnings/route-99c56d5659a15bdb.js +0 -1
  182. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/logs/stream/route-99c56d5659a15bdb.js +0 -1
  183. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/cancel/route-99c56d5659a15bdb.js +0 -1
  184. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/signal/route-99c56d5659a15bdb.js +0 -1
  185. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/start/route-99c56d5659a15bdb.js +0 -1
  186. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/orchestrator/tasks/[taskId]/status/route-99c56d5659a15bdb.js +0 -1
  187. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/[id]/route-99c56d5659a15bdb.js +0 -1
  188. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/projects/route-99c56d5659a15bdb.js +0 -1
  189. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/providers/route-99c56d5659a15bdb.js +0 -1
  190. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/complete/route-99c56d5659a15bdb.js +0 -1
  191. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/queue/route-99c56d5659a15bdb.js +0 -1
  192. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/stage-prompts/route-99c56d5659a15bdb.js +0 -1
  193. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/[commentId]/route-99c56d5659a15bdb.js +0 -1
  194. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/comments/route-99c56d5659a15bdb.js +0 -1
  195. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/heartbeat/route-99c56d5659a15bdb.js +0 -1
  196. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/history/route-99c56d5659a15bdb.js +0 -1
  197. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/logs/route-99c56d5659a15bdb.js +0 -1
  198. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/[id]/route-99c56d5659a15bdb.js +0 -1
  199. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/route-99c56d5659a15bdb.js +0 -1
  200. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/tasks/stream/route-99c56d5659a15bdb.js +0 -1
  201. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/user-settings/route-99c56d5659a15bdb.js +0 -1
  202. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/nodes/route-99c56d5659a15bdb.js +0 -1
  203. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/[id]/route-99c56d5659a15bdb.js +0 -1
  204. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/api/workflows/route-99c56d5659a15bdb.js +0 -1
  205. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/callback/route-99c56d5659a15bdb.js +0 -1
  206. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/layout-449a81ecf8041b29.js +0 -1
  207. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/tasks/page-5813cf2efcd8d555.js +0 -1
  208. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/page-42969463f06ac3e8.js +0 -1
  209. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/css/6873fedf803c523e.css +0 -1
  210. /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{LM3I1rgG9I2QwtrZCfWRB → 2YqDwh6NlGhbNnhMVpOgd}/_buildManifest.js +0 -0
  211. /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{LM3I1rgG9I2QwtrZCfWRB → 2YqDwh6NlGhbNnhMVpOgd}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9337],{2835:(e,t,r)=>{r.d(t,{A:()=>o});var a=r(5155),s=r(2115);function o(e){let{tasks:t,onTaskClick:r,onStop:o,onRetry:n,cancellingTaskId:l}=e,i=(0,s.useMemo)(()=>t.filter(e=>"in_progress"===e.status),[t]),[d,c]=(0,s.useState)({});return((0,s.useEffect)(()=>{let e=()=>{let e={};i.forEach(t=>{let r=new Date(t.updated_at).getTime(),a=Math.floor((Date.now()-r)/6e4);a<1?e[t.id]="< 1m":a<60?e[t.id]="".concat(a,"m"):e[t.id]="".concat(Math.floor(a/60),"h")}),c(e)};e();let t=setInterval(e,6e4);return()=>clearInterval(t)},[i]),0===i.length)?null:(0,a.jsx)("div",{className:"w-full bg-[var(--card-bg)] border-b border-[var(--border)] mb-6 animate-fade-in-down",children:(0,a.jsx)("div",{className:"max-w-full overflow-x-auto no-scrollbar",children:(0,a.jsxs)("div",{className:"flex items-center gap-4 p-4 min-w-max",children:[(0,a.jsxs)("div",{className:"flex flex-col justify-center pr-4 border-r border-[var(--border)]",children:[(0,a.jsxs)("h3",{className:"text-sm font-bold text-[var(--foreground)] whitespace-nowrap flex items-center gap-2",children:[(0,a.jsxs)("span",{className:"relative flex h-2 w-2",children:[(0,a.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75"}),(0,a.jsx)("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-green-500"})]}),"Now Running"]}),(0,a.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] uppercase tracking-wider font-semibold",children:[i.length," Active"]})]}),(0,a.jsx)("div",{className:"flex items-center gap-3",children:i.map(e=>{let t=e.id===l;return(0,a.jsxs)("div",{onClick:()=>null==r?void 0:r(e),className:"group flex items-center gap-3 pl-3 pr-2 py-2 bg-[var(--background)] border border-[var(--border)] rounded-lg hover:border-[var(--primary)] transition-all cursor-pointer shadow-sm hover:shadow-md min-w-[280px]",children:[(0,a.jsx)("div",{className:"w-8 h-8 rounded-full bg-[var(--muted)] flex items-center justify-center text-xs font-bold border border-[var(--border)] shrink-0",children:e.provider?e.provider.substring(0,2).toUpperCase():"AG"}),(0,a.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between text-xs mb-0.5",children:[(0,a.jsxs)("span",{className:"font-semibold text-[var(--foreground)] truncate max-w-[120px]",children:[e.provider||"Agent"," ",e.model?"• ".concat(e.model):""]}),(0,a.jsx)("span",{className:"font-mono text-[var(--muted-foreground)]",children:d[e.id]||"0m"})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] truncate max-w-[140px]",children:e.title||e.content.substring(0,30)}),(0,a.jsx)("div",{className:"w-12 h-1 bg-[var(--muted)] rounded-full overflow-hidden",children:(0,a.jsx)("div",{className:"h-full bg-[var(--primary)] animate-pulse rounded-full",style:{width:"".concat(40*Math.random()+30,"%")}})})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity pl-2 border-l border-[var(--border)]",children:[(0,a.jsx)("button",{type:"button",onClick:r=>{r.stopPropagation(),t||null==o||o(e.id)},disabled:t,className:"p-1 rounded transition-all ".concat(t?"cursor-wait text-[var(--destructive)]/80 opacity-80":"hover:bg-[var(--destructive)]/10 text-[var(--muted-foreground)] hover:text-[var(--destructive)]"),title:t?"Stopping...":"Stop Task",children:t?(0,a.jsx)("span",{className:"inline-flex h-3 w-3 rounded-full border border-[var(--destructive)] border-t-transparent animate-spin"}):(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.jsx)("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}),(0,a.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),null==n||n(e.id)},className:"p-1 hover:bg-[var(--primary)]/10 text-[var(--muted-foreground)] hover:text-[var(--primary)] rounded",title:"Retry / Restart",children:(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,a.jsx)("path",{d:"M3 3v5h5"}),(0,a.jsx)("path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16"}),(0,a.jsx)("path",{d:"M16 21h5v-5"})]})})]})]},e.id)})})]})})})}},6779:(e,t,r)=>{r.d(t,{A:()=>p});var a=r(5155),s=r(2115),o=r(7787),n=r(9027),l=r(7587),i=r(80);let d={queued:{borderColor:"var(--status-queued)",bgColor:"var(--status-queued-bg)",textColor:"var(--status-queued)"},in_progress:{borderColor:"var(--status-in-progress)",bgColor:"var(--status-in-progress-bg)",textColor:"var(--status-in-progress)"},blocked:{borderColor:"var(--status-blocked)",bgColor:"var(--status-blocked-bg)",textColor:"var(--status-blocked)"},completed:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"},failed:{borderColor:"var(--status-failed)",bgColor:"var(--status-failed-bg)",textColor:"var(--status-failed)"},done:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"}};function c(e){let{task:t,onClick:r,onStatusChange:s}=e,{attributes:o,listeners:c,setNodeRef:u,transform:x,transition:m,isDragging:p}=(0,n.gl)({id:t.id}),v={transform:l.Ks.Transform.toString(x),transition:m};return d[t.status||"queued"],(0,a.jsxs)("div",{ref:u,...o,...c,onClick:r,className:"\n group relative flex items-center gap-2 p-1.5 rounded-md\n hover:bg-[var(--item-hover-bg)] transition-all duration-150 cursor-default\n focus-visible:outline-2 focus-visible:outline-[var(--ring)] focus-visible:outline-offset-2\n ".concat(p?"opacity-50 bg-[var(--item-hover-bg)]":"","\n "),style:{transform:v.transform,transition:v.transition,touchAction:"none"},children:[(0,a.jsx)(i.A,{status:t.status||"queued",onStatusChange:s}),(0,a.jsxs)("div",{className:"flex-1 min-w-0 flex items-center justify-between gap-3",children:[(0,a.jsx)("h4",{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,a.jsxs)("div",{className:"flex items-center gap-2 opacity-0 group-hover:opacity-100 transition-opacity",children:[void 0!==t.priority&&(0,a.jsxs)("span",{className:"text-[10px] font-mono ".concat(0===t.priority?"text-red-500 font-bold":"text-[var(--muted-foreground)]"),children:["P",t.priority]}),(0,a.jsx)("button",{className:"p-0.5 text-[var(--muted-foreground)] hover:text-[var(--foreground)] rounded",children:(0,a.jsx)("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,a.jsx)("path",{d:"M8.49999 4.10001V8.49999H12.9V9.49999H8.49999V13.9H7.49999V9.49999H3.1V8.49999H7.49999V4.10001H8.49999Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"})})})]})]})]})}let u={queued:{borderColor:"var(--status-queued)",bgColor:"var(--status-queued-bg)",textColor:"var(--status-queued)"},in_progress:{borderColor:"var(--status-in-progress)",bgColor:"var(--status-in-progress-bg)",textColor:"var(--status-in-progress)"},blocked:{borderColor:"var(--status-blocked)",bgColor:"var(--status-blocked-bg)",textColor:"var(--status-blocked)"},completed:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"},failed:{borderColor:"var(--status-failed)",bgColor:"var(--status-failed-bg)",textColor:"var(--status-failed)"},done:{borderColor:"var(--status-completed)",bgColor:"var(--status-completed-bg)",textColor:"var(--status-completed)"}};function x(e){let{task:t}=e,r=u[t.status||"queued"];return(0,a.jsxs)("div",{className:"w-72 p-3 bg-[var(--background)] rounded-lg border-l-[3px] shadow-2xl cursor-grabbing ring-2 ring-[var(--primary)] ring-offset-2 ring-offset-[var(--background)] rotate-2 scale-105",style:{borderLeftColor:r.borderColor},children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 mb-1.5",children:[(0,a.jsx)("div",{className:"flex items-center gap-1.5",children:void 0!==t.priority&&(0,a.jsxs)("span",{className:"text-[10px] font-mono font-semibold text-[var(--muted-foreground)] bg-[var(--muted)] px-1.5 py-0.5 rounded",children:["P",t.priority]})}),t.project&&(0,a.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 bg-[var(--accent-muted)] text-[var(--accent)] rounded-full font-medium truncate max-w-[100px]",children:t.project})]}),(0,a.jsx)("h4",{className:"text-sm font-medium line-clamp-2 text-[var(--primary)] leading-snug",children:t.title||"Untitled"}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-2 text-[10px] text-[var(--muted-foreground)]",children:[t.engine&&(0,a.jsxs)("span",{className:"flex items-center gap-1",children:[(0,a.jsx)("span",{children:"\uD83E\uDD16"}),(0,a.jsx)("span",{className:"capitalize",children:t.engine})]}),t.status&&(0,a.jsx)("span",{className:"px-1.5 py-0.5 rounded font-medium",style:{background:r.bgColor,color:r.textColor},children:t.status.replace("_"," ")})]})]})}var m=r(2325);function p(e){let{tasks:t,onTasksChange:r,onSelectTask:l,onTaskUpdate:i,onAddTask:d,stages:c,stageConfig:u,isValidTransition:p,isCreatingTask:f,creatingStage:g}=e,b=c||m.Tw,h=u||m.ls,j=p||((e,t)=>{if(e===t)return!0;let r=b.indexOf(e),a=b.indexOf(t);return a<r||a===r+1}),[y,w]=(0,s.useState)(null),[N,C]=(0,s.useState)(t);(0,s.useEffect)(()=>{y||C(t)},[t]);let k=(0,s.useMemo)(()=>{let e={};for(let t of b)e[t]=N.filter(e=>e.stage===t).sort((e,t)=>(e.priority||0)-(t.priority||0));return e},[N,b]),M=(0,o.FR)((0,o.MS)(o.AN,{activationConstraint:{distance:8}}));async function q(e){let{active:a,over:s}=e;if(w(null),!s)return void C(t);let o=a.id,l=s.id,d=N.find(e=>e.id===o);if(!d)return;let c=d.stage,u=d.priority||0;if(b.includes(l)){let e=k[c=l];u=e.length>0?Math.max(...e.map(e=>e.priority||0))+1:0}else{let e=N.find(e=>e.id===l);if(e){c=e.stage;let t=N.filter(e=>e.stage===c),a=t.findIndex(e=>e.id===o),s=t.findIndex(e=>e.id===l);if(-1!==a&&-1!==s&&a!==s){let e=(0,n.be)(t,a,s),o=N.map(t=>{let r=e.findIndex(e=>e.id===t.id);return -1!==r?{...t,priority:r}:t});C(o),null==r||r(o)}u=e.priority||0}}let x=t.find(e=>e.id===o);if(x&&!j(x.stage||"",c))return void C(t);if(i&&(d.stage!==c||d.priority!==u))try{await i(o,{stage:c,priority:u,status:"done"===c?"completed":"ideation"===c?"queued":"in_progress"}),null==r||r(N)}catch(e){console.error("Failed to update task:",e),C(t)}}return(0,a.jsxs)(o.Mp,{sensors:M,collisionDetection:o.y$,onDragStart:function(e){let t=N.find(t=>t.id===e.active.id);t&&w(t)},onDragOver:function(e){let t,{active:r,over:a}=e;if(!a)return;let s=r.id,o=a.id,n=N.find(e=>e.id===s);if(n){if(b.includes(o))t=o;else{let e=N.find(e=>e.id===o);if(!e)return;t=e.stage}if(n.stage!==t){if(!j(n.stage||"",t))return;C(e=>e.map(e=>e.id===s?{...e,stage:t}:e))}}},onDragEnd:q,children:[(0,a.jsx)("div",{className:"flex gap-4 overflow-x-auto pb-4 px-4 scrollbar-thin h-full items-stretch",children:b.map((e,t)=>(0,a.jsx)(v,{stage:e,tasks:k[e]||[],onSelectTask:l,onTaskUpdate:i,index:t,onAddTask:d,config:h[e]||{icon:"\uD83D\uDCCC",label:e,color:"var(--primary)"},isCreating:!!(f&&g===e)},e))}),(0,a.jsx)(o.Hd,{dropAnimation:{duration:200,easing:"cubic-bezier(0.18, 0.67, 0.6, 1.22)"},children:y?(0,a.jsx)(x,{task:y}):null})]})}function v(e){let{stage:t,tasks:r,onSelectTask:s,onTaskUpdate:l,index:i,onAddTask:d,config:u,isCreating:x=!1}=e,{setNodeRef:m,isOver:p}=(0,o.zM)({id:t}),v=!d||x;return(0,a.jsxs)("div",{ref:m,id:t,className:"\n kanban-column flex-shrink-0 w-80 \n flex flex-col h-full max-h-full\n bg-[var(--column-bg)] rounded-xl border border-[var(--border)]\n transition-colors duration-200\n ".concat(p?"ring-2 ring-[var(--primary)] ring-opacity-50 bg-[var(--primary-muted)]":"","\n "),style:{animationDelay:"".concat(50*i,"ms")},children:[(0,a.jsxs)("div",{className:"p-3 flex items-center justify-between border-b border-[var(--border)] bg-[var(--column-header-bg)] rounded-t-xl sticky top-0 z-10",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"font-semibold text-sm text-[var(--foreground)]",children:u.label}),(0,a.jsx)("span",{className:"px-2 py-0.5 rounded-full bg-white border border-[var(--border)] text-xs font-medium text-[var(--muted-foreground)] tabular-nums shadow-sm",children:r.length})]}),(0,a.jsx)("button",{onClick:()=>null==d?void 0:d(t),disabled:v,className:"\n w-8 h-8 rounded-lg flex items-center justify-center text-lg leading-none transition-all\n ".concat(v?"opacity-40 cursor-not-allowed text-[var(--muted-foreground)]":"hover:bg-[var(--primary)] hover:text-white hover:shadow-md text-[var(--muted-foreground)] active:scale-95","\n "),title:"Add task to ".concat(u.label),children:x?(0,a.jsx)("span",{className:"spinner w-3 h-3 border-2 border-[var(--muted-foreground)] border-t-[var(--primary)] rounded-full"}):"+"})]}),(0,a.jsx)(n.gB,{items:r.map(e=>e.id),strategy:n._G,children:(0,a.jsx)("div",{className:"flex-1 p-2 overflow-y-auto scrollbar-thin space-y-2.5",children:0===r.length?(0,a.jsxs)("div",{className:"h-full min-h-[120px] flex flex-col items-center justify-center border-2 border-dashed border-[var(--border)] rounded-lg m-1 opacity-60 hover:opacity-100 transition-opacity bg-[var(--background)]",children:[(0,a.jsx)("span",{className:"text-2xl mb-2 opacity-50 grayscale",children:u.icon}),(0,a.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] font-medium",children:"No tasks"})]}):r.map((e,t)=>(0,a.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:"".concat(30*t,"ms")},children:(0,a.jsx)(c,{task:e,onClick:()=>null==s?void 0:s(e),onStatusChange:l?t=>l(e.id,{status:t}):void 0})},e.id))})})]})}}}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[56,64,368,658,753,767,821,955,1014,1244,1327,1753,1810,1905,2772,2994,3443,4011,4020,4597,5015,5187,5223,6456,6523,6600,7127,7473,7543,8027,8616,8648,8658,8851,9419,9514],{4441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8008],{63:(e,t,r)=>{"use strict";var s=r(7260);r.o(s,"usePathname")&&r.d(t,{usePathname:function(){return s.usePathname}}),r.o(s,"useRouter")&&r.d(t,{useRouter:function(){return s.useRouter}}),r.o(s,"useSearchParams")&&r.d(t,{useSearchParams:function(){return s.useSearchParams}})},926:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{callServer:function(){return s.callServer},createServerReference:function(){return c.createServerReference},findSourceMapURL:function(){return n.findSourceMapURL}});let s=r(1209),n=r(5153),c=r(7197)},3788:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u});var s=r(5155),n=r(2115),c=r(63),a=r(926);let l=(0,a.createServerReference)("40a9a7d47980ede8a4fc784394e4d5d6802dce1b85",a.callServer,void 0,a.findSourceMapURL,"approveDeviceCode");function o(){let e=(0,c.useSearchParams)(),t=(0,c.useRouter)(),r=e.get("user_code")||"",[a,o]=(0,n.useState)(r),[u,i]=(0,n.useState)(!1),[d,f]=(0,n.useState)(null),[x,h]=(0,n.useState)(!1);(0,n.useEffect)(()=>{if(x){let e=setTimeout(()=>{t.push("/projects")},3e3);return()=>clearTimeout(e)}},[x,t]);let m=async e=>{e.preventDefault(),i(!0),f(null);try{let e=await l(a);if(!e.success)throw Error(e.error);h(!0)}catch(e){f(e.message)}finally{i(!1)}};return x?(0,s.jsx)("div",{className:"flex flex-col items-center justify-center min-h-screen bg-neutral-900 text-white p-4",children:(0,s.jsxs)("div",{className:"max-w-md w-full bg-neutral-800 p-8 rounded-xl shadow-2xl text-center",children:[(0,s.jsx)("h1",{className:"text-3xl font-bold mb-4 text-green-400",children:"Success!"}),(0,s.jsx)("p",{className:"text-gray-300 mb-2",children:"You have successfully authenticated your device."}),(0,s.jsx)("p",{className:"text-gray-400 text-sm mb-6 italic",children:"Redirecting to projects in a few seconds..."}),(0,s.jsx)("button",{onClick:()=>t.push("/projects"),className:"w-full py-3 px-4 bg-white text-black font-semibold rounded-lg hover:bg-gray-200 transition-colors",children:"Go to Projects"})]})}):(0,s.jsx)("div",{className:"flex flex-col items-center justify-center min-h-screen bg-neutral-900 text-white p-4",children:(0,s.jsxs)("div",{className:"max-w-md w-full bg-neutral-800 p-8 rounded-xl shadow-2xl",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold mb-6 text-center",children:"Connect Device"}),(0,s.jsx)("p",{className:"text-gray-400 mb-8 text-center text-sm",children:"Enter the code displayed on your device to authorize it."}),(0,s.jsxs)("form",{onSubmit:m,className:"space-y-6",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"code",className:"block text-sm font-medium text-gray-400 mb-2",children:"Device Code"}),(0,s.jsx)("input",{type:"text",id:"code",value:a,onChange:e=>o(e.target.value.toUpperCase()),placeholder:"BCDF-XXXX",className:"w-full px-4 py-3 bg-neutral-900 border border-neutral-700 rounded-lg text-white placeholder-neutral-600 focus:outline-none focus:ring-2 focus:ring-blue-500 font-mono text-center tracking-widest text-lg uppercase",required:!0})]}),d&&(0,s.jsx)("div",{className:"p-3 bg-red-900/50 border border-red-800 rounded-lg text-red-200 text-center text-sm",children:d}),(0,s.jsx)("button",{type:"submit",disabled:u,className:"w-full py-3 px-4 bg-white text-black font-semibold rounded-lg hover:bg-gray-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-white transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:u?"Verifying...":"Authorize Device"})]})]})})}function u(){return(0,s.jsx)(n.Suspense,{fallback:(0,s.jsx)("div",{children:"Loading..."}),children:(0,s.jsx)(o,{})})}},5109:(e,t,r)=>{Promise.resolve().then(r.bind(r,3788))}},e=>{e.O(0,[8441,1255,7358],()=>e(e.s=5109)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8008],{63:(e,t,r)=>{"use strict";var s=r(7260);r.o(s,"usePathname")&&r.d(t,{usePathname:function(){return s.usePathname}}),r.o(s,"useRouter")&&r.d(t,{useRouter:function(){return s.useRouter}}),r.o(s,"useSearchParams")&&r.d(t,{useSearchParams:function(){return s.useSearchParams}})},926:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{callServer:function(){return s.callServer},createServerReference:function(){return c.createServerReference},findSourceMapURL:function(){return n.findSourceMapURL}});let s=r(1209),n=r(5153),c=r(7197)},1669:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u});var s=r(5155),n=r(2115),c=r(63),l=r(926);let a=(0,l.createServerReference)("4066e41348e04568d8dfbe55397b36bee799629fd3",l.callServer,void 0,l.findSourceMapURL,"approveDeviceCode");function o(){let e=(0,c.useSearchParams)(),t=(0,c.useRouter)(),r=e.get("user_code")||"",[l,o]=(0,n.useState)(r),[u,i]=(0,n.useState)(!1),[d,f]=(0,n.useState)(null),[x,h]=(0,n.useState)(!1);(0,n.useEffect)(()=>{if(x){let e=setTimeout(()=>{t.push("/projects")},3e3);return()=>clearTimeout(e)}},[x,t]);let m=async e=>{e.preventDefault(),i(!0),f(null);try{let e=await a(l);if(!e.success)throw Error(e.error);h(!0)}catch(e){f(e.message)}finally{i(!1)}};return x?(0,s.jsx)("div",{className:"flex flex-col items-center justify-center min-h-screen bg-neutral-900 text-white p-4",children:(0,s.jsxs)("div",{className:"max-w-md w-full bg-neutral-800 p-8 rounded-xl shadow-2xl text-center",children:[(0,s.jsx)("h1",{className:"text-3xl font-bold mb-4 text-green-400",children:"Success!"}),(0,s.jsx)("p",{className:"text-gray-300 mb-2",children:"You have successfully authenticated your device."}),(0,s.jsx)("p",{className:"text-gray-400 text-sm mb-6 italic",children:"Redirecting to projects in a few seconds..."}),(0,s.jsx)("button",{onClick:()=>t.push("/projects"),className:"w-full py-3 px-4 bg-white text-black font-semibold rounded-lg hover:bg-gray-200 transition-colors",children:"Go to Projects"})]})}):(0,s.jsx)("div",{className:"flex flex-col items-center justify-center min-h-screen bg-neutral-900 text-white p-4",children:(0,s.jsxs)("div",{className:"max-w-md w-full bg-neutral-800 p-8 rounded-xl shadow-2xl",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold mb-6 text-center",children:"Connect Device"}),(0,s.jsx)("p",{className:"text-gray-400 mb-8 text-center text-sm",children:"Enter the code displayed on your device to authorize it."}),(0,s.jsxs)("form",{onSubmit:m,className:"space-y-6",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"code",className:"block text-sm font-medium text-gray-400 mb-2",children:"Device Code"}),(0,s.jsx)("input",{type:"text",id:"code",value:l,onChange:e=>o(e.target.value.toUpperCase()),placeholder:"BCDF-XXXX",className:"w-full px-4 py-3 bg-neutral-900 border border-neutral-700 rounded-lg text-white placeholder-neutral-600 focus:outline-none focus:ring-2 focus:ring-blue-500 font-mono text-center tracking-widest text-lg uppercase",required:!0})]}),d&&(0,s.jsx)("div",{className:"p-3 bg-red-900/50 border border-red-800 rounded-lg text-red-200 text-center text-sm",children:d}),(0,s.jsx)("button",{type:"submit",disabled:u,className:"w-full py-3 px-4 bg-white text-black font-semibold rounded-lg hover:bg-gray-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-white transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:u?"Verifying...":"Authorize Device"})]})]})})}function u(){return(0,s.jsx)(n.Suspense,{fallback:(0,s.jsx)("div",{children:"Loading..."}),children:(0,s.jsx)(o,{})})}},5109:(e,t,r)=>{Promise.resolve().then(r.bind(r,1669))}},e=>{e.O(0,[8441,1255,7358],()=>e(e.s=5109)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5105],{63:(e,t,a)=>{"use strict";var s=a(7260);a.o(s,"usePathname")&&a.d(t,{usePathname:function(){return s.usePathname}}),a.o(s,"useRouter")&&a.d(t,{useRouter:function(){return s.useRouter}}),a.o(s,"useSearchParams")&&a.d(t,{useSearchParams:function(){return s.useSearchParams}})},415:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>f});var s=a(5155),r=a(2115),l=a(63),n=a(1460),o=a(2888),d=a(6779),i=a(2835),c=a(5826),u=a(2325),m=a(8545);function x(e){let{onClose:t,workflowId:a}=e,{workflow:l,isLoading:n,refetch:o}=(0,u.mP)({workflowId:a}),{providers:d}=(0,m.u)(),[i,c]=(0,r.useState)([]),[x,p]=(0,r.useState)(null),[h,v]=(0,r.useState)(!1),[g,b]=(0,r.useState)({}),f=e=>u.ls[e]||{icon:"\uD83D\uDCCC",label:e.charAt(0).toUpperCase()+e.slice(1),color:"var(--primary)"};(0,r.useEffect)(()=>{let e=(Array.isArray(null==l?void 0:l.nodes)?l.nodes:[]).slice().sort((e,t)=>(e.position||0)-(t.position||0)).map(e=>{var t,a;return{id:e.id,name:e.name,label:e.label||e.name,prompt:e.prompt||"",provider:e.provider||"codex",model:e.model||"",swarm:!!(null==e||null==(t=e.metadata)?void 0:t.swarm),swarm_models:Array.isArray(null==e||null==(a=e.metadata)?void 0:a.swarm_models)?e.metadata.swarm_models:[],metadata:(null==e?void 0:e.metadata)&&"object"==typeof e.metadata?e.metadata:{}}});c(e),b({}),p(t=>t&&e.some(e=>e.id===t)?t:e.length?e[0].id:null)},[null==l?void 0:l.id,null==l?void 0:l.nodes]);let j=i.findIndex(e=>e.id===x),w=j>=0?i[j]:null,N=w?{...w,...g[w.id]||{}}:null,y=(e,t)=>{w&&b(a=>({...a,[w.id]:{...a[w.id]||{},[e]:t}}))},k=async()=>{if(l){v(!0);try{let e=i.map(e=>{let t={...e,...g[e.id]||{}};return{...t,metadata:{...t.metadata||{},swarm:!!t.swarm,swarm_models:t.swarm_models||[]}}}),a=await fetch("/api/workflows/".concat(l.id,"/nodes"),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({nodes:e.map(e=>({id:e.id,prompt:e.prompt,provider:e.provider,model:e.model,metadata:e.metadata}))})});if(!a.ok)throw Error("Failed to save workflow");await a.json(),o(),b({}),t()}catch(e){console.error("Error saving workflow:",e)}finally{v(!1)}}};return n&&!l?(0,s.jsx)("div",{className:"modal-backdrop p-4 flex items-center justify-center",children:(0,s.jsx)("span",{className:"spinner w-8 h-8 border-2 border-white/20 border-t-white"})}):(0,s.jsx)("div",{className:"modal-backdrop p-4",onClick:e=>e.target===e.currentTarget&&t(),children:(0,s.jsxs)("div",{className:"modal-content w-full max-w-5xl h-[85vh] flex flex-col animate-scale-in p-0 bg-[var(--card-bg)] overflow-hidden rounded-xl border border-[var(--card-border)] shadow-2xl",children:[(0,s.jsxs)("div",{className:"px-6 py-4 border-b border-[var(--border)] flex items-center justify-between bg-[var(--background)]",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("h2",{className:"text-lg font-bold flex items-center gap-2",children:[(0,s.jsx)("span",{children:"⚙️"})," Workflow Configuration"]}),(0,s.jsxs)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:["Editing: ",(0,s.jsx)("span",{className:"font-mono text-[var(--foreground)]",children:(null==l?void 0:l.name)||"Loading..."})]})]}),(0,s.jsx)("button",{onClick:t,className:"btn-ghost p-2 rounded",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 flex-1 overflow-hidden",children:[(0,s.jsxs)("div",{className:"w-64 bg-[var(--muted)]/30 border-r border-[var(--border)] overflow-y-auto p-4 flex flex-col gap-1",children:[(0,s.jsx)("div",{className:"flex items-center justify-between mb-2 px-2",children:(0,s.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Steps"})}),0===i.length&&(0,s.jsx)("div",{className:"text-sm text-[var(--muted-foreground)] px-2 italic",children:"No steps defined in this workflow."}),i.map(e=>{let t=f(e.name),a=!!g[e.id];return(0,s.jsxs)("button",{onClick:()=>p(e.id),className:"w-full text-left px-3 py-2.5 rounded-lg text-sm font-medium transition-all flex items-center gap-3 ".concat(x===e.id?"bg-[var(--card-bg)] text-[var(--foreground)] shadow-sm border border-[var(--border)]":"text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]/50"),children:[(0,s.jsx)("span",{className:"text-base",children:t.icon}),(0,s.jsx)("span",{className:"flex-1 truncate",children:e.label||t.label}),a&&(0,s.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--accent)]"})]},e.id)})]}),(0,s.jsxs)("div",{className:"flex-1 overflow-y-auto p-8 relative bg-[var(--card-bg)]",children:[N?(0,s.jsxs)("div",{className:"max-w-3xl mx-auto space-y-8 animate-fade-in",children:[(0,s.jsxs)("div",{className:"flex items-center gap-4 pb-6 border-b border-[var(--border)]",children:[(0,s.jsx)("div",{className:"w-12 h-12 rounded-xl bg-[var(--muted)]/50 flex items-center justify-center text-2xl shadow-inner",children:f(N.name).icon}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-xl font-bold",children:N.label}),(0,s.jsxs)("p",{className:"text-sm text-[var(--muted-foreground)] font-mono opacity-70",children:["ID: ",N.id," • Key: ",N.name]})]})]}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("label",{className:"text-sm font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"System Prompt"}),(0,s.jsx)("span",{className:"text-xs text-[var(--muted-foreground)] bg-[var(--muted)]/50 px-2 py-0.5 rounded",children:"Markdown Supported"})]}),(0,s.jsx)("textarea",{value:N.prompt||"",onChange:e=>y("prompt",e.target.value),className:"input w-full h-64 font-mono text-sm leading-relaxed resize-y p-4",placeholder:"Define the agent's behavior, constraints, and output format for this stage..."})]}),(0,s.jsxs)("div",{className:"p-6 rounded-xl bg-[var(--muted)]/20 border border-[var(--border)] space-y-6",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("h4",{className:"font-semibold flex items-center gap-2",children:[(0,s.jsx)("span",{children:"\uD83E\uDD16"})," Model Settings"]}),(0,s.jsxs)("div",{className:"flex items-center gap-3 bg-[var(--card-bg)] px-3 py-1.5 rounded-lg border border-[var(--border)]",children:[(0,s.jsx)("span",{className:"text-sm font-medium",children:"Swarm Mode"}),(0,s.jsx)("button",{onClick:()=>y("swarm",!N.swarm),className:"w-9 h-5 rounded-full transition-colors relative ".concat(N.swarm?"bg-[var(--primary)]":"bg-[var(--muted-foreground)]/30"),children:(0,s.jsx)("span",{className:"absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ".concat(N.swarm?"translate-x-4":"translate-x-0")})})]})]}),N.swarm?(0,s.jsxs)("div",{className:"space-y-4 animate-fade-in",children:[(0,s.jsxs)("div",{className:"flex justify-between items-center",children:[(0,s.jsx)("span",{className:"text-sm font-medium text-[var(--muted-foreground)]",children:"Swarm Models"}),(0,s.jsx)("button",{onClick:()=>{y("swarm_models",[...N.swarm_models||[],{provider:"gemini",model:""}])},className:"btn-secondary text-xs px-2 py-1",children:"+ Add Model"})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[0===(N.swarm_models||[]).length&&(0,s.jsx)("div",{className:"text-center py-8 border-2 border-dashed border-[var(--border)] rounded-lg text-sm text-[var(--muted-foreground)]",children:"No models configured for swarm. Add one to enable."}),(N.swarm_models||[]).map((e,t)=>(0,s.jsxs)("div",{className:"flex gap-2 items-center group",children:[(0,s.jsx)("select",{value:e.provider,onChange:e=>{let a=[...N.swarm_models||[]];a[t].provider=e.target.value,y("swarm_models",a)},className:"input text-sm py-1.5 w-32",children:d.map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id))}),(0,s.jsx)("input",{value:e.model,onChange:e=>{let a=[...N.swarm_models||[]];a[t].model=e.target.value,y("swarm_models",a)},placeholder:"Model name (e.g. gemini-1.5-pro)",className:"input text-sm py-1.5 flex-1"}),(0,s.jsx)("button",{onClick:()=>{y("swarm_models",(N.swarm_models||[]).filter((e,a)=>a!==t))},className:"text-[var(--muted-foreground)] hover:text-[var(--destructive)] hover:bg-[var(--destructive)]/10 p-1.5 rounded opacity-0 group-hover:opacity-100 transition-all",children:"✕"})]},t))]})]}):(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-4 animate-fade-in",children:[(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsx)("label",{className:"text-xs font-semibold text-[var(--muted-foreground)] uppercase",children:"Provider"}),(0,s.jsx)("select",{value:N.provider||"gemini",onChange:e=>y("provider",e.target.value),className:"input w-full text-sm py-2",children:d.map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id))})]}),(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsx)("label",{className:"text-xs font-semibold text-[var(--muted-foreground)] uppercase",children:"Model"}),(0,s.jsx)("input",{value:N.model||"",onChange:e=>y("model",e.target.value),placeholder:"e.g. gemini-2.0-flash",className:"input w-full text-sm py-2"})]})]})]})]}):null,!w&&i.length>0&&(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center h-full text-[var(--muted-foreground)]",children:[(0,s.jsx)("span",{className:"text-4xl mb-4 opacity-30",children:"\uD83D\uDC48"}),(0,s.jsx)("p",{children:"Select a step from the sidebar to configure it."})]})]})]}),(0,s.jsxs)("div",{className:"px-6 py-4 border-t border-[var(--border)] bg-[var(--background)] flex justify-end gap-3",children:[(0,s.jsx)("button",{onClick:t,className:"btn-ghost px-4 py-2",children:"Cancel"}),(0,s.jsxs)("button",{onClick:k,disabled:h||0===Object.keys(g).length,className:"btn-primary px-6 py-2 flex items-center gap-2",children:[h&&(0,s.jsx)("span",{className:"spinner w-4 h-4 border-2 border-white/20 border-t-white"}),h?"Saving...":"Save Changes"]})]})]})})}var p=a(577),h=a(91);function v(){return(0,s.jsxs)("div",{className:"p-4 rounded-xl bg-[var(--card-bg)] border border-[var(--card-border)]",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between mb-3",children:[(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsxs)("div",{className:"flex gap-2 mb-2",children:[(0,s.jsx)("div",{className:"skeleton h-4 w-8 rounded"}),(0,s.jsx)("div",{className:"skeleton h-4 w-16 rounded"})]}),(0,s.jsx)("div",{className:"skeleton h-5 w-3/4 rounded"})]}),(0,s.jsx)("div",{className:"skeleton h-5 w-20 rounded-full"})]}),(0,s.jsxs)("div",{className:"flex justify-between",children:[(0,s.jsx)("div",{className:"skeleton h-4 w-24 rounded"}),(0,s.jsx)("div",{className:"skeleton h-4 w-12 rounded"})]})]})}function g(){return(0,s.jsx)("div",{className:"flex gap-4 overflow-x-auto pb-4 px-4",children:[1,2,3,4,5].map(e=>(0,s.jsxs)("div",{className:"flex-shrink-0 w-72 kanban-column",children:[(0,s.jsx)("div",{className:"kanban-column-header",children:(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("div",{className:"skeleton h-6 w-6 rounded"}),(0,s.jsx)("div",{className:"skeleton h-5 w-20 rounded"})]}),(0,s.jsx)("div",{className:"skeleton h-5 w-6 rounded-full"})]})}),(0,s.jsx)("div",{className:"p-2 space-y-2",children:[1,2].map(e=>(0,s.jsxs)("div",{className:"p-3 rounded-lg bg-[var(--background)] border-l-2 border-[var(--card-border)]",children:[(0,s.jsx)("div",{className:"skeleton h-3 w-12 rounded mb-2"}),(0,s.jsx)("div",{className:"skeleton h-4 w-full rounded mb-2"}),(0,s.jsx)("div",{className:"skeleton h-3 w-20 rounded"})]},e))})]},e))})}function b(){var e,t,a,b;let f=(0,l.useRouter)(),j=(0,l.useSearchParams)(),w=(0,l.usePathname)(),N=(null==j?void 0:j.get("project"))||void 0,y=j.get("view")||"kanban",k=j.get("sort")||"newest",[C,_]=(0,r.useState)(y),[S,A]=(0,r.useState)(k),[T,D]=(0,r.useState)("all"),[E,L]=(0,r.useState)(""),[P,I]=(0,r.useState)(null),[B,R]=(0,r.useState)(null),[M,U]=(0,r.useState)(!1),[q,F]=(0,r.useState)(null),[O,X]=(0,r.useState)(!1),[z,W]=(0,r.useState)(""),[G,V]=(0,r.useState)(!1),[H,K]=(0,r.useState)("single"),[Q,Y]=(0,r.useState)("gemini"),[J,Z]=(0,r.useState)(""),[$,ee]=(0,r.useState)([]),[et,ea]=(0,r.useState)("gemini"),[es,er]=(0,r.useState)(""),[el,en]=(0,r.useState)(null),[eo,ed]=(0,r.useState)(!1),[ei,ec]=(0,r.useState)(!1),[eu,em]=(0,r.useState)(null),{providers:ex}=(0,m.u)();(0,r.useEffect)(()=>{let e=e=>{let t=e.target,a=["INPUT","TEXTAREA","SELECT"].includes(t.tagName)||t.isContentEditable;if("n"!==e.key||a||(e.preventDefault(),X(!0)),"/"===e.key&&!a){var s;e.preventDefault(),null==(s=document.getElementById("task-search"))||s.focus()}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]);let{tasks:ep,isLoading:eh,createTask:ev,updateTask:eg,deleteTask:eb,completeTaskStage:ef,cancelWorkflow:ej,refetch:ew,cancellingTaskId:eN,fetchTask:ey}=(0,p.si)({realtime:!0,project:N}),{projects:ek,isLoading:eC}=(0,h.Y)(),{comments:e_,addComment:eS,deleteComment:eA}=(0,p.LU)((null==P?void 0:P.id)||null),{learnings:eT,addLearning:eD}=(0,p.dF)((null==P?void 0:P.id)||void 0),{workflow:eE,stages:eL,stageConfig:eP,isValidTransition:eI,isLoading:eB}=(0,u.mP)(),eR=(0,r.useMemo)(()=>eL.map(e=>{var t;let a=eP[e],s=null==eE||null==(t=eE.nodes)?void 0:t.find(t=>t.name===e);return{id:e,label:(null==a?void 0:a.label)||e,icon:(null==a?void 0:a.icon)||"\uD83D\uDCCC",color:(null==a?void 0:a.color)||"var(--primary)",prompt:(null==s?void 0:s.prompt)||void 0}}),[eL,eP,eE]),eM=e=>{_(e);let t=new URLSearchParams(j);t.set("view",e),f.push("".concat(w,"?").concat(t.toString()))},eU=(0,r.useMemo)(()=>{let e=[...ep];if(E){let t=E.toLowerCase();e=e.filter(e=>{var a,s,r;return(null==(a=e.title)?void 0:a.toLowerCase().includes(t))||(null==(s=e.description)?void 0:s.toLowerCase().includes(t))||e.id.toLowerCase().includes(t)||(null==(r=e.project)?void 0:r.toLowerCase().includes(t))})}return"all"!==T&&(e="active"===T?e.filter(e=>"completed"!==e.status&&"failed"!==e.status):e.filter(e=>e.status===T)),e.sort((e,t)=>{switch(S){case"newest":return new Date(t.created_at).getTime()-new Date(e.created_at).getTime();case"oldest":return new Date(e.created_at).getTime()-new Date(t.created_at).getTime();case"priority":return(e.priority||0)-(t.priority||0);case"updated":return new Date(t.updated_at).getTime()-new Date(e.updated_at).getTime();default:return 0}}),e},[ep,E,T,S]),eq=(0,r.useCallback)(async(e,t)=>{t&&I(t);try{let t=await ey(e);return I(t),t}catch(e){return console.error("Failed to load task details:",e),t||I(null),null!=t?t:null}},[ey]),eF=(0,r.useCallback)(async e=>{await eq(e.id,e)},[eq]),eO=(0,r.useCallback)(async e=>{var t,a;let s=N?ek.find(e=>e.slug===N):null;R({stage:e,project:null!=(t=null==s?void 0:s.slug)?t:null,project_id:null!=(a=null==s?void 0:s.id)?a:null})},[N,ek]),eX=(0,r.useCallback)(async e=>{var t,a;let s=(e.description||"").trim();if(!s)return;ec(!0);let r=e.stage||(null==B?void 0:B.stage)||"ideation";em(r);let l="done"===r?"completed":"ideation"===r?"queued":"in_progress",n=(null==eP||null==(t=eP[r])?void 0:t.label)||r,o=(e.title||"").trim()||s.split("\n")[0].replace(/^#\s*/,"")||"New Task (".concat(n,")"),d=["status: ".concat(l),"stage: ".concat(r)],i=e.project_id&&ek.find(t=>t.id===e.project_id)||e.project&&ek.find(t=>t.slug===e.project)||(N?ek.find(e=>e.slug===N):null);i&&(d.push("project: ".concat(i.slug)),d.push("project_id: ".concat(i.id)),d.push("workflow_id: ".concat(i.workflow_id||u.ou))),e.provider&&d.push("provider: ".concat(e.provider)),e.model&&d.push("model: ".concat(e.model)),void 0!==e.swarm&&d.push("swarm: ".concat(e.swarm?"true":"false"));let c="---\n".concat(d.join("\n"),"\n---\n\n# ").concat(o,"\n\n").concat(s);try{let t=e.swarm?null!=(a=e.swarm_models)?a:[]:null,s=await ev(c,t);R(null),await eq(s.id,s)}catch(e){console.error("Failed to create task:",e)}finally{ec(!1),em(null)}},[ev,B,eq,N,ek,eP]),ez=(0,r.useCallback)(async(e,t)=>{await eg(e,t)},[eg]),eW=async e=>{let t=ep.find(t=>t.id===e);F(null);try{var a;await ej({taskId:e}),await ew(),F({type:"success",message:"Cancellation requested for ".concat((null==t?void 0:t.title)||(null==t||null==(a=t.content)?void 0:a.slice(0,30))||e,".")})}catch(s){console.error("Failed to stop task",s);let a=s instanceof Error?s.message:"unknown error";F({type:"error",message:"Unable to stop ".concat((null==t?void 0:t.title)||e,": ").concat(a,".")})}},eG=async e=>{try{await ef({taskId:e,decision:"not_done",final_result:"Manual retry requested.",explanation:"Manual retry requested."})}catch(e){console.error("Failed to retry task",e)}};(0,r.useEffect)(()=>{if(!q)return;let e=setTimeout(()=>F(null),5e3);return()=>clearTimeout(e)},[q]);let eV=async()=>{if(z.trim()&&!G){V(!0);try{var e;let t=["status: queued","stage: ideation"];"single"!==H&&t.push("swarm: true");let a=el||(N?null==(e=ek.find(e=>e.slug===N))?void 0:e.id:null);if(a){let e=ek.find(e=>e.id===a);e&&(t.push("project: ".concat(e.slug)),t.push("project_id: ".concat(e.id)),t.push("workflow_id: ".concat(e.workflow_id||u.ou)))}let s="---\n".concat(t.join("\n"),"\n---\n\n# ").concat(z,"\n");await ev(s,"swarm"===H?$:null),W(""),K("single"),Y("gemini"),Z(""),ee([]),ea("gemini"),er(""),X(!1),en(null)}catch(e){console.error("Failed to create task:",e)}finally{V(!1)}}},eH=async(e,t)=>{let a="---\n".concat(["status: ".concat("ideation"===t?"queued":"in_progress"),"stage: ".concat(t)].join("\n"),"\n---\n\n# ").concat(e,"\n");await ev(a,null),ed(!1)},eK=async e=>{P&&await eS(e)},eQ=async(e,t,a)=>{var s,r;let l=(null==P||null==(r=P.project_context)||null==(s=r.project)?void 0:s.id)||(null==P?void 0:P.project_id)||(null==P?void 0:P.project)||void 0,n=null!=a?a:"global"===t?void 0:"task"===t?null==P?void 0:P.id:l;await eD(e,t,n)},eY=async e=>{P&&(I(t=>t?{...t,...e}:null),await eg(P.id,e))};return(ep.length,ep.filter(e=>"in_progress"===e.status).length,ep.filter(e=>"queued"===e.status).length,ep.filter(e=>"completed"===e.status).length,(eh||eB)&&0===ep.length)?(0,s.jsxs)("div",{className:"h-full flex flex-col p-6 animate-pulse",children:[(0,s.jsxs)("div",{className:"flex justify-between items-center mb-8",children:[(0,s.jsx)("div",{className:"h-8 w-48 bg-[var(--card-border)] rounded"}),(0,s.jsx)("div",{className:"h-10 w-32 bg-[var(--card-border)] rounded"})]}),(0,s.jsx)("div",{className:"h-12 w-full bg-[var(--card-border)] rounded mb-8"}),"kanban"===C?(0,s.jsx)(g,{}):(0,s.jsx)("div",{className:"space-y-4",children:[1,2,3].map(e=>(0,s.jsx)(v,{},e))})]}):(0,s.jsx)(n.A,{fullWidth:!0,noFooter:!0,children:(0,s.jsxs)("div",{className:"flex flex-col h-full ".concat("kanban"===C?"max-w-full":"max-w-6xl mx-auto w-full px-4"),children:[(0,s.jsxs)("div",{className:"relative flex items-center justify-center gap-4 py-3 px-4 border-b border-[var(--border)] bg-[var(--background)] flex-shrink-0 z-20",children:[(0,s.jsxs)("div",{className:"flex items-center gap-4",children:[(0,s.jsxs)("div",{className:"relative w-80",children:[(0,s.jsx)("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none",children:(0,s.jsx)("svg",{className:"h-5 w-5 text-gray-400",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z",clipRule:"evenodd"})})}),(0,s.jsx)("input",{id:"task-search",type:"text",placeholder:"Search tasks... (/)",className:"block w-full rounded-md border-0 py-1.5 pl-10 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6 bg-white shadow-sm",value:E,onChange:e=>L(e.target.value)})]}),(0,s.jsxs)("div",{className:"flex items-center bg-gray-100 p-1 rounded-lg border border-gray-200",children:[(0,s.jsx)("button",{onClick:()=>eM("list"),className:"px-3 py-1 text-xs font-medium rounded transition-all ".concat("list"===C?"bg-white shadow-sm text-gray-900":"text-gray-500 hover:text-gray-700"),children:"List"}),(0,s.jsx)("button",{onClick:()=>eM("kanban"),className:"px-3 py-1 text-xs font-medium rounded transition-all ".concat("kanban"===C?"bg-white shadow-sm text-gray-900":"text-gray-500 hover:text-gray-700"),children:"Board"})]}),(0,s.jsxs)("button",{onClick:()=>U(!0),className:"flex items-center gap-2 px-3 py-1.5 text-xs font-medium text-gray-700 bg-white border border-gray-200 rounded-lg shadow-sm hover:bg-gray-50 transition-all",title:"Configure Workflow",children:[(0,s.jsx)("span",{className:"text-base leading-none",children:"⚙️"}),(0,s.jsx)("span",{children:"Workflow"})]})]}),(0,s.jsx)("div",{className:"absolute right-4 flex items-center gap-3"})]}),q&&(0,s.jsx)("div",{className:"px-4 mt-3",children:(0,s.jsx)("div",{role:"status",className:"rounded-xl px-4 py-2 text-xs font-semibold ".concat("success"===q.type?"bg-[var(--success-muted)] text-[var(--success)]":"bg-[var(--destructive-muted)] text-[var(--destructive)]"),children:q.message})}),(0,s.jsx)("div",{className:"flex-shrink-0 mt-2 px-4",children:(0,s.jsx)(i.A,{tasks:ep,onTaskClick:I,onStop:eW,onRetry:eG,cancellingTaskId:eN})}),(0,s.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden flex flex-col pt-2",children:"list"===C?(0,s.jsx)("div",{className:"overflow-y-auto h-full px-4",children:(0,s.jsx)(o.A,{tasks:eU,onSelectTask:eF})}):(0,s.jsx)(d.A,{tasks:eU,onSelectTask:eF,onTasksChange:()=>{},onTaskUpdate:ez,onAddTask:eO,stages:eL,stageConfig:eP,isValidTransition:eI,isCreatingTask:ei,creatingStage:eu})}),P&&(0,s.jsx)(c.A,{task:P,comments:P?e_:[],learnings:eT,projectContext:P.project_context,projects:ek,stages:eR,onClose:()=>I(null),onAddComment:eK,onDeleteComment:eA,onAddLearning:eQ,onUpdate:eY,onDelete:async()=>{await eb(P.id),I(null)}}),B&&(0,s.jsx)(c.A,{task:{id:"draft",title:"",description:"",content:"",stage:B.stage,status:"done"===B.stage?"completed":"ideation"===B.stage?"queued":"in_progress",created_at:new Date().toISOString(),project:null!=(a=null!=(t=B.project)?t:N)?a:void 0,project_id:null!=(b=B.project_id)?b:N?null==(e=ek.find(e=>e.slug===N))?void 0:e.id:void 0,provider:B.provider,model:B.model,swarm:B.swarm,swarm_models:B.swarm_models},comments:[],learnings:[],projectContext:null,projects:ek,stages:eR,isDraft:!0,isCreating:ei,onClose:()=>R(null),onAddComment:()=>{},onAddLearning:()=>{},onUpdate:async e=>{if(B){if(e.description||e.title)return void await eX({...B,...e});R(t=>t?{...t,...e}:t)}}}),eo&&(0,s.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50",children:(0,s.jsxs)("div",{className:"bg-[var(--card-bg)] p-6 rounded-xl w-full max-w-md shadow-2xl border border-[var(--card-border)] animate-scale-in",children:[(0,s.jsx)("h3",{className:"text-lg font-bold mb-4",children:"New Task"}),(0,s.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=e.target;eH(t.elements.namedItem("title").value,t.elements.namedItem("stage").value)},children:[(0,s.jsx)("input",{name:"title",autoFocus:!0,placeholder:"Task title...",className:"w-full mb-4 px-3 py-2 bg-[var(--background)] border border-[var(--card-border)] rounded focus:border-[var(--primary)] outline-none",required:!0}),(0,s.jsx)("select",{name:"stage",className:"w-full mb-6 px-3 py-2 bg-[var(--background)] border border-[var(--card-border)] rounded focus:border-[var(--primary)] outline-none",children:eL.map(e=>{var t;return(0,s.jsx)("option",{value:e,children:(null==(t=eP[e])?void 0:t.label)||e},e)})}),(0,s.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>ed(!1),className:"btn-ghost",children:"Cancel"}),(0,s.jsx)("button",{type:"submit",className:"btn-primary",children:"Create Task"})]})]})]})}),M&&(0,s.jsx)(x,{onClose:()=>U(!1),workflowId:null==eE?void 0:eE.id}),O&&(0,s.jsx)("div",{className:"modal-backdrop p-4",onClick:e=>e.target===e.currentTarget&&X(!1),children:(0,s.jsxs)("div",{className:"modal-content w-full max-w-lg p-6 animate-scale-in",children:[(0,s.jsxs)("h2",{className:"text-xl font-bold mb-4 flex items-center gap-2",children:[(0,s.jsx)("span",{children:"✨"})," New Task"]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,s.jsx)("button",{onClick:()=>K("single"),className:"px-3 py-1.5 text-xs font-semibold rounded-md uppercase tracking-wide transition-all ".concat("single"===H?"bg-[var(--card-bg)] text-[var(--primary)] shadow-sm border border-[var(--border)]":"text-[var(--muted-foreground)] hover:text-[var(--foreground)] border border-transparent"),children:"Single Agent"}),(0,s.jsx)("button",{onClick:()=>K("swarm"),className:"px-3 py-1.5 text-xs font-semibold rounded-md uppercase tracking-wide transition-all ".concat("swarm"===H?"bg-[var(--card-bg)] text-[var(--primary)] shadow-sm border border-[var(--border)]":"text-[var(--muted-foreground)] hover:text-[var(--foreground)] border border-transparent"),children:"Swarm"})]}),(0,s.jsx)("textarea",{value:z,onChange:e=>W(e.target.value),placeholder:"Describe what needs to be done...",className:"input h-32 resize-none mb-4",autoFocus:!0,disabled:G}),(0,s.jsxs)("label",{className:"text-xs font-semibold mb-3 block",children:["Attach to project",(0,s.jsxs)("select",{value:null!=el?el:"",onChange:e=>en(e.target.value||null),className:"input text-sm mt-1",disabled:eC,children:[(0,s.jsxs)("option",{value:"",children:["None (Current: ",N||"All",")"]}),ek.map(e=>(0,s.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),"single"===H?(0,s.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 mb-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"block text-[11px] font-medium text-[var(--muted-foreground)] mb-1",children:"Provider"}),(0,s.jsx)("select",{value:Q,onChange:e=>Y(e.target.value),className:"input text-xs py-1.5 appearance-none",children:ex.map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id))})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"block text-[11px] font-medium text-[var(--muted-foreground)] mb-1",children:"Model"}),(0,s.jsx)("input",{value:J,onChange:e=>Z(e.target.value),placeholder:"e.g. gpt-4.1-mini",className:"input text-xs py-1.5"})]})]}):(0,s.jsx)("div",{className:"mb-4 space-y-3",children:(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"block text-[11px] font-medium text-[var(--muted-foreground)] mb-2",children:"Swarm Models"}),(0,s.jsxs)("div",{className:"grid gap-2",children:[(0,s.jsxs)("div",{className:"grid grid-cols-[1fr_1.2fr_auto] gap-2",children:[(0,s.jsx)("select",{value:et,onChange:e=>ea(e.target.value),className:"input text-xs py-1.5 appearance-none",children:ex.map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id))}),(0,s.jsx)("input",{value:es,onChange:e=>er(e.target.value),placeholder:"model name",className:"input text-xs py-1.5"}),(0,s.jsx)("button",{type:"button",onClick:()=>{let e=es.trim();if(!e)return;let t={provider:et,model:e};$.some(e=>e.provider.toLowerCase()===t.provider.toLowerCase()&&e.model.toLowerCase()===t.model.toLowerCase())||(ee(e=>[...e,t]),er(""))},className:"btn-ghost px-3 py-1.5 text-xs",children:"Add"})]}),$.length>0&&(0,s.jsx)("div",{className:"space-y-1",children:$.map((e,t)=>(0,s.jsxs)("div",{className:"flex items-center justify-between px-3 py-1.5 rounded-md border text-xs bg-[var(--background)] border-[var(--border)]",children:[(0,s.jsxs)("span",{className:"truncate",children:[(0,s.jsx)("span",{className:"text-[var(--muted-foreground)]",children:e.provider}),(0,s.jsx)("span",{className:"mx-1",children:"\xb7"}),(0,s.jsx)("span",{children:e.model})]}),(0,s.jsx)("button",{type:"button",onClick:()=>{ee(e=>e.filter((e,a)=>a!==t))},className:"text-[var(--destructive)] hover:underline",children:"Remove"})]},"".concat(e.provider,"-").concat(e.model,"-").concat(t)))})]})]})}),(0,s.jsxs)("div",{className:"flex justify-end gap-3",children:[(0,s.jsx)("button",{onClick:()=>{X(!1),W(""),K("single"),Y("gemini"),Z(""),ee([]),ea("gemini"),er("")},disabled:G,className:"btn-ghost px-4 py-2",children:"Cancel"}),(0,s.jsx)("button",{onClick:eV,disabled:!z.trim()||G||"swarm"===H&&0===$.length,className:"btn-primary px-4 py-2 flex items-center gap-2",children:G?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"spinner w-4 h-4 border-2 border-white/20 border-t-white"}),"Creating..."]}):"Create Task"})]})]})})]})})}function f(){return(0,s.jsx)(r.Suspense,{fallback:(0,s.jsx)("div",{className:"p-8",children:"Loading..."}),children:(0,s.jsx)(b,{})})}},1460:(e,t,a)=>{"use strict";a.d(t,{A:()=>m});var s=a(5155),r=a(2619),l=a.n(r),n=a(63),o=a(4647),d=a(91),i=a(2115);function c(e){let{children:t,fullWidth:a=!1,noFooter:r=!1}=e;(0,n.usePathname)(),(0,n.useRouter)();let c=(0,n.useSearchParams)(),{user:u,loading:m,signOut:x}=(0,o.A)(),{projects:p,isLoading:h}=(0,d.Y)(),v=null==c?void 0:c.get("project");return(0,i.useMemo)(()=>v?p.find(e=>e.slug===v):null,[p,v]),(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)(l(),{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)(l(),{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(a?"p-0":"p-4 sm:p-6 lg:p-8 overflow-y-auto"),children:t}),!r&&(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)(i.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:t,fullWidth:a=!1,noFooter:r=!1}=e;return(0,s.jsx)(u,{fullWidth:a,noFooter:r,children:t})}},2888:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var s=a(5155);let r={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 n(e){let{task:t,onClick:a,compact:n=!1}=e,o=r[t.status||"queued"],d=t.stage?l[t.stage]:null;return(0,s.jsxs)("div",{onClick:a,role:"button",tabIndex:0,onKeyDown:e=>"Enter"===e.key&&(null==a?void 0:a()),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,s.jsx)("div",{className:"w-2 h-2 rounded-full flex-shrink-0 ".concat(o.dotColor),title:o.label}),(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"===t.status?"text-[var(--muted-foreground)] line-through":"","\n "),children:t.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!==t.priority&&(0,s.jsxs)("span",{className:0===t.priority?"text-[var(--primary)] font-bold":"",children:["P",t.priority]}),t.project&&(0,s.jsx)("span",{className:"max-w-[80px] truncate",children:t.project})]})]}),(0,s.jsx)("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:"failed"===t.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 o={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:a}=e;if(0===t.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 r=t.filter(e=>"in_progress"===e.status),l=t.filter(e=>"queued"===e.status),d=t.filter(e=>"blocked"===e.status),i=t.filter(e=>"completed"===e.status||"failed"===e.status),c=(e,t)=>{if(0===t.length)return null;let r=o[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(r.color," 10%, transparent)")},children:[(0,s.jsx)("span",{className:"text-lg",children:r.icon}),(0,s.jsx)("h3",{className:"text-sm font-semibold",style:{color:r.color},children:r.title}),(0,s.jsx)("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium",style:{backgroundColor:"color-mix(in srgb, ".concat(r.color," 15%, transparent)"),color:r.color},children:t.length})]}),(0,s.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] hidden sm:block",children:r.description})]}),(0,s.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:t.map((e,t)=>(0,s.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:"".concat(50*t,"ms")},children:(0,s.jsx)(n,{task:e,onClick:()=>null==a?void 0:a(e)})},e.id))})]})};return(0,s.jsxs)("div",{children:[c("in_progress",r),c("blocked",d),c("queued",l),c("completed",i)]})}},4647:(e,t,a)=>{"use strict";a.d(t,{A:()=>i,AuthProvider:()=>d});var s=a(5155),r=a(2115),l=a(1483),n=a(5704);let o=(0,r.createContext)({user:null,loading:!0,signOut:async()=>{}});function d(e){let{children:t}=e,a="1"===n.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,[d,i]=(0,r.useState)(null),[c,u]=(0,r.useState)(!0);(0,r.useEffect)(()=>{if(a){i({id:n.env.NEXT_PUBLIC_AGX_BOARD_USER_ID||"00000000-0000-0000-0000-000000000001",email:n.env.NEXT_PUBLIC_AGX_BOARD_USER_EMAIL||"local@agx.board",user_metadata:{name:n.env.NEXT_PUBLIC_AGX_BOARD_USER_NAME||"Local Board User",full_name:n.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,l.O)();e.auth.getSession().then(e=>{var t,a;i(null!=(a=null==(t=e.data.session)?void 0:t.user)?a:null),u(!1)});let{data:{subscription:t}}=e.auth.onAuthStateChange((e,t)=>{var a;i(null!=(a=null==t?void 0:t.user)?a:null),u(!1)});return()=>t.unsubscribe()},[a]);let m=async()=>{if(a)return;let e=(0,l.O)();await e.auth.signOut(),i(null)};return(0,s.jsx)(o.Provider,{value:{user:d,loading:c,signOut:m},children:t})}function i(){return(0,r.useContext)(o)}},9620:(e,t,a)=>{Promise.resolve().then(a.bind(a,415))}},e=>{e.O(0,[5004,277,2619,650,9027,9719,2456,9337,8441,1255,7358],()=>e(e.s=9620)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5105],{63:(e,t,a)=>{"use strict";var s=a(7260);a.o(s,"usePathname")&&a.d(t,{usePathname:function(){return s.usePathname}}),a.o(s,"useRouter")&&a.d(t,{useRouter:function(){return s.useRouter}}),a.o(s,"useSearchParams")&&a.d(t,{useSearchParams:function(){return s.useSearchParams}})},415:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>f});var s=a(5155),r=a(2115),l=a(63),n=a(1460),o=a(2888),d=a(6779),i=a(2835),c=a(5826),u=a(2325),m=a(8545);function x(e){let{onClose:t,workflowId:a}=e,{workflow:l,isLoading:n,refetch:o}=(0,u.mP)({workflowId:a}),{providers:d}=(0,m.u)(),[i,c]=(0,r.useState)([]),[x,p]=(0,r.useState)(null),[h,v]=(0,r.useState)(!1),[g,b]=(0,r.useState)({}),f=e=>u.ls[e]||{icon:"\uD83D\uDCCC",label:e.charAt(0).toUpperCase()+e.slice(1),color:"var(--primary)"};(0,r.useEffect)(()=>{let e=(Array.isArray(null==l?void 0:l.nodes)?l.nodes:[]).slice().sort((e,t)=>(e.position||0)-(t.position||0)).map(e=>{var t,a;return{id:e.id,name:e.name,label:e.label||e.name,prompt:e.prompt||"",provider:e.provider||"codex",model:e.model||"",swarm:!!(null==e||null==(t=e.metadata)?void 0:t.swarm),swarm_models:Array.isArray(null==e||null==(a=e.metadata)?void 0:a.swarm_models)?e.metadata.swarm_models:[],metadata:(null==e?void 0:e.metadata)&&"object"==typeof e.metadata?e.metadata:{}}});c(e),b({}),p(t=>t&&e.some(e=>e.id===t)?t:e.length?e[0].id:null)},[null==l?void 0:l.id,null==l?void 0:l.nodes]);let j=i.findIndex(e=>e.id===x),w=j>=0?i[j]:null,N=w?{...w,...g[w.id]||{}}:null,y=(e,t)=>{w&&b(a=>({...a,[w.id]:{...a[w.id]||{},[e]:t}}))},k=async()=>{if(l){v(!0);try{let e=i.map(e=>{let t={...e,...g[e.id]||{}};return{...t,metadata:{...t.metadata||{},swarm:!!t.swarm,swarm_models:t.swarm_models||[]}}}),a=await fetch("/api/workflows/".concat(l.id,"/nodes"),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({nodes:e.map(e=>({id:e.id,prompt:e.prompt,provider:e.provider,model:e.model,metadata:e.metadata}))})});if(!a.ok)throw Error("Failed to save workflow");await a.json(),o(),b({}),t()}catch(e){console.error("Error saving workflow:",e)}finally{v(!1)}}};return n&&!l?(0,s.jsx)("div",{className:"modal-backdrop p-4 flex items-center justify-center",children:(0,s.jsx)("span",{className:"spinner w-8 h-8 border-2 border-white/20 border-t-white"})}):(0,s.jsx)("div",{className:"modal-backdrop p-4",onClick:e=>e.target===e.currentTarget&&t(),children:(0,s.jsxs)("div",{className:"modal-content w-full max-w-5xl h-[85vh] flex flex-col animate-scale-in p-0 bg-[var(--card-bg)] overflow-hidden rounded-xl border border-[var(--card-border)] shadow-2xl",children:[(0,s.jsxs)("div",{className:"px-6 py-4 border-b border-[var(--border)] flex items-center justify-between bg-[var(--background)]",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("h2",{className:"text-lg font-bold flex items-center gap-2",children:[(0,s.jsx)("span",{children:"⚙️"})," Workflow Configuration"]}),(0,s.jsxs)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:["Editing: ",(0,s.jsx)("span",{className:"font-mono text-[var(--foreground)]",children:(null==l?void 0:l.name)||"Loading..."})]})]}),(0,s.jsx)("button",{onClick:t,className:"btn-ghost p-2 rounded",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 flex-1 overflow-hidden",children:[(0,s.jsxs)("div",{className:"w-64 bg-[var(--muted)]/30 border-r border-[var(--border)] overflow-y-auto p-4 flex flex-col gap-1",children:[(0,s.jsx)("div",{className:"flex items-center justify-between mb-2 px-2",children:(0,s.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Steps"})}),0===i.length&&(0,s.jsx)("div",{className:"text-sm text-[var(--muted-foreground)] px-2 italic",children:"No steps defined in this workflow."}),i.map(e=>{let t=f(e.name),a=!!g[e.id];return(0,s.jsxs)("button",{onClick:()=>p(e.id),className:"w-full text-left px-3 py-2.5 rounded-lg text-sm font-medium transition-all flex items-center gap-3 ".concat(x===e.id?"bg-[var(--card-bg)] text-[var(--foreground)] shadow-sm border border-[var(--border)]":"text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]/50"),children:[(0,s.jsx)("span",{className:"text-base",children:t.icon}),(0,s.jsx)("span",{className:"flex-1 truncate",children:e.label||t.label}),a&&(0,s.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--accent)]"})]},e.id)})]}),(0,s.jsxs)("div",{className:"flex-1 overflow-y-auto p-8 relative bg-[var(--card-bg)]",children:[N?(0,s.jsxs)("div",{className:"max-w-3xl mx-auto space-y-8 animate-fade-in",children:[(0,s.jsxs)("div",{className:"flex items-center gap-4 pb-6 border-b border-[var(--border)]",children:[(0,s.jsx)("div",{className:"w-12 h-12 rounded-xl bg-[var(--muted)]/50 flex items-center justify-center text-2xl shadow-inner",children:f(N.name).icon}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-xl font-bold",children:N.label}),(0,s.jsxs)("p",{className:"text-sm text-[var(--muted-foreground)] font-mono opacity-70",children:["ID: ",N.id," • Key: ",N.name]})]})]}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("label",{className:"text-sm font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"System Prompt"}),(0,s.jsx)("span",{className:"text-xs text-[var(--muted-foreground)] bg-[var(--muted)]/50 px-2 py-0.5 rounded",children:"Markdown Supported"})]}),(0,s.jsx)("textarea",{value:N.prompt||"",onChange:e=>y("prompt",e.target.value),className:"input w-full h-64 font-mono text-sm leading-relaxed resize-y p-4",placeholder:"Define the agent's behavior, constraints, and output format for this stage..."})]}),(0,s.jsxs)("div",{className:"p-6 rounded-xl bg-[var(--muted)]/20 border border-[var(--border)] space-y-6",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("h4",{className:"font-semibold flex items-center gap-2",children:[(0,s.jsx)("span",{children:"\uD83E\uDD16"})," Model Settings"]}),(0,s.jsxs)("div",{className:"flex items-center gap-3 bg-[var(--card-bg)] px-3 py-1.5 rounded-lg border border-[var(--border)]",children:[(0,s.jsx)("span",{className:"text-sm font-medium",children:"Swarm Mode"}),(0,s.jsx)("button",{onClick:()=>y("swarm",!N.swarm),className:"w-9 h-5 rounded-full transition-colors relative ".concat(N.swarm?"bg-[var(--primary)]":"bg-[var(--muted-foreground)]/30"),children:(0,s.jsx)("span",{className:"absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ".concat(N.swarm?"translate-x-4":"translate-x-0")})})]})]}),N.swarm?(0,s.jsxs)("div",{className:"space-y-4 animate-fade-in",children:[(0,s.jsxs)("div",{className:"flex justify-between items-center",children:[(0,s.jsx)("span",{className:"text-sm font-medium text-[var(--muted-foreground)]",children:"Swarm Models"}),(0,s.jsx)("button",{onClick:()=>{y("swarm_models",[...N.swarm_models||[],{provider:"gemini",model:""}])},className:"btn-secondary text-xs px-2 py-1",children:"+ Add Model"})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[0===(N.swarm_models||[]).length&&(0,s.jsx)("div",{className:"text-center py-8 border-2 border-dashed border-[var(--border)] rounded-lg text-sm text-[var(--muted-foreground)]",children:"No models configured for swarm. Add one to enable."}),(N.swarm_models||[]).map((e,t)=>(0,s.jsxs)("div",{className:"flex gap-2 items-center group",children:[(0,s.jsx)("select",{value:e.provider,onChange:e=>{let a=[...N.swarm_models||[]];a[t].provider=e.target.value,y("swarm_models",a)},className:"input text-sm py-1.5 w-32",children:d.map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id))}),(0,s.jsx)("input",{value:e.model,onChange:e=>{let a=[...N.swarm_models||[]];a[t].model=e.target.value,y("swarm_models",a)},placeholder:"Model name (e.g. gemini-1.5-pro)",className:"input text-sm py-1.5 flex-1"}),(0,s.jsx)("button",{onClick:()=>{y("swarm_models",(N.swarm_models||[]).filter((e,a)=>a!==t))},className:"text-[var(--muted-foreground)] hover:text-[var(--destructive)] hover:bg-[var(--destructive)]/10 p-1.5 rounded opacity-0 group-hover:opacity-100 transition-all",children:"✕"})]},t))]})]}):(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-4 animate-fade-in",children:[(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsx)("label",{className:"text-xs font-semibold text-[var(--muted-foreground)] uppercase",children:"Provider"}),(0,s.jsx)("select",{value:N.provider||"gemini",onChange:e=>y("provider",e.target.value),className:"input w-full text-sm py-2",children:d.map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id))})]}),(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsx)("label",{className:"text-xs font-semibold text-[var(--muted-foreground)] uppercase",children:"Model"}),(0,s.jsx)("input",{value:N.model||"",onChange:e=>y("model",e.target.value),placeholder:"e.g. gemini-2.0-flash",className:"input w-full text-sm py-2"})]})]})]})]}):null,!w&&i.length>0&&(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center h-full text-[var(--muted-foreground)]",children:[(0,s.jsx)("span",{className:"text-4xl mb-4 opacity-30",children:"\uD83D\uDC48"}),(0,s.jsx)("p",{children:"Select a step from the sidebar to configure it."})]})]})]}),(0,s.jsxs)("div",{className:"px-6 py-4 border-t border-[var(--border)] bg-[var(--background)] flex justify-end gap-3",children:[(0,s.jsx)("button",{onClick:t,className:"btn-ghost px-4 py-2",children:"Cancel"}),(0,s.jsxs)("button",{onClick:k,disabled:h||0===Object.keys(g).length,className:"btn-primary px-6 py-2 flex items-center gap-2",children:[h&&(0,s.jsx)("span",{className:"spinner w-4 h-4 border-2 border-white/20 border-t-white"}),h?"Saving...":"Save Changes"]})]})]})})}var p=a(577),h=a(91);function v(){return(0,s.jsxs)("div",{className:"p-4 rounded-xl bg-[var(--card-bg)] border border-[var(--card-border)]",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between mb-3",children:[(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsxs)("div",{className:"flex gap-2 mb-2",children:[(0,s.jsx)("div",{className:"skeleton h-4 w-8 rounded"}),(0,s.jsx)("div",{className:"skeleton h-4 w-16 rounded"})]}),(0,s.jsx)("div",{className:"skeleton h-5 w-3/4 rounded"})]}),(0,s.jsx)("div",{className:"skeleton h-5 w-20 rounded-full"})]}),(0,s.jsxs)("div",{className:"flex justify-between",children:[(0,s.jsx)("div",{className:"skeleton h-4 w-24 rounded"}),(0,s.jsx)("div",{className:"skeleton h-4 w-12 rounded"})]})]})}function g(){return(0,s.jsx)("div",{className:"flex gap-4 overflow-x-auto pb-4 px-4",children:[1,2,3,4,5].map(e=>(0,s.jsxs)("div",{className:"flex-shrink-0 w-72 kanban-column",children:[(0,s.jsx)("div",{className:"kanban-column-header",children:(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("div",{className:"skeleton h-6 w-6 rounded"}),(0,s.jsx)("div",{className:"skeleton h-5 w-20 rounded"})]}),(0,s.jsx)("div",{className:"skeleton h-5 w-6 rounded-full"})]})}),(0,s.jsx)("div",{className:"p-2 space-y-2",children:[1,2].map(e=>(0,s.jsxs)("div",{className:"p-3 rounded-lg bg-[var(--background)] border-l-2 border-[var(--card-border)]",children:[(0,s.jsx)("div",{className:"skeleton h-3 w-12 rounded mb-2"}),(0,s.jsx)("div",{className:"skeleton h-4 w-full rounded mb-2"}),(0,s.jsx)("div",{className:"skeleton h-3 w-20 rounded"})]},e))})]},e))})}function b(){var e,t,a,b;let f=(0,l.useRouter)(),j=(0,l.useSearchParams)(),w=(0,l.usePathname)(),N=(null==j?void 0:j.get("project"))||void 0,y=j.get("view")||"kanban",k=j.get("sort")||"newest",[C,_]=(0,r.useState)(y),[S,A]=(0,r.useState)(k),[T,D]=(0,r.useState)("all"),[E,L]=(0,r.useState)(""),[P,I]=(0,r.useState)(null),[B,R]=(0,r.useState)(null),[M,U]=(0,r.useState)(!1),[q,F]=(0,r.useState)(null),[O,X]=(0,r.useState)(!1),[z,W]=(0,r.useState)(""),[G,V]=(0,r.useState)(!1),[H,K]=(0,r.useState)("single"),[Q,Y]=(0,r.useState)("gemini"),[J,Z]=(0,r.useState)(""),[$,ee]=(0,r.useState)([]),[et,ea]=(0,r.useState)("gemini"),[es,er]=(0,r.useState)(""),[el,en]=(0,r.useState)(null),[eo,ed]=(0,r.useState)(!1),[ei,ec]=(0,r.useState)(!1),[eu,em]=(0,r.useState)(null),{providers:ex}=(0,m.u)();(0,r.useEffect)(()=>{let e=e=>{let t=e.target,a=["INPUT","TEXTAREA","SELECT"].includes(t.tagName)||t.isContentEditable;if("n"!==e.key||a||(e.preventDefault(),X(!0)),"/"===e.key&&!a){var s;e.preventDefault(),null==(s=document.getElementById("task-search"))||s.focus()}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]);let{tasks:ep,isLoading:eh,createTask:ev,updateTask:eg,deleteTask:eb,completeTaskStage:ef,cancelWorkflow:ej,refetch:ew,cancellingTaskId:eN,fetchTask:ey}=(0,p.si)({realtime:!0,project:N}),{projects:ek,isLoading:eC}=(0,h.Y)(),{comments:e_,addComment:eS,deleteComment:eA}=(0,p.LU)((null==P?void 0:P.id)||null),{learnings:eT,addLearning:eD}=(0,p.dF)((null==P?void 0:P.id)||void 0),{workflow:eE,stages:eL,stageConfig:eP,isValidTransition:eI,isLoading:eB}=(0,u.mP)(),eR=(0,r.useMemo)(()=>eL.map(e=>{var t;let a=eP[e],s=null==eE||null==(t=eE.nodes)?void 0:t.find(t=>t.name===e);return{id:e,label:(null==a?void 0:a.label)||e,icon:(null==a?void 0:a.icon)||"\uD83D\uDCCC",color:(null==a?void 0:a.color)||"var(--primary)",prompt:(null==s?void 0:s.prompt)||void 0}}),[eL,eP,eE]),eM=e=>{_(e);let t=new URLSearchParams(j);t.set("view",e),f.push("".concat(w,"?").concat(t.toString()))},eU=(0,r.useMemo)(()=>{let e=[...ep];if(E){let t=E.toLowerCase();e=e.filter(e=>{var a,s,r;return(null==(a=e.title)?void 0:a.toLowerCase().includes(t))||(null==(s=e.description)?void 0:s.toLowerCase().includes(t))||e.id.toLowerCase().includes(t)||(null==(r=e.project)?void 0:r.toLowerCase().includes(t))})}return"all"!==T&&(e="active"===T?e.filter(e=>"completed"!==e.status&&"failed"!==e.status):e.filter(e=>e.status===T)),e.sort((e,t)=>{switch(S){case"newest":return new Date(t.created_at).getTime()-new Date(e.created_at).getTime();case"oldest":return new Date(e.created_at).getTime()-new Date(t.created_at).getTime();case"priority":return(e.priority||0)-(t.priority||0);case"updated":return new Date(t.updated_at).getTime()-new Date(e.updated_at).getTime();default:return 0}}),e},[ep,E,T,S]),eq=(0,r.useCallback)(async(e,t)=>{t&&I(t);try{let t=await ey(e);return I(t),t}catch(e){return console.error("Failed to load task details:",e),t||I(null),null!=t?t:null}},[ey]),eF=(0,r.useCallback)(async e=>{await eq(e.id,e)},[eq]),eO=(0,r.useCallback)(async e=>{var t,a;let s=N?ek.find(e=>e.slug===N):null;R({stage:e,project:null!=(t=null==s?void 0:s.slug)?t:null,project_id:null!=(a=null==s?void 0:s.id)?a:null})},[N,ek]),eX=(0,r.useCallback)(async e=>{var t,a;let s=(e.description||"").trim();if(!s)return;ec(!0);let r=e.stage||(null==B?void 0:B.stage)||"ideation";em(r);let l="done"===r?"completed":"ideation"===r?"queued":"in_progress",n=(null==eP||null==(t=eP[r])?void 0:t.label)||r,o=(e.title||"").trim()||s.split("\n")[0].replace(/^#\s*/,"")||"New Task (".concat(n,")"),d=["status: ".concat(l),"stage: ".concat(r)],i=e.project_id&&ek.find(t=>t.id===e.project_id)||e.project&&ek.find(t=>t.slug===e.project)||(N?ek.find(e=>e.slug===N):null);i&&(d.push("project: ".concat(i.slug)),d.push("project_id: ".concat(i.id)),d.push("workflow_id: ".concat(i.workflow_id||u.ou))),e.provider&&d.push("provider: ".concat(e.provider)),e.model&&d.push("model: ".concat(e.model)),void 0!==e.swarm&&d.push("swarm: ".concat(e.swarm?"true":"false"));let c="---\n".concat(d.join("\n"),"\n---\n\n# ").concat(o,"\n\n").concat(s);try{let t=e.swarm?null!=(a=e.swarm_models)?a:[]:null,s=await ev(c,t);R(null),await eq(s.id,s)}catch(e){console.error("Failed to create task:",e)}finally{ec(!1),em(null)}},[ev,B,eq,N,ek,eP]),ez=(0,r.useCallback)(async(e,t)=>{await eg(e,t)},[eg]),eW=async e=>{let t=ep.find(t=>t.id===e);F(null);try{var a;await ej({taskId:e}),await ew(),F({type:"success",message:"Cancellation requested for ".concat((null==t?void 0:t.title)||(null==t||null==(a=t.content)?void 0:a.slice(0,30))||e,".")})}catch(s){console.error("Failed to stop task",s);let a=s instanceof Error?s.message:"unknown error";F({type:"error",message:"Unable to stop ".concat((null==t?void 0:t.title)||e,": ").concat(a,".")})}},eG=async e=>{try{await ef({taskId:e,decision:"not_done",final_result:"Manual retry requested.",explanation:"Manual retry requested."})}catch(e){console.error("Failed to retry task",e)}};(0,r.useEffect)(()=>{if(!q)return;let e=setTimeout(()=>F(null),5e3);return()=>clearTimeout(e)},[q]);let eV=async()=>{if(z.trim()&&!G){V(!0);try{var e;let t=["status: queued","stage: ideation"];"single"!==H&&t.push("swarm: true");let a=el||(N?null==(e=ek.find(e=>e.slug===N))?void 0:e.id:null);if(a){let e=ek.find(e=>e.id===a);e&&(t.push("project: ".concat(e.slug)),t.push("project_id: ".concat(e.id)),t.push("workflow_id: ".concat(e.workflow_id||u.ou)))}let s="---\n".concat(t.join("\n"),"\n---\n\n# ").concat(z,"\n");await ev(s,"swarm"===H?$:null),W(""),K("single"),Y("gemini"),Z(""),ee([]),ea("gemini"),er(""),X(!1),en(null)}catch(e){console.error("Failed to create task:",e)}finally{V(!1)}}},eH=async(e,t)=>{let a="---\n".concat(["status: ".concat("ideation"===t?"queued":"in_progress"),"stage: ".concat(t)].join("\n"),"\n---\n\n# ").concat(e,"\n");await ev(a,null),ed(!1)},eK=async e=>{P&&await eS(e)},eQ=async(e,t,a)=>{var s,r;let l=(null==P||null==(r=P.project_context)||null==(s=r.project)?void 0:s.id)||(null==P?void 0:P.project_id)||(null==P?void 0:P.project)||void 0,n=null!=a?a:"global"===t?void 0:"task"===t?null==P?void 0:P.id:l;await eD(e,t,n)},eY=async e=>{P&&(I(t=>t?{...t,...e}:null),await eg(P.id,e))};return(ep.length,ep.filter(e=>"in_progress"===e.status).length,ep.filter(e=>"queued"===e.status).length,ep.filter(e=>"completed"===e.status).length,(eh||eB)&&0===ep.length)?(0,s.jsxs)("div",{className:"h-full flex flex-col p-6 animate-pulse",children:[(0,s.jsxs)("div",{className:"flex justify-between items-center mb-8",children:[(0,s.jsx)("div",{className:"h-8 w-48 bg-[var(--card-border)] rounded"}),(0,s.jsx)("div",{className:"h-10 w-32 bg-[var(--card-border)] rounded"})]}),(0,s.jsx)("div",{className:"h-12 w-full bg-[var(--card-border)] rounded mb-8"}),"kanban"===C?(0,s.jsx)(g,{}):(0,s.jsx)("div",{className:"space-y-4",children:[1,2,3].map(e=>(0,s.jsx)(v,{},e))})]}):(0,s.jsx)(n.A,{fullWidth:!0,noFooter:!0,children:(0,s.jsxs)("div",{className:"flex flex-col h-full ".concat("kanban"===C?"max-w-full":"max-w-6xl mx-auto w-full px-4"),children:[(0,s.jsxs)("div",{className:"relative flex items-center justify-center gap-4 py-3 px-4 border-b border-[var(--border)] bg-[var(--background)] flex-shrink-0 z-20",children:[(0,s.jsxs)("div",{className:"flex items-center gap-4",children:[(0,s.jsxs)("div",{className:"relative w-80",children:[(0,s.jsx)("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none",children:(0,s.jsx)("svg",{className:"h-5 w-5 text-gray-400",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z",clipRule:"evenodd"})})}),(0,s.jsx)("input",{id:"task-search",type:"text",placeholder:"Search tasks... (/)",className:"block w-full rounded-md border-0 py-1.5 pl-10 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6 bg-white shadow-sm",value:E,onChange:e=>L(e.target.value)})]}),(0,s.jsxs)("div",{className:"flex items-center bg-gray-100 p-1 rounded-lg border border-gray-200",children:[(0,s.jsx)("button",{onClick:()=>eM("list"),className:"px-3 py-1 text-xs font-medium rounded transition-all ".concat("list"===C?"bg-white shadow-sm text-gray-900":"text-gray-500 hover:text-gray-700"),children:"List"}),(0,s.jsx)("button",{onClick:()=>eM("kanban"),className:"px-3 py-1 text-xs font-medium rounded transition-all ".concat("kanban"===C?"bg-white shadow-sm text-gray-900":"text-gray-500 hover:text-gray-700"),children:"Board"})]}),(0,s.jsxs)("button",{onClick:()=>U(!0),className:"flex items-center gap-2 px-3 py-1.5 text-xs font-medium text-gray-700 bg-white border border-gray-200 rounded-lg shadow-sm hover:bg-gray-50 transition-all",title:"Configure Workflow",children:[(0,s.jsx)("span",{className:"text-base leading-none",children:"⚙️"}),(0,s.jsx)("span",{children:"Workflow"})]})]}),(0,s.jsx)("div",{className:"absolute right-4 flex items-center gap-3"})]}),q&&(0,s.jsx)("div",{className:"px-4 mt-3",children:(0,s.jsx)("div",{role:"status",className:"rounded-xl px-4 py-2 text-xs font-semibold ".concat("success"===q.type?"bg-[var(--success-muted)] text-[var(--success)]":"bg-[var(--destructive-muted)] text-[var(--destructive)]"),children:q.message})}),(0,s.jsx)("div",{className:"flex-shrink-0 mt-2 px-4",children:(0,s.jsx)(i.A,{tasks:ep,onTaskClick:I,onStop:eW,onRetry:eG,cancellingTaskId:eN})}),(0,s.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden flex flex-col pt-2",children:"list"===C?(0,s.jsx)("div",{className:"overflow-y-auto h-full px-4",children:(0,s.jsx)(o.A,{tasks:eU,onSelectTask:eF,onStatusChange:(e,t)=>ez(e,{status:t})})}):(0,s.jsx)(d.A,{tasks:eU,onSelectTask:eF,onTasksChange:()=>{},onTaskUpdate:ez,onAddTask:eO,stages:eL,stageConfig:eP,isValidTransition:eI,isCreatingTask:ei,creatingStage:eu})}),P&&(0,s.jsx)(c.A,{task:P,comments:P?e_:[],learnings:eT,projectContext:P.project_context,projects:ek,stages:eR,onClose:()=>I(null),onAddComment:eK,onDeleteComment:eA,onAddLearning:eQ,onUpdate:eY,onDelete:async()=>{await eb(P.id),I(null)}}),B&&(0,s.jsx)(c.A,{task:{id:"draft",title:"",description:"",content:"",stage:B.stage,status:"done"===B.stage?"completed":"ideation"===B.stage?"queued":"in_progress",created_at:new Date().toISOString(),project:null!=(a=null!=(t=B.project)?t:N)?a:void 0,project_id:null!=(b=B.project_id)?b:N?null==(e=ek.find(e=>e.slug===N))?void 0:e.id:void 0,provider:B.provider,model:B.model,swarm:B.swarm,swarm_models:B.swarm_models},comments:[],learnings:[],projectContext:null,projects:ek,stages:eR,isDraft:!0,isCreating:ei,onClose:()=>R(null),onAddComment:()=>{},onAddLearning:()=>{},onUpdate:async e=>{if(B){if(e.description||e.title)return void await eX({...B,...e});R(t=>t?{...t,...e}:t)}}}),eo&&(0,s.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50",children:(0,s.jsxs)("div",{className:"bg-[var(--card-bg)] p-6 rounded-xl w-full max-w-md shadow-2xl border border-[var(--card-border)] animate-scale-in",children:[(0,s.jsx)("h3",{className:"text-lg font-bold mb-4",children:"New Task"}),(0,s.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=e.target;eH(t.elements.namedItem("title").value,t.elements.namedItem("stage").value)},children:[(0,s.jsx)("input",{name:"title",autoFocus:!0,placeholder:"Task title...",className:"w-full mb-4 px-3 py-2 bg-[var(--background)] border border-[var(--card-border)] rounded focus:border-[var(--primary)] outline-none",required:!0}),(0,s.jsx)("select",{name:"stage",className:"w-full mb-6 px-3 py-2 bg-[var(--background)] border border-[var(--card-border)] rounded focus:border-[var(--primary)] outline-none",children:eL.map(e=>{var t;return(0,s.jsx)("option",{value:e,children:(null==(t=eP[e])?void 0:t.label)||e},e)})}),(0,s.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>ed(!1),className:"btn-ghost",children:"Cancel"}),(0,s.jsx)("button",{type:"submit",className:"btn-primary",children:"Create Task"})]})]})]})}),M&&(0,s.jsx)(x,{onClose:()=>U(!1),workflowId:null==eE?void 0:eE.id}),O&&(0,s.jsx)("div",{className:"modal-backdrop p-4",onClick:e=>e.target===e.currentTarget&&X(!1),children:(0,s.jsxs)("div",{className:"modal-content w-full max-w-lg p-6 animate-scale-in",children:[(0,s.jsxs)("h2",{className:"text-xl font-bold mb-4 flex items-center gap-2",children:[(0,s.jsx)("span",{children:"✨"})," New Task"]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,s.jsx)("button",{onClick:()=>K("single"),className:"px-3 py-1.5 text-xs font-semibold rounded-md uppercase tracking-wide transition-all ".concat("single"===H?"bg-[var(--card-bg)] text-[var(--primary)] shadow-sm border border-[var(--border)]":"text-[var(--muted-foreground)] hover:text-[var(--foreground)] border border-transparent"),children:"Single Agent"}),(0,s.jsx)("button",{onClick:()=>K("swarm"),className:"px-3 py-1.5 text-xs font-semibold rounded-md uppercase tracking-wide transition-all ".concat("swarm"===H?"bg-[var(--card-bg)] text-[var(--primary)] shadow-sm border border-[var(--border)]":"text-[var(--muted-foreground)] hover:text-[var(--foreground)] border border-transparent"),children:"Swarm"})]}),(0,s.jsx)("textarea",{value:z,onChange:e=>W(e.target.value),placeholder:"Describe what needs to be done...",className:"input h-32 resize-none mb-4",autoFocus:!0,disabled:G}),(0,s.jsxs)("label",{className:"text-xs font-semibold mb-3 block",children:["Attach to project",(0,s.jsxs)("select",{value:null!=el?el:"",onChange:e=>en(e.target.value||null),className:"input text-sm mt-1",disabled:eC,children:[(0,s.jsxs)("option",{value:"",children:["None (Current: ",N||"All",")"]}),ek.map(e=>(0,s.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),"single"===H?(0,s.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 mb-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"block text-[11px] font-medium text-[var(--muted-foreground)] mb-1",children:"Provider"}),(0,s.jsx)("select",{value:Q,onChange:e=>Y(e.target.value),className:"input text-xs py-1.5 appearance-none",children:ex.map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id))})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"block text-[11px] font-medium text-[var(--muted-foreground)] mb-1",children:"Model"}),(0,s.jsx)("input",{value:J,onChange:e=>Z(e.target.value),placeholder:"e.g. gpt-4.1-mini",className:"input text-xs py-1.5"})]})]}):(0,s.jsx)("div",{className:"mb-4 space-y-3",children:(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"block text-[11px] font-medium text-[var(--muted-foreground)] mb-2",children:"Swarm Models"}),(0,s.jsxs)("div",{className:"grid gap-2",children:[(0,s.jsxs)("div",{className:"grid grid-cols-[1fr_1.2fr_auto] gap-2",children:[(0,s.jsx)("select",{value:et,onChange:e=>ea(e.target.value),className:"input text-xs py-1.5 appearance-none",children:ex.map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id))}),(0,s.jsx)("input",{value:es,onChange:e=>er(e.target.value),placeholder:"model name",className:"input text-xs py-1.5"}),(0,s.jsx)("button",{type:"button",onClick:()=>{let e=es.trim();if(!e)return;let t={provider:et,model:e};$.some(e=>e.provider.toLowerCase()===t.provider.toLowerCase()&&e.model.toLowerCase()===t.model.toLowerCase())||(ee(e=>[...e,t]),er(""))},className:"btn-ghost px-3 py-1.5 text-xs",children:"Add"})]}),$.length>0&&(0,s.jsx)("div",{className:"space-y-1",children:$.map((e,t)=>(0,s.jsxs)("div",{className:"flex items-center justify-between px-3 py-1.5 rounded-md border text-xs bg-[var(--background)] border-[var(--border)]",children:[(0,s.jsxs)("span",{className:"truncate",children:[(0,s.jsx)("span",{className:"text-[var(--muted-foreground)]",children:e.provider}),(0,s.jsx)("span",{className:"mx-1",children:"\xb7"}),(0,s.jsx)("span",{children:e.model})]}),(0,s.jsx)("button",{type:"button",onClick:()=>{ee(e=>e.filter((e,a)=>a!==t))},className:"text-[var(--destructive)] hover:underline",children:"Remove"})]},"".concat(e.provider,"-").concat(e.model,"-").concat(t)))})]})]})}),(0,s.jsxs)("div",{className:"flex justify-end gap-3",children:[(0,s.jsx)("button",{onClick:()=>{X(!1),W(""),K("single"),Y("gemini"),Z(""),ee([]),ea("gemini"),er("")},disabled:G,className:"btn-ghost px-4 py-2",children:"Cancel"}),(0,s.jsx)("button",{onClick:eV,disabled:!z.trim()||G||"swarm"===H&&0===$.length,className:"btn-primary px-4 py-2 flex items-center gap-2",children:G?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"spinner w-4 h-4 border-2 border-white/20 border-t-white"}),"Creating..."]}):"Create Task"})]})]})})]})})}function f(){return(0,s.jsx)(r.Suspense,{fallback:(0,s.jsx)("div",{className:"p-8",children:"Loading..."}),children:(0,s.jsx)(b,{})})}},1460:(e,t,a)=>{"use strict";a.d(t,{A:()=>m});var s=a(5155),r=a(2619),l=a.n(r),n=a(63),o=a(4647),d=a(91),i=a(2115);function c(e){let{children:t,fullWidth:a=!1,noFooter:r=!1}=e;(0,n.usePathname)(),(0,n.useRouter)();let c=(0,n.useSearchParams)(),{user:u,loading:m,signOut:x}=(0,o.A)(),{projects:p,isLoading:h}=(0,d.Y)(),v=null==c?void 0:c.get("project");return(0,i.useMemo)(()=>v?p.find(e=>e.slug===v):null,[p,v]),(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)(l(),{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)(l(),{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(a?"p-0":"p-4 sm:p-6 lg:p-8 overflow-y-auto"),children:t}),!r&&(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)(i.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:t,fullWidth:a=!1,noFooter:r=!1}=e;return(0,s.jsx)(u,{fullWidth:a,noFooter:r,children:t})}},2888:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var s=a(5155),r=a(80);let l={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)]"}},n={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:t,onClick:a,compact:o=!1,onStatusChange:d}=e;l[t.status||"queued"];let i=t.stage?n[t.stage]:null;return(0,s.jsxs)("div",{onClick:a,role:"button",tabIndex:0,onKeyDown:e=>"Enter"===e.key&&(null==a?void 0:a()),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,s.jsx)(r.A,{status:t.status||"queued",onStatusChange:d}),(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"===t.status?"text-[var(--muted-foreground)] line-through":"","\n "),children:t.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!==t.priority&&(0,s.jsxs)("span",{className:0===t.priority?"text-[var(--primary)] font-bold":"",children:["P",t.priority]}),t.project&&(0,s.jsx)("span",{className:"max-w-[80px] truncate",children:t.project})]})]}),(0,s.jsx)("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:"failed"===t.status?(0,s.jsx)("span",{className:"text-[10px] text-[var(--status-failed)] font-bold",children:"FAILED"}):i&&(0,s.jsx)("span",{className:"text-[10px] opacity-40",children:i.icon})})]})}let d={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 i(e){let{tasks:t,onSelectTask:a,onStatusChange:r}=e;if(0===t.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 l=t.filter(e=>"in_progress"===e.status),n=t.filter(e=>"queued"===e.status),i=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 l=d[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(l.color," 10%, transparent)")},children:[(0,s.jsx)("span",{className:"text-lg",children:l.icon}),(0,s.jsx)("h3",{className:"text-sm font-semibold",style:{color:l.color},children:l.title}),(0,s.jsx)("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium",style:{backgroundColor:"color-mix(in srgb, ".concat(l.color," 15%, transparent)"),color:l.color},children:t.length})]}),(0,s.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] hidden sm:block",children:l.description})]}),(0,s.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:t.map((e,t)=>(0,s.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:"".concat(50*t,"ms")},children:(0,s.jsx)(o,{task:e,onClick:()=>null==a?void 0:a(e),onStatusChange:r?t=>r(e.id,t):void 0})},e.id))})]})};return(0,s.jsxs)("div",{children:[u("in_progress",l),u("blocked",i),u("queued",n),u("completed",c)]})}},4647:(e,t,a)=>{"use strict";a.d(t,{A:()=>i,AuthProvider:()=>d});var s=a(5155),r=a(2115),l=a(1483),n=a(5704);let o=(0,r.createContext)({user:null,loading:!0,signOut:async()=>{}});function d(e){let{children:t}=e,a="1"===n.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,[d,i]=(0,r.useState)(null),[c,u]=(0,r.useState)(!0);(0,r.useEffect)(()=>{if(a){i({id:n.env.NEXT_PUBLIC_AGX_BOARD_USER_ID||"00000000-0000-0000-0000-000000000001",email:n.env.NEXT_PUBLIC_AGX_BOARD_USER_EMAIL||"local@agx.board",user_metadata:{name:n.env.NEXT_PUBLIC_AGX_BOARD_USER_NAME||"Local Board User",full_name:n.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,l.O)();e.auth.getSession().then(e=>{var t,a;i(null!=(a=null==(t=e.data.session)?void 0:t.user)?a:null),u(!1)});let{data:{subscription:t}}=e.auth.onAuthStateChange((e,t)=>{var a;i(null!=(a=null==t?void 0:t.user)?a:null),u(!1)});return()=>t.unsubscribe()},[a]);let m=async()=>{if(a)return;let e=(0,l.O)();await e.auth.signOut(),i(null)};return(0,s.jsx)(o.Provider,{value:{user:d,loading:c,signOut:m},children:t})}function i(){return(0,r.useContext)(o)}},9620:(e,t,a)=>{Promise.resolve().then(a.bind(a,415))}},e=>{e.O(0,[5004,277,2619,650,9027,5608,2456,9337,8441,1255,7358],()=>e(e.s=9620)),_N_E=e.O()}]);
@@ -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()}]);